mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
[build] Generate NI Style UsageReporting header (#7331)
based on wplibsuite/ni-libraries src/include/FRC_NetworkCommunication/UsageReporting.h
This commit is contained in:
@@ -67,6 +67,22 @@ def generate_usage_reporting(output_directory: Path, template_directory: Path):
|
||||
)
|
||||
usage_reporting_hdr.write_text(contents, encoding="utf-8", newline="\n")
|
||||
|
||||
with (template_directory / "UsageReporting.h.in").open(
|
||||
encoding="utf-8"
|
||||
) as cpp_usage_reporting:
|
||||
contents = (
|
||||
# fmt: off
|
||||
cpp_usage_reporting.read()
|
||||
.replace(r"${usage_reporting_types_cpp}", "\n".join(usage_reporting_types_cpp))
|
||||
.replace(r"${usage_reporting_instances_cpp}", "\n".join(usage_reporting_instances_cpp))
|
||||
# fmt: on
|
||||
)
|
||||
|
||||
usage_reporting_hdr = (
|
||||
output_directory / "main/native/include/hal/UsageReporting.h"
|
||||
)
|
||||
usage_reporting_hdr.write_text(contents, encoding="utf-8", newline="\n")
|
||||
|
||||
|
||||
def main():
|
||||
dirname = Path(__file__).parent
|
||||
|
||||
55
hal/src/generate/UsageReporting.h.in
Normal file
55
hal/src/generate/UsageReporting.h.in
Normal file
@@ -0,0 +1,55 @@
|
||||
|
||||
#ifndef __UsageReporting_h__
|
||||
#define __UsageReporting_h__
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <stdint.h>
|
||||
#define EXPORT_FUNC __declspec(dllexport) __cdecl
|
||||
#elif defined(__vxworks)
|
||||
#include <vxWorks.h>
|
||||
#define EXPORT_FUNC
|
||||
#else
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#define EXPORT_FUNC
|
||||
#endif
|
||||
|
||||
#define kUsageReporting_version 1
|
||||
|
||||
namespace nUsageReporting
|
||||
{
|
||||
typedef enum
|
||||
{
|
||||
${usage_reporting_types_cpp}
|
||||
|
||||
// kResourceType_MaximumID = 255,
|
||||
} tResourceType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
${usage_reporting_instances_cpp}
|
||||
} tInstances;
|
||||
|
||||
/**
|
||||
* Report the usage of a resource of interest.
|
||||
*
|
||||
* @param resource one of the values in the tResourceType above (max value 51).
|
||||
* @param instanceNumber an index that identifies the resource instance.
|
||||
* @param context an optional additional context number for some cases (such as module number). Set to 0 to omit.
|
||||
* @param feature a string to be included describing features in use on a specific resource. Setting the same resource more than once allows you to change the feature string.
|
||||
*/
|
||||
uint32_t EXPORT_FUNC report(tResourceType resource, uint8_t instanceNumber, uint8_t context = 0, const char* feature = NULL);
|
||||
} // namespace nUsageReporting
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
uint32_t EXPORT_FUNC FRC_NetworkCommunication_nUsageReporting_report(uint8_t resource, uint8_t instanceNumber, uint8_t context, const char* feature);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // __UsageReporting_h__
|
||||
223
hal/src/generated/main/native/include/hal/UsageReporting.h
generated
Normal file
223
hal/src/generated/main/native/include/hal/UsageReporting.h
generated
Normal file
@@ -0,0 +1,223 @@
|
||||
|
||||
#ifndef __UsageReporting_h__
|
||||
#define __UsageReporting_h__
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <stdint.h>
|
||||
#define EXPORT_FUNC __declspec(dllexport) __cdecl
|
||||
#elif defined(__vxworks)
|
||||
#include <vxWorks.h>
|
||||
#define EXPORT_FUNC
|
||||
#else
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#define EXPORT_FUNC
|
||||
#endif
|
||||
|
||||
#define kUsageReporting_version 1
|
||||
|
||||
namespace nUsageReporting
|
||||
{
|
||||
typedef enum
|
||||
{
|
||||
kResourceType_Controller = 0,
|
||||
kResourceType_Module = 1,
|
||||
kResourceType_Language = 2,
|
||||
kResourceType_CANPlugin = 3,
|
||||
kResourceType_Accelerometer = 4,
|
||||
kResourceType_ADXL345 = 5,
|
||||
kResourceType_AnalogChannel = 6,
|
||||
kResourceType_AnalogTrigger = 7,
|
||||
kResourceType_AnalogTriggerOutput = 8,
|
||||
kResourceType_CANJaguar = 9,
|
||||
kResourceType_Compressor = 10,
|
||||
kResourceType_Counter = 11,
|
||||
kResourceType_Dashboard = 12,
|
||||
kResourceType_DigitalInput = 13,
|
||||
kResourceType_DigitalOutput = 14,
|
||||
kResourceType_DriverStationCIO = 15,
|
||||
kResourceType_DriverStationEIO = 16,
|
||||
kResourceType_DriverStationLCD = 17,
|
||||
kResourceType_Encoder = 18,
|
||||
kResourceType_GearTooth = 19,
|
||||
kResourceType_Gyro = 20,
|
||||
kResourceType_I2C = 21,
|
||||
kResourceType_Framework = 22,
|
||||
kResourceType_Jaguar = 23,
|
||||
kResourceType_Joystick = 24,
|
||||
kResourceType_Kinect = 25,
|
||||
kResourceType_KinectStick = 26,
|
||||
kResourceType_PIDController = 27,
|
||||
kResourceType_Preferences = 28,
|
||||
kResourceType_PWM = 29,
|
||||
kResourceType_Relay = 30,
|
||||
kResourceType_RobotDrive = 31,
|
||||
kResourceType_SerialPort = 32,
|
||||
kResourceType_Servo = 33,
|
||||
kResourceType_Solenoid = 34,
|
||||
kResourceType_SPI = 35,
|
||||
kResourceType_Task = 36,
|
||||
kResourceType_Ultrasonic = 37,
|
||||
kResourceType_Victor = 38,
|
||||
kResourceType_Button = 39,
|
||||
kResourceType_Command = 40,
|
||||
kResourceType_AxisCamera = 41,
|
||||
kResourceType_PCVideoServer = 42,
|
||||
kResourceType_SmartDashboard = 43,
|
||||
kResourceType_Talon = 44,
|
||||
kResourceType_HiTechnicColorSensor = 45,
|
||||
kResourceType_HiTechnicAccel = 46,
|
||||
kResourceType_HiTechnicCompass = 47,
|
||||
kResourceType_SRF08 = 48,
|
||||
kResourceType_AnalogOutput = 49,
|
||||
kResourceType_VictorSP = 50,
|
||||
kResourceType_PWMTalonSRX = 51,
|
||||
kResourceType_CANTalonSRX = 52,
|
||||
kResourceType_ADXL362 = 53,
|
||||
kResourceType_ADXRS450 = 54,
|
||||
kResourceType_RevSPARK = 55,
|
||||
kResourceType_MindsensorsSD540 = 56,
|
||||
kResourceType_DigitalGlitchFilter = 57,
|
||||
kResourceType_ADIS16448 = 58,
|
||||
kResourceType_PDP = 59,
|
||||
kResourceType_PCM = 60,
|
||||
kResourceType_PigeonIMU = 61,
|
||||
kResourceType_NidecBrushless = 62,
|
||||
kResourceType_CANifier = 63,
|
||||
kResourceType_TalonFX = 64,
|
||||
kResourceType_CTRE_future1 = 65,
|
||||
kResourceType_CTRE_future2 = 66,
|
||||
kResourceType_CTRE_future3 = 67,
|
||||
kResourceType_CTRE_future4 = 68,
|
||||
kResourceType_CTRE_future5 = 69,
|
||||
kResourceType_CTRE_future6 = 70,
|
||||
kResourceType_LinearFilter = 71,
|
||||
kResourceType_XboxController = 72,
|
||||
kResourceType_UsbCamera = 73,
|
||||
kResourceType_NavX = 74,
|
||||
kResourceType_Pixy = 75,
|
||||
kResourceType_Pixy2 = 76,
|
||||
kResourceType_ScanseSweep = 77,
|
||||
kResourceType_Shuffleboard = 78,
|
||||
kResourceType_CAN = 79,
|
||||
kResourceType_DigilentDMC60 = 80,
|
||||
kResourceType_PWMVictorSPX = 81,
|
||||
kResourceType_RevSparkMaxPWM = 82,
|
||||
kResourceType_RevSparkMaxCAN = 83,
|
||||
kResourceType_ADIS16470 = 84,
|
||||
kResourceType_PIDController2 = 85,
|
||||
kResourceType_ProfiledPIDController = 86,
|
||||
kResourceType_Kinematics = 87,
|
||||
kResourceType_Odometry = 88,
|
||||
kResourceType_Units = 89,
|
||||
kResourceType_TrapezoidProfile = 90,
|
||||
kResourceType_DutyCycle = 91,
|
||||
kResourceType_AddressableLEDs = 92,
|
||||
kResourceType_FusionVenom = 93,
|
||||
kResourceType_CTRE_future7 = 94,
|
||||
kResourceType_CTRE_future8 = 95,
|
||||
kResourceType_CTRE_future9 = 96,
|
||||
kResourceType_CTRE_future10 = 97,
|
||||
kResourceType_CTRE_future11 = 98,
|
||||
kResourceType_CTRE_future12 = 99,
|
||||
kResourceType_CTRE_future13 = 100,
|
||||
kResourceType_CTRE_future14 = 101,
|
||||
kResourceType_ExponentialProfile = 102,
|
||||
kResourceType_PS4Controller = 103,
|
||||
kResourceType_PhotonCamera = 104,
|
||||
kResourceType_PhotonPoseEstimator = 105,
|
||||
kResourceType_PathPlannerPath = 106,
|
||||
kResourceType_PathPlannerAuto = 107,
|
||||
kResourceType_PathFindingCommand = 108,
|
||||
kResourceType_Redux_future1 = 109,
|
||||
kResourceType_Redux_future2 = 110,
|
||||
kResourceType_Redux_future3 = 111,
|
||||
kResourceType_Redux_future4 = 112,
|
||||
kResourceType_Redux_future5 = 113,
|
||||
kResourceType_RevSparkFlexCAN = 114,
|
||||
kResourceType_RevSparkFlexPWM = 115,
|
||||
|
||||
// kResourceType_MaximumID = 255,
|
||||
} tResourceType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
kLanguage_LabVIEW = 1,
|
||||
kLanguage_CPlusPlus = 2,
|
||||
kLanguage_Java = 3,
|
||||
kLanguage_Python = 4,
|
||||
kLanguage_DotNet = 5,
|
||||
kLanguage_Kotlin = 6,
|
||||
kCANPlugin_BlackJagBridge = 1,
|
||||
kCANPlugin_2CAN = 2,
|
||||
kFramework_Iterative = 1,
|
||||
kFramework_Simple = 2,
|
||||
kFramework_CommandControl = 3,
|
||||
kFramework_Timed = 4,
|
||||
kFramework_ROS = 5,
|
||||
kFramework_RobotBuilder = 6,
|
||||
kFramework_AdvantageKit = 7,
|
||||
kRobotDrive_ArcadeStandard = 1,
|
||||
kRobotDrive_ArcadeButtonSpin = 2,
|
||||
kRobotDrive_ArcadeRatioCurve = 3,
|
||||
kRobotDrive_Tank = 4,
|
||||
kRobotDrive_MecanumPolar = 5,
|
||||
kRobotDrive_MecanumCartesian = 6,
|
||||
kRobotDrive2_DifferentialArcade = 7,
|
||||
kRobotDrive2_DifferentialTank = 8,
|
||||
kRobotDrive2_DifferentialCurvature = 9,
|
||||
kRobotDrive2_MecanumCartesian = 10,
|
||||
kRobotDrive2_MecanumPolar = 11,
|
||||
kRobotDrive2_KilloughCartesian = 12,
|
||||
kRobotDrive2_KilloughPolar = 13,
|
||||
kDriverStationCIO_Analog = 1,
|
||||
kDriverStationCIO_DigitalIn = 2,
|
||||
kDriverStationCIO_DigitalOut = 3,
|
||||
kDriverStationEIO_Acceleration = 1,
|
||||
kDriverStationEIO_AnalogIn = 2,
|
||||
kDriverStationEIO_AnalogOut = 3,
|
||||
kDriverStationEIO_Button = 4,
|
||||
kDriverStationEIO_LED = 5,
|
||||
kDriverStationEIO_DigitalIn = 6,
|
||||
kDriverStationEIO_DigitalOut = 7,
|
||||
kDriverStationEIO_FixedDigitalOut = 8,
|
||||
kDriverStationEIO_PWM = 9,
|
||||
kDriverStationEIO_Encoder = 10,
|
||||
kDriverStationEIO_TouchSlider = 11,
|
||||
kADXL345_SPI = 1,
|
||||
kADXL345_I2C = 2,
|
||||
kCommand_Scheduler = 1,
|
||||
kCommand2_Scheduler = 2,
|
||||
kSmartDashboard_Instance = 1,
|
||||
kSmartDashboard_LiveWindow = 2,
|
||||
kKinematics_DifferentialDrive = 1,
|
||||
kKinematics_MecanumDrive = 2,
|
||||
kKinematics_SwerveDrive = 3,
|
||||
kOdometry_DifferentialDrive = 1,
|
||||
kOdometry_MecanumDrive = 2,
|
||||
kOdometry_SwerveDrive = 3,
|
||||
} tInstances;
|
||||
|
||||
/**
|
||||
* Report the usage of a resource of interest.
|
||||
*
|
||||
* @param resource one of the values in the tResourceType above (max value 51).
|
||||
* @param instanceNumber an index that identifies the resource instance.
|
||||
* @param context an optional additional context number for some cases (such as module number). Set to 0 to omit.
|
||||
* @param feature a string to be included describing features in use on a specific resource. Setting the same resource more than once allows you to change the feature string.
|
||||
*/
|
||||
uint32_t EXPORT_FUNC report(tResourceType resource, uint8_t instanceNumber, uint8_t context = 0, const char* feature = NULL);
|
||||
} // namespace nUsageReporting
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
uint32_t EXPORT_FUNC FRC_NetworkCommunication_nUsageReporting_report(uint8_t resource, uint8_t instanceNumber, uint8_t context, const char* feature);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // __UsageReporting_h__
|
||||
Reference in New Issue
Block a user