Squashed 'third_party/allwpilib_2017/' content from commit 35ac87d

Change-Id: I7bb6f5556c30d3f5a092e68de0be9c710c60c9f4
git-subtree-dir: third_party/allwpilib_2017
git-subtree-split: 35ac87d6ff8b7f061c4f18c9ea316e5dccd4888a
diff --git a/hal/include/ctre/ctre_frames.h b/hal/include/ctre/ctre_frames.h
new file mode 100644
index 0000000..f131538
--- /dev/null
+++ b/hal/include/ctre/ctre_frames.h
@@ -0,0 +1,243 @@
+/**
+ * @file ctre_frames.h
+ * CAN Encoder/Decoder Structures for CTRE devices.
+ */
+#ifndef CTRE_FRAMES_H
+#define CTRE_FRAMES_H
+
+/** control */
+typedef struct _TALON_Control_1_General_10ms_t {
+	unsigned TokenH:8;
+	unsigned TokenL:8;
+	unsigned DemandH:8;
+	unsigned DemandM:8;
+	unsigned DemandL:8;
+	unsigned ProfileSlotSelect:1;
+	unsigned FeedbackDeviceSelect:4;
+	unsigned OverrideLimitSwitchEn:3;
+	unsigned RevFeedbackSensor:1;
+	unsigned RevMotDuringCloseLoopEn:1;
+	unsigned OverrideBrakeType:2;
+	unsigned ModeSelect:4;
+	unsigned RampThrottle:8;
+} TALON_Control_1_General_10ms_t ;
+
+/* TALON_Control_2_Rates_OneShot_t removed since it has been deprecated */
+
+typedef struct _TALON_Control_3_ClearFlags_OneShot_t {
+	unsigned ZeroFeedbackSensor:1;
+	unsigned ClearStickyFaults:1;
+} TALON_Control_3_ClearFlags_OneShot_t ;
+
+typedef struct _TALON_Control_5_General_10ms_t {
+	unsigned ThrottleBump_h3:3;
+	unsigned ReservedZero:5;
+	unsigned ThrottleBump_l8:8;
+	unsigned DemandH:8;
+	unsigned DemandM:8;
+	unsigned DemandL:8;
+	unsigned ProfileSlotSelect:1;
+	unsigned FeedbackDeviceSelect:4;
+	unsigned OverrideLimitSwitchEn:3;
+	unsigned RevFeedbackSensor:1;
+	unsigned RevMotDuringCloseLoopEn:1;
+	unsigned OverrideBrakeType:2;
+	unsigned ModeSelect:4;
+	unsigned RampThrottle:8;
+} TALON_Control_5_General_10ms_t ;
+
+typedef struct _TALON_Control_6_MotProfAddTrajPoint_t {
+	unsigned huffCode:2; //!< Compression coding
+	unsigned NextPt_VelOnly:1;
+	unsigned NextPt_IsLast:1;
+	unsigned reserved0:2;
+	unsigned NextPt_ZeroPosition:1;
+	unsigned NextPt_ProfileSlotSelect:1;
+	unsigned Idx:4;
+	unsigned reserved1:4;
+	unsigned restOfFrame0:8;
+	unsigned restOfFrame1:8;
+	unsigned restOfFrame2:8;
+	unsigned restOfFrame3:8;
+	unsigned restOfFrame4:8;
+	unsigned restOfFrame5:8;
+} TALON_Control_6_MotProfAddTrajPoint_t;
+
+typedef struct _TALON_Control_6_MotProfAddTrajPoint_huff0_t {
+	unsigned huffCode_expect_0:2; //!< Compression coding
+	unsigned NextPt_VelOnly:1;
+	unsigned NextPt_IsLast:1;
+	unsigned reserved0:2;
+	unsigned NextPt_ZeroPosition:1;
+	unsigned NextPt_ProfileSlotSelect:1;
+	unsigned Idx:4;
+	unsigned reserved1:4;
+	unsigned NextPt_DurationMs:8;
+	unsigned NextPt_VelocityH:8;
+	unsigned NextPt_VelocityL:8;
+	unsigned NextPt_PositionH:8;
+	unsigned NextPt_PositionM:8;
+	unsigned NextPt_PositionL:8;
+} TALON_Control_6_MotProfAddTrajPoint_huff0_t;
+
+typedef struct _TALON_Control_6_MotProfAddTrajPoint_huff1_t {
+	unsigned huffCode_expect_1:2; //!< Compression coding
+	unsigned NextPt_VelOnly:1;
+	unsigned NextPt_IsLast:1;
+	unsigned reserved0:2;
+	unsigned NextPt_ZeroPosition:1;
+	unsigned NextPt_ProfileSlotSelect:1;
+	unsigned Idx:4;
+	unsigned reserved1:4;
+	unsigned NextPt_DurationMs:8;
+	unsigned NextPt_SameVelocityH:8;
+	unsigned NextPt_SameVelocityL:8;
+	unsigned NextPt_DeltaPositionH:8;
+	unsigned NextPt_DeltaPositionL:8;
+	unsigned NextPt_Count:8;
+} TALON_Control_6_MotProfAddTrajPoint_huff1_t;
+
+/** status */
+typedef struct _TALON_Status_1_General_10ms_t {
+	unsigned CloseLoopErrH:8;
+	unsigned CloseLoopErrM:8;
+	unsigned CloseLoopErrL:8;
+	unsigned AppliedThrottle_h3:3;
+	unsigned Fault_RevSoftLim:1;
+	unsigned Fault_ForSoftLim:1;
+	unsigned TokLocked:1;
+	unsigned LimitSwitchClosedRev:1;
+	unsigned LimitSwitchClosedFor:1;
+	unsigned AppliedThrottle_l8:8;
+	unsigned ModeSelect_h1:1;
+	unsigned FeedbackDeviceSelect:4;
+	unsigned LimitSwitchEn:3;
+	unsigned Fault_HardwareFailure:1;
+	unsigned Fault_RevLim:1;
+	unsigned Fault_ForLim:1;
+	unsigned Fault_UnderVoltage:1;
+	unsigned Fault_OverTemp:1;
+	unsigned ModeSelect_b3:3;
+	unsigned TokenSeed:8;
+} TALON_Status_1_General_10ms_t ;
+typedef struct _TALON_Status_2_Feedback_20ms_t {
+	unsigned SensorPositionH:8;
+	unsigned SensorPositionM:8;
+	unsigned SensorPositionL:8;
+	unsigned SensorVelocityH:8;
+	unsigned SensorVelocityL:8;
+	unsigned Current_h8:8;
+	unsigned StckyFault_RevSoftLim:1;
+	unsigned StckyFault_ForSoftLim:1;
+	unsigned StckyFault_RevLim:1;
+	unsigned StckyFault_ForLim:1;
+	unsigned StckyFault_UnderVoltage:1;
+	unsigned StckyFault_OverTemp:1;
+	unsigned Current_l2:2;
+	unsigned reserved:3;
+	unsigned Cmd5Allowed:1;
+	unsigned VelDiv4:1;
+	unsigned PosDiv8:1;
+	unsigned ProfileSlotSelect:1;
+	unsigned BrakeIsEnabled:1;
+} TALON_Status_2_Feedback_20ms_t ;
+typedef struct _TALON_Status_3_Enc_100ms_t {
+	unsigned EncPositionH:8;
+	unsigned EncPositionM:8;
+	unsigned EncPositionL:8;
+	unsigned EncVelH:8;
+	unsigned EncVelL:8;
+	unsigned EncIndexRiseEventsH:8;
+	unsigned EncIndexRiseEventsL:8;
+	unsigned reserved:3;
+	unsigned VelDiv4:1;
+	unsigned PosDiv8:1;
+	unsigned QuadIdxpin:1;
+	unsigned QuadBpin:1;
+	unsigned QuadApin:1;
+} TALON_Status_3_Enc_100ms_t ;
+typedef struct _TALON_Status_4_AinTempVbat_100ms_t {
+	unsigned AnalogInWithOvH:8;
+	unsigned AnalogInWithOvM:8;
+	unsigned AnalogInWithOvL:8;
+	unsigned AnalogInVelH:8;
+	unsigned AnalogInVelL:8;
+	unsigned Temp:8;
+	unsigned BatteryV:8;
+	unsigned reserved:6;
+	unsigned VelDiv4:1;
+	unsigned PosDiv8:1;
+} TALON_Status_4_AinTempVbat_100ms_t ;
+typedef struct _TALON_Status_5_Startup_OneShot_t {
+	unsigned ResetCountH:8;
+	unsigned ResetCountL:8;
+	unsigned ResetFlagsH:8;
+	unsigned ResetFlagsL:8;
+	unsigned FirmVersH:8;
+	unsigned FirmVersL:8;
+} TALON_Status_5_Startup_OneShot_t ;
+typedef struct _TALON_Status_6_Eol_t {
+	unsigned currentAdcUncal_h2:2;
+	unsigned reserved1:5;
+	unsigned SpiCsPin_GadgeteerPin6:1;
+	unsigned currentAdcUncal_l8:8;
+	unsigned tempAdcUncal_h2:2;
+	unsigned reserved2:6;
+	unsigned tempAdcUncal_l8:8;
+	unsigned vbatAdcUncal_h2:2;
+	unsigned reserved3:6;
+	unsigned vbatAdcUncal_l8:8;
+	unsigned analogAdcUncal_h2:2;
+	unsigned reserved4:6;
+	unsigned analogAdcUncal_l8:8;
+} TALON_Status_6_Eol_t ;
+typedef struct _TALON_Status_7_Debug_200ms_t {
+	unsigned TokenizationFails_h8:8;
+	unsigned TokenizationFails_l8:8;
+	unsigned LastFailedToken_h8:8;
+	unsigned LastFailedToken_l8:8;
+	unsigned TokenizationSucceses_h8:8;
+	unsigned TokenizationSucceses_l8:8;
+} TALON_Status_7_Debug_200ms_t ;
+typedef struct _TALON_Status_8_PulseWid_100ms_t {
+	unsigned PulseWidPositionH:8;
+	unsigned PulseWidPositionM:8;
+	unsigned PulseWidPositionL:8;
+	unsigned reserved:6;
+	unsigned VelDiv4:1;
+	unsigned PosDiv8:1;
+	unsigned PeriodUsM8:8;
+	unsigned PeriodUsL8:8;
+	unsigned PulseWidVelH:8;
+	unsigned PulseWidVelL:8;
+} TALON_Status_8_PulseWid_100ms_t ;
+typedef struct _TALON_Status_9_MotProfBuffer_100ms_t {
+	unsigned ActTraj_IsValid:1; //!< '1' if other ActTraj_* signals are valid.  '0' if there is no active trajectory pt.
+	unsigned ActTraj_ProfileSlotSelect:1;
+	unsigned ActTraj_VelOnly:1;
+	unsigned ActTraj_IsLast:1;
+	unsigned OutputType:2;
+	unsigned HasUnderrun:1;
+	unsigned IsUnderrun:1;
+	unsigned NextID:4;
+	unsigned reserved1:3;
+	unsigned BufferIsFull:1;
+	unsigned Count:8;
+	unsigned ActTraj_VelocityH:8;
+	unsigned ActTraj_VelocityL:8;
+	unsigned ActTraj_PositionH:8;
+	unsigned ActTraj_PositionM:8;
+	unsigned ActTraj_PositionL:8;
+} TALON_Status_9_MotProfBuffer_100ms_t ;
+typedef struct _TALON_Param_Request_t {
+	unsigned ParamEnum:8;
+} TALON_Param_Request_t ;
+typedef struct _TALON_Param_Response_t {
+	unsigned ParamEnum:8;
+	unsigned ParamValueL:8;
+	unsigned ParamValueML:8;
+	unsigned ParamValueMH:8;
+	unsigned ParamValueH:8;
+} TALON_Param_Response_t ;
+
+#endif /* CTRE_FRAMES_H */