28 static constexpr int TalonFX_System_State = 614;
29 static constexpr int Startup_ResetFlags = 635;
30 static constexpr int Version_Major = 733;
31 static constexpr int Version_Minor = 734;
32 static constexpr int Version_Bugfix = 735;
33 static constexpr int Version_Build = 736;
34 static constexpr int Version_Full = 737;
35 static constexpr int Licensing_IsProLicensed = 750;
36 static constexpr int Licensing_IsSeasonPassed = 753;
37 static constexpr int CustomParam0 = 822;
38 static constexpr int CustomParam1 = 823;
39 static constexpr int CANcoder_SensorDirection = 827;
40 static constexpr int FrcLock = 829;
41 static constexpr int RobotEnabled = 830;
42 static constexpr int LED1_OnColor = 832;
43 static constexpr int LED1_OffColor = 833;
44 static constexpr int LED2_OnColor = 834;
45 static constexpr int LED2_OffColor = 835;
46 static constexpr int AllFaults = 841;
47 static constexpr int AllStickyFaults = 842;
48 static constexpr int Pigeon2UseCompass = 916;
49 static constexpr int Pigeon2DisableTemperatureCompensation = 951;
50 static constexpr int Pigeon2DisableNoMotionCalibration = 953;
51 static constexpr int Pigeon2MountPoseYaw = 958;
52 static constexpr int Pigeon2MountPosePitch = 959;
53 static constexpr int Pigeon2MountPoseRoll = 960;
54 static constexpr int Pigeon2GyroScalarX = 964;
55 static constexpr int Pigeon2GyroScalarY = 965;
56 static constexpr int Pigeon2GyroScalarZ = 966;
57 static constexpr int Pigeon2Yaw = 973;
58 static constexpr int Pigeon2Pitch = 974;
59 static constexpr int Pigeon2Roll = 975;
60 static constexpr int Pigeon2QuatW = 976;
61 static constexpr int Pigeon2QuatX = 977;
62 static constexpr int Pigeon2QuatY = 978;
63 static constexpr int Pigeon2QuatZ = 979;
64 static constexpr int Pigeon2GravityVectorX = 980;
65 static constexpr int Pigeon2GravityVectorY = 981;
66 static constexpr int Pigeon2GravityVectorZ = 982;
67 static constexpr int Pigeon2Temperature = 983;
68 static constexpr int Pigeon2NoMotionCalEnabled = 984;
69 static constexpr int Pigeon2NoMotionCount = 985;
70 static constexpr int Pigeon2TempCompDisabled = 986;
71 static constexpr int Pigeon2UpTime = 987;
72 static constexpr int Pigeon2AccumGyroX = 988;
73 static constexpr int Pigeon2AccumGyroY = 989;
74 static constexpr int Pigeon2AccumGyroZ = 990;
75 static constexpr int Pigeon2AngularVelocityXWorld = 991;
76 static constexpr int Pigeon2AngularVelocityYWorld = 992;
77 static constexpr int Pigeon2AngularVelocityZWorld = 993;
78 static constexpr int Pigeon2AccelerationX = 994;
79 static constexpr int Pigeon2AccelerationY = 995;
80 static constexpr int Pigeon2AccelerationZ = 996;
81 static constexpr int Pigeon2_SupplyVoltage = 997;
82 static constexpr int Pigeon2AngularVelocityX = 1000;
83 static constexpr int Pigeon2AngularVelocityY = 1001;
84 static constexpr int Pigeon2AngularVelocityZ = 1002;
85 static constexpr int Pigeon2MagneticFieldX = 1005;
86 static constexpr int Pigeon2MagneticFieldY = 1006;
87 static constexpr int Pigeon2MagneticFieldZ = 1007;
88 static constexpr int Pigeon2RawMagneticFieldX = 1008;
89 static constexpr int Pigeon2RawMagneticFieldY = 1009;
90 static constexpr int Pigeon2RawMagneticFieldZ = 1010;
91 static constexpr int CANCoder_MagnetOffset = 1011;
92 static constexpr int TalonFX_SetSensorPosition = 1016;
93 static constexpr int CANcoder_SetSensorPosition = 1018;
94 static constexpr int Pigeon2_SetYaw = 1020;
95 static constexpr int DeviceEnabled = 1049;
96 static constexpr int PRO_MotorOutput_MotorVoltage = 2028;
97 static constexpr int ForwardLimit = 2029;
98 static constexpr int ReverseLimit = 2030;
99 static constexpr int PRO_MotorOutput_RotorPolarity = 2031;
100 static constexpr int PRO_MotorOutput_DutyCycle = 2032;
101 static constexpr int PRO_MotorOutput_TorqueCurrent = 2034;
102 static constexpr int PRO_SupplyAndTemp_StatorCurrent = 2035;
103 static constexpr int PRO_SupplyAndTemp_SupplyCurrent = 2036;
104 static constexpr int PRO_SupplyAndTemp_SupplyVoltage = 2037;
105 static constexpr int PRO_SupplyAndTemp_DeviceTemp = 2038;
106 static constexpr int PRO_SupplyAndTemp_ProcessorTemp = 2039;
107 static constexpr int PRO_RotorPosAndVel_Velocity = 2041;
108 static constexpr int PRO_RotorPosAndVel_Position = 2042;
109 static constexpr int PRO_PosAndVel_Velocity = 2045;
110 static constexpr int PRO_PosAndVel_Position = 2046;
111 static constexpr int PRO_PosAndVel_Acceleration = 2047;
112 static constexpr int PRO_PIDStateEnables_IntegratedAccum_DC = 2049;
113 static constexpr int PRO_PIDStateEnables_IntegratedAccum_V = 2050;
114 static constexpr int PRO_PIDStateEnables_IntegratedAccum_A = 2051;
115 static constexpr int PRO_PIDStateEnables_FeedForward_DC = 2052;
116 static constexpr int PRO_PIDStateEnables_FeedForward_V = 2053;
117 static constexpr int PRO_PIDStateEnables_FeedForward_A = 2054;
118 static constexpr int TalonFX_ControlMode = 2055;
119 static constexpr int PRO_PIDStateEnables_IsMotionMagicRunning = 2061;
120 static constexpr int PRO_PIDStateEnables_DeviceEnable = 2063;
121 static constexpr int PRO_PIDRefPIDErr_PIDRef_Position = 2065;
122 static constexpr int PRO_PIDRefPIDErr_PIDRef_Velocity = 2066;
123 static constexpr int PRO_PIDRefPIDErr_PIDErr_Position = 2067;
124 static constexpr int PRO_PIDRefPIDErr_PIDErr_Velocity = 2068;
125 static constexpr int PRO_PIDRefPIDErr_ClosedLoopMode = 2069;
126 static constexpr int PRO_PIDOutput_PIDOutputMode = 2071;
127 static constexpr int PRO_PIDOutput_ProportionalOutput_DC = 2072;
128 static constexpr int PRO_PIDOutput_ProportionalOutput_V = 2073;
129 static constexpr int PRO_PIDOutput_ProportionalOutput_A = 2074;
130 static constexpr int PRO_PIDOutput_DerivativeOutput_DC = 2075;
131 static constexpr int PRO_PIDOutput_DerivativeOutput_V = 2076;
132 static constexpr int PRO_PIDOutput_DerivativeOutput_A = 2077;
133 static constexpr int PRO_PIDOutput_Output_DC = 2078;
134 static constexpr int PRO_PIDOutput_Output_V = 2079;
135 static constexpr int PRO_PIDOutput_Output_A = 2080;
136 static constexpr int PRO_PIDOutput_Slot = 2081;
137 static constexpr int PRO_PIDRefSlopeECUTime_ReferenceSlope_Position = 2082;
138 static constexpr int PRO_PIDRefSlopeECUTime_ReferenceSlope_Velocity = 2083;
139 static constexpr int PRO_PIDRefSlopeECUTime_ClosedLoopMode = 2084;
140 static constexpr int TalonFX_MotorOutputStatus = 2085;
141 static constexpr int PRO_MotorOutput_PIDState_Diff_DutyCycle = 2088;
142 static constexpr int PRO_MotorOutput_PIDState_Diff_TorqueCurrent = 2089;
143 static constexpr int TalonFX_DifferentialControlMode = 2092;
144 static constexpr int PRO_MotorOutput_PIDState_Diff_IntegratedAccum_DC = 2093;
145 static constexpr int PRO_MotorOutput_PIDState_Diff_IntegratedAccum_V = 2094;
146 static constexpr int PRO_MotorOutput_PIDState_Diff_IntegratedAccum_A = 2095;
147 static constexpr int PRO_MotorOutput_PIDState_Diff_FeedForward_DC = 2096;
148 static constexpr int PRO_MotorOutput_PIDState_Diff_FeedForward_V = 2097;
149 static constexpr int PRO_MotorOutput_PIDState_Diff_FeedForward_A = 2098;
150 static constexpr int PRO_AvgPosAndVel_Velocity = 2100;
151 static constexpr int PRO_AvgPosAndVel_Position = 2101;
152 static constexpr int PRO_DiffPosAndVel_Velocity = 2104;
153 static constexpr int PRO_DiffPosAndVel_Position = 2105;
154 static constexpr int PRO_DiffPIDRefPIDErr_PIDRef_Position = 2107;
155 static constexpr int PRO_DiffPIDRefPIDErr_PIDRef_Velocity = 2108;
156 static constexpr int PRO_DiffPIDRefPIDErr_PIDErr_Position = 2109;
157 static constexpr int PRO_DiffPIDRefPIDErr_PIDErr_Velocity = 2110;
158 static constexpr int PRO_DiffPIDRefPIDErr_ClosedLoopMode = 2111;
159 static constexpr int PRO_DiffPIDOutput_PIDOutputMode = 2113;
160 static constexpr int PRO_DiffPIDOutput_ProportionalOutput_DC = 2114;
161 static constexpr int PRO_DiffPIDOutput_ProportionalOutput_V = 2115;
162 static constexpr int PRO_DiffPIDOutput_ProportionalOutput_A = 2116;
163 static constexpr int PRO_DiffPIDOutput_DerivativeOutput_DC = 2117;
164 static constexpr int PRO_DiffPIDOutput_DerivativeOutput_V = 2118;
165 static constexpr int PRO_DiffPIDOutput_DerivativeOutput_A = 2119;
166 static constexpr int PRO_DiffPIDOutput_Output_DC = 2120;
167 static constexpr int PRO_DiffPIDOutput_Output_V = 2121;
168 static constexpr int PRO_DiffPIDOutput_Output_A = 2122;
169 static constexpr int PRO_DiffPIDOutput_Slot = 2123;
170 static constexpr int PRO_DiffPIDRefSlopeECUTime_ReferenceSlope_Position = 2124;
171 static constexpr int PRO_DiffPIDRefSlopeECUTime_ReferenceSlope_Velocity = 2125;
172 static constexpr int PRO_DiffPIDRefSlopeECUTime_ClosedLoopMode = 2126;
173 static constexpr int TalonFX_MotorConstants_kT = 2128;
174 static constexpr int TalonFX_MotorConstants_kV = 2129;
175 static constexpr int TalonFX_MotorConstants_StallCurrent = 2130;
176 static constexpr int Slot0_kP = 2131;
177 static constexpr int Slot0_kI = 2132;
178 static constexpr int Slot0_kD = 2133;
179 static constexpr int Slot0_kS = 2134;
180 static constexpr int Slot0_kV = 2135;
181 static constexpr int Slot0_kA = 2136;
182 static constexpr int Slot0_kG = 2137;
183 static constexpr int Slot0_kG_Type = 2138;
184 static constexpr int Slot1_kP = 2139;
185 static constexpr int Slot1_kI = 2140;
186 static constexpr int Slot1_kD = 2141;
187 static constexpr int Slot1_kS = 2142;
188 static constexpr int Slot1_kV = 2143;
189 static constexpr int Slot1_kA = 2144;
190 static constexpr int Slot1_kG = 2145;
191 static constexpr int Slot1_kG_Type = 2146;
192 static constexpr int Slot2_kP = 2147;
193 static constexpr int Slot2_kI = 2148;
194 static constexpr int Slot2_kD = 2149;
195 static constexpr int Slot2_kS = 2150;
196 static constexpr int Slot2_kV = 2151;
197 static constexpr int Slot2_kA = 2152;
198 static constexpr int Slot2_kG = 2153;
199 static constexpr int Slot2_kG_Type = 2154;
200 static constexpr int Config_Inverted = 2155;
201 static constexpr int Config_SupplyVLowpassTau = 2156;
202 static constexpr int Config_BeepOnBoot = 2157;
203 static constexpr int Config_NeutralMode = 2158;
204 static constexpr int Config_DutyCycleNeutralDB = 2159;
205 static constexpr int Config_StatorCurrentLimit = 2160;
206 static constexpr int Config_StatorCurrLimitEn = 2161;
207 static constexpr int Config_SupplyCurrentLimit = 2162;
208 static constexpr int Config_SupplyCurrLimitEn = 2163;
209 static constexpr int Config_PeakForwardDC = 2164;
210 static constexpr int Config_PeakReverseDC = 2165;
211 static constexpr int Config_PeakForwardV = 2166;
212 static constexpr int Config_PeakReverseV = 2167;
213 static constexpr int Config_PeakForTorqCurr = 2168;
214 static constexpr int Config_PeakRevTorqCurr = 2169;
215 static constexpr int Config_TorqueNeutralDB = 2170;
216 static constexpr int Config_FeedbackRotorOffset = 2171;
217 static constexpr int Config_SensorToMechanismRatio = 2172;
218 static constexpr int Config_RotorToSensorRatio = 2173;
219 static constexpr int Config_FeedbackSensorSource = 2174;
220 static constexpr int Config_FeedbackRemoteSensorID = 2175;
221 static constexpr int Config_DutyCycleOpenLoopRampPeriod = 2176;
222 static constexpr int Config_VoltageOpenLoopRampPeriod = 2177;
223 static constexpr int Config_TorqueOpenLoopRampPeriod = 2178;
224 static constexpr int Config_DutyCycleClosedLoopRampPeriod = 2179;
225 static constexpr int Config_VoltageClosedLoopRampPeriod = 2180;
226 static constexpr int Config_TorqueClosedLoopRampPeriod = 2181;
227 static constexpr int Config_ForwardLimitType = 2182;
228 static constexpr int Config_ForwardLimitAutosetPosEnable = 2183;
229 static constexpr int Config_ForwardLimitAutosetPosValue = 2184;
230 static constexpr int Config_ForwardLimitEnable = 2185;
231 static constexpr int Config_ForwardLimitSource = 2186;
232 static constexpr int Config_ForwardLimitRemoteSensorID = 2187;
233 static constexpr int Config_ReverseLimitType = 2188;
234 static constexpr int Config_ReverseLimitAutosetPosEnable = 2189;
235 static constexpr int Config_ReverseLimitAutosetPosValue = 2190;
236 static constexpr int Config_ReverseLimitEnable = 2191;
237 static constexpr int Config_ReverseLimitSource = 2192;
238 static constexpr int Config_ReverseLimitRemoteSensorID = 2193;
239 static constexpr int Config_ForwardSoftLimitEnable = 2194;
240 static constexpr int Config_ReverseSoftLimitEnable = 2195;
241 static constexpr int Config_ForwardSoftLimitThreshold = 2196;
242 static constexpr int Config_ReverseSoftLimitThreshold = 2197;
243 static constexpr int Config_MotionMagicCruiseVelocity = 2198;
244 static constexpr int Config_MotionMagicAcceleration = 2199;
245 static constexpr int Config_MotionMagicJerk = 2200;
246 static constexpr int Config_MotionMagicExpo_kV = 2201;
247 static constexpr int Config_MotionMagicExpo_kA = 2202;
248 static constexpr int Config_PeakDiffDC = 2203;
249 static constexpr int Config_PeakDiffV = 2204;
250 static constexpr int Config_PeakDiffTorqCurr = 2205;
251 static constexpr int CANcoder_Velocity = 2206;
252 static constexpr int CANcoder_Position = 2207;
253 static constexpr int CANcoder_AbsPosition = 2208;
254 static constexpr int CANCoder_RawVel = 2210;
255 static constexpr int CANCoder_RawPos = 2211;
256 static constexpr int CANCoder_SupplyVoltage = 2212;
257 static constexpr int CANcoder_MagHealth = 2213;
258 static constexpr int SPN_ClearStickyFaults = 2216;
259 static constexpr int PRO_MotorOutput_BridgeType_Public = 2217;
260 static constexpr int Config_ContinuousWrap = 2239;
261 static constexpr int Config_SupplyCurrentLowerLimit = 2245;
262 static constexpr int Config_SupplyCurrentLowerTime = 2246;
263 static constexpr int Config_DifferentialSensorSource = 2260;
264 static constexpr int Config_DifferentialTalonFXSensorID = 2261;
265 static constexpr int Config_DifferentialRemoteSensorID = 2262;
266 static constexpr int Config_BeepOnConfig = 2301;
267 static constexpr int Config_AllowMusicDurDisable = 2302;
268 static constexpr int Compliancy_Version = 2303;
269 static constexpr int Version_IsProLicensed = 2304;
270 static constexpr int PRO_SupplyAndTemp_DeviceTemp2 = 2343;
271 static constexpr int Slot0_kS_Sign = 2366;
272 static constexpr int Slot1_kS_Sign = 2367;
273 static constexpr int Slot2_kS_Sign = 2368;
274 static constexpr int TalonFX_ConnectedMotor = 2369;
275 static constexpr int CANrange_SupplyVoltage = 2391;
276 static constexpr int CANrange_Distance_Meters = 2392;
277 static constexpr int CANrange_MeasTime = 2394;
278 static constexpr int CANrange_SignalStrength = 2395;
279 static constexpr int CANrange_ProximityDetected = 2396;
280 static constexpr int CANrange_MeasState = 2397;
281 static constexpr int CANrange_AmbientSignal = 2398;
282 static constexpr int CANrange_DistanceStdDev = 2399;
283 static constexpr int CANrange_RealFOVCenterX = 2402;
284 static constexpr int CANrange_RealFOVCenterY = 2403;
285 static constexpr int CANrange_RealFOVRangeX = 2404;
286 static constexpr int CANrange_RealFOVRangeY = 2405;
287 static constexpr int CANrange_UpdateMode = 2409;
288 static constexpr int CANrange_UpdateFreq = 2410;
289 static constexpr int CANrange_ProximityThreshold = 2412;
290 static constexpr int CANrange_ProximityHysteresis = 2413;
291 static constexpr int CANrange_MinSigStrengthForValidMeas = 2414;
292 static constexpr int CANrange_FOVCenterX = 2415;
293 static constexpr int CANrange_FOVCenterY = 2416;
294 static constexpr int CANrange_FOVRangeX = 2417;
295 static constexpr int CANrange_FOVRangeY = 2418;
296 static constexpr int Config_ControlTimesyncFreq = 2419;
297 static constexpr int Config_VelocityFilterTimeConstant = 2420;
298 static constexpr int Config_AbsoluteSensorDiscontinuityPoint = 2708;
299 static constexpr int Fault_Hardware = 10001;
300 static constexpr int StickyFault_Hardware = 10002;
301 static constexpr int ClearStickyFault_Hardware = 10003;
302 static constexpr int Fault_ProcTemp = 10004;
303 static constexpr int StickyFault_ProcTemp = 10005;
304 static constexpr int ClearStickyFault_ProcTemp = 10006;
305 static constexpr int Fault_DeviceTemp = 10007;
306 static constexpr int StickyFault_DeviceTemp = 10008;
307 static constexpr int ClearStickyFault_DeviceTemp = 10009;
308 static constexpr int Fault_Undervoltage = 10010;
309 static constexpr int StickyFault_Undervoltage = 10011;
310 static constexpr int ClearStickyFault_Undervoltage = 10012;
311 static constexpr int Fault_BootDuringEnable = 10013;
312 static constexpr int StickyFault_BootDuringEnable = 10014;
313 static constexpr int ClearStickyFault_BootDuringEnable = 10015;
314 static constexpr int Fault_UnlicensedFeatureInUse = 10016;
315 static constexpr int StickyFault_UnlicensedFeatureInUse = 10017;
316 static constexpr int ClearStickyFault_UnlicensedFeatureInUse = 10018;
317 static constexpr int Fault_PIGEON2_BootupAccel = 10019;
318 static constexpr int StickyFault_PIGEON2_BootupAccel = 10020;
319 static constexpr int ClearStickyFault_PIGEON2_BootupAccel = 10021;
320 static constexpr int Fault_PIGEON2_BootupGyros = 10022;
321 static constexpr int StickyFault_PIGEON2_BootupGyros = 10023;
322 static constexpr int ClearStickyFault_PIGEON2_BootupGyros = 10024;
323 static constexpr int Fault_PIGEON2_BootupMagne = 10025;
324 static constexpr int StickyFault_PIGEON2_BootupMagne = 10026;
325 static constexpr int ClearStickyFault_PIGEON2_BootupMagne = 10027;
326 static constexpr int Fault_PIGEON2_BootIntoMotion = 10028;
327 static constexpr int StickyFault_PIGEON2_BootIntoMotion = 10029;
328 static constexpr int ClearStickyFault_PIGEON2_BootIntoMotion = 10030;
329 static constexpr int Fault_PIGEON2_DataAcquiredLate = 10031;
330 static constexpr int StickyFault_PIGEON2_DataAcquiredLate = 10032;
331 static constexpr int ClearStickyFault_PIGEON2_DataAcquiredLate = 10033;
332 static constexpr int Fault_PIGEON2_LoopTimeSlow = 10034;
333 static constexpr int StickyFault_PIGEON2_LoopTimeSlow = 10035;
334 static constexpr int ClearStickyFault_PIGEON2_LoopTimeSlow = 10036;
335 static constexpr int Fault_PIGEON2_SaturatedMagne = 10037;
336 static constexpr int StickyFault_PIGEON2_SaturatedMagne = 10038;
337 static constexpr int ClearStickyFault_PIGEON2_SaturatedMagne = 10039;
338 static constexpr int Fault_PIGEON2_SaturatedAccel = 10040;
339 static constexpr int StickyFault_PIGEON2_SaturatedAccel = 10041;
340 static constexpr int ClearStickyFault_PIGEON2_SaturatedAccel = 10042;
341 static constexpr int Fault_PIGEON2_SaturatedGyros = 10043;
342 static constexpr int StickyFault_PIGEON2_SaturatedGyros = 10044;
343 static constexpr int ClearStickyFault_PIGEON2_SaturatedGyros = 10045;
344 static constexpr int Fault_CANCODER_BadMagnet = 10046;
345 static constexpr int StickyFault_CANCODER_BadMagnet = 10047;
346 static constexpr int ClearStickyFault_CANCODER_BadMagnet = 10048;
347 static constexpr int Fault_TALONFX_BridgeBrownout = 10049;
348 static constexpr int StickyFault_TALONFX_BridgeBrownout = 10050;
349 static constexpr int ClearStickyFault_TALONFX_BridgeBrownout = 10051;
350 static constexpr int Fault_TALONFX_RemoteSensorReset = 10052;
351 static constexpr int StickyFault_TALONFX_RemoteSensorReset = 10053;
352 static constexpr int ClearStickyFault_TALONFX_RemoteSensorReset = 10054;
353 static constexpr int Fault_TALONFX_MissingDifferentialFX = 10055;
354 static constexpr int StickyFault_TALONFX_MissingDifferentialFX = 10056;
355 static constexpr int ClearStickyFault_TALONFX_MissingDifferentialFX = 10057;
356 static constexpr int Fault_TALONFX_RemoteSensorPosOverflow = 10058;
357 static constexpr int StickyFault_TALONFX_RemoteSensorPosOverflow = 10059;
358 static constexpr int ClearStickyFault_TALONFX_RemoteSensorPosOverflow = 10060;
359 static constexpr int Fault_TALONFX_OverSupplyV = 10061;
360 static constexpr int StickyFault_TALONFX_OverSupplyV = 10062;
361 static constexpr int ClearStickyFault_TALONFX_OverSupplyV = 10063;
362 static constexpr int Fault_TALONFX_UnstableSupplyV = 10064;
363 static constexpr int StickyFault_TALONFX_UnstableSupplyV = 10065;
364 static constexpr int ClearStickyFault_TALONFX_UnstableSupplyV = 10066;
365 static constexpr int Fault_TALONFX_ReverseHardLimit = 10067;
366 static constexpr int StickyFault_TALONFX_ReverseHardLimit = 10068;
367 static constexpr int ClearStickyFault_TALONFX_ReverseHardLimit = 10069;
368 static constexpr int Fault_TALONFX_ForwardHardLimit = 10070;
369 static constexpr int StickyFault_TALONFX_ForwardHardLimit = 10071;
370 static constexpr int ClearStickyFault_TALONFX_ForwardHardLimit = 10072;
371 static constexpr int Fault_TALONFX_ReverseSoftLimit = 10073;
372 static constexpr int StickyFault_TALONFX_ReverseSoftLimit = 10074;
373 static constexpr int ClearStickyFault_TALONFX_ReverseSoftLimit = 10075;
374 static constexpr int Fault_TALONFX_ForwardSoftLimit = 10076;
375 static constexpr int StickyFault_TALONFX_ForwardSoftLimit = 10077;
376 static constexpr int ClearStickyFault_TALONFX_ForwardSoftLimit = 10078;
377 static constexpr int Fault_TALONFX_MissingRemSoftLim = 10079;
378 static constexpr int StickyFault_TALONFX_MissingRemSoftLim = 10080;
379 static constexpr int ClearStickyFault_TALONFX_MissingRemSoftLim = 10081;
380 static constexpr int Fault_TALONFX_MissingRemHardLim = 10082;
381 static constexpr int StickyFault_TALONFX_MissingRemHardLim = 10083;
382 static constexpr int ClearStickyFault_TALONFX_MissingRemHardLim = 10084;
383 static constexpr int Fault_TALONFX_MissingRemoteSensor = 10085;
384 static constexpr int StickyFault_TALONFX_MissingRemoteSensor = 10086;
385 static constexpr int ClearStickyFault_TALONFX_MissingRemoteSensor = 10087;
386 static constexpr int Fault_TALONFX_FusedSensorOutOfSync = 10088;
387 static constexpr int StickyFault_TALONFX_FusedSensorOutOfSync = 10089;
388 static constexpr int ClearStickyFault_TALONFX_FusedSensorOutOfSync = 10090;
389 static constexpr int Fault_TALONFX_StatorCurrLimit = 10091;
390 static constexpr int StickyFault_TALONFX_StatorCurrLimit = 10092;
391 static constexpr int ClearStickyFault_TALONFX_StatorCurrLimit = 10093;
392 static constexpr int Fault_TALONFX_SupplyCurrLimit = 10094;
393 static constexpr int StickyFault_TALONFX_SupplyCurrLimit = 10095;
394 static constexpr int ClearStickyFault_TALONFX_SupplyCurrLimit = 10096;
395 static constexpr int Fault_TALONFX_UsingFusedCCWhileUnlicensed = 10097;
396 static constexpr int StickyFault_TALONFX_UsingFusedCCWhileUnlicensed = 10098;
397 static constexpr int ClearStickyFault_TALONFX_UsingFusedCCWhileUnlicensed = 10099;
398 static constexpr int Fault_TALONFX_StaticBrakeDisabled = 10100;
399 static constexpr int StickyFault_TALONFX_StaticBrakeDisabled = 10101;
400 static constexpr int ClearStickyFault_TALONFX_StaticBrakeDisabled = 10102;
402 constexpr bool operator==(SpnValue data)
const
404 return this->value == data.value;
406 constexpr bool operator==(
int data)
const
408 return this->value == data;
410 constexpr bool operator!=(SpnValue data)
const
412 return this->value != data.value;
414 constexpr bool operator!=(
int data)
const
416 return this->value != data;
418 constexpr bool operator<(SpnValue data)
const
420 return this->value < data.value;
422 constexpr bool operator<(
int data)
const
424 return this->value < data;
432 std::string ToString()
const
436 case SpnValue::TalonFX_System_State:
return "TalonFX_System_State";
437 case SpnValue::Startup_ResetFlags:
return "Startup_ResetFlags";
438 case SpnValue::Version_Major:
return "Version_Major";
439 case SpnValue::Version_Minor:
return "Version_Minor";
440 case SpnValue::Version_Bugfix:
return "Version_Bugfix";
441 case SpnValue::Version_Build:
return "Version_Build";
442 case SpnValue::Version_Full:
return "Version_Full";
443 case SpnValue::Licensing_IsProLicensed:
return "Licensing_IsProLicensed";
444 case SpnValue::Licensing_IsSeasonPassed:
return "Licensing_IsSeasonPassed";
445 case SpnValue::CustomParam0:
return "CustomParam0";
446 case SpnValue::CustomParam1:
return "CustomParam1";
447 case SpnValue::CANcoder_SensorDirection:
return "CANcoder_SensorDirection";
448 case SpnValue::FrcLock:
return "FrcLock";
449 case SpnValue::RobotEnabled:
return "RobotEnabled";
450 case SpnValue::LED1_OnColor:
return "LED1_OnColor";
451 case SpnValue::LED1_OffColor:
return "LED1_OffColor";
452 case SpnValue::LED2_OnColor:
return "LED2_OnColor";
453 case SpnValue::LED2_OffColor:
return "LED2_OffColor";
454 case SpnValue::AllFaults:
return "AllFaults";
455 case SpnValue::AllStickyFaults:
return "AllStickyFaults";
456 case SpnValue::Pigeon2UseCompass:
return "Pigeon2UseCompass";
457 case SpnValue::Pigeon2DisableTemperatureCompensation:
return "Pigeon2DisableTemperatureCompensation";
458 case SpnValue::Pigeon2DisableNoMotionCalibration:
return "Pigeon2DisableNoMotionCalibration";
459 case SpnValue::Pigeon2MountPoseYaw:
return "Pigeon2MountPoseYaw";
460 case SpnValue::Pigeon2MountPosePitch:
return "Pigeon2MountPosePitch";
461 case SpnValue::Pigeon2MountPoseRoll:
return "Pigeon2MountPoseRoll";
462 case SpnValue::Pigeon2GyroScalarX:
return "Pigeon2GyroScalarX";
463 case SpnValue::Pigeon2GyroScalarY:
return "Pigeon2GyroScalarY";
464 case SpnValue::Pigeon2GyroScalarZ:
return "Pigeon2GyroScalarZ";
465 case SpnValue::Pigeon2Yaw:
return "Pigeon2Yaw";
466 case SpnValue::Pigeon2Pitch:
return "Pigeon2Pitch";
467 case SpnValue::Pigeon2Roll:
return "Pigeon2Roll";
468 case SpnValue::Pigeon2QuatW:
return "Pigeon2QuatW";
469 case SpnValue::Pigeon2QuatX:
return "Pigeon2QuatX";
470 case SpnValue::Pigeon2QuatY:
return "Pigeon2QuatY";
471 case SpnValue::Pigeon2QuatZ:
return "Pigeon2QuatZ";
472 case SpnValue::Pigeon2GravityVectorX:
return "Pigeon2GravityVectorX";
473 case SpnValue::Pigeon2GravityVectorY:
return "Pigeon2GravityVectorY";
474 case SpnValue::Pigeon2GravityVectorZ:
return "Pigeon2GravityVectorZ";
475 case SpnValue::Pigeon2Temperature:
return "Pigeon2Temperature";
476 case SpnValue::Pigeon2NoMotionCalEnabled:
return "Pigeon2NoMotionCalEnabled";
477 case SpnValue::Pigeon2NoMotionCount:
return "Pigeon2NoMotionCount";
478 case SpnValue::Pigeon2TempCompDisabled:
return "Pigeon2TempCompDisabled";
479 case SpnValue::Pigeon2UpTime:
return "Pigeon2UpTime";
480 case SpnValue::Pigeon2AccumGyroX:
return "Pigeon2AccumGyroX";
481 case SpnValue::Pigeon2AccumGyroY:
return "Pigeon2AccumGyroY";
482 case SpnValue::Pigeon2AccumGyroZ:
return "Pigeon2AccumGyroZ";
483 case SpnValue::Pigeon2AngularVelocityXWorld:
return "Pigeon2AngularVelocityXWorld";
484 case SpnValue::Pigeon2AngularVelocityYWorld:
return "Pigeon2AngularVelocityYWorld";
485 case SpnValue::Pigeon2AngularVelocityZWorld:
return "Pigeon2AngularVelocityZWorld";
486 case SpnValue::Pigeon2AccelerationX:
return "Pigeon2AccelerationX";
487 case SpnValue::Pigeon2AccelerationY:
return "Pigeon2AccelerationY";
488 case SpnValue::Pigeon2AccelerationZ:
return "Pigeon2AccelerationZ";
489 case SpnValue::Pigeon2_SupplyVoltage:
return "Pigeon2_SupplyVoltage";
490 case SpnValue::Pigeon2AngularVelocityX:
return "Pigeon2AngularVelocityX";
491 case SpnValue::Pigeon2AngularVelocityY:
return "Pigeon2AngularVelocityY";
492 case SpnValue::Pigeon2AngularVelocityZ:
return "Pigeon2AngularVelocityZ";
493 case SpnValue::Pigeon2MagneticFieldX:
return "Pigeon2MagneticFieldX";
494 case SpnValue::Pigeon2MagneticFieldY:
return "Pigeon2MagneticFieldY";
495 case SpnValue::Pigeon2MagneticFieldZ:
return "Pigeon2MagneticFieldZ";
496 case SpnValue::Pigeon2RawMagneticFieldX:
return "Pigeon2RawMagneticFieldX";
497 case SpnValue::Pigeon2RawMagneticFieldY:
return "Pigeon2RawMagneticFieldY";
498 case SpnValue::Pigeon2RawMagneticFieldZ:
return "Pigeon2RawMagneticFieldZ";
499 case SpnValue::CANCoder_MagnetOffset:
return "CANCoder_MagnetOffset";
500 case SpnValue::TalonFX_SetSensorPosition:
return "TalonFX_SetSensorPosition";
501 case SpnValue::CANcoder_SetSensorPosition:
return "CANcoder_SetSensorPosition";
502 case SpnValue::Pigeon2_SetYaw:
return "Pigeon2_SetYaw";
503 case SpnValue::DeviceEnabled:
return "DeviceEnabled";
504 case SpnValue::PRO_MotorOutput_MotorVoltage:
return "PRO_MotorOutput_MotorVoltage";
505 case SpnValue::ForwardLimit:
return "ForwardLimit";
506 case SpnValue::ReverseLimit:
return "ReverseLimit";
507 case SpnValue::PRO_MotorOutput_RotorPolarity:
return "PRO_MotorOutput_RotorPolarity";
508 case SpnValue::PRO_MotorOutput_DutyCycle:
return "PRO_MotorOutput_DutyCycle";
509 case SpnValue::PRO_MotorOutput_TorqueCurrent:
return "PRO_MotorOutput_TorqueCurrent";
510 case SpnValue::PRO_SupplyAndTemp_StatorCurrent:
return "PRO_SupplyAndTemp_StatorCurrent";
511 case SpnValue::PRO_SupplyAndTemp_SupplyCurrent:
return "PRO_SupplyAndTemp_SupplyCurrent";
512 case SpnValue::PRO_SupplyAndTemp_SupplyVoltage:
return "PRO_SupplyAndTemp_SupplyVoltage";
513 case SpnValue::PRO_SupplyAndTemp_DeviceTemp:
return "PRO_SupplyAndTemp_DeviceTemp";
514 case SpnValue::PRO_SupplyAndTemp_ProcessorTemp:
return "PRO_SupplyAndTemp_ProcessorTemp";
515 case SpnValue::PRO_RotorPosAndVel_Velocity:
return "PRO_RotorPosAndVel_Velocity";
516 case SpnValue::PRO_RotorPosAndVel_Position:
return "PRO_RotorPosAndVel_Position";
517 case SpnValue::PRO_PosAndVel_Velocity:
return "PRO_PosAndVel_Velocity";
518 case SpnValue::PRO_PosAndVel_Position:
return "PRO_PosAndVel_Position";
519 case SpnValue::PRO_PosAndVel_Acceleration:
return "PRO_PosAndVel_Acceleration";
520 case SpnValue::PRO_PIDStateEnables_IntegratedAccum_DC:
return "PRO_PIDStateEnables_IntegratedAccum_DC";
521 case SpnValue::PRO_PIDStateEnables_IntegratedAccum_V:
return "PRO_PIDStateEnables_IntegratedAccum_V";
522 case SpnValue::PRO_PIDStateEnables_IntegratedAccum_A:
return "PRO_PIDStateEnables_IntegratedAccum_A";
523 case SpnValue::PRO_PIDStateEnables_FeedForward_DC:
return "PRO_PIDStateEnables_FeedForward_DC";
524 case SpnValue::PRO_PIDStateEnables_FeedForward_V:
return "PRO_PIDStateEnables_FeedForward_V";
525 case SpnValue::PRO_PIDStateEnables_FeedForward_A:
return "PRO_PIDStateEnables_FeedForward_A";
526 case SpnValue::TalonFX_ControlMode:
return "TalonFX_ControlMode";
527 case SpnValue::PRO_PIDStateEnables_IsMotionMagicRunning:
return "PRO_PIDStateEnables_IsMotionMagicRunning";
528 case SpnValue::PRO_PIDStateEnables_DeviceEnable:
return "PRO_PIDStateEnables_DeviceEnable";
529 case SpnValue::PRO_PIDRefPIDErr_PIDRef_Position:
return "PRO_PIDRefPIDErr_PIDRef_Position";
530 case SpnValue::PRO_PIDRefPIDErr_PIDRef_Velocity:
return "PRO_PIDRefPIDErr_PIDRef_Velocity";
531 case SpnValue::PRO_PIDRefPIDErr_PIDErr_Position:
return "PRO_PIDRefPIDErr_PIDErr_Position";
532 case SpnValue::PRO_PIDRefPIDErr_PIDErr_Velocity:
return "PRO_PIDRefPIDErr_PIDErr_Velocity";
533 case SpnValue::PRO_PIDRefPIDErr_ClosedLoopMode:
return "PRO_PIDRefPIDErr_ClosedLoopMode";
534 case SpnValue::PRO_PIDOutput_PIDOutputMode:
return "PRO_PIDOutput_PIDOutputMode";
535 case SpnValue::PRO_PIDOutput_ProportionalOutput_DC:
return "PRO_PIDOutput_ProportionalOutput_DC";
536 case SpnValue::PRO_PIDOutput_ProportionalOutput_V:
return "PRO_PIDOutput_ProportionalOutput_V";
537 case SpnValue::PRO_PIDOutput_ProportionalOutput_A:
return "PRO_PIDOutput_ProportionalOutput_A";
538 case SpnValue::PRO_PIDOutput_DerivativeOutput_DC:
return "PRO_PIDOutput_DerivativeOutput_DC";
539 case SpnValue::PRO_PIDOutput_DerivativeOutput_V:
return "PRO_PIDOutput_DerivativeOutput_V";
540 case SpnValue::PRO_PIDOutput_DerivativeOutput_A:
return "PRO_PIDOutput_DerivativeOutput_A";
541 case SpnValue::PRO_PIDOutput_Output_DC:
return "PRO_PIDOutput_Output_DC";
542 case SpnValue::PRO_PIDOutput_Output_V:
return "PRO_PIDOutput_Output_V";
543 case SpnValue::PRO_PIDOutput_Output_A:
return "PRO_PIDOutput_Output_A";
544 case SpnValue::PRO_PIDOutput_Slot:
return "PRO_PIDOutput_Slot";
545 case SpnValue::PRO_PIDRefSlopeECUTime_ReferenceSlope_Position:
return "PRO_PIDRefSlopeECUTime_ReferenceSlope_Position";
546 case SpnValue::PRO_PIDRefSlopeECUTime_ReferenceSlope_Velocity:
return "PRO_PIDRefSlopeECUTime_ReferenceSlope_Velocity";
547 case SpnValue::PRO_PIDRefSlopeECUTime_ClosedLoopMode:
return "PRO_PIDRefSlopeECUTime_ClosedLoopMode";
548 case SpnValue::TalonFX_MotorOutputStatus:
return "TalonFX_MotorOutputStatus";
549 case SpnValue::PRO_MotorOutput_PIDState_Diff_DutyCycle:
return "PRO_MotorOutput_PIDState_Diff_DutyCycle";
550 case SpnValue::PRO_MotorOutput_PIDState_Diff_TorqueCurrent:
return "PRO_MotorOutput_PIDState_Diff_TorqueCurrent";
551 case SpnValue::TalonFX_DifferentialControlMode:
return "TalonFX_DifferentialControlMode";
552 case SpnValue::PRO_MotorOutput_PIDState_Diff_IntegratedAccum_DC:
return "PRO_MotorOutput_PIDState_Diff_IntegratedAccum_DC";
553 case SpnValue::PRO_MotorOutput_PIDState_Diff_IntegratedAccum_V:
return "PRO_MotorOutput_PIDState_Diff_IntegratedAccum_V";
554 case SpnValue::PRO_MotorOutput_PIDState_Diff_IntegratedAccum_A:
return "PRO_MotorOutput_PIDState_Diff_IntegratedAccum_A";
555 case SpnValue::PRO_MotorOutput_PIDState_Diff_FeedForward_DC:
return "PRO_MotorOutput_PIDState_Diff_FeedForward_DC";
556 case SpnValue::PRO_MotorOutput_PIDState_Diff_FeedForward_V:
return "PRO_MotorOutput_PIDState_Diff_FeedForward_V";
557 case SpnValue::PRO_MotorOutput_PIDState_Diff_FeedForward_A:
return "PRO_MotorOutput_PIDState_Diff_FeedForward_A";
558 case SpnValue::PRO_AvgPosAndVel_Velocity:
return "PRO_AvgPosAndVel_Velocity";
559 case SpnValue::PRO_AvgPosAndVel_Position:
return "PRO_AvgPosAndVel_Position";
560 case SpnValue::PRO_DiffPosAndVel_Velocity:
return "PRO_DiffPosAndVel_Velocity";
561 case SpnValue::PRO_DiffPosAndVel_Position:
return "PRO_DiffPosAndVel_Position";
562 case SpnValue::PRO_DiffPIDRefPIDErr_PIDRef_Position:
return "PRO_DiffPIDRefPIDErr_PIDRef_Position";
563 case SpnValue::PRO_DiffPIDRefPIDErr_PIDRef_Velocity:
return "PRO_DiffPIDRefPIDErr_PIDRef_Velocity";
564 case SpnValue::PRO_DiffPIDRefPIDErr_PIDErr_Position:
return "PRO_DiffPIDRefPIDErr_PIDErr_Position";
565 case SpnValue::PRO_DiffPIDRefPIDErr_PIDErr_Velocity:
return "PRO_DiffPIDRefPIDErr_PIDErr_Velocity";
566 case SpnValue::PRO_DiffPIDRefPIDErr_ClosedLoopMode:
return "PRO_DiffPIDRefPIDErr_ClosedLoopMode";
567 case SpnValue::PRO_DiffPIDOutput_PIDOutputMode:
return "PRO_DiffPIDOutput_PIDOutputMode";
568 case SpnValue::PRO_DiffPIDOutput_ProportionalOutput_DC:
return "PRO_DiffPIDOutput_ProportionalOutput_DC";
569 case SpnValue::PRO_DiffPIDOutput_ProportionalOutput_V:
return "PRO_DiffPIDOutput_ProportionalOutput_V";
570 case SpnValue::PRO_DiffPIDOutput_ProportionalOutput_A:
return "PRO_DiffPIDOutput_ProportionalOutput_A";
571 case SpnValue::PRO_DiffPIDOutput_DerivativeOutput_DC:
return "PRO_DiffPIDOutput_DerivativeOutput_DC";
572 case SpnValue::PRO_DiffPIDOutput_DerivativeOutput_V:
return "PRO_DiffPIDOutput_DerivativeOutput_V";
573 case SpnValue::PRO_DiffPIDOutput_DerivativeOutput_A:
return "PRO_DiffPIDOutput_DerivativeOutput_A";
574 case SpnValue::PRO_DiffPIDOutput_Output_DC:
return "PRO_DiffPIDOutput_Output_DC";
575 case SpnValue::PRO_DiffPIDOutput_Output_V:
return "PRO_DiffPIDOutput_Output_V";
576 case SpnValue::PRO_DiffPIDOutput_Output_A:
return "PRO_DiffPIDOutput_Output_A";
577 case SpnValue::PRO_DiffPIDOutput_Slot:
return "PRO_DiffPIDOutput_Slot";
578 case SpnValue::PRO_DiffPIDRefSlopeECUTime_ReferenceSlope_Position:
return "PRO_DiffPIDRefSlopeECUTime_ReferenceSlope_Position";
579 case SpnValue::PRO_DiffPIDRefSlopeECUTime_ReferenceSlope_Velocity:
return "PRO_DiffPIDRefSlopeECUTime_ReferenceSlope_Velocity";
580 case SpnValue::PRO_DiffPIDRefSlopeECUTime_ClosedLoopMode:
return "PRO_DiffPIDRefSlopeECUTime_ClosedLoopMode";
581 case SpnValue::TalonFX_MotorConstants_kT:
return "TalonFX_MotorConstants_kT";
582 case SpnValue::TalonFX_MotorConstants_kV:
return "TalonFX_MotorConstants_kV";
583 case SpnValue::TalonFX_MotorConstants_StallCurrent:
return "TalonFX_MotorConstants_StallCurrent";
584 case SpnValue::Slot0_kP:
return "Slot0_kP";
585 case SpnValue::Slot0_kI:
return "Slot0_kI";
586 case SpnValue::Slot0_kD:
return "Slot0_kD";
587 case SpnValue::Slot0_kS:
return "Slot0_kS";
588 case SpnValue::Slot0_kV:
return "Slot0_kV";
589 case SpnValue::Slot0_kA:
return "Slot0_kA";
590 case SpnValue::Slot0_kG:
return "Slot0_kG";
591 case SpnValue::Slot0_kG_Type:
return "Slot0_kG_Type";
592 case SpnValue::Slot1_kP:
return "Slot1_kP";
593 case SpnValue::Slot1_kI:
return "Slot1_kI";
594 case SpnValue::Slot1_kD:
return "Slot1_kD";
595 case SpnValue::Slot1_kS:
return "Slot1_kS";
596 case SpnValue::Slot1_kV:
return "Slot1_kV";
597 case SpnValue::Slot1_kA:
return "Slot1_kA";
598 case SpnValue::Slot1_kG:
return "Slot1_kG";
599 case SpnValue::Slot1_kG_Type:
return "Slot1_kG_Type";
600 case SpnValue::Slot2_kP:
return "Slot2_kP";
601 case SpnValue::Slot2_kI:
return "Slot2_kI";
602 case SpnValue::Slot2_kD:
return "Slot2_kD";
603 case SpnValue::Slot2_kS:
return "Slot2_kS";
604 case SpnValue::Slot2_kV:
return "Slot2_kV";
605 case SpnValue::Slot2_kA:
return "Slot2_kA";
606 case SpnValue::Slot2_kG:
return "Slot2_kG";
607 case SpnValue::Slot2_kG_Type:
return "Slot2_kG_Type";
608 case SpnValue::Config_Inverted:
return "Config_Inverted";
609 case SpnValue::Config_SupplyVLowpassTau:
return "Config_SupplyVLowpassTau";
610 case SpnValue::Config_BeepOnBoot:
return "Config_BeepOnBoot";
611 case SpnValue::Config_NeutralMode:
return "Config_NeutralMode";
612 case SpnValue::Config_DutyCycleNeutralDB:
return "Config_DutyCycleNeutralDB";
613 case SpnValue::Config_StatorCurrentLimit:
return "Config_StatorCurrentLimit";
614 case SpnValue::Config_StatorCurrLimitEn:
return "Config_StatorCurrLimitEn";
615 case SpnValue::Config_SupplyCurrentLimit:
return "Config_SupplyCurrentLimit";
616 case SpnValue::Config_SupplyCurrLimitEn:
return "Config_SupplyCurrLimitEn";
617 case SpnValue::Config_PeakForwardDC:
return "Config_PeakForwardDC";
618 case SpnValue::Config_PeakReverseDC:
return "Config_PeakReverseDC";
619 case SpnValue::Config_PeakForwardV:
return "Config_PeakForwardV";
620 case SpnValue::Config_PeakReverseV:
return "Config_PeakReverseV";
621 case SpnValue::Config_PeakForTorqCurr:
return "Config_PeakForTorqCurr";
622 case SpnValue::Config_PeakRevTorqCurr:
return "Config_PeakRevTorqCurr";
623 case SpnValue::Config_TorqueNeutralDB:
return "Config_TorqueNeutralDB";
624 case SpnValue::Config_FeedbackRotorOffset:
return "Config_FeedbackRotorOffset";
625 case SpnValue::Config_SensorToMechanismRatio:
return "Config_SensorToMechanismRatio";
626 case SpnValue::Config_RotorToSensorRatio:
return "Config_RotorToSensorRatio";
627 case SpnValue::Config_FeedbackSensorSource:
return "Config_FeedbackSensorSource";
628 case SpnValue::Config_FeedbackRemoteSensorID:
return "Config_FeedbackRemoteSensorID";
629 case SpnValue::Config_DutyCycleOpenLoopRampPeriod:
return "Config_DutyCycleOpenLoopRampPeriod";
630 case SpnValue::Config_VoltageOpenLoopRampPeriod:
return "Config_VoltageOpenLoopRampPeriod";
631 case SpnValue::Config_TorqueOpenLoopRampPeriod:
return "Config_TorqueOpenLoopRampPeriod";
632 case SpnValue::Config_DutyCycleClosedLoopRampPeriod:
return "Config_DutyCycleClosedLoopRampPeriod";
633 case SpnValue::Config_VoltageClosedLoopRampPeriod:
return "Config_VoltageClosedLoopRampPeriod";
634 case SpnValue::Config_TorqueClosedLoopRampPeriod:
return "Config_TorqueClosedLoopRampPeriod";
635 case SpnValue::Config_ForwardLimitType:
return "Config_ForwardLimitType";
636 case SpnValue::Config_ForwardLimitAutosetPosEnable:
return "Config_ForwardLimitAutosetPosEnable";
637 case SpnValue::Config_ForwardLimitAutosetPosValue:
return "Config_ForwardLimitAutosetPosValue";
638 case SpnValue::Config_ForwardLimitEnable:
return "Config_ForwardLimitEnable";
639 case SpnValue::Config_ForwardLimitSource:
return "Config_ForwardLimitSource";
640 case SpnValue::Config_ForwardLimitRemoteSensorID:
return "Config_ForwardLimitRemoteSensorID";
641 case SpnValue::Config_ReverseLimitType:
return "Config_ReverseLimitType";
642 case SpnValue::Config_ReverseLimitAutosetPosEnable:
return "Config_ReverseLimitAutosetPosEnable";
643 case SpnValue::Config_ReverseLimitAutosetPosValue:
return "Config_ReverseLimitAutosetPosValue";
644 case SpnValue::Config_ReverseLimitEnable:
return "Config_ReverseLimitEnable";
645 case SpnValue::Config_ReverseLimitSource:
return "Config_ReverseLimitSource";
646 case SpnValue::Config_ReverseLimitRemoteSensorID:
return "Config_ReverseLimitRemoteSensorID";
647 case SpnValue::Config_ForwardSoftLimitEnable:
return "Config_ForwardSoftLimitEnable";
648 case SpnValue::Config_ReverseSoftLimitEnable:
return "Config_ReverseSoftLimitEnable";
649 case SpnValue::Config_ForwardSoftLimitThreshold:
return "Config_ForwardSoftLimitThreshold";
650 case SpnValue::Config_ReverseSoftLimitThreshold:
return "Config_ReverseSoftLimitThreshold";
651 case SpnValue::Config_MotionMagicCruiseVelocity:
return "Config_MotionMagicCruiseVelocity";
652 case SpnValue::Config_MotionMagicAcceleration:
return "Config_MotionMagicAcceleration";
653 case SpnValue::Config_MotionMagicJerk:
return "Config_MotionMagicJerk";
654 case SpnValue::Config_MotionMagicExpo_kV:
return "Config_MotionMagicExpo_kV";
655 case SpnValue::Config_MotionMagicExpo_kA:
return "Config_MotionMagicExpo_kA";
656 case SpnValue::Config_PeakDiffDC:
return "Config_PeakDiffDC";
657 case SpnValue::Config_PeakDiffV:
return "Config_PeakDiffV";
658 case SpnValue::Config_PeakDiffTorqCurr:
return "Config_PeakDiffTorqCurr";
659 case SpnValue::CANcoder_Velocity:
return "CANcoder_Velocity";
660 case SpnValue::CANcoder_Position:
return "CANcoder_Position";
661 case SpnValue::CANcoder_AbsPosition:
return "CANcoder_AbsPosition";
662 case SpnValue::CANCoder_RawVel:
return "CANCoder_RawVel";
663 case SpnValue::CANCoder_RawPos:
return "CANCoder_RawPos";
664 case SpnValue::CANCoder_SupplyVoltage:
return "CANCoder_SupplyVoltage";
665 case SpnValue::CANcoder_MagHealth:
return "CANcoder_MagHealth";
666 case SpnValue::SPN_ClearStickyFaults:
return "SPN_ClearStickyFaults";
667 case SpnValue::PRO_MotorOutput_BridgeType_Public:
return "PRO_MotorOutput_BridgeType_Public";
668 case SpnValue::Config_ContinuousWrap:
return "Config_ContinuousWrap";
669 case SpnValue::Config_SupplyCurrentLowerLimit:
return "Config_SupplyCurrentLowerLimit";
670 case SpnValue::Config_SupplyCurrentLowerTime:
return "Config_SupplyCurrentLowerTime";
671 case SpnValue::Config_DifferentialSensorSource:
return "Config_DifferentialSensorSource";
672 case SpnValue::Config_DifferentialTalonFXSensorID:
return "Config_DifferentialTalonFXSensorID";
673 case SpnValue::Config_DifferentialRemoteSensorID:
return "Config_DifferentialRemoteSensorID";
674 case SpnValue::Config_BeepOnConfig:
return "Config_BeepOnConfig";
675 case SpnValue::Config_AllowMusicDurDisable:
return "Config_AllowMusicDurDisable";
676 case SpnValue::Compliancy_Version:
return "Compliancy_Version";
677 case SpnValue::Version_IsProLicensed:
return "Version_IsProLicensed";
678 case SpnValue::PRO_SupplyAndTemp_DeviceTemp2:
return "PRO_SupplyAndTemp_DeviceTemp2";
679 case SpnValue::Slot0_kS_Sign:
return "Slot0_kS_Sign";
680 case SpnValue::Slot1_kS_Sign:
return "Slot1_kS_Sign";
681 case SpnValue::Slot2_kS_Sign:
return "Slot2_kS_Sign";
682 case SpnValue::TalonFX_ConnectedMotor:
return "TalonFX_ConnectedMotor";
683 case SpnValue::CANrange_SupplyVoltage:
return "CANrange_SupplyVoltage";
684 case SpnValue::CANrange_Distance_Meters:
return "CANrange_Distance_Meters";
685 case SpnValue::CANrange_MeasTime:
return "CANrange_MeasTime";
686 case SpnValue::CANrange_SignalStrength:
return "CANrange_SignalStrength";
687 case SpnValue::CANrange_ProximityDetected:
return "CANrange_ProximityDetected";
688 case SpnValue::CANrange_MeasState:
return "CANrange_MeasState";
689 case SpnValue::CANrange_AmbientSignal:
return "CANrange_AmbientSignal";
690 case SpnValue::CANrange_DistanceStdDev:
return "CANrange_DistanceStdDev";
691 case SpnValue::CANrange_RealFOVCenterX:
return "CANrange_RealFOVCenterX";
692 case SpnValue::CANrange_RealFOVCenterY:
return "CANrange_RealFOVCenterY";
693 case SpnValue::CANrange_RealFOVRangeX:
return "CANrange_RealFOVRangeX";
694 case SpnValue::CANrange_RealFOVRangeY:
return "CANrange_RealFOVRangeY";
695 case SpnValue::CANrange_UpdateMode:
return "CANrange_UpdateMode";
696 case SpnValue::CANrange_UpdateFreq:
return "CANrange_UpdateFreq";
697 case SpnValue::CANrange_ProximityThreshold:
return "CANrange_ProximityThreshold";
698 case SpnValue::CANrange_ProximityHysteresis:
return "CANrange_ProximityHysteresis";
699 case SpnValue::CANrange_MinSigStrengthForValidMeas:
return "CANrange_MinSigStrengthForValidMeas";
700 case SpnValue::CANrange_FOVCenterX:
return "CANrange_FOVCenterX";
701 case SpnValue::CANrange_FOVCenterY:
return "CANrange_FOVCenterY";
702 case SpnValue::CANrange_FOVRangeX:
return "CANrange_FOVRangeX";
703 case SpnValue::CANrange_FOVRangeY:
return "CANrange_FOVRangeY";
704 case SpnValue::Config_ControlTimesyncFreq:
return "Config_ControlTimesyncFreq";
705 case SpnValue::Config_VelocityFilterTimeConstant:
return "Config_VelocityFilterTimeConstant";
706 case SpnValue::Config_AbsoluteSensorDiscontinuityPoint:
return "Config_AbsoluteSensorDiscontinuityPoint";
707 case SpnValue::Fault_Hardware:
return "Fault_Hardware";
708 case SpnValue::StickyFault_Hardware:
return "StickyFault_Hardware";
709 case SpnValue::ClearStickyFault_Hardware:
return "ClearStickyFault_Hardware";
710 case SpnValue::Fault_ProcTemp:
return "Fault_ProcTemp";
711 case SpnValue::StickyFault_ProcTemp:
return "StickyFault_ProcTemp";
712 case SpnValue::ClearStickyFault_ProcTemp:
return "ClearStickyFault_ProcTemp";
713 case SpnValue::Fault_DeviceTemp:
return "Fault_DeviceTemp";
714 case SpnValue::StickyFault_DeviceTemp:
return "StickyFault_DeviceTemp";
715 case SpnValue::ClearStickyFault_DeviceTemp:
return "ClearStickyFault_DeviceTemp";
716 case SpnValue::Fault_Undervoltage:
return "Fault_Undervoltage";
717 case SpnValue::StickyFault_Undervoltage:
return "StickyFault_Undervoltage";
718 case SpnValue::ClearStickyFault_Undervoltage:
return "ClearStickyFault_Undervoltage";
719 case SpnValue::Fault_BootDuringEnable:
return "Fault_BootDuringEnable";
720 case SpnValue::StickyFault_BootDuringEnable:
return "StickyFault_BootDuringEnable";
721 case SpnValue::ClearStickyFault_BootDuringEnable:
return "ClearStickyFault_BootDuringEnable";
722 case SpnValue::Fault_UnlicensedFeatureInUse:
return "Fault_UnlicensedFeatureInUse";
723 case SpnValue::StickyFault_UnlicensedFeatureInUse:
return "StickyFault_UnlicensedFeatureInUse";
724 case SpnValue::ClearStickyFault_UnlicensedFeatureInUse:
return "ClearStickyFault_UnlicensedFeatureInUse";
725 case SpnValue::Fault_PIGEON2_BootupAccel:
return "Fault_PIGEON2_BootupAccel";
726 case SpnValue::StickyFault_PIGEON2_BootupAccel:
return "StickyFault_PIGEON2_BootupAccel";
727 case SpnValue::ClearStickyFault_PIGEON2_BootupAccel:
return "ClearStickyFault_PIGEON2_BootupAccel";
728 case SpnValue::Fault_PIGEON2_BootupGyros:
return "Fault_PIGEON2_BootupGyros";
729 case SpnValue::StickyFault_PIGEON2_BootupGyros:
return "StickyFault_PIGEON2_BootupGyros";
730 case SpnValue::ClearStickyFault_PIGEON2_BootupGyros:
return "ClearStickyFault_PIGEON2_BootupGyros";
731 case SpnValue::Fault_PIGEON2_BootupMagne:
return "Fault_PIGEON2_BootupMagne";
732 case SpnValue::StickyFault_PIGEON2_BootupMagne:
return "StickyFault_PIGEON2_BootupMagne";
733 case SpnValue::ClearStickyFault_PIGEON2_BootupMagne:
return "ClearStickyFault_PIGEON2_BootupMagne";
734 case SpnValue::Fault_PIGEON2_BootIntoMotion:
return "Fault_PIGEON2_BootIntoMotion";
735 case SpnValue::StickyFault_PIGEON2_BootIntoMotion:
return "StickyFault_PIGEON2_BootIntoMotion";
736 case SpnValue::ClearStickyFault_PIGEON2_BootIntoMotion:
return "ClearStickyFault_PIGEON2_BootIntoMotion";
737 case SpnValue::Fault_PIGEON2_DataAcquiredLate:
return "Fault_PIGEON2_DataAcquiredLate";
738 case SpnValue::StickyFault_PIGEON2_DataAcquiredLate:
return "StickyFault_PIGEON2_DataAcquiredLate";
739 case SpnValue::ClearStickyFault_PIGEON2_DataAcquiredLate:
return "ClearStickyFault_PIGEON2_DataAcquiredLate";
740 case SpnValue::Fault_PIGEON2_LoopTimeSlow:
return "Fault_PIGEON2_LoopTimeSlow";
741 case SpnValue::StickyFault_PIGEON2_LoopTimeSlow:
return "StickyFault_PIGEON2_LoopTimeSlow";
742 case SpnValue::ClearStickyFault_PIGEON2_LoopTimeSlow:
return "ClearStickyFault_PIGEON2_LoopTimeSlow";
743 case SpnValue::Fault_PIGEON2_SaturatedMagne:
return "Fault_PIGEON2_SaturatedMagne";
744 case SpnValue::StickyFault_PIGEON2_SaturatedMagne:
return "StickyFault_PIGEON2_SaturatedMagne";
745 case SpnValue::ClearStickyFault_PIGEON2_SaturatedMagne:
return "ClearStickyFault_PIGEON2_SaturatedMagne";
746 case SpnValue::Fault_PIGEON2_SaturatedAccel:
return "Fault_PIGEON2_SaturatedAccel";
747 case SpnValue::StickyFault_PIGEON2_SaturatedAccel:
return "StickyFault_PIGEON2_SaturatedAccel";
748 case SpnValue::ClearStickyFault_PIGEON2_SaturatedAccel:
return "ClearStickyFault_PIGEON2_SaturatedAccel";
749 case SpnValue::Fault_PIGEON2_SaturatedGyros:
return "Fault_PIGEON2_SaturatedGyros";
750 case SpnValue::StickyFault_PIGEON2_SaturatedGyros:
return "StickyFault_PIGEON2_SaturatedGyros";
751 case SpnValue::ClearStickyFault_PIGEON2_SaturatedGyros:
return "ClearStickyFault_PIGEON2_SaturatedGyros";
752 case SpnValue::Fault_CANCODER_BadMagnet:
return "Fault_CANCODER_BadMagnet";
753 case SpnValue::StickyFault_CANCODER_BadMagnet:
return "StickyFault_CANCODER_BadMagnet";
754 case SpnValue::ClearStickyFault_CANCODER_BadMagnet:
return "ClearStickyFault_CANCODER_BadMagnet";
755 case SpnValue::Fault_TALONFX_BridgeBrownout:
return "Fault_TALONFX_BridgeBrownout";
756 case SpnValue::StickyFault_TALONFX_BridgeBrownout:
return "StickyFault_TALONFX_BridgeBrownout";
757 case SpnValue::ClearStickyFault_TALONFX_BridgeBrownout:
return "ClearStickyFault_TALONFX_BridgeBrownout";
758 case SpnValue::Fault_TALONFX_RemoteSensorReset:
return "Fault_TALONFX_RemoteSensorReset";
759 case SpnValue::StickyFault_TALONFX_RemoteSensorReset:
return "StickyFault_TALONFX_RemoteSensorReset";
760 case SpnValue::ClearStickyFault_TALONFX_RemoteSensorReset:
return "ClearStickyFault_TALONFX_RemoteSensorReset";
761 case SpnValue::Fault_TALONFX_MissingDifferentialFX:
return "Fault_TALONFX_MissingDifferentialFX";
762 case SpnValue::StickyFault_TALONFX_MissingDifferentialFX:
return "StickyFault_TALONFX_MissingDifferentialFX";
763 case SpnValue::ClearStickyFault_TALONFX_MissingDifferentialFX:
return "ClearStickyFault_TALONFX_MissingDifferentialFX";
764 case SpnValue::Fault_TALONFX_RemoteSensorPosOverflow:
return "Fault_TALONFX_RemoteSensorPosOverflow";
765 case SpnValue::StickyFault_TALONFX_RemoteSensorPosOverflow:
return "StickyFault_TALONFX_RemoteSensorPosOverflow";
766 case SpnValue::ClearStickyFault_TALONFX_RemoteSensorPosOverflow:
return "ClearStickyFault_TALONFX_RemoteSensorPosOverflow";
767 case SpnValue::Fault_TALONFX_OverSupplyV:
return "Fault_TALONFX_OverSupplyV";
768 case SpnValue::StickyFault_TALONFX_OverSupplyV:
return "StickyFault_TALONFX_OverSupplyV";
769 case SpnValue::ClearStickyFault_TALONFX_OverSupplyV:
return "ClearStickyFault_TALONFX_OverSupplyV";
770 case SpnValue::Fault_TALONFX_UnstableSupplyV:
return "Fault_TALONFX_UnstableSupplyV";
771 case SpnValue::StickyFault_TALONFX_UnstableSupplyV:
return "StickyFault_TALONFX_UnstableSupplyV";
772 case SpnValue::ClearStickyFault_TALONFX_UnstableSupplyV:
return "ClearStickyFault_TALONFX_UnstableSupplyV";
773 case SpnValue::Fault_TALONFX_ReverseHardLimit:
return "Fault_TALONFX_ReverseHardLimit";
774 case SpnValue::StickyFault_TALONFX_ReverseHardLimit:
return "StickyFault_TALONFX_ReverseHardLimit";
775 case SpnValue::ClearStickyFault_TALONFX_ReverseHardLimit:
return "ClearStickyFault_TALONFX_ReverseHardLimit";
776 case SpnValue::Fault_TALONFX_ForwardHardLimit:
return "Fault_TALONFX_ForwardHardLimit";
777 case SpnValue::StickyFault_TALONFX_ForwardHardLimit:
return "StickyFault_TALONFX_ForwardHardLimit";
778 case SpnValue::ClearStickyFault_TALONFX_ForwardHardLimit:
return "ClearStickyFault_TALONFX_ForwardHardLimit";
779 case SpnValue::Fault_TALONFX_ReverseSoftLimit:
return "Fault_TALONFX_ReverseSoftLimit";
780 case SpnValue::StickyFault_TALONFX_ReverseSoftLimit:
return "StickyFault_TALONFX_ReverseSoftLimit";
781 case SpnValue::ClearStickyFault_TALONFX_ReverseSoftLimit:
return "ClearStickyFault_TALONFX_ReverseSoftLimit";
782 case SpnValue::Fault_TALONFX_ForwardSoftLimit:
return "Fault_TALONFX_ForwardSoftLimit";
783 case SpnValue::StickyFault_TALONFX_ForwardSoftLimit:
return "StickyFault_TALONFX_ForwardSoftLimit";
784 case SpnValue::ClearStickyFault_TALONFX_ForwardSoftLimit:
return "ClearStickyFault_TALONFX_ForwardSoftLimit";
785 case SpnValue::Fault_TALONFX_MissingRemSoftLim:
return "Fault_TALONFX_MissingRemSoftLim";
786 case SpnValue::StickyFault_TALONFX_MissingRemSoftLim:
return "StickyFault_TALONFX_MissingRemSoftLim";
787 case SpnValue::ClearStickyFault_TALONFX_MissingRemSoftLim:
return "ClearStickyFault_TALONFX_MissingRemSoftLim";
788 case SpnValue::Fault_TALONFX_MissingRemHardLim:
return "Fault_TALONFX_MissingRemHardLim";
789 case SpnValue::StickyFault_TALONFX_MissingRemHardLim:
return "StickyFault_TALONFX_MissingRemHardLim";
790 case SpnValue::ClearStickyFault_TALONFX_MissingRemHardLim:
return "ClearStickyFault_TALONFX_MissingRemHardLim";
791 case SpnValue::Fault_TALONFX_MissingRemoteSensor:
return "Fault_TALONFX_MissingRemoteSensor";
792 case SpnValue::StickyFault_TALONFX_MissingRemoteSensor:
return "StickyFault_TALONFX_MissingRemoteSensor";
793 case SpnValue::ClearStickyFault_TALONFX_MissingRemoteSensor:
return "ClearStickyFault_TALONFX_MissingRemoteSensor";
794 case SpnValue::Fault_TALONFX_FusedSensorOutOfSync:
return "Fault_TALONFX_FusedSensorOutOfSync";
795 case SpnValue::StickyFault_TALONFX_FusedSensorOutOfSync:
return "StickyFault_TALONFX_FusedSensorOutOfSync";
796 case SpnValue::ClearStickyFault_TALONFX_FusedSensorOutOfSync:
return "ClearStickyFault_TALONFX_FusedSensorOutOfSync";
797 case SpnValue::Fault_TALONFX_StatorCurrLimit:
return "Fault_TALONFX_StatorCurrLimit";
798 case SpnValue::StickyFault_TALONFX_StatorCurrLimit:
return "StickyFault_TALONFX_StatorCurrLimit";
799 case SpnValue::ClearStickyFault_TALONFX_StatorCurrLimit:
return "ClearStickyFault_TALONFX_StatorCurrLimit";
800 case SpnValue::Fault_TALONFX_SupplyCurrLimit:
return "Fault_TALONFX_SupplyCurrLimit";
801 case SpnValue::StickyFault_TALONFX_SupplyCurrLimit:
return "StickyFault_TALONFX_SupplyCurrLimit";
802 case SpnValue::ClearStickyFault_TALONFX_SupplyCurrLimit:
return "ClearStickyFault_TALONFX_SupplyCurrLimit";
803 case SpnValue::Fault_TALONFX_UsingFusedCCWhileUnlicensed:
return "Fault_TALONFX_UsingFusedCCWhileUnlicensed";
804 case SpnValue::StickyFault_TALONFX_UsingFusedCCWhileUnlicensed:
return "StickyFault_TALONFX_UsingFusedCCWhileUnlicensed";
805 case SpnValue::ClearStickyFault_TALONFX_UsingFusedCCWhileUnlicensed:
return "ClearStickyFault_TALONFX_UsingFusedCCWhileUnlicensed";
806 case SpnValue::Fault_TALONFX_StaticBrakeDisabled:
return "Fault_TALONFX_StaticBrakeDisabled";
807 case SpnValue::StickyFault_TALONFX_StaticBrakeDisabled:
return "StickyFault_TALONFX_StaticBrakeDisabled";
808 case SpnValue::ClearStickyFault_TALONFX_StaticBrakeDisabled:
return "ClearStickyFault_TALONFX_StaticBrakeDisabled";
810 return "Invalid Value";
819 std::string GetName()
const
823 case SpnValue::TalonFX_System_State:
return "System_State";
824 case SpnValue::Startup_ResetFlags:
return "ResetFlags";
825 case SpnValue::Version_Major:
return "VersionMajor";
826 case SpnValue::Version_Minor:
return "VersionMinor";
827 case SpnValue::Version_Bugfix:
return "VersionBugfix";
828 case SpnValue::Version_Build:
return "VersionBuild";
829 case SpnValue::Version_Full:
return "Version";
830 case SpnValue::Licensing_IsProLicensed:
return "IsPROLicensed";
831 case SpnValue::Licensing_IsSeasonPassed:
return "Licensing_IsSeasonPassed";
832 case SpnValue::CustomParam0:
return "CustomParam0";
833 case SpnValue::CustomParam1:
return "CustomParam1";
834 case SpnValue::CANcoder_SensorDirection:
return "SensorDirection";
835 case SpnValue::FrcLock:
return "FrcLock";
836 case SpnValue::RobotEnabled:
return "RobotEnable";
837 case SpnValue::LED1_OnColor:
return "Led1OnColor";
838 case SpnValue::LED1_OffColor:
return "Led1OffColor";
839 case SpnValue::LED2_OnColor:
return "Led2OnColor";
840 case SpnValue::LED2_OffColor:
return "Led2OffColor";
841 case SpnValue::AllFaults:
return "FaultField";
842 case SpnValue::AllStickyFaults:
return "StickyFaultField";
843 case SpnValue::Pigeon2UseCompass:
return "EnableCompass";
844 case SpnValue::Pigeon2DisableTemperatureCompensation:
return "DisableTemperatureCompensation";
845 case SpnValue::Pigeon2DisableNoMotionCalibration:
return "DisableNoMotionCalibration";
846 case SpnValue::Pigeon2MountPoseYaw:
return "MountPoseYaw";
847 case SpnValue::Pigeon2MountPosePitch:
return "MountPosePitch";
848 case SpnValue::Pigeon2MountPoseRoll:
return "MountPoseRoll";
849 case SpnValue::Pigeon2GyroScalarX:
return "GyroScalarX";
850 case SpnValue::Pigeon2GyroScalarY:
return "GyroScalarY";
851 case SpnValue::Pigeon2GyroScalarZ:
return "GyroScalarZ";
852 case SpnValue::Pigeon2Yaw:
return "Yaw";
853 case SpnValue::Pigeon2Pitch:
return "Pitch";
854 case SpnValue::Pigeon2Roll:
return "Roll";
855 case SpnValue::Pigeon2QuatW:
return "QuatW";
856 case SpnValue::Pigeon2QuatX:
return "QuatX";
857 case SpnValue::Pigeon2QuatY:
return "QuatY";
858 case SpnValue::Pigeon2QuatZ:
return "QuatZ";
859 case SpnValue::Pigeon2GravityVectorX:
return "GravityVectorX";
860 case SpnValue::Pigeon2GravityVectorY:
return "GravityVectorY";
861 case SpnValue::Pigeon2GravityVectorZ:
return "GravityVectorZ";
862 case SpnValue::Pigeon2Temperature:
return "Temperature";
863 case SpnValue::Pigeon2NoMotionCalEnabled:
return "NoMotionEnabled";
864 case SpnValue::Pigeon2NoMotionCount:
return "NoMotionCount";
865 case SpnValue::Pigeon2TempCompDisabled:
return "TemperatureCompensationDisabled";
866 case SpnValue::Pigeon2UpTime:
return "UpTime";
867 case SpnValue::Pigeon2AccumGyroX:
return "AccumGyroX";
868 case SpnValue::Pigeon2AccumGyroY:
return "AccumGyroY";
869 case SpnValue::Pigeon2AccumGyroZ:
return "AccumGyroZ";
870 case SpnValue::Pigeon2AngularVelocityXWorld:
return "AngularVelocityXWorld";
871 case SpnValue::Pigeon2AngularVelocityYWorld:
return "AngularVelocityYWorld";
872 case SpnValue::Pigeon2AngularVelocityZWorld:
return "AngularVelocityZWorld";
873 case SpnValue::Pigeon2AccelerationX:
return "AccelerationX";
874 case SpnValue::Pigeon2AccelerationY:
return "AccelerationY";
875 case SpnValue::Pigeon2AccelerationZ:
return "AccelerationZ";
876 case SpnValue::Pigeon2_SupplyVoltage:
return "SupplyVoltage";
877 case SpnValue::Pigeon2AngularVelocityX:
return "AngularVelocityXDevice";
878 case SpnValue::Pigeon2AngularVelocityY:
return "AngularVelocityYDevice";
879 case SpnValue::Pigeon2AngularVelocityZ:
return "AngularVelocityZDevice";
880 case SpnValue::Pigeon2MagneticFieldX:
return "MagneticFieldX";
881 case SpnValue::Pigeon2MagneticFieldY:
return "MagneticFieldY";
882 case SpnValue::Pigeon2MagneticFieldZ:
return "MagneticFieldZ";
883 case SpnValue::Pigeon2RawMagneticFieldX:
return "RawMagneticFieldX";
884 case SpnValue::Pigeon2RawMagneticFieldY:
return "RawMagneticFieldY";
885 case SpnValue::Pigeon2RawMagneticFieldZ:
return "RawMagneticFieldZ";
886 case SpnValue::CANCoder_MagnetOffset:
return "MagnetOffset";
887 case SpnValue::TalonFX_SetSensorPosition:
return "SetPosition";
888 case SpnValue::CANcoder_SetSensorPosition:
return "SetPosition";
889 case SpnValue::Pigeon2_SetYaw:
return "SetYaw";
890 case SpnValue::DeviceEnabled:
return "DeviceEnable";
891 case SpnValue::PRO_MotorOutput_MotorVoltage:
return "MotorVoltage";
892 case SpnValue::ForwardLimit:
return "ForwardLimit";
893 case SpnValue::ReverseLimit:
return "ReverseLimit";
894 case SpnValue::PRO_MotorOutput_RotorPolarity:
return "AppliedRotorPolarity";
895 case SpnValue::PRO_MotorOutput_DutyCycle:
return "DutyCycle";
896 case SpnValue::PRO_MotorOutput_TorqueCurrent:
return "TorqueCurrent";
897 case SpnValue::PRO_SupplyAndTemp_StatorCurrent:
return "StatorCurrent";
898 case SpnValue::PRO_SupplyAndTemp_SupplyCurrent:
return "SupplyCurrent";
899 case SpnValue::PRO_SupplyAndTemp_SupplyVoltage:
return "SupplyVoltage";
900 case SpnValue::PRO_SupplyAndTemp_DeviceTemp:
return "DeviceTemp";
901 case SpnValue::PRO_SupplyAndTemp_ProcessorTemp:
return "ProcessorTemp";
902 case SpnValue::PRO_RotorPosAndVel_Velocity:
return "RotorVelocity";
903 case SpnValue::PRO_RotorPosAndVel_Position:
return "RotorPosition";
904 case SpnValue::PRO_PosAndVel_Velocity:
return "Velocity";
905 case SpnValue::PRO_PosAndVel_Position:
return "Position";
906 case SpnValue::PRO_PosAndVel_Acceleration:
return "Acceleration";
907 case SpnValue::PRO_PIDStateEnables_IntegratedAccum_DC:
return "PIDDutyCycle_IntegratedAccum";
908 case SpnValue::PRO_PIDStateEnables_IntegratedAccum_V:
return "PIDMotorVoltage_IntegratedAccum";
909 case SpnValue::PRO_PIDStateEnables_IntegratedAccum_A:
return "PIDTorqueCurrent_IntegratedAccum";
910 case SpnValue::PRO_PIDStateEnables_FeedForward_DC:
return "PIDDutyCycle_FeedForward";
911 case SpnValue::PRO_PIDStateEnables_FeedForward_V:
return "PIDMotorVoltage_FeedForward";
912 case SpnValue::PRO_PIDStateEnables_FeedForward_A:
return "PIDTorqueCurrent_FeedForward";
913 case SpnValue::TalonFX_ControlMode:
return "ControlMode";
914 case SpnValue::PRO_PIDStateEnables_IsMotionMagicRunning:
return "MotionMagicIsRunning";
915 case SpnValue::PRO_PIDStateEnables_DeviceEnable:
return "DeviceEnable";
916 case SpnValue::PRO_PIDRefPIDErr_PIDRef_Position:
return "PIDPosition_Reference";
917 case SpnValue::PRO_PIDRefPIDErr_PIDRef_Velocity:
return "PIDVelocity_Reference";
918 case SpnValue::PRO_PIDRefPIDErr_PIDErr_Position:
return "PIDPosition_ClosedLoopError";
919 case SpnValue::PRO_PIDRefPIDErr_PIDErr_Velocity:
return "PIDVelocity_ClosedLoopError";
920 case SpnValue::PRO_PIDRefPIDErr_ClosedLoopMode:
return "PIDRefPIDErr_ClosedLoopMode";
921 case SpnValue::PRO_PIDOutput_PIDOutputMode:
return "PIDOutput_PIDOutputMode";
922 case SpnValue::PRO_PIDOutput_ProportionalOutput_DC:
return "PIDDutyCycle_ProportionalOutput";
923 case SpnValue::PRO_PIDOutput_ProportionalOutput_V:
return "PIDMotorVoltage_ProportionalOutput";
924 case SpnValue::PRO_PIDOutput_ProportionalOutput_A:
return "PIDTorqueCurrent_ProportionalOutput";
925 case SpnValue::PRO_PIDOutput_DerivativeOutput_DC:
return "PIDDutyCycle_DerivativeOutput";
926 case SpnValue::PRO_PIDOutput_DerivativeOutput_V:
return "PIDMotorVoltage_DerivativeOutput";
927 case SpnValue::PRO_PIDOutput_DerivativeOutput_A:
return "PIDTorqueCurrent_DerivativeOutput";
928 case SpnValue::PRO_PIDOutput_Output_DC:
return "PIDDutyCycle_Output";
929 case SpnValue::PRO_PIDOutput_Output_V:
return "PIDMotorVoltage_Output";
930 case SpnValue::PRO_PIDOutput_Output_A:
return "PIDTorqueCurrent_Output";
931 case SpnValue::PRO_PIDOutput_Slot:
return "ClosedLoopSlot";
932 case SpnValue::PRO_PIDRefSlopeECUTime_ReferenceSlope_Position:
return "PIDPosition_ReferenceSlope";
933 case SpnValue::PRO_PIDRefSlopeECUTime_ReferenceSlope_Velocity:
return "PIDVelocity_ReferenceSlope";
934 case SpnValue::PRO_PIDRefSlopeECUTime_ClosedLoopMode:
return "PIDRefSlopeECUTime_ClosedLoopMode";
935 case SpnValue::TalonFX_MotorOutputStatus:
return "MotorOutputStatus";
936 case SpnValue::PRO_MotorOutput_PIDState_Diff_DutyCycle:
return "DifferentialDutyCycle";
937 case SpnValue::PRO_MotorOutput_PIDState_Diff_TorqueCurrent:
return "DifferentialTorqueCurrent";
938 case SpnValue::TalonFX_DifferentialControlMode:
return "DifferentialControlMode";
939 case SpnValue::PRO_MotorOutput_PIDState_Diff_IntegratedAccum_DC:
return "Differential_PIDDutyCycle_IntegratedAccum";
940 case SpnValue::PRO_MotorOutput_PIDState_Diff_IntegratedAccum_V:
return "Differential_PIDMotorVoltage_IntegratedAccum";
941 case SpnValue::PRO_MotorOutput_PIDState_Diff_IntegratedAccum_A:
return "Differential_PIDTorqueCurrent_IntegratedAccum";
942 case SpnValue::PRO_MotorOutput_PIDState_Diff_FeedForward_DC:
return "Differential_PIDDutyCycle_FeedForward";
943 case SpnValue::PRO_MotorOutput_PIDState_Diff_FeedForward_V:
return "Differential_PIDMotorVoltage_FeedForward";
944 case SpnValue::PRO_MotorOutput_PIDState_Diff_FeedForward_A:
return "Differential_PIDTorqueCurrent_FeedForward";
945 case SpnValue::PRO_AvgPosAndVel_Velocity:
return "DifferentialAverageVelocity";
946 case SpnValue::PRO_AvgPosAndVel_Position:
return "DifferentialAveragePosition";
947 case SpnValue::PRO_DiffPosAndVel_Velocity:
return "DifferentialDifferenceVelocity";
948 case SpnValue::PRO_DiffPosAndVel_Position:
return "DifferentialDifferencePosition";
949 case SpnValue::PRO_DiffPIDRefPIDErr_PIDRef_Position:
return "Differential_PIDPosition_Reference";
950 case SpnValue::PRO_DiffPIDRefPIDErr_PIDRef_Velocity:
return "Differential_PIDVelocity_Reference";
951 case SpnValue::PRO_DiffPIDRefPIDErr_PIDErr_Position:
return "Differential_PIDPosition_ClosedLoopError";
952 case SpnValue::PRO_DiffPIDRefPIDErr_PIDErr_Velocity:
return "Differential_PIDVelocity_ClosedLoopError";
953 case SpnValue::PRO_DiffPIDRefPIDErr_ClosedLoopMode:
return "DiffPIDRefPIDErr_ClosedLoopMode";
954 case SpnValue::PRO_DiffPIDOutput_PIDOutputMode:
return "DiffPIDOutput_PIDOutputMode";
955 case SpnValue::PRO_DiffPIDOutput_ProportionalOutput_DC:
return "Differential_PIDDutyCycle_ProportionalOutput";
956 case SpnValue::PRO_DiffPIDOutput_ProportionalOutput_V:
return "Differential_PIDMotorVoltage_ProportionalOutput";
957 case SpnValue::PRO_DiffPIDOutput_ProportionalOutput_A:
return "Differential_PIDTorqueCurrent_ProportionalOutput";
958 case SpnValue::PRO_DiffPIDOutput_DerivativeOutput_DC:
return "Differential_PIDDutyCycle_DerivativeOutput";
959 case SpnValue::PRO_DiffPIDOutput_DerivativeOutput_V:
return "DiffPIDMotorVoltage_DerivativeOutput";
960 case SpnValue::PRO_DiffPIDOutput_DerivativeOutput_A:
return "Differential_PIDTorqueCurrent_DerivativeOutput";
961 case SpnValue::PRO_DiffPIDOutput_Output_DC:
return "Differential_PIDDutyCycle_Output";
962 case SpnValue::PRO_DiffPIDOutput_Output_V:
return "Differential_PIDMotorVoltage_Output";
963 case SpnValue::PRO_DiffPIDOutput_Output_A:
return "Differential_PIDTorqueCurrent_Output";
964 case SpnValue::PRO_DiffPIDOutput_Slot:
return "DifferentialClosedLoopSlot";
965 case SpnValue::PRO_DiffPIDRefSlopeECUTime_ReferenceSlope_Position:
return "Differential_PIDPosition_ReferenceSlope";
966 case SpnValue::PRO_DiffPIDRefSlopeECUTime_ReferenceSlope_Velocity:
return "Differential_PIDVelocity_ReferenceSlope";
967 case SpnValue::PRO_DiffPIDRefSlopeECUTime_ClosedLoopMode:
return "DiffPIDRefSlopeECUTime_ClosedLoopMode";
968 case SpnValue::TalonFX_MotorConstants_kT:
return "MotorKT";
969 case SpnValue::TalonFX_MotorConstants_kV:
return "MotorKV";
970 case SpnValue::TalonFX_MotorConstants_StallCurrent:
return "MotorStallCurrent";
971 case SpnValue::Slot0_kP:
return "kP";
972 case SpnValue::Slot0_kI:
return "kI";
973 case SpnValue::Slot0_kD:
return "kD";
974 case SpnValue::Slot0_kS:
return "kS";
975 case SpnValue::Slot0_kV:
return "kV";
976 case SpnValue::Slot0_kA:
return "kA";
977 case SpnValue::Slot0_kG:
return "kG";
978 case SpnValue::Slot0_kG_Type:
return "GravityType";
979 case SpnValue::Slot1_kP:
return "kP";
980 case SpnValue::Slot1_kI:
return "kI";
981 case SpnValue::Slot1_kD:
return "kD";
982 case SpnValue::Slot1_kS:
return "kS";
983 case SpnValue::Slot1_kV:
return "kV";
984 case SpnValue::Slot1_kA:
return "kA";
985 case SpnValue::Slot1_kG:
return "kG";
986 case SpnValue::Slot1_kG_Type:
return "GravityType";
987 case SpnValue::Slot2_kP:
return "kP";
988 case SpnValue::Slot2_kI:
return "kI";
989 case SpnValue::Slot2_kD:
return "kD";
990 case SpnValue::Slot2_kS:
return "kS";
991 case SpnValue::Slot2_kV:
return "kV";
992 case SpnValue::Slot2_kA:
return "kA";
993 case SpnValue::Slot2_kG:
return "kG";
994 case SpnValue::Slot2_kG_Type:
return "GravityType";
995 case SpnValue::Config_Inverted:
return "Inverted";
996 case SpnValue::Config_SupplyVLowpassTau:
return "SupplyVoltageTimeConstant";
997 case SpnValue::Config_BeepOnBoot:
return "BeepOnBoot";
998 case SpnValue::Config_NeutralMode:
return "NeutralMode";
999 case SpnValue::Config_DutyCycleNeutralDB:
return "DutyCycleNeutralDeadband";
1000 case SpnValue::Config_StatorCurrentLimit:
return "StatorCurrentLimit";
1001 case SpnValue::Config_StatorCurrLimitEn:
return "StatorCurrentLimitEnable";
1002 case SpnValue::Config_SupplyCurrentLimit:
return "SupplyCurrentLimit";
1003 case SpnValue::Config_SupplyCurrLimitEn:
return "SupplyCurrentLimitEnable";
1004 case SpnValue::Config_PeakForwardDC:
return "PeakForwardDutyCycle";
1005 case SpnValue::Config_PeakReverseDC:
return "PeakReverseDutyCycle";
1006 case SpnValue::Config_PeakForwardV:
return "PeakForwardVoltage";
1007 case SpnValue::Config_PeakReverseV:
return "PeakReverseVoltage";
1008 case SpnValue::Config_PeakForTorqCurr:
return "PeakForwardTorqueCurrent";
1009 case SpnValue::Config_PeakRevTorqCurr:
return "PeakReverseTorqueCurrent";
1010 case SpnValue::Config_TorqueNeutralDB:
return "TorqueNeutralDeadband";
1011 case SpnValue::Config_FeedbackRotorOffset:
return "FeedbackRotorOffset";
1012 case SpnValue::Config_SensorToMechanismRatio:
return "SensorToMechanismRatio";
1013 case SpnValue::Config_RotorToSensorRatio:
return "RotorToSensorRatio";
1014 case SpnValue::Config_FeedbackSensorSource:
return "FeedbackSensorSource";
1015 case SpnValue::Config_FeedbackRemoteSensorID:
return "FeedbackRemoteSensorID";
1016 case SpnValue::Config_DutyCycleOpenLoopRampPeriod:
return "DutyCycleOpenLoopRampPeriod";
1017 case SpnValue::Config_VoltageOpenLoopRampPeriod:
return "VoltageOpenLoopRampPeriod";
1018 case SpnValue::Config_TorqueOpenLoopRampPeriod:
return "TorqueOpenLoopRampPeriod";
1019 case SpnValue::Config_DutyCycleClosedLoopRampPeriod:
return "DutyCycleClosedLoopRampPeriod";
1020 case SpnValue::Config_VoltageClosedLoopRampPeriod:
return "VoltageClosedLoopRampPeriod";
1021 case SpnValue::Config_TorqueClosedLoopRampPeriod:
return "TorqueClosedLoopRampPeriod";
1022 case SpnValue::Config_ForwardLimitType:
return "ForwardLimitType";
1023 case SpnValue::Config_ForwardLimitAutosetPosEnable:
return "ForwardLimitAutosetPositionEnable";
1024 case SpnValue::Config_ForwardLimitAutosetPosValue:
return "ForwardLimitAutosetPositionValue";
1025 case SpnValue::Config_ForwardLimitEnable:
return "ForwardLimitEnable";
1026 case SpnValue::Config_ForwardLimitSource:
return "ForwardLimitSource";
1027 case SpnValue::Config_ForwardLimitRemoteSensorID:
return "ForwardLimitRemoteSensorID";
1028 case SpnValue::Config_ReverseLimitType:
return "ReverseLimitType";
1029 case SpnValue::Config_ReverseLimitAutosetPosEnable:
return "ReverseLimitAutosetPositionEnable";
1030 case SpnValue::Config_ReverseLimitAutosetPosValue:
return "ReverseLimitAutosetPositionValue";
1031 case SpnValue::Config_ReverseLimitEnable:
return "ReverseLimitEnable";
1032 case SpnValue::Config_ReverseLimitSource:
return "ReverseLimitSource";
1033 case SpnValue::Config_ReverseLimitRemoteSensorID:
return "ReverseLimitRemoteSensorID";
1034 case SpnValue::Config_ForwardSoftLimitEnable:
return "ForwardSoftLimitEnable";
1035 case SpnValue::Config_ReverseSoftLimitEnable:
return "ReverseSoftLimitEnable";
1036 case SpnValue::Config_ForwardSoftLimitThreshold:
return "ForwardSoftLimitThreshold";
1037 case SpnValue::Config_ReverseSoftLimitThreshold:
return "ReverseSoftLimitThreshold";
1038 case SpnValue::Config_MotionMagicCruiseVelocity:
return "MotionMagicCruiseVelocity";
1039 case SpnValue::Config_MotionMagicAcceleration:
return "MotionMagicAcceleration";
1040 case SpnValue::Config_MotionMagicJerk:
return "MotionMagicJerk";
1041 case SpnValue::Config_MotionMagicExpo_kV:
return "MotionMagicExpo_kV";
1042 case SpnValue::Config_MotionMagicExpo_kA:
return "MotionMagicExpo_kA";
1043 case SpnValue::Config_PeakDiffDC:
return "PeakDifferentialDutyCycle";
1044 case SpnValue::Config_PeakDiffV:
return "PeakDifferentialVoltage";
1045 case SpnValue::Config_PeakDiffTorqCurr:
return "PeakDifferentialTorqueCurrent";
1046 case SpnValue::CANcoder_Velocity:
return "Velocity";
1047 case SpnValue::CANcoder_Position:
return "Position";
1048 case SpnValue::CANcoder_AbsPosition:
return "AbsolutePosition";
1049 case SpnValue::CANCoder_RawVel:
return "UnfilteredVelocity";
1050 case SpnValue::CANCoder_RawPos:
return "PositionSinceBoot";
1051 case SpnValue::CANCoder_SupplyVoltage:
return "SupplyVoltage";
1052 case SpnValue::CANcoder_MagHealth:
return "MagnetHealth";
1053 case SpnValue::SPN_ClearStickyFaults:
return "ClearStickyFaults";
1054 case SpnValue::PRO_MotorOutput_BridgeType_Public:
return "BridgeOutput";
1055 case SpnValue::Config_ContinuousWrap:
return "ContinuousWrap";
1056 case SpnValue::Config_SupplyCurrentLowerLimit:
return "SupplyCurrentLowerLimit";
1057 case SpnValue::Config_SupplyCurrentLowerTime:
return "SupplyCurrentLowerTime";
1058 case SpnValue::Config_DifferentialSensorSource:
return "DifferentialSensorSource";
1059 case SpnValue::Config_DifferentialTalonFXSensorID:
return "DifferentialTalonFXSensorID";
1060 case SpnValue::Config_DifferentialRemoteSensorID:
return "DifferentialRemoteSensorID";
1061 case SpnValue::Config_BeepOnConfig:
return "BeepOnConfig";
1062 case SpnValue::Config_AllowMusicDurDisable:
return "AllowMusicDurDisable";
1063 case SpnValue::Compliancy_Version:
return "Compliancy";
1064 case SpnValue::Version_IsProLicensed:
return "IsProLicensed";
1065 case SpnValue::PRO_SupplyAndTemp_DeviceTemp2:
return "AncillaryDeviceTemp";
1066 case SpnValue::Slot0_kS_Sign:
return "StaticFeedforwardSign";
1067 case SpnValue::Slot1_kS_Sign:
return "StaticFeedforwardSign";
1068 case SpnValue::Slot2_kS_Sign:
return "StaticFeedforwardSign";
1069 case SpnValue::TalonFX_ConnectedMotor:
return "ConnectedMotor";
1070 case SpnValue::CANrange_SupplyVoltage:
return "SupplyVoltage";
1071 case SpnValue::CANrange_Distance_Meters:
return "Distance";
1072 case SpnValue::CANrange_MeasTime:
return "MeasurementTime";
1073 case SpnValue::CANrange_SignalStrength:
return "SignalStrength";
1074 case SpnValue::CANrange_ProximityDetected:
return "IsDetected";
1075 case SpnValue::CANrange_MeasState:
return "MeasurementHealth";
1076 case SpnValue::CANrange_AmbientSignal:
return "AmbientSignal";
1077 case SpnValue::CANrange_DistanceStdDev:
return "DistanceStdDev";
1078 case SpnValue::CANrange_RealFOVCenterX:
return "RealFOVCenterX";
1079 case SpnValue::CANrange_RealFOVCenterY:
return "RealFOVCenterY";
1080 case SpnValue::CANrange_RealFOVRangeX:
return "RealFOVRangeX";
1081 case SpnValue::CANrange_RealFOVRangeY:
return "RealFOVRangeY";
1082 case SpnValue::CANrange_UpdateMode:
return "UpdateMode";
1083 case SpnValue::CANrange_UpdateFreq:
return "UpdateFrequency";
1084 case SpnValue::CANrange_ProximityThreshold:
return "ProximityThreshold";
1085 case SpnValue::CANrange_ProximityHysteresis:
return "ProximityHysteresis";
1086 case SpnValue::CANrange_MinSigStrengthForValidMeas:
return "MinSignalStrengthForValidMeasurement";
1087 case SpnValue::CANrange_FOVCenterX:
return "FOVCenterX";
1088 case SpnValue::CANrange_FOVCenterY:
return "FOVCenterY";
1089 case SpnValue::CANrange_FOVRangeX:
return "FOVRangeX";
1090 case SpnValue::CANrange_FOVRangeY:
return "FOVRangeY";
1091 case SpnValue::Config_ControlTimesyncFreq:
return "ControlTimesyncFreqHz";
1092 case SpnValue::Config_VelocityFilterTimeConstant:
return "VelocityFilterTimeConstant";
1093 case SpnValue::Config_AbsoluteSensorDiscontinuityPoint:
return "AbsoluteSensorDiscontinuityPoint";
1094 case SpnValue::Fault_Hardware:
return "Fault_Hardware";
1095 case SpnValue::StickyFault_Hardware:
return "StickyFault_Hardware";
1096 case SpnValue::ClearStickyFault_Hardware:
return "ClearStickyFault_Hardware";
1097 case SpnValue::Fault_ProcTemp:
return "Fault_ProcTemp";
1098 case SpnValue::StickyFault_ProcTemp:
return "StickyFault_ProcTemp";
1099 case SpnValue::ClearStickyFault_ProcTemp:
return "ClearStickyFault_ProcTemp";
1100 case SpnValue::Fault_DeviceTemp:
return "Fault_DeviceTemp";
1101 case SpnValue::StickyFault_DeviceTemp:
return "StickyFault_DeviceTemp";
1102 case SpnValue::ClearStickyFault_DeviceTemp:
return "ClearStickyFault_DeviceTemp";
1103 case SpnValue::Fault_Undervoltage:
return "Fault_Undervoltage";
1104 case SpnValue::StickyFault_Undervoltage:
return "StickyFault_Undervoltage";
1105 case SpnValue::ClearStickyFault_Undervoltage:
return "ClearStickyFault_Undervoltage";
1106 case SpnValue::Fault_BootDuringEnable:
return "Fault_BootDuringEnable";
1107 case SpnValue::StickyFault_BootDuringEnable:
return "StickyFault_BootDuringEnable";
1108 case SpnValue::ClearStickyFault_BootDuringEnable:
return "ClearStickyFault_BootDuringEnable";
1109 case SpnValue::Fault_UnlicensedFeatureInUse:
return "Fault_UnlicensedFeatureInUse";
1110 case SpnValue::StickyFault_UnlicensedFeatureInUse:
return "StickyFault_UnlicensedFeatureInUse";
1111 case SpnValue::ClearStickyFault_UnlicensedFeatureInUse:
return "ClearStickyFault_UnlicensedFeatureInUse";
1112 case SpnValue::Fault_PIGEON2_BootupAccel:
return "Fault_BootupAccelerometer";
1113 case SpnValue::StickyFault_PIGEON2_BootupAccel:
return "StickyFault_BootupAccelerometer";
1114 case SpnValue::ClearStickyFault_PIGEON2_BootupAccel:
return "ClearStickyFault_BootupAccelerometer";
1115 case SpnValue::Fault_PIGEON2_BootupGyros:
return "Fault_BootupGyroscope";
1116 case SpnValue::StickyFault_PIGEON2_BootupGyros:
return "StickyFault_BootupGyroscope";
1117 case SpnValue::ClearStickyFault_PIGEON2_BootupGyros:
return "ClearStickyFault_BootupGyroscope";
1118 case SpnValue::Fault_PIGEON2_BootupMagne:
return "Fault_BootupMagnetometer";
1119 case SpnValue::StickyFault_PIGEON2_BootupMagne:
return "StickyFault_BootupMagnetometer";
1120 case SpnValue::ClearStickyFault_PIGEON2_BootupMagne:
return "ClearStickyFault_BootupMagnetometer";
1121 case SpnValue::Fault_PIGEON2_BootIntoMotion:
return "Fault_BootIntoMotion";
1122 case SpnValue::StickyFault_PIGEON2_BootIntoMotion:
return "StickyFault_BootIntoMotion";
1123 case SpnValue::ClearStickyFault_PIGEON2_BootIntoMotion:
return "ClearStickyFault_BootIntoMotion";
1124 case SpnValue::Fault_PIGEON2_DataAcquiredLate:
return "Fault_DataAcquiredLate";
1125 case SpnValue::StickyFault_PIGEON2_DataAcquiredLate:
return "StickyFault_DataAcquiredLate";
1126 case SpnValue::ClearStickyFault_PIGEON2_DataAcquiredLate:
return "ClearStickyFault_DataAcquiredLate";
1127 case SpnValue::Fault_PIGEON2_LoopTimeSlow:
return "Fault_LoopTimeSlow";
1128 case SpnValue::StickyFault_PIGEON2_LoopTimeSlow:
return "StickyFault_LoopTimeSlow";
1129 case SpnValue::ClearStickyFault_PIGEON2_LoopTimeSlow:
return "ClearStickyFault_LoopTimeSlow";
1130 case SpnValue::Fault_PIGEON2_SaturatedMagne:
return "Fault_SaturatedMagnetometer";
1131 case SpnValue::StickyFault_PIGEON2_SaturatedMagne:
return "StickyFault_SaturatedMagnetometer";
1132 case SpnValue::ClearStickyFault_PIGEON2_SaturatedMagne:
return "ClearStickyFault_SaturatedMagnetometer";
1133 case SpnValue::Fault_PIGEON2_SaturatedAccel:
return "Fault_SaturatedAccelerometer";
1134 case SpnValue::StickyFault_PIGEON2_SaturatedAccel:
return "StickyFault_SaturatedAccelerometer";
1135 case SpnValue::ClearStickyFault_PIGEON2_SaturatedAccel:
return "ClearStickyFault_SaturatedAccelerometer";
1136 case SpnValue::Fault_PIGEON2_SaturatedGyros:
return "Fault_SaturatedGyroscope";
1137 case SpnValue::StickyFault_PIGEON2_SaturatedGyros:
return "StickyFault_SaturatedGyroscope";
1138 case SpnValue::ClearStickyFault_PIGEON2_SaturatedGyros:
return "ClearStickyFault_SaturatedGyroscope";
1139 case SpnValue::Fault_CANCODER_BadMagnet:
return "Fault_BadMagnet";
1140 case SpnValue::StickyFault_CANCODER_BadMagnet:
return "StickyFault_BadMagnet";
1141 case SpnValue::ClearStickyFault_CANCODER_BadMagnet:
return "ClearStickyFault_BadMagnet";
1142 case SpnValue::Fault_TALONFX_BridgeBrownout:
return "Fault_BridgeBrownout";
1143 case SpnValue::StickyFault_TALONFX_BridgeBrownout:
return "StickyFault_BridgeBrownout";
1144 case SpnValue::ClearStickyFault_TALONFX_BridgeBrownout:
return "ClearStickyFault_BridgeBrownout";
1145 case SpnValue::Fault_TALONFX_RemoteSensorReset:
return "Fault_RemoteSensorReset";
1146 case SpnValue::StickyFault_TALONFX_RemoteSensorReset:
return "StickyFault_RemoteSensorReset";
1147 case SpnValue::ClearStickyFault_TALONFX_RemoteSensorReset:
return "ClearStickyFault_RemoteSensorReset";
1148 case SpnValue::Fault_TALONFX_MissingDifferentialFX:
return "Fault_MissingDifferentialFX";
1149 case SpnValue::StickyFault_TALONFX_MissingDifferentialFX:
return "StickyFault_MissingDifferentialFX";
1150 case SpnValue::ClearStickyFault_TALONFX_MissingDifferentialFX:
return "ClearStickyFault_MissingDifferentialFX";
1151 case SpnValue::Fault_TALONFX_RemoteSensorPosOverflow:
return "Fault_RemoteSensorPosOverflow";
1152 case SpnValue::StickyFault_TALONFX_RemoteSensorPosOverflow:
return "StickyFault_RemoteSensorPosOverflow";
1153 case SpnValue::ClearStickyFault_TALONFX_RemoteSensorPosOverflow:
return "ClearStickyFault_RemoteSensorPosOverflow";
1154 case SpnValue::Fault_TALONFX_OverSupplyV:
return "Fault_OverSupplyV";
1155 case SpnValue::StickyFault_TALONFX_OverSupplyV:
return "StickyFault_OverSupplyV";
1156 case SpnValue::ClearStickyFault_TALONFX_OverSupplyV:
return "ClearStickyFault_OverSupplyV";
1157 case SpnValue::Fault_TALONFX_UnstableSupplyV:
return "Fault_UnstableSupplyV";
1158 case SpnValue::StickyFault_TALONFX_UnstableSupplyV:
return "StickyFault_UnstableSupplyV";
1159 case SpnValue::ClearStickyFault_TALONFX_UnstableSupplyV:
return "ClearStickyFault_UnstableSupplyV";
1160 case SpnValue::Fault_TALONFX_ReverseHardLimit:
return "Fault_ReverseHardLimit";
1161 case SpnValue::StickyFault_TALONFX_ReverseHardLimit:
return "StickyFault_ReverseHardLimit";
1162 case SpnValue::ClearStickyFault_TALONFX_ReverseHardLimit:
return "ClearStickyFault_ReverseHardLimit";
1163 case SpnValue::Fault_TALONFX_ForwardHardLimit:
return "Fault_ForwardHardLimit";
1164 case SpnValue::StickyFault_TALONFX_ForwardHardLimit:
return "StickyFault_ForwardHardLimit";
1165 case SpnValue::ClearStickyFault_TALONFX_ForwardHardLimit:
return "ClearStickyFault_ForwardHardLimit";
1166 case SpnValue::Fault_TALONFX_ReverseSoftLimit:
return "Fault_ReverseSoftLimit";
1167 case SpnValue::StickyFault_TALONFX_ReverseSoftLimit:
return "StickyFault_ReverseSoftLimit";
1168 case SpnValue::ClearStickyFault_TALONFX_ReverseSoftLimit:
return "ClearStickyFault_ReverseSoftLimit";
1169 case SpnValue::Fault_TALONFX_ForwardSoftLimit:
return "Fault_ForwardSoftLimit";
1170 case SpnValue::StickyFault_TALONFX_ForwardSoftLimit:
return "StickyFault_ForwardSoftLimit";
1171 case SpnValue::ClearStickyFault_TALONFX_ForwardSoftLimit:
return "ClearStickyFault_ForwardSoftLimit";
1172 case SpnValue::Fault_TALONFX_MissingRemSoftLim:
return "Fault_MissingSoftLimitRemote";
1173 case SpnValue::StickyFault_TALONFX_MissingRemSoftLim:
return "StickyFault_MissingSoftLimitRemote";
1174 case SpnValue::ClearStickyFault_TALONFX_MissingRemSoftLim:
return "ClearStickyFault_MissingSoftLimitRemote";
1175 case SpnValue::Fault_TALONFX_MissingRemHardLim:
return "Fault_MissingHardLimitRemote";
1176 case SpnValue::StickyFault_TALONFX_MissingRemHardLim:
return "StickyFault_MissingHardLimitRemote";
1177 case SpnValue::ClearStickyFault_TALONFX_MissingRemHardLim:
return "ClearStickyFault_MissingHardLimitRemote";
1178 case SpnValue::Fault_TALONFX_MissingRemoteSensor:
return "Fault_RemoteSensorDataInvalid";
1179 case SpnValue::StickyFault_TALONFX_MissingRemoteSensor:
return "StickyFault_RemoteSensorDataInvalid";
1180 case SpnValue::ClearStickyFault_TALONFX_MissingRemoteSensor:
return "ClearStickyFault_RemoteSensorDataInvalid";
1181 case SpnValue::Fault_TALONFX_FusedSensorOutOfSync:
return "Fault_FusedSensorOutOfSync";
1182 case SpnValue::StickyFault_TALONFX_FusedSensorOutOfSync:
return "StickyFault_FusedSensorOutOfSync";
1183 case SpnValue::ClearStickyFault_TALONFX_FusedSensorOutOfSync:
return "ClearStickyFault_FusedSensorOutOfSync";
1184 case SpnValue::Fault_TALONFX_StatorCurrLimit:
return "Fault_StatorCurrLimit";
1185 case SpnValue::StickyFault_TALONFX_StatorCurrLimit:
return "StickyFault_StatorCurrLimit";
1186 case SpnValue::ClearStickyFault_TALONFX_StatorCurrLimit:
return "ClearStickyFault_StatorCurrLimit";
1187 case SpnValue::Fault_TALONFX_SupplyCurrLimit:
return "Fault_SupplyCurrLimit";
1188 case SpnValue::StickyFault_TALONFX_SupplyCurrLimit:
return "StickyFault_SupplyCurrLimit";
1189 case SpnValue::ClearStickyFault_TALONFX_SupplyCurrLimit:
return "ClearStickyFault_SupplyCurrLimit";
1190 case SpnValue::Fault_TALONFX_UsingFusedCCWhileUnlicensed:
return "Fault_UsingFusedCANcoderWhileUnlicensed";
1191 case SpnValue::StickyFault_TALONFX_UsingFusedCCWhileUnlicensed:
return "StickyFault_UsingFusedCANcoderWhileUnlicensed";
1192 case SpnValue::ClearStickyFault_TALONFX_UsingFusedCCWhileUnlicensed:
return "ClearStickyFault_UsingFusedCANcoderWhileUnlicensed";
1193 case SpnValue::Fault_TALONFX_StaticBrakeDisabled:
return "Fault_StaticBrakeDisabled";
1194 case SpnValue::StickyFault_TALONFX_StaticBrakeDisabled:
return "StickyFault_StaticBrakeDisabled";
1195 case SpnValue::ClearStickyFault_TALONFX_StaticBrakeDisabled:
return "ClearStickyFault_StaticBrakeDisabled";
1197 return "Invalid Value";
1206 std::string GetUnits()
const
1210 case SpnValue::TalonFX_System_State:
return "";
1211 case SpnValue::Startup_ResetFlags:
return "";
1212 case SpnValue::Version_Major:
return "";
1213 case SpnValue::Version_Minor:
return "";
1214 case SpnValue::Version_Bugfix:
return "";
1215 case SpnValue::Version_Build:
return "";
1216 case SpnValue::Version_Full:
return "";
1217 case SpnValue::Licensing_IsProLicensed:
return "";
1218 case SpnValue::Licensing_IsSeasonPassed:
return "";
1219 case SpnValue::CustomParam0:
return "";
1220 case SpnValue::CustomParam1:
return "";
1221 case SpnValue::CANcoder_SensorDirection:
return "";
1222 case SpnValue::FrcLock:
return "";
1223 case SpnValue::RobotEnabled:
return "";
1224 case SpnValue::LED1_OnColor:
return "";
1225 case SpnValue::LED1_OffColor:
return "";
1226 case SpnValue::LED2_OnColor:
return "";
1227 case SpnValue::LED2_OffColor:
return "";
1228 case SpnValue::AllFaults:
return "";
1229 case SpnValue::AllStickyFaults:
return "";
1230 case SpnValue::Pigeon2UseCompass:
return "";
1231 case SpnValue::Pigeon2DisableTemperatureCompensation:
return "";
1232 case SpnValue::Pigeon2DisableNoMotionCalibration:
return "";
1233 case SpnValue::Pigeon2MountPoseYaw:
return "deg";
1234 case SpnValue::Pigeon2MountPosePitch:
return "deg";
1235 case SpnValue::Pigeon2MountPoseRoll:
return "deg";
1236 case SpnValue::Pigeon2GyroScalarX:
return "deg per rotation";
1237 case SpnValue::Pigeon2GyroScalarY:
return "deg per rotation";
1238 case SpnValue::Pigeon2GyroScalarZ:
return "deg per rotation";
1239 case SpnValue::Pigeon2Yaw:
return "deg";
1240 case SpnValue::Pigeon2Pitch:
return "deg";
1241 case SpnValue::Pigeon2Roll:
return "deg";
1242 case SpnValue::Pigeon2QuatW:
return "";
1243 case SpnValue::Pigeon2QuatX:
return "";
1244 case SpnValue::Pigeon2QuatY:
return "";
1245 case SpnValue::Pigeon2QuatZ:
return "";
1246 case SpnValue::Pigeon2GravityVectorX:
return "";
1247 case SpnValue::Pigeon2GravityVectorY:
return "";
1248 case SpnValue::Pigeon2GravityVectorZ:
return "";
1249 case SpnValue::Pigeon2Temperature:
return "℃";
1250 case SpnValue::Pigeon2NoMotionCalEnabled:
return "";
1251 case SpnValue::Pigeon2NoMotionCount:
return "";
1252 case SpnValue::Pigeon2TempCompDisabled:
return "";
1253 case SpnValue::Pigeon2UpTime:
return "s";
1254 case SpnValue::Pigeon2AccumGyroX:
return "deg";
1255 case SpnValue::Pigeon2AccumGyroY:
return "deg";
1256 case SpnValue::Pigeon2AccumGyroZ:
return "deg";
1257 case SpnValue::Pigeon2AngularVelocityXWorld:
return "dps";
1258 case SpnValue::Pigeon2AngularVelocityYWorld:
return "dps";
1259 case SpnValue::Pigeon2AngularVelocityZWorld:
return "dps";
1260 case SpnValue::Pigeon2AccelerationX:
return "g";
1261 case SpnValue::Pigeon2AccelerationY:
return "g";
1262 case SpnValue::Pigeon2AccelerationZ:
return "g";
1263 case SpnValue::Pigeon2_SupplyVoltage:
return "V";
1264 case SpnValue::Pigeon2AngularVelocityX:
return "dps";
1265 case SpnValue::Pigeon2AngularVelocityY:
return "dps";
1266 case SpnValue::Pigeon2AngularVelocityZ:
return "dps";
1267 case SpnValue::Pigeon2MagneticFieldX:
return "uT";
1268 case SpnValue::Pigeon2MagneticFieldY:
return "uT";
1269 case SpnValue::Pigeon2MagneticFieldZ:
return "uT";
1270 case SpnValue::Pigeon2RawMagneticFieldX:
return "uT";
1271 case SpnValue::Pigeon2RawMagneticFieldY:
return "uT";
1272 case SpnValue::Pigeon2RawMagneticFieldZ:
return "uT";
1273 case SpnValue::CANCoder_MagnetOffset:
return "rotations";
1274 case SpnValue::TalonFX_SetSensorPosition:
return "rotations";
1275 case SpnValue::CANcoder_SetSensorPosition:
return "rotations";
1276 case SpnValue::Pigeon2_SetYaw:
return "deg";
1277 case SpnValue::DeviceEnabled:
return "";
1278 case SpnValue::PRO_MotorOutput_MotorVoltage:
return "V";
1279 case SpnValue::ForwardLimit:
return "";
1280 case SpnValue::ReverseLimit:
return "";
1281 case SpnValue::PRO_MotorOutput_RotorPolarity:
return "";
1282 case SpnValue::PRO_MotorOutput_DutyCycle:
return "fractional";
1283 case SpnValue::PRO_MotorOutput_TorqueCurrent:
return "A";
1284 case SpnValue::PRO_SupplyAndTemp_StatorCurrent:
return "A";
1285 case SpnValue::PRO_SupplyAndTemp_SupplyCurrent:
return "A";
1286 case SpnValue::PRO_SupplyAndTemp_SupplyVoltage:
return "V";
1287 case SpnValue::PRO_SupplyAndTemp_DeviceTemp:
return "℃";
1288 case SpnValue::PRO_SupplyAndTemp_ProcessorTemp:
return "℃";
1289 case SpnValue::PRO_RotorPosAndVel_Velocity:
return "rotations per second";
1290 case SpnValue::PRO_RotorPosAndVel_Position:
return "rotations";
1291 case SpnValue::PRO_PosAndVel_Velocity:
return "rotations per second";
1292 case SpnValue::PRO_PosAndVel_Position:
return "rotations";
1293 case SpnValue::PRO_PosAndVel_Acceleration:
return "rotations per second²";
1294 case SpnValue::PRO_PIDStateEnables_IntegratedAccum_DC:
return "fractional";
1295 case SpnValue::PRO_PIDStateEnables_IntegratedAccum_V:
return "V";
1296 case SpnValue::PRO_PIDStateEnables_IntegratedAccum_A:
return "A";
1297 case SpnValue::PRO_PIDStateEnables_FeedForward_DC:
return "fractional";
1298 case SpnValue::PRO_PIDStateEnables_FeedForward_V:
return "V";
1299 case SpnValue::PRO_PIDStateEnables_FeedForward_A:
return "A";
1300 case SpnValue::TalonFX_ControlMode:
return "";
1301 case SpnValue::PRO_PIDStateEnables_IsMotionMagicRunning:
return "";
1302 case SpnValue::PRO_PIDStateEnables_DeviceEnable:
return "";
1303 case SpnValue::PRO_PIDRefPIDErr_PIDRef_Position:
return "rotations";
1304 case SpnValue::PRO_PIDRefPIDErr_PIDRef_Velocity:
return "rotations per second";
1305 case SpnValue::PRO_PIDRefPIDErr_PIDErr_Position:
return "rotations";
1306 case SpnValue::PRO_PIDRefPIDErr_PIDErr_Velocity:
return "rotations per second";
1307 case SpnValue::PRO_PIDRefPIDErr_ClosedLoopMode:
return "";
1308 case SpnValue::PRO_PIDOutput_PIDOutputMode:
return "";
1309 case SpnValue::PRO_PIDOutput_ProportionalOutput_DC:
return "fractional";
1310 case SpnValue::PRO_PIDOutput_ProportionalOutput_V:
return "V";
1311 case SpnValue::PRO_PIDOutput_ProportionalOutput_A:
return "A";
1312 case SpnValue::PRO_PIDOutput_DerivativeOutput_DC:
return "fractional";
1313 case SpnValue::PRO_PIDOutput_DerivativeOutput_V:
return "V";
1314 case SpnValue::PRO_PIDOutput_DerivativeOutput_A:
return "A";
1315 case SpnValue::PRO_PIDOutput_Output_DC:
return "fractional";
1316 case SpnValue::PRO_PIDOutput_Output_V:
return "V";
1317 case SpnValue::PRO_PIDOutput_Output_A:
return "A";
1318 case SpnValue::PRO_PIDOutput_Slot:
return "";
1319 case SpnValue::PRO_PIDRefSlopeECUTime_ReferenceSlope_Position:
return "rotations per second";
1320 case SpnValue::PRO_PIDRefSlopeECUTime_ReferenceSlope_Velocity:
return "rotations per second²";
1321 case SpnValue::PRO_PIDRefSlopeECUTime_ClosedLoopMode:
return "";
1322 case SpnValue::TalonFX_MotorOutputStatus:
return "";
1323 case SpnValue::PRO_MotorOutput_PIDState_Diff_DutyCycle:
return "fractional";
1324 case SpnValue::PRO_MotorOutput_PIDState_Diff_TorqueCurrent:
return "A";
1325 case SpnValue::TalonFX_DifferentialControlMode:
return "";
1326 case SpnValue::PRO_MotorOutput_PIDState_Diff_IntegratedAccum_DC:
return "fractional";
1327 case SpnValue::PRO_MotorOutput_PIDState_Diff_IntegratedAccum_V:
return "V";
1328 case SpnValue::PRO_MotorOutput_PIDState_Diff_IntegratedAccum_A:
return "A";
1329 case SpnValue::PRO_MotorOutput_PIDState_Diff_FeedForward_DC:
return "fractional";
1330 case SpnValue::PRO_MotorOutput_PIDState_Diff_FeedForward_V:
return "V";
1331 case SpnValue::PRO_MotorOutput_PIDState_Diff_FeedForward_A:
return "A";
1332 case SpnValue::PRO_AvgPosAndVel_Velocity:
return "rotations per second";
1333 case SpnValue::PRO_AvgPosAndVel_Position:
return "rotations";
1334 case SpnValue::PRO_DiffPosAndVel_Velocity:
return "rotations per second";
1335 case SpnValue::PRO_DiffPosAndVel_Position:
return "rotations";
1336 case SpnValue::PRO_DiffPIDRefPIDErr_PIDRef_Position:
return "rotations";
1337 case SpnValue::PRO_DiffPIDRefPIDErr_PIDRef_Velocity:
return "rotations per second";
1338 case SpnValue::PRO_DiffPIDRefPIDErr_PIDErr_Position:
return "rotations";
1339 case SpnValue::PRO_DiffPIDRefPIDErr_PIDErr_Velocity:
return "rotations per second";
1340 case SpnValue::PRO_DiffPIDRefPIDErr_ClosedLoopMode:
return "";
1341 case SpnValue::PRO_DiffPIDOutput_PIDOutputMode:
return "";
1342 case SpnValue::PRO_DiffPIDOutput_ProportionalOutput_DC:
return "fractional";
1343 case SpnValue::PRO_DiffPIDOutput_ProportionalOutput_V:
return "V";
1344 case SpnValue::PRO_DiffPIDOutput_ProportionalOutput_A:
return "A";
1345 case SpnValue::PRO_DiffPIDOutput_DerivativeOutput_DC:
return "fractional";
1346 case SpnValue::PRO_DiffPIDOutput_DerivativeOutput_V:
return "V";
1347 case SpnValue::PRO_DiffPIDOutput_DerivativeOutput_A:
return "A";
1348 case SpnValue::PRO_DiffPIDOutput_Output_DC:
return "fractional";
1349 case SpnValue::PRO_DiffPIDOutput_Output_V:
return "V";
1350 case SpnValue::PRO_DiffPIDOutput_Output_A:
return "A";
1351 case SpnValue::PRO_DiffPIDOutput_Slot:
return "";
1352 case SpnValue::PRO_DiffPIDRefSlopeECUTime_ReferenceSlope_Position:
return "rotations per second";
1353 case SpnValue::PRO_DiffPIDRefSlopeECUTime_ReferenceSlope_Velocity:
return "rotations per second²";
1354 case SpnValue::PRO_DiffPIDRefSlopeECUTime_ClosedLoopMode:
return "";
1355 case SpnValue::TalonFX_MotorConstants_kT:
return "Nm/A";
1356 case SpnValue::TalonFX_MotorConstants_kV:
return "RPM/V";
1357 case SpnValue::TalonFX_MotorConstants_StallCurrent:
return "A";
1358 case SpnValue::Slot0_kP:
return "";
1359 case SpnValue::Slot0_kI:
return "";
1360 case SpnValue::Slot0_kD:
return "";
1361 case SpnValue::Slot0_kS:
return "";
1362 case SpnValue::Slot0_kV:
return "";
1363 case SpnValue::Slot0_kA:
return "";
1364 case SpnValue::Slot0_kG:
return "";
1365 case SpnValue::Slot0_kG_Type:
return "";
1366 case SpnValue::Slot1_kP:
return "";
1367 case SpnValue::Slot1_kI:
return "";
1368 case SpnValue::Slot1_kD:
return "";
1369 case SpnValue::Slot1_kS:
return "";
1370 case SpnValue::Slot1_kV:
return "";
1371 case SpnValue::Slot1_kA:
return "";
1372 case SpnValue::Slot1_kG:
return "";
1373 case SpnValue::Slot1_kG_Type:
return "";
1374 case SpnValue::Slot2_kP:
return "";
1375 case SpnValue::Slot2_kI:
return "";
1376 case SpnValue::Slot2_kD:
return "";
1377 case SpnValue::Slot2_kS:
return "";
1378 case SpnValue::Slot2_kV:
return "";
1379 case SpnValue::Slot2_kA:
return "";
1380 case SpnValue::Slot2_kG:
return "";
1381 case SpnValue::Slot2_kG_Type:
return "";
1382 case SpnValue::Config_Inverted:
return "";
1383 case SpnValue::Config_SupplyVLowpassTau:
return "seconds";
1384 case SpnValue::Config_BeepOnBoot:
return "";
1385 case SpnValue::Config_NeutralMode:
return "";
1386 case SpnValue::Config_DutyCycleNeutralDB:
return "fractional";
1387 case SpnValue::Config_StatorCurrentLimit:
return "A";
1388 case SpnValue::Config_StatorCurrLimitEn:
return "";
1389 case SpnValue::Config_SupplyCurrentLimit:
return "A";
1390 case SpnValue::Config_SupplyCurrLimitEn:
return "";
1391 case SpnValue::Config_PeakForwardDC:
return "fractional";
1392 case SpnValue::Config_PeakReverseDC:
return "fractional";
1393 case SpnValue::Config_PeakForwardV:
return "V";
1394 case SpnValue::Config_PeakReverseV:
return "V";
1395 case SpnValue::Config_PeakForTorqCurr:
return "A";
1396 case SpnValue::Config_PeakRevTorqCurr:
return "A";
1397 case SpnValue::Config_TorqueNeutralDB:
return "A";
1398 case SpnValue::Config_FeedbackRotorOffset:
return "rotations";
1399 case SpnValue::Config_SensorToMechanismRatio:
return "scalar";
1400 case SpnValue::Config_RotorToSensorRatio:
return "scalar";
1401 case SpnValue::Config_FeedbackSensorSource:
return "";
1402 case SpnValue::Config_FeedbackRemoteSensorID:
return "";
1403 case SpnValue::Config_DutyCycleOpenLoopRampPeriod:
return "seconds";
1404 case SpnValue::Config_VoltageOpenLoopRampPeriod:
return "seconds";
1405 case SpnValue::Config_TorqueOpenLoopRampPeriod:
return "seconds";
1406 case SpnValue::Config_DutyCycleClosedLoopRampPeriod:
return "seconds";
1407 case SpnValue::Config_VoltageClosedLoopRampPeriod:
return "seconds";
1408 case SpnValue::Config_TorqueClosedLoopRampPeriod:
return "seconds";
1409 case SpnValue::Config_ForwardLimitType:
return "";
1410 case SpnValue::Config_ForwardLimitAutosetPosEnable:
return "";
1411 case SpnValue::Config_ForwardLimitAutosetPosValue:
return "rotations";
1412 case SpnValue::Config_ForwardLimitEnable:
return "";
1413 case SpnValue::Config_ForwardLimitSource:
return "";
1414 case SpnValue::Config_ForwardLimitRemoteSensorID:
return "";
1415 case SpnValue::Config_ReverseLimitType:
return "";
1416 case SpnValue::Config_ReverseLimitAutosetPosEnable:
return "";
1417 case SpnValue::Config_ReverseLimitAutosetPosValue:
return "rotations";
1418 case SpnValue::Config_ReverseLimitEnable:
return "";
1419 case SpnValue::Config_ReverseLimitSource:
return "";
1420 case SpnValue::Config_ReverseLimitRemoteSensorID:
return "";
1421 case SpnValue::Config_ForwardSoftLimitEnable:
return "";
1422 case SpnValue::Config_ReverseSoftLimitEnable:
return "";
1423 case SpnValue::Config_ForwardSoftLimitThreshold:
return "rotations";
1424 case SpnValue::Config_ReverseSoftLimitThreshold:
return "rotations";
1425 case SpnValue::Config_MotionMagicCruiseVelocity:
return "rot per sec";
1426 case SpnValue::Config_MotionMagicAcceleration:
return "rot per sec²";
1427 case SpnValue::Config_MotionMagicJerk:
return "rot per sec³";
1428 case SpnValue::Config_MotionMagicExpo_kV:
return "V/rps";
1429 case SpnValue::Config_MotionMagicExpo_kA:
return "V/rps²";
1430 case SpnValue::Config_PeakDiffDC:
return "fractional";
1431 case SpnValue::Config_PeakDiffV:
return "V";
1432 case SpnValue::Config_PeakDiffTorqCurr:
return "A";
1433 case SpnValue::CANcoder_Velocity:
return "rotations per second";
1434 case SpnValue::CANcoder_Position:
return "rotations";
1435 case SpnValue::CANcoder_AbsPosition:
return "rotations";
1436 case SpnValue::CANCoder_RawVel:
return "rotations per second";
1437 case SpnValue::CANCoder_RawPos:
return "rotations";
1438 case SpnValue::CANCoder_SupplyVoltage:
return "V";
1439 case SpnValue::CANcoder_MagHealth:
return "";
1440 case SpnValue::SPN_ClearStickyFaults:
return "";
1441 case SpnValue::PRO_MotorOutput_BridgeType_Public:
return "";
1442 case SpnValue::Config_ContinuousWrap:
return "";
1443 case SpnValue::Config_SupplyCurrentLowerLimit:
return "A";
1444 case SpnValue::Config_SupplyCurrentLowerTime:
return "seconds";
1445 case SpnValue::Config_DifferentialSensorSource:
return "";
1446 case SpnValue::Config_DifferentialTalonFXSensorID:
return "";
1447 case SpnValue::Config_DifferentialRemoteSensorID:
return "";
1448 case SpnValue::Config_BeepOnConfig:
return "";
1449 case SpnValue::Config_AllowMusicDurDisable:
return "";
1450 case SpnValue::Compliancy_Version:
return "";
1451 case SpnValue::Version_IsProLicensed:
return "";
1452 case SpnValue::PRO_SupplyAndTemp_DeviceTemp2:
return "℃";
1453 case SpnValue::Slot0_kS_Sign:
return "";
1454 case SpnValue::Slot1_kS_Sign:
return "";
1455 case SpnValue::Slot2_kS_Sign:
return "";
1456 case SpnValue::TalonFX_ConnectedMotor:
return "";
1457 case SpnValue::CANrange_SupplyVoltage:
return "V";
1458 case SpnValue::CANrange_Distance_Meters:
return "m";
1459 case SpnValue::CANrange_MeasTime:
return "s";
1460 case SpnValue::CANrange_SignalStrength:
return "";
1461 case SpnValue::CANrange_ProximityDetected:
return "";
1462 case SpnValue::CANrange_MeasState:
return "";
1463 case SpnValue::CANrange_AmbientSignal:
return "";
1464 case SpnValue::CANrange_DistanceStdDev:
return "m";
1465 case SpnValue::CANrange_RealFOVCenterX:
return "deg";
1466 case SpnValue::CANrange_RealFOVCenterY:
return "deg";
1467 case SpnValue::CANrange_RealFOVRangeX:
return "deg";
1468 case SpnValue::CANrange_RealFOVRangeY:
return "deg";
1469 case SpnValue::CANrange_UpdateMode:
return "";
1470 case SpnValue::CANrange_UpdateFreq:
return "Hz";
1471 case SpnValue::CANrange_ProximityThreshold:
return "m";
1472 case SpnValue::CANrange_ProximityHysteresis:
return "m";
1473 case SpnValue::CANrange_MinSigStrengthForValidMeas:
return "";
1474 case SpnValue::CANrange_FOVCenterX:
return "deg";
1475 case SpnValue::CANrange_FOVCenterY:
return "deg";
1476 case SpnValue::CANrange_FOVRangeX:
return "deg";
1477 case SpnValue::CANrange_FOVRangeY:
return "deg";
1478 case SpnValue::Config_ControlTimesyncFreq:
return "Hz";
1479 case SpnValue::Config_VelocityFilterTimeConstant:
return "seconds";
1480 case SpnValue::Config_AbsoluteSensorDiscontinuityPoint:
return "rotations";
1481 case SpnValue::Fault_Hardware:
return "";
1482 case SpnValue::StickyFault_Hardware:
return "";
1483 case SpnValue::ClearStickyFault_Hardware:
return "";
1484 case SpnValue::Fault_ProcTemp:
return "";
1485 case SpnValue::StickyFault_ProcTemp:
return "";
1486 case SpnValue::ClearStickyFault_ProcTemp:
return "";
1487 case SpnValue::Fault_DeviceTemp:
return "";
1488 case SpnValue::StickyFault_DeviceTemp:
return "";
1489 case SpnValue::ClearStickyFault_DeviceTemp:
return "";
1490 case SpnValue::Fault_Undervoltage:
return "";
1491 case SpnValue::StickyFault_Undervoltage:
return "";
1492 case SpnValue::ClearStickyFault_Undervoltage:
return "";
1493 case SpnValue::Fault_BootDuringEnable:
return "";
1494 case SpnValue::StickyFault_BootDuringEnable:
return "";
1495 case SpnValue::ClearStickyFault_BootDuringEnable:
return "";
1496 case SpnValue::Fault_UnlicensedFeatureInUse:
return "";
1497 case SpnValue::StickyFault_UnlicensedFeatureInUse:
return "";
1498 case SpnValue::ClearStickyFault_UnlicensedFeatureInUse:
return "";
1499 case SpnValue::Fault_PIGEON2_BootupAccel:
return "";
1500 case SpnValue::StickyFault_PIGEON2_BootupAccel:
return "";
1501 case SpnValue::ClearStickyFault_PIGEON2_BootupAccel:
return "";
1502 case SpnValue::Fault_PIGEON2_BootupGyros:
return "";
1503 case SpnValue::StickyFault_PIGEON2_BootupGyros:
return "";
1504 case SpnValue::ClearStickyFault_PIGEON2_BootupGyros:
return "";
1505 case SpnValue::Fault_PIGEON2_BootupMagne:
return "";
1506 case SpnValue::StickyFault_PIGEON2_BootupMagne:
return "";
1507 case SpnValue::ClearStickyFault_PIGEON2_BootupMagne:
return "";
1508 case SpnValue::Fault_PIGEON2_BootIntoMotion:
return "";
1509 case SpnValue::StickyFault_PIGEON2_BootIntoMotion:
return "";
1510 case SpnValue::ClearStickyFault_PIGEON2_BootIntoMotion:
return "";
1511 case SpnValue::Fault_PIGEON2_DataAcquiredLate:
return "";
1512 case SpnValue::StickyFault_PIGEON2_DataAcquiredLate:
return "";
1513 case SpnValue::ClearStickyFault_PIGEON2_DataAcquiredLate:
return "";
1514 case SpnValue::Fault_PIGEON2_LoopTimeSlow:
return "";
1515 case SpnValue::StickyFault_PIGEON2_LoopTimeSlow:
return "";
1516 case SpnValue::ClearStickyFault_PIGEON2_LoopTimeSlow:
return "";
1517 case SpnValue::Fault_PIGEON2_SaturatedMagne:
return "";
1518 case SpnValue::StickyFault_PIGEON2_SaturatedMagne:
return "";
1519 case SpnValue::ClearStickyFault_PIGEON2_SaturatedMagne:
return "";
1520 case SpnValue::Fault_PIGEON2_SaturatedAccel:
return "";
1521 case SpnValue::StickyFault_PIGEON2_SaturatedAccel:
return "";
1522 case SpnValue::ClearStickyFault_PIGEON2_SaturatedAccel:
return "";
1523 case SpnValue::Fault_PIGEON2_SaturatedGyros:
return "";
1524 case SpnValue::StickyFault_PIGEON2_SaturatedGyros:
return "";
1525 case SpnValue::ClearStickyFault_PIGEON2_SaturatedGyros:
return "";
1526 case SpnValue::Fault_CANCODER_BadMagnet:
return "";
1527 case SpnValue::StickyFault_CANCODER_BadMagnet:
return "";
1528 case SpnValue::ClearStickyFault_CANCODER_BadMagnet:
return "";
1529 case SpnValue::Fault_TALONFX_BridgeBrownout:
return "";
1530 case SpnValue::StickyFault_TALONFX_BridgeBrownout:
return "";
1531 case SpnValue::ClearStickyFault_TALONFX_BridgeBrownout:
return "";
1532 case SpnValue::Fault_TALONFX_RemoteSensorReset:
return "";
1533 case SpnValue::StickyFault_TALONFX_RemoteSensorReset:
return "";
1534 case SpnValue::ClearStickyFault_TALONFX_RemoteSensorReset:
return "";
1535 case SpnValue::Fault_TALONFX_MissingDifferentialFX:
return "";
1536 case SpnValue::StickyFault_TALONFX_MissingDifferentialFX:
return "";
1537 case SpnValue::ClearStickyFault_TALONFX_MissingDifferentialFX:
return "";
1538 case SpnValue::Fault_TALONFX_RemoteSensorPosOverflow:
return "";
1539 case SpnValue::StickyFault_TALONFX_RemoteSensorPosOverflow:
return "";
1540 case SpnValue::ClearStickyFault_TALONFX_RemoteSensorPosOverflow:
return "";
1541 case SpnValue::Fault_TALONFX_OverSupplyV:
return "";
1542 case SpnValue::StickyFault_TALONFX_OverSupplyV:
return "";
1543 case SpnValue::ClearStickyFault_TALONFX_OverSupplyV:
return "";
1544 case SpnValue::Fault_TALONFX_UnstableSupplyV:
return "";
1545 case SpnValue::StickyFault_TALONFX_UnstableSupplyV:
return "";
1546 case SpnValue::ClearStickyFault_TALONFX_UnstableSupplyV:
return "";
1547 case SpnValue::Fault_TALONFX_ReverseHardLimit:
return "";
1548 case SpnValue::StickyFault_TALONFX_ReverseHardLimit:
return "";
1549 case SpnValue::ClearStickyFault_TALONFX_ReverseHardLimit:
return "";
1550 case SpnValue::Fault_TALONFX_ForwardHardLimit:
return "";
1551 case SpnValue::StickyFault_TALONFX_ForwardHardLimit:
return "";
1552 case SpnValue::ClearStickyFault_TALONFX_ForwardHardLimit:
return "";
1553 case SpnValue::Fault_TALONFX_ReverseSoftLimit:
return "";
1554 case SpnValue::StickyFault_TALONFX_ReverseSoftLimit:
return "";
1555 case SpnValue::ClearStickyFault_TALONFX_ReverseSoftLimit:
return "";
1556 case SpnValue::Fault_TALONFX_ForwardSoftLimit:
return "";
1557 case SpnValue::StickyFault_TALONFX_ForwardSoftLimit:
return "";
1558 case SpnValue::ClearStickyFault_TALONFX_ForwardSoftLimit:
return "";
1559 case SpnValue::Fault_TALONFX_MissingRemSoftLim:
return "";
1560 case SpnValue::StickyFault_TALONFX_MissingRemSoftLim:
return "";
1561 case SpnValue::ClearStickyFault_TALONFX_MissingRemSoftLim:
return "";
1562 case SpnValue::Fault_TALONFX_MissingRemHardLim:
return "";
1563 case SpnValue::StickyFault_TALONFX_MissingRemHardLim:
return "";
1564 case SpnValue::ClearStickyFault_TALONFX_MissingRemHardLim:
return "";
1565 case SpnValue::Fault_TALONFX_MissingRemoteSensor:
return "";
1566 case SpnValue::StickyFault_TALONFX_MissingRemoteSensor:
return "";
1567 case SpnValue::ClearStickyFault_TALONFX_MissingRemoteSensor:
return "";
1568 case SpnValue::Fault_TALONFX_FusedSensorOutOfSync:
return "";
1569 case SpnValue::StickyFault_TALONFX_FusedSensorOutOfSync:
return "";
1570 case SpnValue::ClearStickyFault_TALONFX_FusedSensorOutOfSync:
return "";
1571 case SpnValue::Fault_TALONFX_StatorCurrLimit:
return "";
1572 case SpnValue::StickyFault_TALONFX_StatorCurrLimit:
return "";
1573 case SpnValue::ClearStickyFault_TALONFX_StatorCurrLimit:
return "";
1574 case SpnValue::Fault_TALONFX_SupplyCurrLimit:
return "";
1575 case SpnValue::StickyFault_TALONFX_SupplyCurrLimit:
return "";
1576 case SpnValue::ClearStickyFault_TALONFX_SupplyCurrLimit:
return "";
1577 case SpnValue::Fault_TALONFX_UsingFusedCCWhileUnlicensed:
return "";
1578 case SpnValue::StickyFault_TALONFX_UsingFusedCCWhileUnlicensed:
return "";
1579 case SpnValue::ClearStickyFault_TALONFX_UsingFusedCCWhileUnlicensed:
return "";
1580 case SpnValue::Fault_TALONFX_StaticBrakeDisabled:
return "";
1581 case SpnValue::StickyFault_TALONFX_StaticBrakeDisabled:
return "";
1582 case SpnValue::ClearStickyFault_TALONFX_StaticBrakeDisabled:
return "";
1584 return "Invalid Value";
1593 std::string GetSummary()
const
1597 case SpnValue::TalonFX_System_State:
return "System state of the device.";
1598 case SpnValue::Startup_ResetFlags:
return "This signal needs a summary";
1599 case SpnValue::Version_Major:
return "App Major Version number.";
1600 case SpnValue::Version_Minor:
return "App Minor Version number.";
1601 case SpnValue::Version_Bugfix:
return "App Bugfix Version number.";
1602 case SpnValue::Version_Build:
return "App Build Version number.";
1603 case SpnValue::Version_Full:
return "Full Version of firmware in device. The format is a four byte value.";
1604 case SpnValue::Licensing_IsProLicensed:
return "Whether the device is Pro licensed.";
1605 case SpnValue::Licensing_IsSeasonPassed:
return "Whether the device is Season Pass licensed.";
1606 case SpnValue::CustomParam0:
return "Custom parameter 0. This is provided to allow end-applications to store persistent information in the device.";
1607 case SpnValue::CustomParam1:
return "Custom parameter 1. This is provided to allow end-applications to store persistent information in the device.";
1608 case SpnValue::CANcoder_SensorDirection:
return "Direction of the sensor to determine positive rotation, as seen facing the LED side of the CANcoder.";
1609 case SpnValue::FrcLock:
return "Whether device is locked by FRC.";
1610 case SpnValue::RobotEnabled:
return "Whether the robot is enabled.";
1611 case SpnValue::LED1_OnColor:
return "The Color of LED1 when it's \"On\".";
1612 case SpnValue::LED1_OffColor:
return "The Color of LED1 when it's \"Off\".";
1613 case SpnValue::LED2_OnColor:
return "The Color of LED2 when it's \"On\".";
1614 case SpnValue::LED2_OffColor:
return "The Color of LED2 when it's \"Off\".";
1615 case SpnValue::AllFaults:
return "Integer representing all fault flags reported by the device.";
1616 case SpnValue::AllStickyFaults:
return "Integer representing all (persistent) sticky fault flags reported by the device.";
1617 case SpnValue::Pigeon2UseCompass:
return "Turns on or off the magnetometer fusing for 9-axis. FRC users are not recommended to turn this on, as the magnetic influence of the robot will likely negatively affect the performance of the Pigeon2.";
1618 case SpnValue::Pigeon2DisableTemperatureCompensation:
return "Disables using the temperature compensation feature.";
1619 case SpnValue::Pigeon2DisableNoMotionCalibration:
return "Disables using the no-motion calibration feature.";
1620 case SpnValue::Pigeon2MountPoseYaw:
return "The mounting calibration yaw-component.";
1621 case SpnValue::Pigeon2MountPosePitch:
return "The mounting calibration pitch-component.";
1622 case SpnValue::Pigeon2MountPoseRoll:
return "The mounting calibration roll-component.";
1623 case SpnValue::Pigeon2GyroScalarX:
return "The gyro scalar component for the X axis.";
1624 case SpnValue::Pigeon2GyroScalarY:
return "The gyro scalar component for the Y axis.";
1625 case SpnValue::Pigeon2GyroScalarZ:
return "The gyro scalar component for the Z axis.";
1626 case SpnValue::Pigeon2Yaw:
return "Current reported yaw of the Pigeon2.";
1627 case SpnValue::Pigeon2Pitch:
return "Current reported pitch of the Pigeon2.";
1628 case SpnValue::Pigeon2Roll:
return "Current reported roll of the Pigeon2.";
1629 case SpnValue::Pigeon2QuatW:
return "The W component of the reported Quaternion.";
1630 case SpnValue::Pigeon2QuatX:
return "The X component of the reported Quaternion.";
1631 case SpnValue::Pigeon2QuatY:
return "The Y component of the reported Quaternion.";
1632 case SpnValue::Pigeon2QuatZ:
return "The Z component of the reported Quaternion.";
1633 case SpnValue::Pigeon2GravityVectorX:
return "The X component of the gravity vector.";
1634 case SpnValue::Pigeon2GravityVectorY:
return "The Y component of the gravity vector.";
1635 case SpnValue::Pigeon2GravityVectorZ:
return "The Z component of the gravity vector.";
1636 case SpnValue::Pigeon2Temperature:
return "Temperature of the Pigeon 2.";
1637 case SpnValue::Pigeon2NoMotionCalEnabled:
return "Whether the no-motion calibration feature is enabled.";
1638 case SpnValue::Pigeon2NoMotionCount:
return "The number of times a no-motion event occurred, wraps at 15.";
1639 case SpnValue::Pigeon2TempCompDisabled:
return "Whether the temperature-compensation feature is disabled.";
1640 case SpnValue::Pigeon2UpTime:
return "How long the Pigeon 2's been up in seconds, caps at 255 seconds.";
1641 case SpnValue::Pigeon2AccumGyroX:
return "The accumulated gyro about the X axis without any sensor fusing.";
1642 case SpnValue::Pigeon2AccumGyroY:
return "The accumulated gyro about the Y axis without any sensor fusing.";
1643 case SpnValue::Pigeon2AccumGyroZ:
return "The accumulated gyro about the Z axis without any sensor fusing.";
1644 case SpnValue::Pigeon2AngularVelocityXWorld:
return "The angular velocity (ω) of the Pigeon 2 about the X axis with respect to the world frame. This value is mount-calibrated.";
1645 case SpnValue::Pigeon2AngularVelocityYWorld:
return "The angular velocity (ω) of the Pigeon 2 about the Y axis with respect to the world frame. This value is mount-calibrated.";
1646 case SpnValue::Pigeon2AngularVelocityZWorld:
return "The angular velocity (ω) of the Pigeon 2 about the Z axis with respect to the world frame. This value is mount-calibrated.";
1647 case SpnValue::Pigeon2AccelerationX:
return "The acceleration measured by Pigeon2 in the X direction.";
1648 case SpnValue::Pigeon2AccelerationY:
return "The acceleration measured by Pigeon2 in the Y direction.";
1649 case SpnValue::Pigeon2AccelerationZ:
return "The acceleration measured by Pigeon2 in the Z direction.";
1650 case SpnValue::Pigeon2_SupplyVoltage:
return "Measured supply voltage to the Pigeon2.";
1651 case SpnValue::Pigeon2AngularVelocityX:
return "The angular velocity (ω) of the Pigeon 2 about the device's X axis.";
1652 case SpnValue::Pigeon2AngularVelocityY:
return "The angular velocity (ω) of the Pigeon 2 about the device's Y axis.";
1653 case SpnValue::Pigeon2AngularVelocityZ:
return "The angular velocity (ω) of the Pigeon 2 about the device's Z axis.";
1654 case SpnValue::Pigeon2MagneticFieldX:
return "The biased magnitude of the magnetic field measured by the Pigeon 2 in the X direction. This is only valid after performing a magnetometer calibration.";
1655 case SpnValue::Pigeon2MagneticFieldY:
return "The biased magnitude of the magnetic field measured by the Pigeon 2 in the Y direction. This is only valid after performing a magnetometer calibration.";
1656 case SpnValue::Pigeon2MagneticFieldZ:
return "The biased magnitude of the magnetic field measured by the Pigeon 2 in the Z direction. This is only valid after performing a magnetometer calibration.";
1657 case SpnValue::Pigeon2RawMagneticFieldX:
return "The raw magnitude of the magnetic field measured by the Pigeon 2 in the X direction. This is only valid after performing a magnetometer calibration.";
1658 case SpnValue::Pigeon2RawMagneticFieldY:
return "The raw magnitude of the magnetic field measured by the Pigeon 2 in the Y direction. This is only valid after performing a magnetometer calibration.";
1659 case SpnValue::Pigeon2RawMagneticFieldZ:
return "The raw magnitude of the magnetic field measured by the Pigeon 2 in the Z direction. This is only valid after performing a magnetometer calibration.";
1660 case SpnValue::CANCoder_MagnetOffset:
return "This offset is added to the reported position, allowing the application to trim the zero position. When set to the default value of zero, position reports zero when magnet north pole aligns with the LED.";
1661 case SpnValue::TalonFX_SetSensorPosition:
return "Sets the mechanism position of the device in mechanism rotations.";
1662 case SpnValue::CANcoder_SetSensorPosition:
return "Sets the current position of the device.";
1663 case SpnValue::Pigeon2_SetYaw:
return "The yaw to set the Pigeon2 to right now.";
1664 case SpnValue::DeviceEnabled:
return "Whether the device is enabled.";
1665 case SpnValue::PRO_MotorOutput_MotorVoltage:
return "The applied (output) motor voltage.";
1666 case SpnValue::ForwardLimit:
return "Forward Limit Pin.";
1667 case SpnValue::ReverseLimit:
return "Reverse Limit Pin.";
1668 case SpnValue::PRO_MotorOutput_RotorPolarity:
return "The applied rotor polarity as seen from the front of the motor. This typically is determined by the Inverted config, but can be overridden if using Follower features.";
1669 case SpnValue::PRO_MotorOutput_DutyCycle:
return "The applied motor duty cycle.";
1670 case SpnValue::PRO_MotorOutput_TorqueCurrent:
return "Current corresponding to the torque output by the motor. Similar to StatorCurrent. Users will likely prefer this current to calculate the applied torque to the rotor.";
1671 case SpnValue::PRO_SupplyAndTemp_StatorCurrent:
return "Current corresponding to the stator windings. Similar to TorqueCurrent. Users will likely prefer TorqueCurrent over StatorCurrent.";
1672 case SpnValue::PRO_SupplyAndTemp_SupplyCurrent:
return "Measured supply side current.";
1673 case SpnValue::PRO_SupplyAndTemp_SupplyVoltage:
return "Measured supply voltage to the device.";
1674 case SpnValue::PRO_SupplyAndTemp_DeviceTemp:
return "Temperature of device.";
1675 case SpnValue::PRO_SupplyAndTemp_ProcessorTemp:
return "Temperature of the processor.";
1676 case SpnValue::PRO_RotorPosAndVel_Velocity:
return "Velocity of the motor rotor. This velocity is not affected by any feedback configs.";
1677 case SpnValue::PRO_RotorPosAndVel_Position:
return "Position of the motor rotor. This position is only affected by the RotorOffset config and calls to setPosition.";
1678 case SpnValue::PRO_PosAndVel_Velocity:
return "Velocity of the device in mechanism rotations per second. This can be the velocity of a remote sensor and is affected by the RotorToSensorRatio and SensorToMechanismRatio configs.";
1679 case SpnValue::PRO_PosAndVel_Position:
return "Position of the device in mechanism rotations. This can be the position of a remote sensor and is affected by the RotorToSensorRatio and SensorToMechanismRatio configs, as well as calls to setPosition.";
1680 case SpnValue::PRO_PosAndVel_Acceleration:
return "Acceleration of the device in mechanism rotations per second². This can be the acceleration of a remote sensor and is affected by the RotorToSensorRatio and SensorToMechanismRatio configs.";
1681 case SpnValue::PRO_PIDStateEnables_IntegratedAccum_DC:
return "Integrated Accumulator of PID controller when PID'ing under a DutyCycle Request.";
1682 case SpnValue::PRO_PIDStateEnables_IntegratedAccum_V:
return "Integrated Accumulator of PID controller when PID'ing under a Voltage Request.";
1683 case SpnValue::PRO_PIDStateEnables_IntegratedAccum_A:
return "Integrated Accumulator of PID controller when PID'ing under a TorqueCurrent Request.";
1684 case SpnValue::PRO_PIDStateEnables_FeedForward_DC:
return "Feedforward passed to PID controller.";
1685 case SpnValue::PRO_PIDStateEnables_FeedForward_V:
return "Feedforward passed to PID controller.";
1686 case SpnValue::PRO_PIDStateEnables_FeedForward_A:
return "Feedforward passed to PID controller.";
1687 case SpnValue::TalonFX_ControlMode:
return "The active control mode of the motor controller.";
1688 case SpnValue::PRO_PIDStateEnables_IsMotionMagicRunning:
return "Check if Motion Magic® is running. This is equivalent to checking that the reported control mode is a Motion Magic® based mode.";
1689 case SpnValue::PRO_PIDStateEnables_DeviceEnable:
return "Indicates if device is actuator enabled.";
1690 case SpnValue::PRO_PIDRefPIDErr_PIDRef_Position:
return "Input position of PID controller when PID'ing to a position.";
1691 case SpnValue::PRO_PIDRefPIDErr_PIDRef_Velocity:
return "Input velocity of PID controller when PID'ing to a velocity.";
1692 case SpnValue::PRO_PIDRefPIDErr_PIDErr_Position:
return "The difference between target position and current position.";
1693 case SpnValue::PRO_PIDRefPIDErr_PIDErr_Velocity:
return "The difference between target velocity and current velocity.";
1694 case SpnValue::PRO_PIDRefPIDErr_ClosedLoopMode:
return "Whether the closed-loop is running on position or velocity.";
1695 case SpnValue::PRO_PIDOutput_PIDOutputMode:
return "The output mode of the PID controller.";
1696 case SpnValue::PRO_PIDOutput_ProportionalOutput_DC:
return "Proportional output of PID controller when PID'ing under a DutyCycle Request.";
1697 case SpnValue::PRO_PIDOutput_ProportionalOutput_V:
return "Proportional output of PID controller when PID'ing under a Voltage Request.";
1698 case SpnValue::PRO_PIDOutput_ProportionalOutput_A:
return "Proportional output of PID controller when PID'ing under a TorqueCurrent Request.";
1699 case SpnValue::PRO_PIDOutput_DerivativeOutput_DC:
return "Derivative Output of PID controller when PID'ing under a DutyCycle Request.";
1700 case SpnValue::PRO_PIDOutput_DerivativeOutput_V:
return "Derivative Output of PID controller when PID'ing under a Voltage Request.";
1701 case SpnValue::PRO_PIDOutput_DerivativeOutput_A:
return "Derivative Output of PID controller when PID'ing under a TorqueCurrent Request.";
1702 case SpnValue::PRO_PIDOutput_Output_DC:
return "Output of PID controller when PID'ing under a DutyCycle Request.";
1703 case SpnValue::PRO_PIDOutput_Output_V:
return "Output of PID controller when PID'ing under a Voltage Request.";
1704 case SpnValue::PRO_PIDOutput_Output_A:
return "Output of PID controller when PID'ing under a TorqueCurrent Request.";
1705 case SpnValue::PRO_PIDOutput_Slot:
return "The slot that the closed-loop PID is using.";
1706 case SpnValue::PRO_PIDRefSlopeECUTime_ReferenceSlope_Position:
return "Change in input (velocity) of PID controller when PID'ing to a position.";
1707 case SpnValue::PRO_PIDRefSlopeECUTime_ReferenceSlope_Velocity:
return "Change in input (acceleration) of PID controller when PID'ing to a velocity.";
1708 case SpnValue::PRO_PIDRefSlopeECUTime_ClosedLoopMode:
return "Whether the closed-loop is running on position or velocity.";
1709 case SpnValue::TalonFX_MotorOutputStatus:
return "Assess the status of the motor output with respect to load and supply.";
1710 case SpnValue::PRO_MotorOutput_PIDState_Diff_DutyCycle:
return "The calculated motor duty cycle for differential followers.";
1711 case SpnValue::PRO_MotorOutput_PIDState_Diff_TorqueCurrent:
return "The calculated motor torque current for differential followers.";
1712 case SpnValue::TalonFX_DifferentialControlMode:
return "The active control mode of the differential controller.";
1713 case SpnValue::PRO_MotorOutput_PIDState_Diff_IntegratedAccum_DC:
return "Integrated Accumulator of differential PID controller when PID'ing under a DutyCycle Request.";
1714 case SpnValue::PRO_MotorOutput_PIDState_Diff_IntegratedAccum_V:
return "Integrated Accumulator of differential PID controller when PID'ing under a Voltage Request.";
1715 case SpnValue::PRO_MotorOutput_PIDState_Diff_IntegratedAccum_A:
return "Integrated Accumulator of differential PID controller when PID'ing under a TorqueCurrent Request.";
1716 case SpnValue::PRO_MotorOutput_PIDState_Diff_FeedForward_DC:
return "Feedforward passed to differential PID controller.";
1717 case SpnValue::PRO_MotorOutput_PIDState_Diff_FeedForward_V:
return "Feedforward passed to differential PID controller.";
1718 case SpnValue::PRO_MotorOutput_PIDState_Diff_FeedForward_A:
return "Feedforward passed to differential PID controller.";
1719 case SpnValue::PRO_AvgPosAndVel_Velocity:
return "Average component of the differential velocity of device.";
1720 case SpnValue::PRO_AvgPosAndVel_Position:
return "Average component of the differential position of device.";
1721 case SpnValue::PRO_DiffPosAndVel_Velocity:
return "Difference component of the differential velocity of device.";
1722 case SpnValue::PRO_DiffPosAndVel_Position:
return "Difference component of the differential position of device.";
1723 case SpnValue::PRO_DiffPIDRefPIDErr_PIDRef_Position:
return "Input position of differential PID controller when PID'ing to a differential position.";
1724 case SpnValue::PRO_DiffPIDRefPIDErr_PIDRef_Velocity:
return "Input velocity of differential PID controller when PID'ing to a differential velocity.";
1725 case SpnValue::PRO_DiffPIDRefPIDErr_PIDErr_Position:
return "The difference between target differential position and current differential position.";
1726 case SpnValue::PRO_DiffPIDRefPIDErr_PIDErr_Velocity:
return "The difference between target differential velocity and current differential velocity.";
1727 case SpnValue::PRO_DiffPIDRefPIDErr_ClosedLoopMode:
return "Whether the closed-loop is running on position or velocity.";
1728 case SpnValue::PRO_DiffPIDOutput_PIDOutputMode:
return "The output mode of the differential PID controller.";
1729 case SpnValue::PRO_DiffPIDOutput_ProportionalOutput_DC:
return "Proportional output of differential PID controller when PID'ing under a DutyCycle Request.";
1730 case SpnValue::PRO_DiffPIDOutput_ProportionalOutput_V:
return "Proportional output of differential PID controller when PID'ing under a Voltage Request.";
1731 case SpnValue::PRO_DiffPIDOutput_ProportionalOutput_A:
return "Proportional output of differential PID controller when PID'ing under a TorqueCurrent Request.";
1732 case SpnValue::PRO_DiffPIDOutput_DerivativeOutput_DC:
return "Derivative Output of differential PID controller when PID'ing under a DutyCycle Request.";
1733 case SpnValue::PRO_DiffPIDOutput_DerivativeOutput_V:
return "Derivative Output of differential PID controller when PID'ing under a Voltage Request.";
1734 case SpnValue::PRO_DiffPIDOutput_DerivativeOutput_A:
return "Derivative Output of differential PID controller when PID'ing under a TorqueCurrent Request.";
1735 case SpnValue::PRO_DiffPIDOutput_Output_DC:
return "Output of differential PID controller when PID'ing under a DutyCycle Request.";
1736 case SpnValue::PRO_DiffPIDOutput_Output_V:
return "Output of differential PID controller when PID'ing under a Voltage Request.";
1737 case SpnValue::PRO_DiffPIDOutput_Output_A:
return "Output of differential PID controller when PID'ing under a TorqueCurrent Request.";
1738 case SpnValue::PRO_DiffPIDOutput_Slot:
return "The slot that the closed-loop differential PID is using.";
1739 case SpnValue::PRO_DiffPIDRefSlopeECUTime_ReferenceSlope_Position:
return "Change in input (velocity) of differential PID controller when PID'ing to a differential position.";
1740 case SpnValue::PRO_DiffPIDRefSlopeECUTime_ReferenceSlope_Velocity:
return "Change in input (acceleration) of differential PID controller when PID'ing to a differential velocity.";
1741 case SpnValue::PRO_DiffPIDRefSlopeECUTime_ClosedLoopMode:
return "Whether the closed-loop is running on position or velocity.";
1742 case SpnValue::TalonFX_MotorConstants_kT:
return "The torque constant (K_T) of the motor.";
1743 case SpnValue::TalonFX_MotorConstants_kV:
return "The velocity constant (K_V) of the motor.";
1744 case SpnValue::TalonFX_MotorConstants_StallCurrent:
return "The stall current of the motor at 12 V output.";
1745 case SpnValue::Slot0_kP:
return "Proportional Gain.";
1746 case SpnValue::Slot0_kI:
return "Integral Gain.";
1747 case SpnValue::Slot0_kD:
return "Derivative Gain.";
1748 case SpnValue::Slot0_kS:
return "Static Feedforward Gain.";
1749 case SpnValue::Slot0_kV:
return "Velocity Feedforward Gain.";
1750 case SpnValue::Slot0_kA:
return "Acceleration Feedforward Gain.";
1751 case SpnValue::Slot0_kG:
return "Gravity Feedforward/Feedback Gain.";
1752 case SpnValue::Slot0_kG_Type:
return "Gravity Feedforward/Feedback Type.\nThis determines the type of the gravity feedforward/feedback.\nChoose Elevator_Static for systems where the gravity feedforward is constant, such as an elevator. The gravity feedforward output will always have the same sign.\nChoose Arm_Cosine for systems where the gravity feedback is dependent on the angular position of the mechanism, such as an arm. The gravity feedback output will vary depending on the mechanism angular position. Note that the sensor offset and ratios must be configured so that the sensor reports a position of 0 when the mechanism is horizonal (parallel to the ground), and the reported sensor position is 1:1 with the mechanism.";
1753 case SpnValue::Slot1_kP:
return "Proportional Gain.";
1754 case SpnValue::Slot1_kI:
return "Integral Gain.";
1755 case SpnValue::Slot1_kD:
return "Derivative Gain.";
1756 case SpnValue::Slot1_kS:
return "Static Feedforward Gain.";
1757 case SpnValue::Slot1_kV:
return "Velocity Feedforward Gain.";
1758 case SpnValue::Slot1_kA:
return "Acceleration Feedforward Gain.";
1759 case SpnValue::Slot1_kG:
return "Gravity Feedforward/Feedback Gain.";
1760 case SpnValue::Slot1_kG_Type:
return "Gravity Feedforward/Feedback Type.\nThis determines the type of the gravity feedforward/feedback.\nChoose Elevator_Static for systems where the gravity feedforward is constant, such as an elevator. The gravity feedforward output will always be positive.\nChoose Arm_Cosine for systems where the gravity feedback is dependent on the angular position of the mechanism, such as an arm. The gravity feedback output will vary depending on the mechanism angular position. Note that the sensor offset and ratios must be configured so that the sensor position is 0 when the mechanism is horizonal, and one rotation of the mechanism corresponds to one rotation of the sensor position.";
1761 case SpnValue::Slot2_kP:
return "Proportional Gain.";
1762 case SpnValue::Slot2_kI:
return "Integral Gain.";
1763 case SpnValue::Slot2_kD:
return "Derivative Gain.";
1764 case SpnValue::Slot2_kS:
return "Static Feedforward Gain.";
1765 case SpnValue::Slot2_kV:
return "Velocity Feedforward Gain.";
1766 case SpnValue::Slot2_kA:
return "Acceleration Feedforward Gain.";
1767 case SpnValue::Slot2_kG:
return "Gravity Feedforward/Feedback Gain.";
1768 case SpnValue::Slot2_kG_Type:
return "Gravity Feedforward/Feedback Type.\nThis determines the type of the gravity feedforward/feedback.\nChoose Elevator_Static for systems where the gravity feedforward is constant, such as an elevator. The gravity feedforward output will always be positive.\nChoose Arm_Cosine for systems where the gravity feedback is dependent on the angular position of the mechanism, such as an arm. The gravity feedback output will vary depending on the mechanism angular position. Note that the sensor offset and ratios must be configured so that the sensor position is 0 when the mechanism is horizonal, and one rotation of the mechanism corresponds to one rotation of the sensor position.";
1769 case SpnValue::Config_Inverted:
return "Invert state of the device as seen from the front of the motor.";
1770 case SpnValue::Config_SupplyVLowpassTau:
return "The time constant (in seconds) of the low-pass filter for the supply voltage.";
1771 case SpnValue::Config_BeepOnBoot:
return "If true, the TalonFX will beep during boot-up. This is useful for general debugging, and defaults to true. If rotor is moving during boot-up, the beep will not occur regardless of this setting.";
1772 case SpnValue::Config_NeutralMode:
return "The state of the motor controller bridge when output is neutral or disabled.";
1773 case SpnValue::Config_DutyCycleNeutralDB:
return "Configures the output deadband duty cycle during duty cycle and voltage based control modes.";
1774 case SpnValue::Config_StatorCurrentLimit:
return "The amount of current allowed in the motor (motoring and regen current). Note this requires StatorCurrentLimitEnable to be true.\nFor torque current control, this is applied in addition to the PeakForwardTorqueCurrent and PeakReverseTorqueCurrent in TorqueCurrentConfigs.\nStator current is directly proportional to torque, so this limit can be used to restrict the torque output of the motor, such as preventing wheel slip for a drivetrain. Additionally, stator current limits can prevent brownouts during acceleration; supply current will never exceed the stator current limit and is often significantly lower than stator current.\nA reasonable starting point for a stator current limit is 120 A, with values commonly ranging from 80-160 A. Mechanisms with a hard stop may need a smaller limit to reduce the torque applied when running into the hard stop.";
1775 case SpnValue::Config_StatorCurrLimitEn:
return "Enable motor stator current limiting.";
1776 case SpnValue::Config_SupplyCurrentLimit:
return "The absolute maximum amount of supply current allowed. Note this requires SupplyCurrentLimitEnable to be true. Use SupplyCurrentLowerLimit and SupplyCurrentLowerTime to reduce the supply current limit after the time threshold is exceeded.\nSupply current is the current drawn from the battery, so this limit can be used to prevent breaker trips and improve battery longevity. Additionally, in scenarios where the robot experiences brownouts despite configuring stator current limits, a supply current limit can further help avoid brownouts. However, it is important to note that such brownouts may be caused by a bad battery or poor power wiring.\nA reasonable starting point for a supply current limit is 70 A with a lower limit of 40 A after 1.0 second. Supply current limits commonly range from 20-80 A depending on the breaker used.";
1777 case SpnValue::Config_SupplyCurrLimitEn:
return "Enable motor supply current limiting.";
1778 case SpnValue::Config_PeakForwardDC:
return "Maximum (forward) output during duty cycle based control modes.";
1779 case SpnValue::Config_PeakReverseDC:
return "Minimum (reverse) output during duty cycle based control modes.";
1780 case SpnValue::Config_PeakForwardV:
return "Maximum (forward) output during voltage based control modes.";
1781 case SpnValue::Config_PeakReverseV:
return "Minimum (reverse) output during voltage based control modes.";
1782 case SpnValue::Config_PeakForTorqCurr:
return "Maximum (forward) output during torque current based control modes.";
1783 case SpnValue::Config_PeakRevTorqCurr:
return "Minimum (reverse) output during torque current based control modes.";
1784 case SpnValue::Config_TorqueNeutralDB:
return "Configures the output deadband during torque current based control modes.";
1785 case SpnValue::Config_FeedbackRotorOffset:
return "The offset applied to the absolute integrated rotor sensor. This can be used to zero the rotor in applications that are within one rotor rotation.";
1786 case SpnValue::Config_SensorToMechanismRatio:
return "The ratio of sensor rotations to the mechanism's output, where a ratio greater than 1 is a reduction.\nThis is equivalent to the mechanism's gear ratio if the sensor is located on the input of a gearbox. If sensor is on the output of a gearbox, then this is typically set to 1.\nWe recommend against using this config to perform onboard unit conversions. Instead, unit conversions should be performed in robot code using the units library.\nIf this is set to zero, the device will reset back to one.";
1787 case SpnValue::Config_RotorToSensorRatio:
return "The ratio of motor rotor rotations to remote sensor rotations, where a ratio greater than 1 is a reduction.\nThe Talon FX is capable of fusing a remote CANcoder with its rotor sensor to produce a high-bandwidth sensor source. This feature requires specifying the ratio between the motor rotor and the remote sensor.\nIf this is set to zero, the device will reset back to one.";
1788 case SpnValue::Config_FeedbackSensorSource:
return "Choose what sensor source is reported via API and used by closed-loop and limit features. The default is RotorSensor, which uses the internal rotor sensor in the Talon.\nChoose RemoteCANcoder to use another CANcoder on the same CAN bus (this also requires setting FeedbackRemoteSensorID). Talon will update its position and velocity whenever CANcoder publishes its information on CAN bus, and the Talon internal rotor will not be used.\nChoose FusedCANcoder (requires Phoenix Pro) and Talon will fuse another CANcoder's information with the internal rotor, which provides the best possible position and velocity for accuracy and bandwidth (this also requires setting FeedbackRemoteSensorID). FusedCANcoder was developed for applications such as swerve-azimuth.\nChoose SyncCANcoder (requires Phoenix Pro) and Talon will synchronize its internal rotor position against another CANcoder, then continue to use the rotor sensor for closed loop control (this also requires setting FeedbackRemoteSensorID). The Talon will report if its internal position differs significantly from the reported CANcoder position. SyncCANcoder was developed for mechanisms where there is a risk of the CANcoder failing in such a way that it reports a position that does not match the mechanism, such as the sensor mounting assembly breaking off.\nChoose RemotePigeon2_Yaw, RemotePigeon2_Pitch, and RemotePigeon2_Roll to use another Pigeon2 on the same CAN bus (this also requires setting FeedbackRemoteSensorID). Talon will update its position to match the selected value whenever Pigeon2 publishes its information on CAN bus. Note that the Talon position will be in rotations and not degrees.";
1789 case SpnValue::Config_FeedbackRemoteSensorID:
return "Device ID of which remote device to use. This is not used if the Sensor Source is the internal rotor sensor.";
1790 case SpnValue::Config_DutyCycleOpenLoopRampPeriod:
return "If non-zero, this determines how much time to ramp from 0% output to 100% during the open-loop DutyCycleOut control mode.\nThis provides an easy way to limit the acceleration of the motor. However, the acceleration and current draw of the motor can be better restricted using current limits instead of a ramp rate.";
1791 case SpnValue::Config_VoltageOpenLoopRampPeriod:
return "If non-zero, this determines how much time to ramp from 0V output to 12V during the open-loop VoltageOut control mode.\nThis provides an easy way to limit the acceleration of the motor. However, the acceleration and current draw of the motor can be better restricted using current limits instead of a ramp rate.";
1792 case SpnValue::Config_TorqueOpenLoopRampPeriod:
return "If non-zero, this determines how much time to ramp from 0A output to 300A during the open-loop TorqueCurrent control mode.\nSince TorqueCurrent is directly proportional to acceleration, this ramp limits jerk instead of acceleration.";
1793 case SpnValue::Config_DutyCycleClosedLoopRampPeriod:
return "If non-zero, this determines how much time to ramp from 0% output to 100% during the closed-loop DutyCycle control modes.\nIf the goal is to limit acceleration, it is more useful to ramp the closed-loop setpoint instead of the output. This can be achieved using Motion Magic® controls.\nThe acceleration and current draw of the motor can also be better restricted using current limits instead of a ramp rate.";
1794 case SpnValue::Config_VoltageClosedLoopRampPeriod:
return "If non-zero, this determines how much time to ramp from 0V output to 12V during the closed-loop Voltage control modes.\nIf the goal is to limit acceleration, it is more useful to ramp the closed-loop setpoint instead of the output. This can be achieved using Motion Magic® controls.\nThe acceleration and current draw of the motor can also be better restricted using current limits instead of a ramp rate.";
1795 case SpnValue::Config_TorqueClosedLoopRampPeriod:
return "If non-zero, this determines how much time to ramp from 0A output to 300A during the closed-loop TorqueCurrent control modes.\nSince TorqueCurrent is directly proportional to acceleration, this ramp limits jerk instead of acceleration.\nIf the goal is to limit acceleration or jerk, it is more useful to ramp the closed-loop setpoint instead of the output. This can be achieved using Motion Magic® controls.\nThe acceleration and current draw of the motor can also be better restricted using current limits instead of a ramp rate.";
1796 case SpnValue::Config_ForwardLimitType:
return "Determines if the forward limit switch is normally-open (default) or normally-closed.";
1797 case SpnValue::Config_ForwardLimitAutosetPosEnable:
return "If enabled, the position is automatically set to a specific value, specified by ForwardLimitAutosetPositionValue, when the forward limit switch is asserted.";
1798 case SpnValue::Config_ForwardLimitAutosetPosValue:
return "The value to automatically set the position to when the forward limit switch is asserted. This has no effect if ForwardLimitAutosetPositionEnable is false.";
1799 case SpnValue::Config_ForwardLimitEnable:
return "If enabled, motor output is set to neutral when the forward limit switch is asserted and positive output is requested.";
1800 case SpnValue::Config_ForwardLimitSource:
return "Determines where to poll the forward limit switch. This defaults to the forward limit switch pin on the limit switch connector.\nChoose RemoteTalonFX to use the forward limit switch attached to another Talon FX on the same CAN bus (this also requires setting ForwardLimitRemoteSensorID).\nChoose RemoteCANifier to use the forward limit switch attached to another CANifier on the same CAN bus (this also requires setting ForwardLimitRemoteSensorID).\nChoose RemoteCANcoder to use another CANcoder on the same CAN bus (this also requires setting ForwardLimitRemoteSensorID). The forward limit will assert when the CANcoder magnet strength changes from BAD (red) to ADEQUATE (orange) or GOOD (green).";
1801 case SpnValue::Config_ForwardLimitRemoteSensorID:
return "Device ID of the remote device if using remote limit switch features for the forward limit switch.";
1802 case SpnValue::Config_ReverseLimitType:
return "Determines if the reverse limit switch is normally-open (default) or normally-closed.";
1803 case SpnValue::Config_ReverseLimitAutosetPosEnable:
return "If enabled, the position is automatically set to a specific value, specified by ReverseLimitAutosetPositionValue, when the reverse limit switch is asserted.";
1804 case SpnValue::Config_ReverseLimitAutosetPosValue:
return "The value to automatically set the position to when the reverse limit switch is asserted. This has no effect if ReverseLimitAutosetPositionEnable is false.";
1805 case SpnValue::Config_ReverseLimitEnable:
return "If enabled, motor output is set to neutral when reverse limit switch is asseted and negative output is requested.";
1806 case SpnValue::Config_ReverseLimitSource:
return "Determines where to poll the reverse limit switch. This defaults to the reverse limit switch pin on the limit switch connector.\nChoose RemoteTalonFX to use the reverse limit switch attached to another Talon FX on the same CAN bus (this also requires setting ReverseLimitRemoteSensorID).\nChoose RemoteCANifier to use the reverse limit switch attached to another CANifier on the same CAN bus (this also requires setting ReverseLimitRemoteSensorID).\nChoose RemoteCANcoder to use another CANcoder on the same CAN bus (this also requires setting ReverseLimitRemoteSensorID). The reverse limit will assert when the CANcoder magnet strength changes from BAD (red) to ADEQUATE (orange) or GOOD (green).";
1807 case SpnValue::Config_ReverseLimitRemoteSensorID:
return "Device ID of the remote device if using remote limit switch features for the reverse limit switch.";
1808 case SpnValue::Config_ForwardSoftLimitEnable:
return "If enabled, the motor output is set to neutral if position exceeds ForwardSoftLimitThreshold and forward output is requested.";
1809 case SpnValue::Config_ReverseSoftLimitEnable:
return "If enabled, the motor output is set to neutral if position exceeds ReverseSoftLimitThreshold and reverse output is requested.";
1810 case SpnValue::Config_ForwardSoftLimitThreshold:
return "Position threshold for forward soft limit features. ForwardSoftLimitEnable must be enabled for this to take effect.";
1811 case SpnValue::Config_ReverseSoftLimitThreshold:
return "Position threshold for reverse soft limit features. ReverseSoftLimitEnable must be enabled for this to take effect.";
1812 case SpnValue::Config_MotionMagicCruiseVelocity:
return "This is the maximum velocity Motion Magic® based control modes are allowed to use. Motion Magic® Velocity control modes do not use this config.\nWhen using Motion Magic® Expo control modes, setting this to 0 will allow the profile to run to the max possible velocity based on Expo_kV.";
1813 case SpnValue::Config_MotionMagicAcceleration:
return "This is the target acceleration Motion Magic® based control modes are allowed to use. Motion Magic® Expo control modes do not use this config.";
1814 case SpnValue::Config_MotionMagicJerk:
return "This is the target jerk (acceleration derivative) Motion Magic® based control modes are allowed to use. Motion Magic® Expo control modes do not use this config. This allows Motion Magic® to generate S-Curve profiles.\nJerk is optional; if this is set to zero, then Motion Magic® will not apply a Jerk limit.";
1815 case SpnValue::Config_MotionMagicExpo_kV:
return "This is the target kV used only by Motion Magic® Expo control modes. Unlike the kV slot gain, this is always in units of V/rps.\nThis represents the amount of voltage necessary to hold a velocity. In terms of the Motion Magic® Expo profile, a higher kV results in a slower maximum velocity.";
1816 case SpnValue::Config_MotionMagicExpo_kA:
return "This is the target kA used only by Motion Magic® Expo control modes. Unlike the kA slot gain, this is always in units of V/rps².\nThis represents the amount of voltage necessary to achieve an acceleration. In terms of the Motion Magic® Expo profile, a higher kA results in a slower acceleration.";
1817 case SpnValue::Config_PeakDiffDC:
return "Maximum differential output during duty cycle based differential control modes.";
1818 case SpnValue::Config_PeakDiffV:
return "Maximum differential output during voltage based differential control modes.";
1819 case SpnValue::Config_PeakDiffTorqCurr:
return "Maximum differential output during torque current based differential control modes.";
1820 case SpnValue::CANcoder_Velocity:
return "Velocity of the device.";
1821 case SpnValue::CANcoder_Position:
return "Position of the device. This is initialized to the absolute position on boot.";
1822 case SpnValue::CANcoder_AbsPosition:
return "Absolute Position of the device. The possible range is documented below; however, the exact expected range is determined by the AbsoluteSensorDiscontinuityPoint. This position is only affected by the MagnetSensor configs.";
1823 case SpnValue::CANCoder_RawVel:
return "The unfiltered velocity reported by CANcoder.";
1824 case SpnValue::CANCoder_RawPos:
return "The relative position reported by the CANcoder since boot.";
1825 case SpnValue::CANCoder_SupplyVoltage:
return "Measured supply voltage to the CANcoder.";
1826 case SpnValue::CANcoder_MagHealth:
return "Magnet health as measured by CANcoder.\nRed indicates too close or too far, Orange is adequate but with reduced accuracy, green is ideal. Invalid means the accuracy cannot be determined.";
1827 case SpnValue::SPN_ClearStickyFaults:
return "Clear the sticky faults in the device.";
1828 case SpnValue::PRO_MotorOutput_BridgeType_Public:
return "The applied output of the bridge.";
1829 case SpnValue::Config_ContinuousWrap:
return "Wrap position error within [-0.5,+0.5) mechanism rotations. Typically used for continuous position closed-loops like swerve azimuth.";
1830 case SpnValue::Config_SupplyCurrentLowerLimit:
return "The amount of supply current allowed after the regular SupplyCurrentLimit is active for longer than SupplyCurrentLowerTime. This allows higher current draws for a fixed period of time before reducing the current limit to protect breakers. This has no effect if SupplyCurrentLimit is lower than this value or SupplyCurrentLowerTime is 0.";
1831 case SpnValue::Config_SupplyCurrentLowerTime:
return "Reduces supply current to the SupplyCurrentLowerLimit after limiting to SupplyCurrentLimit for this period of time. If this is set to 0, SupplyCurrentLowerLimit will be ignored.";
1832 case SpnValue::Config_DifferentialSensorSource:
return "Choose what sensor source is used for differential control of a mechanism. The default is Disabled. All other options require setting the DifferentialTalonFXSensorID, as the average of this Talon FX's sensor and the remote TalonFX's sensor is used for the differential controller's primary targets.\nChoose RemoteTalonFX_Diff to use another TalonFX on the same CAN bus. Talon FX will update its differential position and velocity whenever the remote TalonFX publishes its information on CAN bus. The differential controller will use the difference between this TalonFX's sensor and the remote Talon FX's sensor for the differential component of the output.\nChoose RemotePigeon2_Yaw, RemotePigeon2_Pitch, and RemotePigeon2_Roll to use another Pigeon2 on the same CAN bus (this also requires setting DifferentialRemoteSensorID). Talon FX will update its differential position to match the selected value whenever Pigeon2 publishes its information on CAN bus. Note that the Talon FX differential position will be in rotations and not degrees.\nChoose RemoteCANcoder to use another CANcoder on the same CAN bus (this also requires setting DifferentialRemoteSensorID). Talon FX will update its differential position and velocity to match the CANcoder whenever CANcoder publishes its information on CAN bus.";
1833 case SpnValue::Config_DifferentialTalonFXSensorID:
return "Device ID of which remote Talon FX to use. This is used when the Differential Sensor Source is not disabled.";
1834 case SpnValue::Config_DifferentialRemoteSensorID:
return "Device ID of which remote sensor to use on the differential axis. This is used when the Differential Sensor Source is not RemoteTalonFX_Diff.";
1835 case SpnValue::Config_BeepOnConfig:
return "If true, the TalonFX will beep during configuration API calls if device is disabled. This is useful for general debugging, and defaults to true. Note that if the rotor is moving, the beep will not occur regardless of this setting.";
1836 case SpnValue::Config_AllowMusicDurDisable:
return "If true, the TalonFX will allow Orchestra and MusicTone requests during disabled state. This can be used to address corner cases when music features are needed when disabled. This setting defaults to false. Note that if the rotor is moving, music features are always disabled regardless of this setting.";
1837 case SpnValue::Compliancy_Version:
return "Compliancy number.";
1838 case SpnValue::Version_IsProLicensed:
return "Whether the device is Phoenix Pro licensed.";
1839 case SpnValue::PRO_SupplyAndTemp_DeviceTemp2:
return "Temperature of device from second sensor.";
1840 case SpnValue::Slot0_kS_Sign:
return "Static Feedforward Sign during position closed loop.\nThis determines the sign of the applied kS during position closed-loop modes. The default behavior uses the velocity reference sign. This works well with velocity closed loop, Motion Magic® controls, and position closed loop when velocity reference is specified (motion profiling).\nHowever, when using position closed loop with zero velocity reference (no motion profiling), the application may want to apply static feedforward based on the sign of closed loop error instead. When doing so, we recommend using the minimal amount of kS, otherwise the motor output may dither when closed loop error is near zero.";
1841 case SpnValue::Slot1_kS_Sign:
return "Static Feedforward Sign during position closed loop.\nThis determines the sign of the applied kS during position closed-loop modes. The default behavior uses the velocity reference sign. This works well with velocity closed loop, Motion Magic® controls, and position closed loop when velocity reference is specified (motion profiling).\nHowever, when using position closed loop with zero velocity reference (no motion profiling), the application may want to apply static feedforward based on the closed loop error sign instead. When doing so, we recommend using the minimal amount of kS, otherwise the motor output may dither when closed loop error is near zero.";
1842 case SpnValue::Slot2_kS_Sign:
return "Static Feedforward Sign during position closed loop.\nThis determines the sign of the applied kS during position closed-loop modes. The default behavior uses the velocity reference sign. This works well with velocity closed loop, Motion Magic® controls, and position closed loop when velocity reference is specified (motion profiling).\nHowever, when using position closed loop with zero velocity reference (no motion profiling), the application may want to apply static feedforward based on the closed loop error sign instead. When doing so, we recommend using the minimal amount of kS, otherwise the motor output may dither when closed loop error is near zero.";
1843 case SpnValue::TalonFX_ConnectedMotor:
return "The type of motor attached to the Talon.";
1844 case SpnValue::CANrange_SupplyVoltage:
return "Measured supply voltage to the CANrange.";
1845 case SpnValue::CANrange_Distance_Meters:
return "Distance to the nearest object in the configured field of view of the CANrange.";
1846 case SpnValue::CANrange_MeasTime:
return "Timestamp of the most recent measurements. This is not synchronized to any other clock source.\nUsers can use this to check when the measurements are updated.";
1847 case SpnValue::CANrange_SignalStrength:
return "Approximate signal strength of the measurement. A higher value indicates a higher strength of signal.\nA value of ~2500 is typical when detecting an object under short-range conditions.";
1848 case SpnValue::CANrange_ProximityDetected:
return "Whether the CANrange detects an object using the configured proximity parameters.";
1849 case SpnValue::CANrange_MeasState:
return "Health of the distance measurement.";
1850 case SpnValue::CANrange_AmbientSignal:
return "The amount of ambient infrared light that the sensor is detecting. For ideal operation, this should be as low as possible.";
1851 case SpnValue::CANrange_DistanceStdDev:
return "Standard Deviation of the distance measurement.";
1852 case SpnValue::CANrange_RealFOVCenterX:
return "The actual center of the FOV in the X direction. This takes into account the user-configured FOVCenterX and FOVRangeX.";
1853 case SpnValue::CANrange_RealFOVCenterY:
return "The actual center of the FOV in the Y direction. This takes into account the user-configured FOVCenterY and FOVRangeY.";
1854 case SpnValue::CANrange_RealFOVRangeX:
return "The actual range of the FOV in the X direction. This takes into account the user-configured FOVRangeX.";
1855 case SpnValue::CANrange_RealFOVRangeY:
return "The actual range of the FOV in the Y direction. This takes into account the user-configured FOVRangeY.";
1856 case SpnValue::CANrange_UpdateMode:
return "Update mode of the CANrange. The CANrange supports short-range and long-range detection at various update frequencies.";
1857 case SpnValue::CANrange_UpdateFreq:
return "Rate at which the CANrange will take measurements. A lower frequency may provide more stable readings but will reduce the data rate of the sensor.";
1858 case SpnValue::CANrange_ProximityThreshold:
return "Threshold for object detection.";
1859 case SpnValue::CANrange_ProximityHysteresis:
return "How far above and below the threshold the distance needs to be to trigger undetected and detected, respectively. This is used to prevent bouncing between the detected and undetected states for objects on the threshold.\nIf the threshold is set to 0.1 meters, and the hysteresis is 0.01 meters, then an object needs to be within 0.09 meters to be detected. After the object is first detected, the distance then needs to exceed 0.11 meters to become undetected again.";
1860 case SpnValue::CANrange_MinSigStrengthForValidMeas:
return "The minimum allowable signal strength before determining the measurement is valid.\nIf the signal strength is particularly low, this typically means the object is far away and there's fewer total samples to derive the distance from. Set this value to be below the lowest strength you see when you're detecting an object with the CANrange; the default of 2500 is typically acceptable in most cases.";
1861 case SpnValue::CANrange_FOVCenterX:
return "Specifies the target center of the Field of View in the X direction.";
1862 case SpnValue::CANrange_FOVCenterY:
return "Specifies the target center of the Field of View in the Y direction.";
1863 case SpnValue::CANrange_FOVRangeX:
return "Specifies the target range of the Field of View in the X direction. This is the full range of the FOV.\nThe magnitude of this is capped to abs(27 - 2*FOVCenterX).";
1864 case SpnValue::CANrange_FOVRangeY:
return "Specifies the target range of the Field of View in the Y direction. This is the full range of the FOV.\nThe magnitude of this is capped to abs(27 - 2*FOVCenterY).";
1865 case SpnValue::Config_ControlTimesyncFreq:
return "When a control request UseTimesync is enabled, this determines the time-sychronized frequency at which control requests are applied.";
1866 case SpnValue::Config_VelocityFilterTimeConstant:
return "The configurable time constant of the Kalman velocity filter. The velocity Kalman filter will adjust to act as a low-pass with this value as its time constant.";
1867 case SpnValue::Config_AbsoluteSensorDiscontinuityPoint:
return "The positive discontinuity point of the absolute sensor in rotations. This determines the point at which the absolute sensor wraps around, keeping the absolute position in the range [x-1, x). <list><item>Setting this to 1 makes the absolute position unsigned [0, 1) <item>Setting this to 0.5 makes the absolute position signed [-0.5, 0.5) <item>Setting this to 0 makes the absolute position always negative [-1, 0)</list> Many rotational mechanisms such as arms have a region of motion that is unreachable. This should be set to the center of that region of motion, in non-negative rotations. This affects the position of the device at bootup.";
1868 case SpnValue::Fault_Hardware:
return "Hardware fault occurred";
1869 case SpnValue::StickyFault_Hardware:
return "Hardware fault occurred";
1870 case SpnValue::ClearStickyFault_Hardware:
return "Clear sticky fault: Hardware fault occurred";
1871 case SpnValue::Fault_ProcTemp:
return "Processor temperature exceeded limit";
1872 case SpnValue::StickyFault_ProcTemp:
return "Processor temperature exceeded limit";
1873 case SpnValue::ClearStickyFault_ProcTemp:
return "Clear sticky fault: Processor temperature exceeded limit";
1874 case SpnValue::Fault_DeviceTemp:
return "Device temperature exceeded limit";
1875 case SpnValue::StickyFault_DeviceTemp:
return "Device temperature exceeded limit";
1876 case SpnValue::ClearStickyFault_DeviceTemp:
return "Clear sticky fault: Device temperature exceeded limit";
1877 case SpnValue::Fault_Undervoltage:
return "Device supply voltage dropped to near brownout levels";
1878 case SpnValue::StickyFault_Undervoltage:
return "Device supply voltage dropped to near brownout levels";
1879 case SpnValue::ClearStickyFault_Undervoltage:
return "Clear sticky fault: Device supply voltage dropped to near brownout levels";
1880 case SpnValue::Fault_BootDuringEnable:
return "Device boot while detecting the enable signal";
1881 case SpnValue::StickyFault_BootDuringEnable:
return "Device boot while detecting the enable signal";
1882 case SpnValue::ClearStickyFault_BootDuringEnable:
return "Clear sticky fault: Device boot while detecting the enable signal";
1883 case SpnValue::Fault_UnlicensedFeatureInUse:
return "An unlicensed feature is in use, device may not behave as expected.";
1884 case SpnValue::StickyFault_UnlicensedFeatureInUse:
return "An unlicensed feature is in use, device may not behave as expected.";
1885 case SpnValue::ClearStickyFault_UnlicensedFeatureInUse:
return "Clear sticky fault: An unlicensed feature is in use, device may not behave as expected.";
1886 case SpnValue::Fault_PIGEON2_BootupAccel:
return "Bootup checks failed: Accelerometer";
1887 case SpnValue::StickyFault_PIGEON2_BootupAccel:
return "Bootup checks failed: Accelerometer";
1888 case SpnValue::ClearStickyFault_PIGEON2_BootupAccel:
return "Clear sticky fault: Bootup checks failed: Accelerometer";
1889 case SpnValue::Fault_PIGEON2_BootupGyros:
return "Bootup checks failed: Gyroscope";
1890 case SpnValue::StickyFault_PIGEON2_BootupGyros:
return "Bootup checks failed: Gyroscope";
1891 case SpnValue::ClearStickyFault_PIGEON2_BootupGyros:
return "Clear sticky fault: Bootup checks failed: Gyroscope";
1892 case SpnValue::Fault_PIGEON2_BootupMagne:
return "Bootup checks failed: Magnetometer";
1893 case SpnValue::StickyFault_PIGEON2_BootupMagne:
return "Bootup checks failed: Magnetometer";
1894 case SpnValue::ClearStickyFault_PIGEON2_BootupMagne:
return "Clear sticky fault: Bootup checks failed: Magnetometer";
1895 case SpnValue::Fault_PIGEON2_BootIntoMotion:
return "Motion Detected during bootup.";
1896 case SpnValue::StickyFault_PIGEON2_BootIntoMotion:
return "Motion Detected during bootup.";
1897 case SpnValue::ClearStickyFault_PIGEON2_BootIntoMotion:
return "Clear sticky fault: Motion Detected during bootup.";
1898 case SpnValue::Fault_PIGEON2_DataAcquiredLate:
return "Motion stack data acquisition was slower than expected";
1899 case SpnValue::StickyFault_PIGEON2_DataAcquiredLate:
return "Motion stack data acquisition was slower than expected";
1900 case SpnValue::ClearStickyFault_PIGEON2_DataAcquiredLate:
return "Clear sticky fault: Motion stack data acquisition was slower than expected";
1901 case SpnValue::Fault_PIGEON2_LoopTimeSlow:
return "Motion stack loop time was slower than expected.";
1902 case SpnValue::StickyFault_PIGEON2_LoopTimeSlow:
return "Motion stack loop time was slower than expected.";
1903 case SpnValue::ClearStickyFault_PIGEON2_LoopTimeSlow:
return "Clear sticky fault: Motion stack loop time was slower than expected.";
1904 case SpnValue::Fault_PIGEON2_SaturatedMagne:
return "Magnetometer values are saturated";
1905 case SpnValue::StickyFault_PIGEON2_SaturatedMagne:
return "Magnetometer values are saturated";
1906 case SpnValue::ClearStickyFault_PIGEON2_SaturatedMagne:
return "Clear sticky fault: Magnetometer values are saturated";
1907 case SpnValue::Fault_PIGEON2_SaturatedAccel:
return "Accelerometer values are saturated";
1908 case SpnValue::StickyFault_PIGEON2_SaturatedAccel:
return "Accelerometer values are saturated";
1909 case SpnValue::ClearStickyFault_PIGEON2_SaturatedAccel:
return "Clear sticky fault: Accelerometer values are saturated";
1910 case SpnValue::Fault_PIGEON2_SaturatedGyros:
return "Gyroscope values are saturated";
1911 case SpnValue::StickyFault_PIGEON2_SaturatedGyros:
return "Gyroscope values are saturated";
1912 case SpnValue::ClearStickyFault_PIGEON2_SaturatedGyros:
return "Clear sticky fault: Gyroscope values are saturated";
1913 case SpnValue::Fault_CANCODER_BadMagnet:
return "The magnet distance is not correct or magnet is missing";
1914 case SpnValue::StickyFault_CANCODER_BadMagnet:
return "The magnet distance is not correct or magnet is missing";
1915 case SpnValue::ClearStickyFault_CANCODER_BadMagnet:
return "Clear sticky fault: The magnet distance is not correct or magnet is missing";
1916 case SpnValue::Fault_TALONFX_BridgeBrownout:
return "Bridge was disabled most likely due to supply voltage dropping too low.";
1917 case SpnValue::StickyFault_TALONFX_BridgeBrownout:
return "Bridge was disabled most likely due to supply voltage dropping too low.";
1918 case SpnValue::ClearStickyFault_TALONFX_BridgeBrownout:
return "Clear sticky fault: Bridge was disabled most likely due to supply voltage dropping too low.";
1919 case SpnValue::Fault_TALONFX_RemoteSensorReset:
return "The remote sensor has reset.";
1920 case SpnValue::StickyFault_TALONFX_RemoteSensorReset:
return "The remote sensor has reset.";
1921 case SpnValue::ClearStickyFault_TALONFX_RemoteSensorReset:
return "Clear sticky fault: The remote sensor has reset.";
1922 case SpnValue::Fault_TALONFX_MissingDifferentialFX:
return "The remote Talon used for differential control is not present on CAN Bus.";
1923 case SpnValue::StickyFault_TALONFX_MissingDifferentialFX:
return "The remote Talon used for differential control is not present on CAN Bus.";
1924 case SpnValue::ClearStickyFault_TALONFX_MissingDifferentialFX:
return "Clear sticky fault: The remote Talon used for differential control is not present on CAN Bus.";
1925 case SpnValue::Fault_TALONFX_RemoteSensorPosOverflow:
return "The remote sensor position has overflowed. Because of the nature of remote sensors, it is possible for the remote sensor position to overflow beyond what is supported by the status signal frame. However, this is rare and cannot occur over the course of an FRC match under normal use.";
1926 case SpnValue::StickyFault_TALONFX_RemoteSensorPosOverflow:
return "The remote sensor position has overflowed. Because of the nature of remote sensors, it is possible for the remote sensor position to overflow beyond what is supported by the status signal frame. However, this is rare and cannot occur over the course of an FRC match under normal use.";
1927 case SpnValue::ClearStickyFault_TALONFX_RemoteSensorPosOverflow:
return "Clear sticky fault: The remote sensor position has overflowed. Because of the nature of remote sensors, it is possible for the remote sensor position to overflow beyond what is supported by the status signal frame. However, this is rare and cannot occur over the course of an FRC match under normal use.";
1928 case SpnValue::Fault_TALONFX_OverSupplyV:
return "Supply Voltage has exceeded the maximum voltage rating of device.";
1929 case SpnValue::StickyFault_TALONFX_OverSupplyV:
return "Supply Voltage has exceeded the maximum voltage rating of device.";
1930 case SpnValue::ClearStickyFault_TALONFX_OverSupplyV:
return "Clear sticky fault: Supply Voltage has exceeded the maximum voltage rating of device.";
1931 case SpnValue::Fault_TALONFX_UnstableSupplyV:
return "Supply Voltage is unstable. Ensure you are using a battery and current limited power supply.";
1932 case SpnValue::StickyFault_TALONFX_UnstableSupplyV:
return "Supply Voltage is unstable. Ensure you are using a battery and current limited power supply.";
1933 case SpnValue::ClearStickyFault_TALONFX_UnstableSupplyV:
return "Clear sticky fault: Supply Voltage is unstable. Ensure you are using a battery and current limited power supply.";
1934 case SpnValue::Fault_TALONFX_ReverseHardLimit:
return "Reverse limit switch has been asserted. Output is set to neutral.";
1935 case SpnValue::StickyFault_TALONFX_ReverseHardLimit:
return "Reverse limit switch has been asserted. Output is set to neutral.";
1936 case SpnValue::ClearStickyFault_TALONFX_ReverseHardLimit:
return "Clear sticky fault: Reverse limit switch has been asserted. Output is set to neutral.";
1937 case SpnValue::Fault_TALONFX_ForwardHardLimit:
return "Forward limit switch has been asserted. Output is set to neutral.";
1938 case SpnValue::StickyFault_TALONFX_ForwardHardLimit:
return "Forward limit switch has been asserted. Output is set to neutral.";
1939 case SpnValue::ClearStickyFault_TALONFX_ForwardHardLimit:
return "Clear sticky fault: Forward limit switch has been asserted. Output is set to neutral.";
1940 case SpnValue::Fault_TALONFX_ReverseSoftLimit:
return "Reverse soft limit has been asserted. Output is set to neutral.";
1941 case SpnValue::StickyFault_TALONFX_ReverseSoftLimit:
return "Reverse soft limit has been asserted. Output is set to neutral.";
1942 case SpnValue::ClearStickyFault_TALONFX_ReverseSoftLimit:
return "Clear sticky fault: Reverse soft limit has been asserted. Output is set to neutral.";
1943 case SpnValue::Fault_TALONFX_ForwardSoftLimit:
return "Forward soft limit has been asserted. Output is set to neutral.";
1944 case SpnValue::StickyFault_TALONFX_ForwardSoftLimit:
return "Forward soft limit has been asserted. Output is set to neutral.";
1945 case SpnValue::ClearStickyFault_TALONFX_ForwardSoftLimit:
return "Clear sticky fault: Forward soft limit has been asserted. Output is set to neutral.";
1946 case SpnValue::Fault_TALONFX_MissingRemSoftLim:
return "The remote soft limit device is not present on CAN Bus.";
1947 case SpnValue::StickyFault_TALONFX_MissingRemSoftLim:
return "The remote soft limit device is not present on CAN Bus.";
1948 case SpnValue::ClearStickyFault_TALONFX_MissingRemSoftLim:
return "Clear sticky fault: The remote soft limit device is not present on CAN Bus.";
1949 case SpnValue::Fault_TALONFX_MissingRemHardLim:
return "The remote limit switch device is not present on CAN Bus.";
1950 case SpnValue::StickyFault_TALONFX_MissingRemHardLim:
return "The remote limit switch device is not present on CAN Bus.";
1951 case SpnValue::ClearStickyFault_TALONFX_MissingRemHardLim:
return "Clear sticky fault: The remote limit switch device is not present on CAN Bus.";
1952 case SpnValue::Fault_TALONFX_MissingRemoteSensor:
return "The remote sensor's data is no longer trusted. This can happen if the remote sensor disappears from the CAN bus or if the remote sensor indicates its data is no longer valid, such as when a CANcoder's magnet strength falls into the \"red\" range.";
1953 case SpnValue::StickyFault_TALONFX_MissingRemoteSensor:
return "The remote sensor's data is no longer trusted. This can happen if the remote sensor disappears from the CAN bus or if the remote sensor indicates its data is no longer valid, such as when a CANcoder's magnet strength falls into the \"red\" range.";
1954 case SpnValue::ClearStickyFault_TALONFX_MissingRemoteSensor:
return "Clear sticky fault: The remote sensor's data is no longer trusted. This can happen if the remote sensor disappears from the CAN bus or if the remote sensor indicates its data is no longer valid, such as when a CANcoder's magnet strength falls into the \"red\" range.";
1955 case SpnValue::Fault_TALONFX_FusedSensorOutOfSync:
return "The remote sensor used for fusion has fallen out of sync to the local sensor. A re-synchronization has occurred, which may cause a discontinuity. This typically happens if there is significant slop in the mechanism, or if the RotorToSensorRatio configuration parameter is incorrect.";
1956 case SpnValue::StickyFault_TALONFX_FusedSensorOutOfSync:
return "The remote sensor used for fusion has fallen out of sync to the local sensor. A re-synchronization has occurred, which may cause a discontinuity. This typically happens if there is significant slop in the mechanism, or if the RotorToSensorRatio configuration parameter is incorrect.";
1957 case SpnValue::ClearStickyFault_TALONFX_FusedSensorOutOfSync:
return "Clear sticky fault: The remote sensor used for fusion has fallen out of sync to the local sensor. A re-synchronization has occurred, which may cause a discontinuity. This typically happens if there is significant slop in the mechanism, or if the RotorToSensorRatio configuration parameter is incorrect.";
1958 case SpnValue::Fault_TALONFX_StatorCurrLimit:
return "Stator current limit occured.";
1959 case SpnValue::StickyFault_TALONFX_StatorCurrLimit:
return "Stator current limit occured.";
1960 case SpnValue::ClearStickyFault_TALONFX_StatorCurrLimit:
return "Clear sticky fault: Stator current limit occured.";
1961 case SpnValue::Fault_TALONFX_SupplyCurrLimit:
return "Supply current limit occured.";
1962 case SpnValue::StickyFault_TALONFX_SupplyCurrLimit:
return "Supply current limit occured.";
1963 case SpnValue::ClearStickyFault_TALONFX_SupplyCurrLimit:
return "Clear sticky fault: Supply current limit occured.";
1964 case SpnValue::Fault_TALONFX_UsingFusedCCWhileUnlicensed:
return "Using Fused CANcoder feature while unlicensed. Device has fallen back to remote CANcoder.";
1965 case SpnValue::StickyFault_TALONFX_UsingFusedCCWhileUnlicensed:
return "Using Fused CANcoder feature while unlicensed. Device has fallen back to remote CANcoder.";
1966 case SpnValue::ClearStickyFault_TALONFX_UsingFusedCCWhileUnlicensed:
return "Clear sticky fault: Using Fused CANcoder feature while unlicensed. Device has fallen back to remote CANcoder.";
1967 case SpnValue::Fault_TALONFX_StaticBrakeDisabled:
return "Static brake was momentarily disabled due to excessive braking current while disabled.";
1968 case SpnValue::StickyFault_TALONFX_StaticBrakeDisabled:
return "Static brake was momentarily disabled due to excessive braking current while disabled.";
1969 case SpnValue::ClearStickyFault_TALONFX_StaticBrakeDisabled:
return "Clear sticky fault: Static brake was momentarily disabled due to excessive braking current while disabled.";
1971 return "Invalid Value";
1975 friend std::ostream &operator<<(std::ostream &os, SpnValue data)
1977 os << data.ToString();