11 #include "Accelerometer.hpp"
13 #include "Compressor.hpp"
14 #include "Digital.hpp"
15 #include "Solenoid.hpp"
16 #include "Notifier.hpp"
17 #include "Interrupts.hpp"
21 #include "SerialPort.hpp"
23 #include "Utilities.hpp"
24 #include "Semaphore.hpp"
27 #define HAL_IO_CONFIG_DATA_SIZE 32
28 #define HAL_SYS_STATUS_DATA_SIZE 44
29 #define HAL_USER_STATUS_DATA_SIZE (984 - HAL_IO_CONFIG_DATA_SIZE - HAL_SYS_STATUS_DATA_SIZE)
31 #define HALFRC_NetworkCommunication_DynamicType_DSEnhancedIO_Input 17
32 #define HALFRC_NetworkCommunication_DynamicType_DSEnhancedIO_Output 18
33 #define HALFRC_NetworkCommunication_DynamicType_Kinect_Header 19
34 #define HALFRC_NetworkCommunication_DynamicType_Kinect_Extra1 20
35 #define HALFRC_NetworkCommunication_DynamicType_Kinect_Vertices1 21
36 #define HALFRC_NetworkCommunication_DynamicType_Kinect_Extra2 22
37 #define HALFRC_NetworkCommunication_DynamicType_Kinect_Vertices2 23
38 #define HALFRC_NetworkCommunication_DynamicType_Kinect_Joystick 24
39 #define HALFRC_NetworkCommunication_DynamicType_Kinect_Custom 25
41 namespace HALUsageReporting
45 kResourceType_Controller,
47 kResourceType_Language,
48 kResourceType_CANPlugin,
49 kResourceType_Accelerometer,
50 kResourceType_ADXL345,
51 kResourceType_AnalogChannel,
52 kResourceType_AnalogTrigger,
53 kResourceType_AnalogTriggerOutput,
54 kResourceType_CANJaguar,
55 kResourceType_Compressor,
56 kResourceType_Counter,
57 kResourceType_Dashboard,
58 kResourceType_DigitalInput,
59 kResourceType_DigitalOutput,
60 kResourceType_DriverStationCIO,
61 kResourceType_DriverStationEIO,
62 kResourceType_DriverStationLCD,
63 kResourceType_Encoder,
64 kResourceType_GearTooth,
67 kResourceType_Framework,
69 kResourceType_Joystick,
71 kResourceType_KinectStick,
72 kResourceType_PIDController,
73 kResourceType_Preferences,
76 kResourceType_RobotDrive,
77 kResourceType_SerialPort,
79 kResourceType_Solenoid,
82 kResourceType_Ultrasonic,
85 kResourceType_Command,
86 kResourceType_AxisCamera,
87 kResourceType_PCVideoServer,
88 kResourceType_SmartDashboard,
90 kResourceType_HiTechnicColorSensor,
91 kResourceType_HiTechnicAccel,
92 kResourceType_HiTechnicCompass,
94 kResourceType_AnalogOutput,
95 kResourceType_VictorSP,
96 kResourceType_TalonSRX,
97 kResourceType_CANTalonSRX,
98 kResourceType_ADXL362,
99 kResourceType_ADXRS450,
100 kResourceType_RevSPARK,
101 kResourceType_MindsensorsSD540,
102 kResourceType_DigitalFilter,
107 kLanguage_LabVIEW = 1,
108 kLanguage_CPlusPlus = 2,
110 kLanguage_Python = 4,
112 kCANPlugin_BlackJagBridge = 1,
115 kFramework_Iterative = 1,
116 kFramework_Sample = 2,
117 kFramework_CommandControl = 3,
119 kRobotDrive_ArcadeStandard = 1,
120 kRobotDrive_ArcadeButtonSpin = 2,
121 kRobotDrive_ArcadeRatioCurve = 3,
122 kRobotDrive_Tank = 4,
123 kRobotDrive_MecanumPolar = 5,
124 kRobotDrive_MecanumCartesian = 6,
126 kDriverStationCIO_Analog = 1,
127 kDriverStationCIO_DigitalIn = 2,
128 kDriverStationCIO_DigitalOut = 3,
130 kDriverStationEIO_Acceleration = 1,
131 kDriverStationEIO_AnalogIn = 2,
132 kDriverStationEIO_AnalogOut = 3,
133 kDriverStationEIO_Button = 4,
134 kDriverStationEIO_LED = 5,
135 kDriverStationEIO_DigitalIn = 6,
136 kDriverStationEIO_DigitalOut = 7,
137 kDriverStationEIO_FixedDigitalOut = 8,
138 kDriverStationEIO_PWM = 9,
139 kDriverStationEIO_Encoder = 10,
140 kDriverStationEIO_TouchSlider = 11,
145 kCommand_Scheduler = 1,
147 kSmartDashboard_Instance = 1,
152 uint32_t enabled : 1;
153 uint32_t autonomous : 1;
156 uint32_t fmsAttached:1;
157 uint32_t dsAttached:1;
158 uint32_t control_reserved : 26;
161 enum HALAllianceStationID {
162 kHALAllianceStationID_red1,
163 kHALAllianceStationID_red2,
164 kHALAllianceStationID_red3,
165 kHALAllianceStationID_blue1,
166 kHALAllianceStationID_blue2,
167 kHALAllianceStationID_blue3,
173 static const size_t kMaxJoystickAxes = 12;
174 static const size_t kMaxJoystickPOVs = 12;
178 int16_t axes[kMaxJoystickAxes];
183 int16_t povs[kMaxJoystickPOVs];
196 uint8_t axisTypes[kMaxJoystickAxes];
201 inline float intToFloat(
int value)
206 inline int floatToInt(
float value)
213 extern const uint32_t dio_kNumSystems;
214 extern const uint32_t solenoid_kNumDO7_0Elements;
215 extern const uint32_t interrupt_kNumSystems;
216 extern const uint32_t kSystemClockTicksPerMicrosecond;
218 void* getPort(uint8_t pin);
219 void* getPortWithModule(uint8_t module, uint8_t pin);
220 void freePort(
void* port);
221 const char* getHALErrorMessage(int32_t code);
223 uint16_t getFPGAVersion(int32_t *status);
224 uint32_t getFPGARevision(int32_t *status);
225 uint64_t getFPGATime(int32_t *status);
227 bool getFPGAButton(int32_t *status);
229 int HALSetErrorData(
const char *errors,
int errorsLength,
int wait_ms);
230 int HALSendError(
int isError, int32_t errorCode,
int isLVCode,
231 const char *details,
const char *location,
const char *callStack,
235 int HALGetAllianceStation(
enum HALAllianceStationID *allianceStation);
240 int HALGetJoystickIsXbox(uint8_t joystickNum);
241 int HALGetJoystickType(uint8_t joystickNum);
242 char* HALGetJoystickName(uint8_t joystickNum);
243 int HALGetJoystickAxisType(uint8_t joystickNum, uint8_t axis);
244 int HALSetJoystickOutputs(uint8_t joystickNum, uint32_t outputs, uint16_t leftRumble, uint16_t rightRumble);
245 int HALGetMatchTime(
float *matchTime);
249 bool HALGetSystemActive(int32_t *status);
250 bool HALGetBrownedOut(int32_t *status);
252 int HALInitialize(
int mode = 0);
253 void HALNetworkCommunicationObserveUserProgramStarting();
254 void HALNetworkCommunicationObserveUserProgramDisabled();
255 void HALNetworkCommunicationObserveUserProgramAutonomous();
256 void HALNetworkCommunicationObserveUserProgramTeleop();
257 void HALNetworkCommunicationObserveUserProgramTest();
259 uint32_t HALReport(uint8_t resource, uint8_t instanceNumber, uint8_t context = 0,
260 const char *feature = NULL);
267 void NumericArrayResize();
268 void RTSetCleanupProc();
269 void EDVR_CreateReference();
Definition: priority_condition_variable.h:23