WPILibC++  2018.4.1-20180729124724-1140-gcbb62fb
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
UsageReporting.h
1 #ifndef __UsageReporting_h__
2 #define __UsageReporting_h__
3 
4 #ifdef _WIN32
5 #include <stdint.h>
6 #define EXPORT_FUNC __declspec(dllexport) __cdecl
7 #elif defined (__vxworks)
8 #include <vxWorks.h>
9 #define EXPORT_FUNC
10 #else
11 #include <stdint.h>
12 #include <stdlib.h>
13 #define EXPORT_FUNC
14 #endif
15 
16 #define kUsageReporting_version 1
17 
18 namespace nUsageReporting
19 {
20  typedef enum
21  {
22  kResourceType_Controller,
23  kResourceType_Module,
24  kResourceType_Language,
25  kResourceType_CANPlugin,
26  kResourceType_Accelerometer,
27  kResourceType_ADXL345,
28  kResourceType_AnalogChannel,
29  kResourceType_AnalogTrigger,
30  kResourceType_AnalogTriggerOutput,
31  kResourceType_CANJaguar,
32  kResourceType_Compressor, // 10
33  kResourceType_Counter,
34  kResourceType_Dashboard,
35  kResourceType_DigitalInput,
36  kResourceType_DigitalOutput,
37  kResourceType_DriverStationCIO,
38  kResourceType_DriverStationEIO,
39  kResourceType_DriverStationLCD,
40  kResourceType_Encoder,
41  kResourceType_GearTooth,
42  kResourceType_Gyro, // 20
43  kResourceType_I2C,
44  kResourceType_Framework,
45  kResourceType_Jaguar,
46  kResourceType_Joystick,
47  kResourceType_Kinect,
48  kResourceType_KinectStick,
49  kResourceType_PIDController,
50  kResourceType_Preferences,
51  kResourceType_PWM,
52  kResourceType_Relay, // 30
53  kResourceType_RobotDrive,
54  kResourceType_SerialPort,
55  kResourceType_Servo,
56  kResourceType_Solenoid,
57  kResourceType_SPI,
58  kResourceType_Task,
59  kResourceType_Ultrasonic,
60  kResourceType_Victor,
61  kResourceType_Button,
62  kResourceType_Command, // 40
63  kResourceType_AxisCamera,
64  kResourceType_PCVideoServer,
65  kResourceType_SmartDashboard,
66  kResourceType_Talon,
67  kResourceType_HiTechnicColorSensor,
68  kResourceType_HiTechnicAccel,
69  kResourceType_HiTechnicCompass,
70  kResourceType_SRF08,
71  kResourceType_AnalogOutput,
72  kResourceType_VictorSP, // 50
73  kResourceType_PWMTalonSRX,
74  kResourceType_CANTalonSRX,
75  kResourceType_ADXL362,
76  kResourceType_ADXRS450,
77  kResourceType_RevSPARK,
78  kResourceType_MindsensorsSD540,
79  kResourceType_DigitalGlitchFilter,
80  kResourceType_ADIS16448,
81  kResourceType_PDP,
82  kResourceType_PCM, // 60
83  kResourceType_PigeonIMU,
84  kResourceType_NidecBrushless,
85  kResourceType_CANifier,
86  kResourceType_CTRE_future0,
87  kResourceType_CTRE_future1,
88  kResourceType_CTRE_future2,
89  kResourceType_CTRE_future3,
90  kResourceType_CTRE_future4,
91  kResourceType_CTRE_future5,
92  kResourceType_CTRE_future6, // 70
93  kResourceType_LinearFilter,
94  kResourceType_XboxController,
95  kResourceType_UsbCamera,
96  kResourceType_NavX,
97  kResourceType_Pixy,
98  kResourceType_Pixy2,
99  kResourceType_ScanseSweep,
100  kResourceType_Shuffleboard,
101  kResourceType_CAN,
102  kResourceType_DigilentDMC60, // 80
103  kResourceType_PWMVictorSPX,
104  } tResourceType;
105 
106  typedef enum
107  {
108  kLanguage_LabVIEW = 1,
109  kLanguage_CPlusPlus = 2,
110  kLanguage_Java = 3,
111  kLanguage_Python = 4,
112  kLanguage_DotNet = 5,
113 
114  kCANPlugin_BlackJagBridge = 1,
115  kCANPlugin_2CAN = 2,
116 
117  kFramework_Iterative = 1,
118  kFramework_Simple = 2,
119  kFramework_CommandControl = 3,
120  kFramework_Timed = 4,
121  kFramework_ROS = 5,
122  kFramework_RobotBuilder = 6,
123 
124  kRobotDrive_ArcadeStandard = 1,
125  kRobotDrive_ArcadeButtonSpin = 2,
126  kRobotDrive_ArcadeRatioCurve = 3,
127  kRobotDrive_Tank = 4,
128  kRobotDrive_MecanumPolar = 5,
129  kRobotDrive_MecanumCartesian = 6,
130  kRobotDrive2_DifferentialArcade = 7,
131  kRobotDrive2_DifferentialTank = 8,
132  kRobotDrive2_DifferentialCurvature = 9,
133  kRobotDrive2_MecanumCartesian = 10,
134  kRobotDrive2_MecanumPolar = 11,
135  kRobotDrive2_KilloughCartesian = 12,
136  kRobotDrive2_KilloughPolar = 13,
137 
138  kDriverStationCIO_Analog = 1,
139  kDriverStationCIO_DigitalIn = 2,
140  kDriverStationCIO_DigitalOut = 3,
141 
142  kDriverStationEIO_Acceleration = 1,
143  kDriverStationEIO_AnalogIn = 2,
144  kDriverStationEIO_AnalogOut = 3,
145  kDriverStationEIO_Button = 4,
146  kDriverStationEIO_LED = 5,
147  kDriverStationEIO_DigitalIn = 6,
148  kDriverStationEIO_DigitalOut = 7,
149  kDriverStationEIO_FixedDigitalOut = 8,
150  kDriverStationEIO_PWM = 9,
151  kDriverStationEIO_Encoder = 10,
152  kDriverStationEIO_TouchSlider = 11,
153 
154  kADXL345_SPI = 1,
155  kADXL345_I2C = 2,
156 
157  kCommand_Scheduler = 1,
158 
159  kSmartDashboard_Instance = 1,
160  } tInstances;
161 
170  uint32_t EXPORT_FUNC report(tResourceType resource, uint8_t instanceNumber, uint8_t context = 0, const char *feature = NULL);
171 }
172 
173 #ifdef __cplusplus
174 extern "C" {
175 #endif
176 
177  uint32_t EXPORT_FUNC FRC_NetworkCommunication_nUsageReporting_report(uint8_t resource, uint8_t instanceNumber, uint8_t context, const char *feature);
178 
179 #ifdef __cplusplus
180 }
181 #endif
182 
183 #endif // __UsageReporting_h__
Definition: UsageReporting.h:18