CTRE Phoenix 6 C++ 24.2.0
StatusCodes.h
Go to the documentation of this file.
1/*
2 * Copyright (C) Cross The Road Electronics.  All rights reserved.
3 * License information can be found in CTRE_LICENSE.txt
4 * For support and suggestions contact support@ctr-electronics.com or file
5 * an issue tracker at https://github.com/CrossTheRoadElec/Phoenix-Releases
6 */
7#pragma once
8
9#ifdef __cplusplus
10
11/* Make sure this is still compiled with C++ linkage
12 * when included from an `extern "C"` block */
13extern "C++" {
14
15#include <ostream>
16
17namespace ctre
18{
19 namespace phoenix
20 {
21
22 class StatusCode
23 {
24 int value;
25
26 public:
27 /**
28 * \brief No Error
29 */
30 static constexpr int OK = 0;
31 /**
32 * \brief Diagnostic Server is busy with another command.
33 */
34 static constexpr int TaskIsBusy = -100;
35 /**
36 * \brief InvalidDeviceSpec
37 */
38 static constexpr int InvalidDeviceSpec = -101;
39 /**
40 * \brief Device is not present. Verify the device is connected and powered, and
41 * that the CAN bus is terminated.
42 */
43 static constexpr int EcuIsNotPresent = -102;
44 /**
45 * \brief Could not put the device into bootloader mode.
46 */
47 static constexpr int CouldNotEnterBl = -103;
48 /**
49 * \brief Could not confirm the device has entered the bootloader.
50 */
51 static constexpr int CouldNotConfirmBl = -104;
52 /**
53 * \brief Could not erase flash.
54 */
55 static constexpr int CouldNotErase = -105;
56 /**
57 * \brief Could not field upgrade the device.
58 */
59 static constexpr int CouldNotSendFlash = -106;
60 /**
61 * \brief Bootloader could not verify integrity of the flashed application.
62 */
63 static constexpr int CouldNotValidate = -107;
64 /**
65 * \brief Could not run the device firmware application.
66 */
67 static constexpr int CouldNotRunApp = -108;
68 /**
69 * \brief Unable to set ID to this device.
70 */
71 static constexpr int CouldNotReqSetId = -109;
72 /**
73 * \brief Could not verify that the changed ID took effect.
74 */
75 static constexpr int CouldNotConfirmId = -110;
76 /**
77 * \brief Device field upgrade was successful.
78 */
79 static constexpr int FlashWasGood = -111;
80 /**
81 * \brief Device firmware application is too old.
82 */
83 static constexpr int AppTooOld = -112;
84 /**
85 * \brief Unable to set name to this device.
86 */
87 static constexpr int CouldNotReqSetDesc = -113;
88 /**
89 * \brief CompileSzIsWrong
90 */
91 static constexpr int CompileSzIsWrong = -114;
92 /**
93 * \brief Cannot set the ID of a gadgeteer device.
94 */
95 static constexpr int GadgeteerDeviceNoSetId = -115;
96 /**
97 * \brief This diagnostic action is not supported.
98 */
99 static constexpr int InvalidTask = -116;
100 /**
101 * \brief Not Implemented, check latest installer.
102 */
103 static constexpr int NotImplemented = -117;
104 /**
105 * \brief NoDevicesOnBus
106 */
107 static constexpr int NoDevicesOnBus = -118;
108 /**
109 * \brief MoreThanOneFile
110 */
111 static constexpr int MoreThanOneFile = -119;
112 /**
113 * \brief Specified device was not found. Verify the device is connected and
114 * powered, and that the CAN bus is terminated.
115 */
116 static constexpr int NodeIsInvalid = -120;
117 /**
118 * \brief InvalidDeviceDescriptor
119 */
120 static constexpr int InvalidDeviceDescriptor = -121;
121 /**
122 * \brief CouldNotSendCanFrame
123 */
124 static constexpr int CouldNotSendCanFrame = -123;
125 /**
126 * \brief NormalModeMsgNotPresent
127 */
128 static constexpr int NormalModeMsgNotPresent = -124;
129 /**
130 * \brief This feature is not supported.
131 */
132 static constexpr int FeatureNotSupported = -125;
133 /**
134 * \brief The diagnostic server is not field upgrading any devices.
135 */
136 static constexpr int NotUpdating = -126;
137 /**
138 * \brief CorruptedPOST
139 */
140 static constexpr int CorruptedPOST = -127;
141 /**
142 * \brief This device did not report any available configs. Verify firmware and
143 * diagnostics are up-to-date.
144 */
145 static constexpr int NoConfigs = -128;
146 /**
147 * \brief ConfigFailed
148 */
149 static constexpr int ConfigFailed = -129;
150 /**
151 * \brief Unable to factory default this device.
152 */
153 static constexpr int CouldNotReqFactoryDefault = -130;
154 /**
155 * \brief CustomNameNotSupported
156 */
157 static constexpr int CustomNameNotSupported = -131;
158 /**
159 * \brief The configs read from the device do not match the configs that were
160 * written.
161 */
162 static constexpr int ConfigReadWriteMismatch = -132;
163 /**
164 * \brief Could not apply the device configs.
165 */
166 static constexpr int CouldNotReqSetConfigs = -133;
167 /**
168 * \brief InsufficientSz
169 */
170 static constexpr int InsufficientSz = -134;
171 /**
172 * \brief This feature is not supported for this device model.
173 */
174 static constexpr int InvalidModel = -135;
175 /**
176 * \brief CouldNotReqDevInfo
177 */
178 static constexpr int CouldNotReqDevInfo = -140;
179 /**
180 * \brief This device does not support new controls.
181 */
182 static constexpr int NoControls = -141;
183 /**
184 * \brief DeviceIsNull
185 */
186 static constexpr int DeviceIsNull = -142;
187 /**
188 * \brief DeviceDidNotRespondToDiagReq
189 */
190 static constexpr int DeviceDidNotRespondToDiagReq = -143;
191 /**
192 * \brief This feature requires Tuner X.
193 */
194 static constexpr int OnlySupportedInTunerX = -144;
195 /**
196 * \brief Command-line issue with caniv.
197 */
198 static constexpr int CanivCliError = -145;
199 /**
200 * \brief InvalidCrfBadHeader
201 */
202 static constexpr int InvalidCrfBadHeader = -200;
203 /**
204 * \brief InvalidCrfFileSzInvald
205 */
206 static constexpr int InvalidCrfFileSzInvald = -201;
207 /**
208 * \brief Specified CRF is for the wrong product.
209 */
210 static constexpr int InvalidCrfWrongProduct = -202;
211 /**
212 * \brief InvalidCrfNoSects
213 */
214 static constexpr int InvalidCrfNoSects = -203;
215 /**
216 * \brief InvalidCrfBadSectHeader
217 */
218 static constexpr int InvalidCrfBadSectHeader = -204;
219 /**
220 * \brief InvalidCrfBadSectSize
221 */
222 static constexpr int InvalidCrfBadSectSize = -205;
223 /**
224 * \brief Specified CRF file could not be found.
225 */
226 static constexpr int NoCrfFile = -206;
227 /**
228 * \brief CouldNotFindDynamicId
229 */
230 static constexpr int CouldNotFindDynamicId = -300;
231 /**
232 * \brief DidNotGetDhcp
233 */
234 static constexpr int DidNotGetDhcp = -301;
235 /**
236 * \brief DidNotGetFullDhcp
237 */
238 static constexpr int DidNotGetFullDhcp = -302;
239 /**
240 * \brief InvalidLicenseResp
241 */
242 static constexpr int InvalidLicenseResp = -350;
243 /**
244 * \brief InvalidCanivCache
245 */
246 static constexpr int InvalidCanivCache = -351;
247 /**
248 * \brief CannotOpenSerialPort
249 */
250 static constexpr int CannotOpenSerialPort = -500;
251 /**
252 * \brief CannotWriteSerialPort
253 */
254 static constexpr int CannotWriteSerialPort = -501;
255 /**
256 * \brief CannotReadSerialPort
257 */
258 static constexpr int CannotReadSerialPort = -502;
259 /**
260 * \brief CannotSerialToDevice
261 */
262 static constexpr int CannotSerialToDevice = -503;
263 /**
264 * \brief NoSerialControlFrameResp
265 */
266 static constexpr int NoSerialControlFrameResp = -504;
267 /**
268 * \brief CannotOpenUdpPort
269 */
270 static constexpr int CannotOpenUdpPort = -600;
271 /**
272 * \brief CannotWriteUdpPort
273 */
274 static constexpr int CannotWriteUdpPort = -601;
275 /**
276 * \brief CannotReadUdpPort
277 */
278 static constexpr int CannotReadUdpPort = -602;
279 /**
280 * \brief CannotUdpToDevice
281 */
282 static constexpr int CannotUdpToDevice = -603;
283 /**
284 * \brief NoUdpControlFrameResp
285 */
286 static constexpr int NoUdpControlFrameResp = -604;
287 /**
288 * \brief TimeoutIso15Response
289 */
290 static constexpr int TimeoutIso15Response = -605;
291 /**
292 * \brief InvalidJson
293 */
294 static constexpr int InvalidJson = -700;
295 /**
296 * \brief The user application is shutting down.
297 */
298 static constexpr int AppIsTerminating = -800;
299 /**
300 * \brief CAN Message is stale.
301 */
302 static constexpr int CanMessageStale = 1000;
303 /**
304 * \brief Buffer is full, cannot insert more data.
305 */
306 static constexpr int BufferFull = 1006;
307 /**
308 * \brief PulseWidthSensorNotPresent
309 */
310 static constexpr int PulseWidthSensorNotPresent = 1010;
311 /**
312 * \brief General Warning Occurred.
313 */
314 static constexpr int GeneralWarning = 1100;
315 /**
316 * \brief Firm Vers could not be retrieved. Use Phoenix Tuner X to check ID and
317 * firmware(CRF) version.
318 */
319 static constexpr int FirmVersionCouldNotBeRetrieved = 1103;
320 /**
321 * \brief This feature will be supported in a future update.
322 */
323 static constexpr int FeaturesNotAvailableYet = 1104;
324 /**
325 * \brief The control mode is not valid for this function.
326 */
327 static constexpr int ControlModeNotValid = 1105;
328 /**
329 * \brief This control mode is not supported yet. A future release will
330 * supported this soon.
331 */
332 static constexpr int ControlModeNotSupportedYet = 1106;
333 /**
334 * \brief Motor Controller must have >= 3.2 firmware for motion profile control
335 * mode.
336 */
337 static constexpr int MotProfFirmThreshold = 1109;
338 /**
339 * \brief Motor Controller must have >= 3.4 firmware for advanced PID0/PID1
340 * features.
341 */
342 static constexpr int MotProfFirmThreshold2 = 1110;
343 /**
344 * \brief SimDeviceNotFound
345 */
346 static constexpr int SimDeviceNotFound = 1200;
347 /**
348 * \brief SimPhysicsTypeNotSupported
349 */
350 static constexpr int SimPhysicsTypeNotSupported = 1201;
351 /**
352 * \brief SimDeviceAlreadyExists
353 */
354 static constexpr int SimDeviceAlreadyExists = 1202;
355 /**
356 * \brief Could not transmit CAN Frame.
357 */
358 static constexpr int TxFailed = -1001;
359 /**
360 * \brief An invalid argument was passed into the function/VI, such as a null
361 * pointer.
362 */
363 static constexpr int InvalidParamValue = -1002;
364 /**
365 * \brief CAN frame not received/too-stale. Check the CAN bus wiring, CAN bus
366 * utilization, and power to the device.
367 */
368 static constexpr int RxTimeout = -1003;
369 /**
370 * \brief CAN Transmit timed out.
371 */
372 static constexpr int TxTimeout = -1004;
373 /**
374 * \brief ArbID is incorrect.
375 */
376 static constexpr int UnexpectedArbId = -1005;
377 /**
378 * \brief CanOverflowed
379 */
380 static constexpr int CanOverflowed = -1006;
381 /**
382 * \brief Sensor Not Present.
383 */
384 static constexpr int SensorNotPresent = -1007;
385 /**
386 * \brief Firmware Too Old. Use Phoenix Tuner X to field upgrade your CTRE CAN
387 * device firmware(CRF). Then restart your robot application to clear
388 * this error.
389 */
390 static constexpr int FirmwareTooOld = -1008;
391 /**
392 * \brief Control Frame Period could not be changed. Most likely it is not
393 * being transmitted.
394 */
395 static constexpr int CouldNotChangePeriod = -1009;
396 /**
397 * \brief BufferFailure
398 */
399 static constexpr int BufferFailure = -1010;
400 /**
401 * \brief Firmware is legacy non-FRC version. Use Phoenix Tuner X to field
402 * upgrade your CTRE CAN device firmware(CRF). Firmware greater than
403 * 20.0 required.
404 */
405 static constexpr int FirmwareNonFRC = -1011;
406 /**
407 * \brief General Error Occurred.
408 */
409 static constexpr int GeneralError = -1100;
410 /**
411 * \brief No new response to update signal.
412 */
413 static constexpr int SigNotUpdated = -1200;
414 /**
415 * \brief NotAllPIDValuesUpdated
416 */
417 static constexpr int NotAllPIDValuesUpdated = -1201;
418 /**
419 * \brief GEN_PORT_ERROR
420 */
421 static constexpr int GEN_PORT_ERROR = -1300;
422 /**
423 * \brief PORT_MODULE_TYPE_MISMATCH
424 */
425 static constexpr int PORT_MODULE_TYPE_MISMATCH = -1301;
426 /**
427 * \brief GEN_MODULE_ERROR
428 */
429 static constexpr int GEN_MODULE_ERROR = -1400;
430 /**
431 * \brief MODULE_NOT_INIT_SET_ERROR
432 */
433 static constexpr int MODULE_NOT_INIT_SET_ERROR = -1401;
434 /**
435 * \brief MODULE_NOT_INIT_GET_ERROR
436 */
437 static constexpr int MODULE_NOT_INIT_GET_ERROR = -1402;
438 /**
439 * \brief Wheel Radius is too small, cannot get distance traveled.
440 */
441 static constexpr int WheelRadiusTooSmall = -1500;
442 /**
443 * \brief Ticks per revolution is 0, cannot get heading.
444 */
445 static constexpr int TicksPerRevZero = -1501;
446 /**
447 * \brief Distance between wheels is too small, cannot get heading.
448 */
449 static constexpr int DistanceBetweenWheelsTooSmall = -1502;
450 /**
451 * \brief GainsAreNotSet
452 */
453 static constexpr int GainsAreNotSet = -1503;
454 /**
455 * \brief Use RemoteLimitSwitchSource instead of LimitSwitchSource.
456 */
457 static constexpr int WrongRemoteLimitSwitchSource = -1504;
458 /**
459 * \brief Motor Controller Voltage Compensation should not be used with
460 * setVoltage(). This causes compensation to happen twice. Disable
461 * Voltage Compensation by calling enableVoltageCompensation(false) in
462 * order to use setVoltage().
463 */
464 static constexpr int DoubleVoltageCompensatingWPI = -1505;
465 /**
466 * \brief CANdleAnimSlotOutOfBounds
467 */
468 static constexpr int CANdleAnimSlotOutOfBounds = -1506;
469 /**
470 * \brief IncompatibleMode
471 */
472 static constexpr int IncompatibleMode = -1600;
473 /**
474 * \brief Handle passed into function is incorrect.
475 */
476 static constexpr int InvalidHandle = -1601;
477 /**
478 * \brief Features requires newer firmware version.
479 */
480 static constexpr int FeatureRequiresHigherFirm = -1700;
481 /**
482 * \brief Config factory default features require firmware >=3.10.
483 */
484 static constexpr int ConfigFactoryDefaultRequiresHigherFirm = -1702;
485 /**
486 * \brief Config Motion S Curve Strength features require firmware >=4.16.
487 */
488 static constexpr int ConfigMotionSCurveRequiresHigherFirm = -1703;
489 /**
490 * \brief Talon FX(Falcon 500) Firmware Too Old. Use Phoenix Tuner to field
491 * upgrade your CTRE CAN device firmware(CRF) to >=20.3. Then restart
492 * your robot application to clear this error.
493 */
494 static constexpr int TalonFXFirmwarePreVBatDetect = -1704;
495 /**
496 * \brief CANdleAnimationsRequireHigherFirm
497 */
498 static constexpr int CANdleAnimationsRequireHigherFirm = -1705;
499 /**
500 * \brief LibraryCouldNotBeLoaded
501 */
502 static constexpr int LibraryCouldNotBeLoaded = -1800;
503 /**
504 * \brief MissingRoutineInLibrary
505 */
506 static constexpr int MissingRoutineInLibrary = -1801;
507 /**
508 * \brief ResourceNotAvailable
509 */
510 static constexpr int ResourceNotAvailable = -1802;
511 /**
512 * \brief Could not find music file specified, try specifying an absolute path.
513 */
514 static constexpr int MusicFileNotFound = -1900;
515 /**
516 * \brief Music file size is incorrect, could not parse correctly. Ensure you're
517 * using Tuner to generate file.
518 */
519 static constexpr int MusicFileWrongSize = -1901;
520 /**
521 * \brief Music file version is too new, update Phoenix to utilize this file.
522 */
523 static constexpr int MusicFileTooNew = -1902;
524 /**
525 * \brief Music file is invalid. Ensure you're using Tuner to generate file.
526 */
527 static constexpr int MusicFileInvalid = -1903;
528 /**
529 * \brief An invalid orchestra action occurred. Ensure a music file is loaded.
530 */
531 static constexpr int InvalidOrchestraAction = -1904;
532 /**
533 * \brief This music file version is too old. Regenerate file using Tuner.
534 */
535 static constexpr int MusicFileTooOld = -1905;
536 /**
537 * \brief Music interrupted due to one of the instruments being commanded a
538 * different control mode. Press Play to resume music.
539 */
540 static constexpr int MusicInterrupted = -1906;
541 /**
542 * \brief This device doesn't support MusicTone control mode.
543 */
544 static constexpr int MusicNotSupported = -1907;
545 /**
546 * \brief kInvalidInterface
547 */
548 static constexpr int kInvalidInterface = -2000;
549 /**
550 * \brief kInvalidGuid
551 */
552 static constexpr int kInvalidGuid = -2001;
553 /**
554 * \brief kInvalidClass
555 */
556 static constexpr int kInvalidClass = -2002;
557 /**
558 * \brief kInvalidProtocol
559 */
560 static constexpr int kInvalidProtocol = -2003;
561 /**
562 * \brief kInvalidPath
563 */
564 static constexpr int kInvalidPath = -2004;
565 /**
566 * \brief kGeneralWinUsbError
567 */
568 static constexpr int kGeneralWinUsbError = -2005;
569 /**
570 * \brief kFailedSetup
571 */
572 static constexpr int kFailedSetup = -2006;
573 /**
574 * \brief kListenFailed
575 */
576 static constexpr int kListenFailed = -2007;
577 /**
578 * \brief kSendFailed
579 */
580 static constexpr int kSendFailed = -2008;
581 /**
582 * \brief kReceiveFailed
583 */
584 static constexpr int kReceiveFailed = -2009;
585 /**
586 * \brief kInvalidRespFormat
587 */
588 static constexpr int kInvalidRespFormat = -2010;
589 /**
590 * \brief kWinUsbInitFailed
591 */
592 static constexpr int kWinUsbInitFailed = -2011;
593 /**
594 * \brief kWinUsbQueryFailed
595 */
596 static constexpr int kWinUsbQueryFailed = -2012;
597 /**
598 * \brief kWinUsbGeneralError
599 */
600 static constexpr int kWinUsbGeneralError = -2013;
601 /**
602 * \brief kAccessDenied
603 */
604 static constexpr int kAccessDenied = -2014;
605 /**
606 * \brief kFirmwareInvalidResponse
607 */
608 static constexpr int kFirmwareInvalidResponse = -2015;
609 /**
610 * \brief This StatusCode has not been initialized. Make sure the StatusCode is
611 * getting assigned to the return of a method.
612 */
613 static constexpr int StatusCodeNotInitialized = -10000;
614 /**
615 * \brief WarningNotInitialized
616 */
617 static constexpr int WarningNotInitialized = 10000;
618 /**
619 * \brief The timestamp reported by CANivore is at least 10ms older than the
620 * timestamp reported by the system, indicating it's fallen out of sync.
621 * This does not impact the data of this message, only the timing.
622 */
623 static constexpr int HwTimestampOutOfSync = 10001;
624 /**
625 * \brief InvalidNetwork
626 */
627 static constexpr int InvalidNetwork = -10001;
628 /**
629 * \brief The CAN bus does not support multi-signal synchronization.
630 */
631 static constexpr int MultiSignalNotSupported = -10002;
632 /**
633 * \brief Could not cast from base value to this particular signal's type
634 */
635 static constexpr int CouldNotCast = -10003;
636 /**
637 * \brief Could not find this value when searching for it
638 */
639 static constexpr int NotFound = -10004;
640 /**
641 * \brief This is not supported
642 */
643 static constexpr int NotSupported = -10005;
644 /**
645 * \brief Could not determine context from this device hash
646 */
647 static constexpr int MissingContext = -10006;
648 /**
649 * \brief Model name in license file does not match model name of selected
650 * device.
651 */
652 static constexpr int ModelMismatch = -10007;
653 /**
654 * \brief Serial Number in license file does not match model name of selected
655 * device.
656 */
657 static constexpr int SerialMismatch = -10008;
658 /**
659 * \brief Could not find specified file.
660 */
661 static constexpr int NoFile = -10009;
662 /**
663 * \brief License did not successfully download to Device.
664 */
665 static constexpr int LicenseDownloadFailed = -10010;
666 /**
667 * \brief Self Test report does not have any values, is the firmware up to date?
668 */
669 static constexpr int SelfTestIsEmpty = -10011;
670 /**
671 * \brief Failed to lookup signal properties. This can happen if the fimware is
672 * too new and supports signals that older APIs do not support.
673 */
674 static constexpr int SignalLookupFailed = -10012;
675 /**
676 * \brief The current mode of the device is invalid for getting this signal.
677 */
678 static constexpr int InvalidModeToGetSignal = -10013;
679 /**
680 * \brief Device is not licensed. Cannot get any data from it.
681 */
682 static constexpr int UnlicensedDevice = -10014;
683 /**
684 * \brief Size is invalid.
685 */
686 static constexpr int InvalidSize = -10015;
687 /**
688 * \brief InvalidLicenseResponse
689 */
690 static constexpr int InvalidLicenseResponse = -10016;
691 /**
692 * \brief InvalidContext
693 */
694 static constexpr int InvalidContext = -10017;
695 /**
696 * \brief InternalError
697 */
698 static constexpr int InternalError = -10018;
699 /**
700 * \brief kDeviceResponseIncorrect
701 */
702 static constexpr int kDeviceResponseIncorrect = -10019;
703 /**
704 * \brief kErrorPollingForDevices
705 */
706 static constexpr int kErrorPollingForDevices = -10020;
707 /**
708 * \brief Device firmware could not be retrieved. Check that the device is
709 * running v6 firmware, the device ID is correct, the specified CAN bus
710 * is correct, and the device is powered.
711 */
712 static constexpr int CouldNotRetrieveV6Firmware = -10021;
713 /**
714 * \brief Device firmware could not be decoded. Check that the device is running
715 * v6 firmware, the device ID is correct, the specified CAN bus is
716 * correct, and the device is powered.
717 */
718 static constexpr int CouldNotDecodeDeviceFirmware = -10022;
719 /**
720 * \brief The values specified for master are in valid. Make sure the Device ID
721 * of master are correct.
722 */
723 static constexpr int InvalidIDToFollow = -10023;
724 /**
725 * \brief Using a Pro only feature on an unlicensed device. The device may not
726 * behave as expected if it continues to operate while unlicensed.
727 */
728 static constexpr int UsingProFeatureOnUnlicensedDevice = -10024;
729 /**
730 * \brief Firmware Too New. Use Phoenix Tuner X to field upgrade your CTRE CAN
731 * device firmware(CRF) to a compatible version. Then restart your robot
732 * application to clear this error.
733 */
734 static constexpr int FirmwareTooNew = -10025;
735 /**
736 * \brief The data frame could not be serialized for transmit.
737 */
738 static constexpr int CouldNotSerialize = -10026;
739 /**
740 * \brief The mechanism is disabled due to a fault in one of the devices.
741 */
742 static constexpr int MechanismFaulted = -10027;
743 /**
744 * \brief Firmware version is not compatible with this version of Phoenix. Make
745 * sure your firmware and API major versions match.
746 */
747 static constexpr int FirmwareVersNotCompatible = -10028;
748 /**
749 * \brief Could not find specified directory.
750 */
751 static constexpr int DirectoryMissing = -10029;
752 /**
753 * \brief This API version is too old for the firmware on the device. Either
754 * upgrade the API to a newer version or downgrade the device firmware to
755 * an older version for correct behavior.
756 */
757 static constexpr int ApiTooOld = -10030;
758 /**
759 * \brief The signal logger is not running. Start the signal logger before
760 * writing any signals.
761 */
762 static constexpr int LoggerNotRunning = -10031;
763 /**
764 * \brief Blocking operations, such as configs, cannot have a timeout of 0. Pass
765 * in a non-zero timeout (typically 0.050+ seconds) for normal operation.
766 */
767 static constexpr int TimeoutCannotBeZero = -10032;
768 /**
769 * \brief Device cannot be licensed while it is control enabled. Disable and
770 * neutral the device to apply the licenses.
771 */
772 static constexpr int CannotLicenseWhileEnabled = -10033;
773
774 operator int() const { return this->value; }
775
776 bool operator==(const StatusCode &data) const
777 {
778 return this->value == data.value;
779 }
780 bool operator==(int data) const
781 {
782 return this->value == data;
783 }
784 bool operator<(const StatusCode &data) const
785 {
786 return this->value < data.value;
787 }
788 bool operator<(int data) const
789 {
790 return this->value < data;
791 }
792 StatusCode(int val) : value{val} {}
793 StatusCode() : value{StatusCode::StatusCodeNotInitialized} {}
794
795 const char *GetName() const
796 {
797 switch (value)
798 {
799 case 0: return "OK";
800 case -100: return "TaskIsBusy";
801 case -101: return "InvalidDeviceSpec";
802 case -102: return "EcuIsNotPresent";
803 case -103: return "CouldNotEnterBl";
804 case -104: return "CouldNotConfirmBl";
805 case -105: return "CouldNotErase";
806 case -106: return "CouldNotSendFlash";
807 case -107: return "CouldNotValidate";
808 case -108: return "CouldNotRunApp";
809 case -109: return "CouldNotReqSetId";
810 case -110: return "CouldNotConfirmId";
811 case -111: return "FlashWasGood";
812 case -112: return "AppTooOld";
813 case -113: return "CouldNotReqSetDesc";
814 case -114: return "CompileSzIsWrong";
815 case -115: return "GadgeteerDeviceNoSetId";
816 case -116: return "InvalidTask";
817 case -117: return "NotImplemented";
818 case -118: return "NoDevicesOnBus";
819 case -119: return "MoreThanOneFile";
820 case -120: return "NodeIsInvalid";
821 case -121: return "InvalidDeviceDescriptor";
822 case -123: return "CouldNotSendCanFrame";
823 case -124: return "NormalModeMsgNotPresent";
824 case -125: return "FeatureNotSupported";
825 case -126: return "NotUpdating";
826 case -127: return "CorruptedPOST";
827 case -128: return "NoConfigs";
828 case -129: return "ConfigFailed";
829 case -130: return "CouldNotReqFactoryDefault";
830 case -131: return "CustomNameNotSupported";
831 case -132: return "ConfigReadWriteMismatch";
832 case -133: return "CouldNotReqSetConfigs";
833 case -134: return "InsufficientSz";
834 case -135: return "InvalidModel";
835 case -140: return "CouldNotReqDevInfo";
836 case -141: return "NoControls";
837 case -142: return "DeviceIsNull";
838 case -143: return "DeviceDidNotRespondToDiagReq";
839 case -144: return "OnlySupportedInTunerX";
840 case -145: return "CanivCliError";
841 case -200: return "InvalidCrfBadHeader";
842 case -201: return "InvalidCrfFileSzInvald";
843 case -202: return "InvalidCrfWrongProduct";
844 case -203: return "InvalidCrfNoSects";
845 case -204: return "InvalidCrfBadSectHeader";
846 case -205: return "InvalidCrfBadSectSize";
847 case -206: return "NoCrfFile";
848 case -300: return "CouldNotFindDynamicId";
849 case -301: return "DidNotGetDhcp";
850 case -302: return "DidNotGetFullDhcp";
851 case -350: return "InvalidLicenseResp";
852 case -351: return "InvalidCanivCache";
853 case -500: return "CannotOpenSerialPort";
854 case -501: return "CannotWriteSerialPort";
855 case -502: return "CannotReadSerialPort";
856 case -503: return "CannotSerialToDevice";
857 case -504: return "NoSerialControlFrameResp";
858 case -600: return "CannotOpenUdpPort";
859 case -601: return "CannotWriteUdpPort";
860 case -602: return "CannotReadUdpPort";
861 case -603: return "CannotUdpToDevice";
862 case -604: return "NoUdpControlFrameResp";
863 case -605: return "TimeoutIso15Response";
864 case -700: return "InvalidJson";
865 case -800: return "AppIsTerminating";
866 case 1000: return "CanMessageStale";
867 case 1006: return "BufferFull";
868 case 1010: return "PulseWidthSensorNotPresent";
869 case 1100: return "GeneralWarning";
870 case 1103: return "FirmVersionCouldNotBeRetrieved";
871 case 1104: return "FeaturesNotAvailableYet";
872 case 1105: return "ControlModeNotValid";
873 case 1106: return "ControlModeNotSupportedYet";
874 case 1109: return "MotProfFirmThreshold";
875 case 1110: return "MotProfFirmThreshold2";
876 case 1200: return "SimDeviceNotFound";
877 case 1201: return "SimPhysicsTypeNotSupported";
878 case 1202: return "SimDeviceAlreadyExists";
879 case -1001: return "TxFailed";
880 case -1002: return "InvalidParamValue";
881 case -1003: return "RxTimeout";
882 case -1004: return "TxTimeout";
883 case -1005: return "UnexpectedArbId";
884 case -1006: return "CanOverflowed";
885 case -1007: return "SensorNotPresent";
886 case -1008: return "FirmwareTooOld";
887 case -1009: return "CouldNotChangePeriod";
888 case -1010: return "BufferFailure";
889 case -1011: return "FirmwareNonFRC";
890 case -1100: return "GeneralError";
891 case -1200: return "SigNotUpdated";
892 case -1201: return "NotAllPIDValuesUpdated";
893 case -1300: return "GEN_PORT_ERROR";
894 case -1301: return "PORT_MODULE_TYPE_MISMATCH";
895 case -1400: return "GEN_MODULE_ERROR";
896 case -1401: return "MODULE_NOT_INIT_SET_ERROR";
897 case -1402: return "MODULE_NOT_INIT_GET_ERROR";
898 case -1500: return "WheelRadiusTooSmall";
899 case -1501: return "TicksPerRevZero";
900 case -1502: return "DistanceBetweenWheelsTooSmall";
901 case -1503: return "GainsAreNotSet";
902 case -1504: return "WrongRemoteLimitSwitchSource";
903 case -1505: return "DoubleVoltageCompensatingWPI";
904 case -1506: return "CANdleAnimSlotOutOfBounds";
905 case -1600: return "IncompatibleMode";
906 case -1601: return "InvalidHandle";
907 case -1700: return "FeatureRequiresHigherFirm";
908 case -1702: return "ConfigFactoryDefaultRequiresHigherFirm";
909 case -1703: return "ConfigMotionSCurveRequiresHigherFirm";
910 case -1704: return "TalonFXFirmwarePreVBatDetect";
911 case -1705: return "CANdleAnimationsRequireHigherFirm";
912 case -1800: return "LibraryCouldNotBeLoaded";
913 case -1801: return "MissingRoutineInLibrary";
914 case -1802: return "ResourceNotAvailable";
915 case -1900: return "MusicFileNotFound";
916 case -1901: return "MusicFileWrongSize";
917 case -1902: return "MusicFileTooNew";
918 case -1903: return "MusicFileInvalid";
919 case -1904: return "InvalidOrchestraAction";
920 case -1905: return "MusicFileTooOld";
921 case -1906: return "MusicInterrupted";
922 case -1907: return "MusicNotSupported";
923 case -2000: return "kInvalidInterface";
924 case -2001: return "kInvalidGuid";
925 case -2002: return "kInvalidClass";
926 case -2003: return "kInvalidProtocol";
927 case -2004: return "kInvalidPath";
928 case -2005: return "kGeneralWinUsbError";
929 case -2006: return "kFailedSetup";
930 case -2007: return "kListenFailed";
931 case -2008: return "kSendFailed";
932 case -2009: return "kReceiveFailed";
933 case -2010: return "kInvalidRespFormat";
934 case -2011: return "kWinUsbInitFailed";
935 case -2012: return "kWinUsbQueryFailed";
936 case -2013: return "kWinUsbGeneralError";
937 case -2014: return "kAccessDenied";
938 case -2015: return "kFirmwareInvalidResponse";
939 case -10000: return "StatusCodeNotInitialized";
940 case 10000: return "WarningNotInitialized";
941 case 10001: return "HwTimestampOutOfSync";
942 case -10001: return "InvalidNetwork";
943 case -10002: return "MultiSignalNotSupported";
944 case -10003: return "CouldNotCast";
945 case -10004: return "NotFound";
946 case -10005: return "NotSupported";
947 case -10006: return "MissingContext";
948 case -10007: return "ModelMismatch";
949 case -10008: return "SerialMismatch";
950 case -10009: return "NoFile";
951 case -10010: return "LicenseDownloadFailed";
952 case -10011: return "SelfTestIsEmpty";
953 case -10012: return "SignalLookupFailed";
954 case -10013: return "InvalidModeToGetSignal";
955 case -10014: return "UnlicensedDevice";
956 case -10015: return "InvalidSize";
957 case -10016: return "InvalidLicenseResponse";
958 case -10017: return "InvalidContext";
959 case -10018: return "InternalError";
960 case -10019: return "kDeviceResponseIncorrect";
961 case -10020: return "kErrorPollingForDevices";
962 case -10021: return "CouldNotRetrieveV6Firmware";
963 case -10022: return "CouldNotDecodeDeviceFirmware";
964 case -10023: return "InvalidIDToFollow";
965 case -10024: return "UsingProFeatureOnUnlicensedDevice";
966 case -10025: return "FirmwareTooNew";
967 case -10026: return "CouldNotSerialize";
968 case -10027: return "MechanismFaulted";
969 case -10028: return "FirmwareVersNotCompatible";
970 case -10029: return "DirectoryMissing";
971 case -10030: return "ApiTooOld";
972 case -10031: return "LoggerNotRunning";
973 case -10032: return "TimeoutCannotBeZero";
974 case -10033: return "CannotLicenseWhileEnabled";
975 default:
976 /* because we return const char*, we cannot create
977 * a string with the status error code */
978 return "Could not find name for StatusCode";
979 }
980 }
981 const char *GetDescription() const
982 {
983 switch (value)
984 {
985 case 0: return "No Error";
986 case -100: return "Diagnostic Server is busy with another command.";
987 case -101: return "InvalidDeviceSpec";
988 case -102: return "Device is not present. Verify the device is connected and powered, and that the CAN bus is terminated.";
989 case -103: return "Could not put the device into bootloader mode.";
990 case -104: return "Could not confirm the device has entered the bootloader.";
991 case -105: return "Could not erase flash.";
992 case -106: return "Could not field upgrade the device.";
993 case -107: return "Bootloader could not verify integrity of the flashed application.";
994 case -108: return "Could not run the device firmware application.";
995 case -109: return "Unable to set ID to this device.";
996 case -110: return "Could not verify that the changed ID took effect.";
997 case -111: return "Device field upgrade was successful.";
998 case -112: return "Device firmware application is too old.";
999 case -113: return "Unable to set name to this device.";
1000 case -114: return "CompileSzIsWrong";
1001 case -115: return "Cannot set the ID of a gadgeteer device.";
1002 case -116: return "This diagnostic action is not supported.";
1003 case -117: return "Not Implemented, check latest installer.";
1004 case -118: return "NoDevicesOnBus";
1005 case -119: return "MoreThanOneFile";
1006 case -120: return "Specified device was not found. Verify the device is connected and powered, and that the CAN bus is terminated.";
1007 case -121: return "InvalidDeviceDescriptor";
1008 case -123: return "CouldNotSendCanFrame";
1009 case -124: return "NormalModeMsgNotPresent";
1010 case -125: return "This feature is not supported.";
1011 case -126: return "The diagnostic server is not field upgrading any devices.";
1012 case -127: return "CorruptedPOST";
1013 case -128: return "This device did not report any available configs. Verify firmware and diagnostics are up-to-date.";
1014 case -129: return "ConfigFailed";
1015 case -130: return "Unable to factory default this device.";
1016 case -131: return "CustomNameNotSupported";
1017 case -132: return "The configs read from the device do not match the configs that were written.";
1018 case -133: return "Could not apply the device configs.";
1019 case -134: return "InsufficientSz";
1020 case -135: return "This feature is not supported for this device model.";
1021 case -140: return "CouldNotReqDevInfo";
1022 case -141: return "This device does not support new controls.";
1023 case -142: return "DeviceIsNull";
1024 case -143: return "DeviceDidNotRespondToDiagReq";
1025 case -144: return "This feature requires Tuner X.";
1026 case -145: return "Command-line issue with caniv.";
1027 case -200: return "InvalidCrfBadHeader";
1028 case -201: return "InvalidCrfFileSzInvald";
1029 case -202: return "Specified CRF is for the wrong product.";
1030 case -203: return "InvalidCrfNoSects";
1031 case -204: return "InvalidCrfBadSectHeader";
1032 case -205: return "InvalidCrfBadSectSize";
1033 case -206: return "Specified CRF file could not be found.";
1034 case -300: return "CouldNotFindDynamicId";
1035 case -301: return "DidNotGetDhcp";
1036 case -302: return "DidNotGetFullDhcp";
1037 case -350: return "InvalidLicenseResp";
1038 case -351: return "InvalidCanivCache";
1039 case -500: return "CannotOpenSerialPort";
1040 case -501: return "CannotWriteSerialPort";
1041 case -502: return "CannotReadSerialPort";
1042 case -503: return "CannotSerialToDevice";
1043 case -504: return "NoSerialControlFrameResp";
1044 case -600: return "CannotOpenUdpPort";
1045 case -601: return "CannotWriteUdpPort";
1046 case -602: return "CannotReadUdpPort";
1047 case -603: return "CannotUdpToDevice";
1048 case -604: return "NoUdpControlFrameResp";
1049 case -605: return "TimeoutIso15Response";
1050 case -700: return "InvalidJson";
1051 case -800: return "The user application is shutting down.";
1052 case 1000: return "CAN Message is stale.";
1053 case 1006: return "Buffer is full, cannot insert more data.";
1054 case 1010: return "PulseWidthSensorNotPresent";
1055 case 1100: return "General Warning Occurred.";
1056 case 1103: return "Firm Vers could not be retrieved. Use Phoenix Tuner X to check ID and firmware(CRF) version.";
1057 case 1104: return "This feature will be supported in a future update.";
1058 case 1105: return "The control mode is not valid for this function.";
1059 case 1106: return "This control mode is not supported yet. A future release will supported this soon.";
1060 case 1109: return "Motor Controller must have >= 3.2 firmware for motion profile control mode.";
1061 case 1110: return "Motor Controller must have >= 3.4 firmware for advanced PID0/PID1 features.";
1062 case 1200: return "SimDeviceNotFound";
1063 case 1201: return "SimPhysicsTypeNotSupported";
1064 case 1202: return "SimDeviceAlreadyExists";
1065 case -1001: return "Could not transmit CAN Frame.";
1066 case -1002: return "An invalid argument was passed into the function/VI, such as a null pointer.";
1067 case -1003: return "CAN frame not received/too-stale. Check the CAN bus wiring, CAN bus utilization, and power to the device.";
1068 case -1004: return "CAN Transmit timed out.";
1069 case -1005: return "ArbID is incorrect.";
1070 case -1006: return "CanOverflowed";
1071 case -1007: return "Sensor Not Present.";
1072 case -1008: return "Firmware Too Old. Use Phoenix Tuner X to field upgrade your CTRE CAN device firmware(CRF). Then restart your robot application to clear this error.";
1073 case -1009: return "Control Frame Period could not be changed. Most likely it is not being transmitted.";
1074 case -1010: return "BufferFailure";
1075 case -1011: return "Firmware is legacy non-FRC version. Use Phoenix Tuner X to field upgrade your CTRE CAN device firmware(CRF). Firmware greater than 20.0 required.";
1076 case -1100: return "General Error Occurred.";
1077 case -1200: return "No new response to update signal.";
1078 case -1201: return "NotAllPIDValuesUpdated";
1079 case -1300: return "GEN_PORT_ERROR";
1080 case -1301: return "PORT_MODULE_TYPE_MISMATCH";
1081 case -1400: return "GEN_MODULE_ERROR";
1082 case -1401: return "MODULE_NOT_INIT_SET_ERROR";
1083 case -1402: return "MODULE_NOT_INIT_GET_ERROR";
1084 case -1500: return "Wheel Radius is too small, cannot get distance traveled.";
1085 case -1501: return "Ticks per revolution is 0, cannot get heading.";
1086 case -1502: return "Distance between wheels is too small, cannot get heading.";
1087 case -1503: return "GainsAreNotSet";
1088 case -1504: return "Use RemoteLimitSwitchSource instead of LimitSwitchSource.";
1089 case -1505: return "Motor Controller Voltage Compensation should not be used with setVoltage(). This causes compensation to happen twice. Disable Voltage Compensation by calling enableVoltageCompensation(false) in order to use setVoltage().";
1090 case -1506: return "CANdleAnimSlotOutOfBounds";
1091 case -1600: return "IncompatibleMode";
1092 case -1601: return "Handle passed into function is incorrect.";
1093 case -1700: return "Features requires newer firmware version.";
1094 case -1702: return "Config factory default features require firmware >=3.10.";
1095 case -1703: return "Config Motion S Curve Strength features require firmware >=4.16.";
1096 case -1704: return "Talon FX(Falcon 500) Firmware Too Old. Use Phoenix Tuner to field upgrade your CTRE CAN device firmware(CRF) to >=20.3. Then restart your robot application to clear this error.";
1097 case -1705: return "CANdleAnimationsRequireHigherFirm";
1098 case -1800: return "LibraryCouldNotBeLoaded";
1099 case -1801: return "MissingRoutineInLibrary";
1100 case -1802: return "ResourceNotAvailable";
1101 case -1900: return "Could not find music file specified, try specifying an absolute path.";
1102 case -1901: return "Music file size is incorrect, could not parse correctly. Ensure you're using Tuner to generate file.";
1103 case -1902: return "Music file version is too new, update Phoenix to utilize this file.";
1104 case -1903: return "Music file is invalid. Ensure you're using Tuner to generate file.";
1105 case -1904: return "An invalid orchestra action occurred. Ensure a music file is loaded.";
1106 case -1905: return "This music file version is too old. Regenerate file using Tuner.";
1107 case -1906: return "Music interrupted due to one of the instruments being commanded a different control mode. Press Play to resume music.";
1108 case -1907: return "This device doesn't support MusicTone control mode.";
1109 case -2000: return "kInvalidInterface";
1110 case -2001: return "kInvalidGuid";
1111 case -2002: return "kInvalidClass";
1112 case -2003: return "kInvalidProtocol";
1113 case -2004: return "kInvalidPath";
1114 case -2005: return "kGeneralWinUsbError";
1115 case -2006: return "kFailedSetup";
1116 case -2007: return "kListenFailed";
1117 case -2008: return "kSendFailed";
1118 case -2009: return "kReceiveFailed";
1119 case -2010: return "kInvalidRespFormat";
1120 case -2011: return "kWinUsbInitFailed";
1121 case -2012: return "kWinUsbQueryFailed";
1122 case -2013: return "kWinUsbGeneralError";
1123 case -2014: return "kAccessDenied";
1124 case -2015: return "kFirmwareInvalidResponse";
1125 case -10000: return "This StatusCode has not been initialized. Make sure the StatusCode is getting assigned to the return of a method.";
1126 case 10000: return "WarningNotInitialized";
1127 case 10001: return "The timestamp reported by CANivore is at least 10ms older than the timestamp reported by the system, indicating it's fallen out of sync. This does not impact the data of this message, only the timing.";
1128 case -10001: return "InvalidNetwork";
1129 case -10002: return "The CAN bus does not support multi-signal synchronization.";
1130 case -10003: return "Could not cast from base value to this particular signal's type";
1131 case -10004: return "Could not find this value when searching for it";
1132 case -10005: return "This is not supported";
1133 case -10006: return "Could not determine context from this device hash";
1134 case -10007: return "Model name in license file does not match model name of selected device.";
1135 case -10008: return "Serial Number in license file does not match model name of selected device.";
1136 case -10009: return "Could not find specified file.";
1137 case -10010: return "License did not successfully download to Device.";
1138 case -10011: return "Self Test report does not have any values, is the firmware up to date?";
1139 case -10012: return "Failed to lookup signal properties. This can happen if the fimware is too new and supports signals that older APIs do not support.";
1140 case -10013: return "The current mode of the device is invalid for getting this signal.";
1141 case -10014: return "Device is not licensed. Cannot get any data from it.";
1142 case -10015: return "Size is invalid.";
1143 case -10016: return "InvalidLicenseResponse";
1144 case -10017: return "InvalidContext";
1145 case -10018: return "InternalError";
1146 case -10019: return "kDeviceResponseIncorrect";
1147 case -10020: return "kErrorPollingForDevices";
1148 case -10021: return "Device firmware could not be retrieved. Check that the device is running v6 firmware, the device ID is correct, the specified CAN bus is correct, and the device is powered.";
1149 case -10022: return "Device firmware could not be decoded. Check that the device is running v6 firmware, the device ID is correct, the specified CAN bus is correct, and the device is powered.";
1150 case -10023: return "The values specified for master are in valid. Make sure the Device ID of master are correct.";
1151 case -10024: return "Using a Pro only feature on an unlicensed device. The device may not behave as expected if it continues to operate while unlicensed.";
1152 case -10025: return "Firmware Too New. Use Phoenix Tuner X to field upgrade your CTRE CAN device firmware(CRF) to a compatible version. Then restart your robot application to clear this error.";
1153 case -10026: return "The data frame could not be serialized for transmit.";
1154 case -10027: return "The mechanism is disabled due to a fault in one of the devices.";
1155 case -10028: return "Firmware version is not compatible with this version of Phoenix. Make sure your firmware and API major versions match.";
1156 case -10029: return "Could not find specified directory.";
1157 case -10030: return "This API version is too old for the firmware on the device. Either upgrade the API to a newer version or downgrade the device firmware to an older version for correct behavior.";
1158 case -10031: return "The signal logger is not running. Start the signal logger before writing any signals.";
1159 case -10032: return "Blocking operations, such as configs, cannot have a timeout of 0. Pass in a non-zero timeout (typically 0.050+ seconds) for normal operation.";
1160 case -10033: return "Device cannot be licensed while it is control enabled. Disable and neutral the device to apply the licenses.";
1161 default:
1162 /* because we return const char*, we cannot create
1163 * a string with the status error code */
1164 return "Could not find description for StatusCode";
1165 }
1166 }
1167 friend std::ostream &operator<<(std::ostream &os, StatusCode status)
1168 {
1169 os << status.GetName() << ": " << status.GetDescription();
1170 return os;
1171 }
1172 bool IsError() const { return value < 0; }
1173 bool IsWarning() const { return value > 0; }
1174 bool IsOK() const { return value == OK; }
1175 };
1176
1177 }
1178}
1179
1180} // extern "C++"
1181
1182#else // This is straight-C, so just create a typedef enum to use
1183
1184/**
1185 * \brief Typedef enum of the StatusCode for use in C projects
1186 */
1187typedef enum _StatusCode_t
1188{
1189 /**
1190 * \brief No Error
1191 */
1192 OK = 0,
1193 /**
1194 * \brief Diagnostic Server is busy with another command.
1195 */
1197 /**
1198 * \brief InvalidDeviceSpec
1199 */
1201 /**
1202 * \brief Device is not present. Verify the device is connected and powered, and
1203 * that the CAN bus is terminated.
1204 */
1206 /**
1207 * \brief Could not put the device into bootloader mode.
1208 */
1210 /**
1211 * \brief Could not confirm the device has entered the bootloader.
1212 */
1214 /**
1215 * \brief Could not erase flash.
1216 */
1218 /**
1219 * \brief Could not field upgrade the device.
1220 */
1222 /**
1223 * \brief Bootloader could not verify integrity of the flashed application.
1224 */
1226 /**
1227 * \brief Could not run the device firmware application.
1228 */
1230 /**
1231 * \brief Unable to set ID to this device.
1232 */
1234 /**
1235 * \brief Could not verify that the changed ID took effect.
1236 */
1238 /**
1239 * \brief Device field upgrade was successful.
1240 */
1242 /**
1243 * \brief Device firmware application is too old.
1244 */
1246 /**
1247 * \brief Unable to set name to this device.
1248 */
1250 /**
1251 * \brief CompileSzIsWrong
1252 */
1254 /**
1255 * \brief Cannot set the ID of a gadgeteer device.
1256 */
1258 /**
1259 * \brief This diagnostic action is not supported.
1260 */
1262 /**
1263 * \brief Not Implemented, check latest installer.
1264 */
1266 /**
1267 * \brief NoDevicesOnBus
1268 */
1270 /**
1271 * \brief MoreThanOneFile
1272 */
1274 /**
1275 * \brief Specified device was not found. Verify the device is connected and
1276 * powered, and that the CAN bus is terminated.
1277 */
1279 /**
1280 * \brief InvalidDeviceDescriptor
1281 */
1283 /**
1284 * \brief CouldNotSendCanFrame
1285 */
1287 /**
1288 * \brief NormalModeMsgNotPresent
1289 */
1291 /**
1292 * \brief This feature is not supported.
1293 */
1295 /**
1296 * \brief The diagnostic server is not field upgrading any devices.
1297 */
1299 /**
1300 * \brief CorruptedPOST
1301 */
1303 /**
1304 * \brief This device did not report any available configs. Verify firmware and
1305 * diagnostics are up-to-date.
1306 */
1308 /**
1309 * \brief ConfigFailed
1310 */
1312 /**
1313 * \brief Unable to factory default this device.
1314 */
1316 /**
1317 * \brief CustomNameNotSupported
1318 */
1320 /**
1321 * \brief The configs read from the device do not match the configs that were
1322 * written.
1323 */
1325 /**
1326 * \brief Could not apply the device configs.
1327 */
1329 /**
1330 * \brief InsufficientSz
1331 */
1333 /**
1334 * \brief This feature is not supported for this device model.
1335 */
1337 /**
1338 * \brief CouldNotReqDevInfo
1339 */
1341 /**
1342 * \brief This device does not support new controls.
1343 */
1345 /**
1346 * \brief DeviceIsNull
1347 */
1349 /**
1350 * \brief DeviceDidNotRespondToDiagReq
1351 */
1353 /**
1354 * \brief This feature requires Tuner X.
1355 */
1357 /**
1358 * \brief Command-line issue with caniv.
1359 */
1361 /**
1362 * \brief InvalidCrfBadHeader
1363 */
1365 /**
1366 * \brief InvalidCrfFileSzInvald
1367 */
1369 /**
1370 * \brief Specified CRF is for the wrong product.
1371 */
1373 /**
1374 * \brief InvalidCrfNoSects
1375 */
1377 /**
1378 * \brief InvalidCrfBadSectHeader
1379 */
1381 /**
1382 * \brief InvalidCrfBadSectSize
1383 */
1385 /**
1386 * \brief Specified CRF file could not be found.
1387 */
1389 /**
1390 * \brief CouldNotFindDynamicId
1391 */
1393 /**
1394 * \brief DidNotGetDhcp
1395 */
1397 /**
1398 * \brief DidNotGetFullDhcp
1399 */
1401 /**
1402 * \brief InvalidLicenseResp
1403 */
1405 /**
1406 * \brief InvalidCanivCache
1407 */
1409 /**
1410 * \brief CannotOpenSerialPort
1411 */
1413 /**
1414 * \brief CannotWriteSerialPort
1415 */
1417 /**
1418 * \brief CannotReadSerialPort
1419 */
1421 /**
1422 * \brief CannotSerialToDevice
1423 */
1425 /**
1426 * \brief NoSerialControlFrameResp
1427 */
1429 /**
1430 * \brief CannotOpenUdpPort
1431 */
1433 /**
1434 * \brief CannotWriteUdpPort
1435 */
1437 /**
1438 * \brief CannotReadUdpPort
1439 */
1441 /**
1442 * \brief CannotUdpToDevice
1443 */
1445 /**
1446 * \brief NoUdpControlFrameResp
1447 */
1449 /**
1450 * \brief TimeoutIso15Response
1451 */
1453 /**
1454 * \brief InvalidJson
1455 */
1457 /**
1458 * \brief The user application is shutting down.
1459 */
1461 /**
1462 * \brief CAN Message is stale.
1463 */
1465 /**
1466 * \brief Buffer is full, cannot insert more data.
1467 */
1469 /**
1470 * \brief PulseWidthSensorNotPresent
1471 */
1473 /**
1474 * \brief General Warning Occurred.
1475 */
1477 /**
1478 * \brief Firm Vers could not be retrieved. Use Phoenix Tuner X to check ID and
1479 * firmware(CRF) version.
1480 */
1482 /**
1483 * \brief This feature will be supported in a future update.
1484 */
1486 /**
1487 * \brief The control mode is not valid for this function.
1488 */
1490 /**
1491 * \brief This control mode is not supported yet. A future release will
1492 * supported this soon.
1493 */
1495 /**
1496 * \brief Motor Controller must have &gt;= 3.2 firmware for motion profile control
1497 * mode.
1498 */
1500 /**
1501 * \brief Motor Controller must have &gt;= 3.4 firmware for advanced PID0/PID1
1502 * features.
1503 */
1505 /**
1506 * \brief SimDeviceNotFound
1507 */
1509 /**
1510 * \brief SimPhysicsTypeNotSupported
1511 */
1513 /**
1514 * \brief SimDeviceAlreadyExists
1515 */
1517 /**
1518 * \brief Could not transmit CAN Frame.
1519 */
1520 TxFailed = -1001,
1521 /**
1522 * \brief An invalid argument was passed into the function/VI, such as a null
1523 * pointer.
1524 */
1526 /**
1527 * \brief CAN frame not received/too-stale. Check the CAN bus wiring, CAN bus
1528 * utilization, and power to the device.
1529 */
1530 RxTimeout = -1003,
1531 /**
1532 * \brief CAN Transmit timed out.
1533 */
1534 TxTimeout = -1004,
1535 /**
1536 * \brief ArbID is incorrect.
1537 */
1539 /**
1540 * \brief CanOverflowed
1541 */
1543 /**
1544 * \brief Sensor Not Present.
1545 */
1547 /**
1548 * \brief Firmware Too Old. Use Phoenix Tuner X to field upgrade your CTRE CAN
1549 * device firmware(CRF). Then restart your robot application to clear
1550 * this error.
1551 */
1553 /**
1554 * \brief Control Frame Period could not be changed. Most likely it is not
1555 * being transmitted.
1556 */
1558 /**
1559 * \brief BufferFailure
1560 */
1562 /**
1563 * \brief Firmware is legacy non-FRC version. Use Phoenix Tuner X to field
1564 * upgrade your CTRE CAN device firmware(CRF). Firmware greater than
1565 * 20.0 required.
1566 */
1568 /**
1569 * \brief General Error Occurred.
1570 */
1572 /**
1573 * \brief No new response to update signal.
1574 */
1576 /**
1577 * \brief NotAllPIDValuesUpdated
1578 */
1580 /**
1581 * \brief GEN_PORT_ERROR
1582 */
1584 /**
1585 * \brief PORT_MODULE_TYPE_MISMATCH
1586 */
1588 /**
1589 * \brief GEN_MODULE_ERROR
1590 */
1592 /**
1593 * \brief MODULE_NOT_INIT_SET_ERROR
1594 */
1596 /**
1597 * \brief MODULE_NOT_INIT_GET_ERROR
1598 */
1600 /**
1601 * \brief Wheel Radius is too small, cannot get distance traveled.
1602 */
1604 /**
1605 * \brief Ticks per revolution is 0, cannot get heading.
1606 */
1608 /**
1609 * \brief Distance between wheels is too small, cannot get heading.
1610 */
1612 /**
1613 * \brief GainsAreNotSet
1614 */
1616 /**
1617 * \brief Use RemoteLimitSwitchSource instead of LimitSwitchSource.
1618 */
1620 /**
1621 * \brief Motor Controller Voltage Compensation should not be used with
1622 * setVoltage(). This causes compensation to happen twice. Disable
1623 * Voltage Compensation by calling enableVoltageCompensation(false) in
1624 * order to use setVoltage().
1625 */
1627 /**
1628 * \brief CANdleAnimSlotOutOfBounds
1629 */
1631 /**
1632 * \brief IncompatibleMode
1633 */
1635 /**
1636 * \brief Handle passed into function is incorrect.
1637 */
1639 /**
1640 * \brief Features requires newer firmware version.
1641 */
1643 /**
1644 * \brief Config factory default features require firmware &gt;=3.10.
1645 */
1647 /**
1648 * \brief Config Motion S Curve Strength features require firmware &gt;=4.16.
1649 */
1651 /**
1652 * \brief Talon FX(Falcon 500) Firmware Too Old. Use Phoenix Tuner to field
1653 * upgrade your CTRE CAN device firmware(CRF) to &gt;=20.3. Then restart
1654 * your robot application to clear this error.
1655 */
1657 /**
1658 * \brief CANdleAnimationsRequireHigherFirm
1659 */
1661 /**
1662 * \brief LibraryCouldNotBeLoaded
1663 */
1665 /**
1666 * \brief MissingRoutineInLibrary
1667 */
1669 /**
1670 * \brief ResourceNotAvailable
1671 */
1673 /**
1674 * \brief Could not find music file specified, try specifying an absolute path.
1675 */
1677 /**
1678 * \brief Music file size is incorrect, could not parse correctly. Ensure you're
1679 * using Tuner to generate file.
1680 */
1682 /**
1683 * \brief Music file version is too new, update Phoenix to utilize this file.
1684 */
1686 /**
1687 * \brief Music file is invalid. Ensure you're using Tuner to generate file.
1688 */
1690 /**
1691 * \brief An invalid orchestra action occurred. Ensure a music file is loaded.
1692 */
1694 /**
1695 * \brief This music file version is too old. Regenerate file using Tuner.
1696 */
1698 /**
1699 * \brief Music interrupted due to one of the instruments being commanded a
1700 * different control mode. Press Play to resume music.
1701 */
1703 /**
1704 * \brief This device doesn't support MusicTone control mode.
1705 */
1707 /**
1708 * \brief kInvalidInterface
1709 */
1711 /**
1712 * \brief kInvalidGuid
1713 */
1715 /**
1716 * \brief kInvalidClass
1717 */
1719 /**
1720 * \brief kInvalidProtocol
1721 */
1723 /**
1724 * \brief kInvalidPath
1725 */
1727 /**
1728 * \brief kGeneralWinUsbError
1729 */
1731 /**
1732 * \brief kFailedSetup
1733 */
1735 /**
1736 * \brief kListenFailed
1737 */
1739 /**
1740 * \brief kSendFailed
1741 */
1743 /**
1744 * \brief kReceiveFailed
1745 */
1747 /**
1748 * \brief kInvalidRespFormat
1749 */
1751 /**
1752 * \brief kWinUsbInitFailed
1753 */
1755 /**
1756 * \brief kWinUsbQueryFailed
1757 */
1759 /**
1760 * \brief kWinUsbGeneralError
1761 */
1763 /**
1764 * \brief kAccessDenied
1765 */
1767 /**
1768 * \brief kFirmwareInvalidResponse
1769 */
1771 /**
1772 * \brief This StatusCode has not been initialized. Make sure the StatusCode is
1773 * getting assigned to the return of a method.
1774 */
1776 /**
1777 * \brief WarningNotInitialized
1778 */
1780 /**
1781 * \brief The timestamp reported by CANivore is at least 10ms older than the
1782 * timestamp reported by the system, indicating it's fallen out of sync.
1783 * This does not impact the data of this message, only the timing.
1784 */
1786 /**
1787 * \brief InvalidNetwork
1788 */
1790 /**
1791 * \brief The CAN bus does not support multi-signal synchronization.
1792 */
1794 /**
1795 * \brief Could not cast from base value to this particular signal's type
1796 */
1798 /**
1799 * \brief Could not find this value when searching for it
1800 */
1801 NotFound = -10004,
1802 /**
1803 * \brief This is not supported
1804 */
1806 /**
1807 * \brief Could not determine context from this device hash
1808 */
1810 /**
1811 * \brief Model name in license file does not match model name of selected
1812 * device.
1813 */
1815 /**
1816 * \brief Serial Number in license file does not match model name of selected
1817 * device.
1818 */
1820 /**
1821 * \brief Could not find specified file.
1822 */
1823 NoFile = -10009,
1824 /**
1825 * \brief License did not successfully download to Device.
1826 */
1828 /**
1829 * \brief Self Test report does not have any values, is the firmware up to date?
1830 */
1832 /**
1833 * \brief Failed to lookup signal properties. This can happen if the fimware is
1834 * too new and supports signals that older APIs do not support.
1835 */
1837 /**
1838 * \brief The current mode of the device is invalid for getting this signal.
1839 */
1841 /**
1842 * \brief Device is not licensed. Cannot get any data from it.
1843 */
1845 /**
1846 * \brief Size is invalid.
1847 */
1848 InvalidSize = -10015,
1849 /**
1850 * \brief InvalidLicenseResponse
1851 */
1853 /**
1854 * \brief InvalidContext
1855 */
1857 /**
1858 * \brief InternalError
1859 */
1861 /**
1862 * \brief kDeviceResponseIncorrect
1863 */
1865 /**
1866 * \brief kErrorPollingForDevices
1867 */
1869 /**
1870 * \brief Device firmware could not be retrieved. Check that the device is
1871 * running v6 firmware, the device ID is correct, the specified CAN bus
1872 * is correct, and the device is powered.
1873 */
1875 /**
1876 * \brief Device firmware could not be decoded. Check that the device is running
1877 * v6 firmware, the device ID is correct, the specified CAN bus is
1878 * correct, and the device is powered.
1879 */
1881 /**
1882 * \brief The values specified for master are in valid. Make sure the Device ID
1883 * of master are correct.
1884 */
1886 /**
1887 * \brief Using a Pro only feature on an unlicensed device. The device may not
1888 * behave as expected if it continues to operate while unlicensed.
1889 */
1891 /**
1892 * \brief Firmware Too New. Use Phoenix Tuner X to field upgrade your CTRE CAN
1893 * device firmware(CRF) to a compatible version. Then restart your robot
1894 * application to clear this error.
1895 */
1897 /**
1898 * \brief The data frame could not be serialized for transmit.
1899 */
1901 /**
1902 * \brief The mechanism is disabled due to a fault in one of the devices.
1903 */
1905 /**
1906 * \brief Firmware version is not compatible with this version of Phoenix. Make
1907 * sure your firmware and API major versions match.
1908 */
1910 /**
1911 * \brief Could not find specified directory.
1912 */
1914 /**
1915 * \brief This API version is too old for the firmware on the device. Either
1916 * upgrade the API to a newer version or downgrade the device firmware to
1917 * an older version for correct behavior.
1918 */
1919 ApiTooOld = -10030,
1920 /**
1921 * \brief The signal logger is not running. Start the signal logger before
1922 * writing any signals.
1923 */
1925 /**
1926 * \brief Blocking operations, such as configs, cannot have a timeout of 0. Pass
1927 * in a non-zero timeout (typically 0.050+ seconds) for normal operation.
1928 */
1930 /**
1931 * \brief Device cannot be licensed while it is control enabled. Disable and
1932 * neutral the device to apply the licenses.
1933 */
1936
1937/**
1938 * \brief Get the name of the StatusCode passed
1939 *
1940 * \param value StatusCode to get name of
1941 * \returns const char* Name of StatusCode
1942 */
1944/**
1945 * \brief Get the description of the StatusCode passed
1946 *
1947 * \param value StatusCode to get description of
1948 * \returns const char* Description of StatusCode
1949 */
1951
1952#endif
enum _StatusCode_t StatusCode_t
Typedef enum of the StatusCode for use in C projects.
_StatusCode_t
Typedef enum of the StatusCode for use in C projects.
Definition: StatusCodes.h:1188
@ CouldNotRunApp
Could not run the device firmware application.
Definition: StatusCodes.h:1229
@ CouldNotReqSetId
Unable to set ID to this device.
Definition: StatusCodes.h:1233
@ TalonFXFirmwarePreVBatDetect
Talon FX(Falcon 500) Firmware Too Old.
Definition: StatusCodes.h:1656
@ SimDeviceNotFound
SimDeviceNotFound.
Definition: StatusCodes.h:1508
@ InvalidContext
InvalidContext.
Definition: StatusCodes.h:1856
@ CanMessageStale
CAN Message is stale.
Definition: StatusCodes.h:1464
@ NoConfigs
This device did not report any available configs.
Definition: StatusCodes.h:1307
@ IncompatibleMode
IncompatibleMode.
Definition: StatusCodes.h:1634
@ InvalidHandle
Handle passed into function is incorrect.
Definition: StatusCodes.h:1638
@ GainsAreNotSet
GainsAreNotSet.
Definition: StatusCodes.h:1615
@ MusicFileInvalid
Music file is invalid.
Definition: StatusCodes.h:1689
@ TicksPerRevZero
Ticks per revolution is 0, cannot get heading.
Definition: StatusCodes.h:1607
@ NotUpdating
The diagnostic server is not field upgrading any devices.
Definition: StatusCodes.h:1298
@ MotProfFirmThreshold
Motor Controller must have >= 3.2 firmware for motion profile control mode.
Definition: StatusCodes.h:1499
@ AppIsTerminating
The user application is shutting down.
Definition: StatusCodes.h:1460
@ CannotSerialToDevice
CannotSerialToDevice.
Definition: StatusCodes.h:1424
@ ApiTooOld
This API version is too old for the firmware on the device.
Definition: StatusCodes.h:1919
@ MusicFileNotFound
Could not find music file specified, try specifying an absolute path.
Definition: StatusCodes.h:1676
@ ConfigReadWriteMismatch
The configs read from the device do not match the configs that were written.
Definition: StatusCodes.h:1324
@ kWinUsbQueryFailed
kWinUsbQueryFailed
Definition: StatusCodes.h:1758
@ kAccessDenied
kAccessDenied
Definition: StatusCodes.h:1766
@ kInvalidPath
kInvalidPath
Definition: StatusCodes.h:1726
@ CouldNotReqSetConfigs
Could not apply the device configs.
Definition: StatusCodes.h:1328
@ WheelRadiusTooSmall
Wheel Radius is too small, cannot get distance traveled.
Definition: StatusCodes.h:1603
@ InvalidJson
InvalidJson.
Definition: StatusCodes.h:1456
@ CannotOpenUdpPort
CannotOpenUdpPort.
Definition: StatusCodes.h:1432
@ OK
No Error.
Definition: StatusCodes.h:1192
@ StatusCodeNotInitialized
This StatusCode has not been initialized.
Definition: StatusCodes.h:1775
@ CANdleAnimSlotOutOfBounds
CANdleAnimSlotOutOfBounds.
Definition: StatusCodes.h:1630
@ NoDevicesOnBus
NoDevicesOnBus.
Definition: StatusCodes.h:1269
@ MoreThanOneFile
MoreThanOneFile.
Definition: StatusCodes.h:1273
@ BufferFull
Buffer is full, cannot insert more data.
Definition: StatusCodes.h:1468
@ GadgeteerDeviceNoSetId
Cannot set the ID of a gadgeteer device.
Definition: StatusCodes.h:1257
@ CouldNotSerialize
The data frame could not be serialized for transmit.
Definition: StatusCodes.h:1900
@ DidNotGetFullDhcp
DidNotGetFullDhcp.
Definition: StatusCodes.h:1400
@ CANdleAnimationsRequireHigherFirm
CANdleAnimationsRequireHigherFirm.
Definition: StatusCodes.h:1660
@ InvalidLicenseResponse
InvalidLicenseResponse.
Definition: StatusCodes.h:1852
@ CannotLicenseWhileEnabled
Device cannot be licensed while it is control enabled.
Definition: StatusCodes.h:1934
@ RxTimeout
CAN frame not received/too-stale.
Definition: StatusCodes.h:1530
@ MultiSignalNotSupported
The CAN bus does not support multi-signal synchronization.
Definition: StatusCodes.h:1793
@ TimeoutCannotBeZero
Blocking operations, such as configs, cannot have a timeout of 0.
Definition: StatusCodes.h:1929
@ CannotReadUdpPort
CannotReadUdpPort.
Definition: StatusCodes.h:1440
@ CouldNotDecodeDeviceFirmware
Device firmware could not be decoded.
Definition: StatusCodes.h:1880
@ kErrorPollingForDevices
kErrorPollingForDevices
Definition: StatusCodes.h:1868
@ kDeviceResponseIncorrect
kDeviceResponseIncorrect
Definition: StatusCodes.h:1864
@ GEN_PORT_ERROR
GEN_PORT_ERROR.
Definition: StatusCodes.h:1583
@ TxFailed
Could not transmit CAN Frame.
Definition: StatusCodes.h:1520
@ InvalidCrfFileSzInvald
InvalidCrfFileSzInvald.
Definition: StatusCodes.h:1368
@ LoggerNotRunning
The signal logger is not running.
Definition: StatusCodes.h:1924
@ MODULE_NOT_INIT_GET_ERROR
MODULE_NOT_INIT_GET_ERROR.
Definition: StatusCodes.h:1599
@ LicenseDownloadFailed
License did not successfully download to Device.
Definition: StatusCodes.h:1827
@ NoControls
This device does not support new controls.
Definition: StatusCodes.h:1344
@ InvalidModel
This feature is not supported for this device model.
Definition: StatusCodes.h:1336
@ kWinUsbInitFailed
kWinUsbInitFailed
Definition: StatusCodes.h:1754
@ ControlModeNotSupportedYet
This control mode is not supported yet.
Definition: StatusCodes.h:1494
@ kInvalidClass
kInvalidClass
Definition: StatusCodes.h:1718
@ CanOverflowed
CanOverflowed.
Definition: StatusCodes.h:1542
@ DidNotGetDhcp
DidNotGetDhcp.
Definition: StatusCodes.h:1396
@ InvalidOrchestraAction
An invalid orchestra action occurred.
Definition: StatusCodes.h:1693
@ kInvalidRespFormat
kInvalidRespFormat
Definition: StatusCodes.h:1750
@ DeviceDidNotRespondToDiagReq
DeviceDidNotRespondToDiagReq.
Definition: StatusCodes.h:1352
@ CannotWriteUdpPort
CannotWriteUdpPort.
Definition: StatusCodes.h:1436
@ NoFile
Could not find specified file.
Definition: StatusCodes.h:1823
@ ControlModeNotValid
The control mode is not valid for this function.
Definition: StatusCodes.h:1489
@ NormalModeMsgNotPresent
NormalModeMsgNotPresent.
Definition: StatusCodes.h:1290
@ UnexpectedArbId
ArbID is incorrect.
Definition: StatusCodes.h:1538
@ DistanceBetweenWheelsTooSmall
Distance between wheels is too small, cannot get heading.
Definition: StatusCodes.h:1611
@ HwTimestampOutOfSync
The timestamp reported by CANivore is at least 10ms older than the timestamp reported by the system,...
Definition: StatusCodes.h:1785
@ MusicFileWrongSize
Music file size is incorrect, could not parse correctly.
Definition: StatusCodes.h:1681
@ CouldNotChangePeriod
Control Frame Period could not be changed.
Definition: StatusCodes.h:1557
@ FeaturesNotAvailableYet
This feature will be supported in a future update.
Definition: StatusCodes.h:1485
@ InvalidLicenseResp
InvalidLicenseResp.
Definition: StatusCodes.h:1404
@ kListenFailed
kListenFailed
Definition: StatusCodes.h:1738
@ MusicFileTooNew
Music file version is too new, update Phoenix to utilize this file.
Definition: StatusCodes.h:1685
@ FirmVersionCouldNotBeRetrieved
Firm Vers could not be retrieved.
Definition: StatusCodes.h:1481
@ CompileSzIsWrong
CompileSzIsWrong.
Definition: StatusCodes.h:1253
@ InvalidTask
This diagnostic action is not supported.
Definition: StatusCodes.h:1261
@ UsingProFeatureOnUnlicensedDevice
Using a Pro only feature on an unlicensed device.
Definition: StatusCodes.h:1890
@ NotFound
Could not find this value when searching for it.
Definition: StatusCodes.h:1801
@ CouldNotCast
Could not cast from base value to this particular signal's type.
Definition: StatusCodes.h:1797
@ DeviceIsNull
DeviceIsNull.
Definition: StatusCodes.h:1348
@ InvalidCanivCache
InvalidCanivCache.
Definition: StatusCodes.h:1408
@ WrongRemoteLimitSwitchSource
Use RemoteLimitSwitchSource instead of LimitSwitchSource.
Definition: StatusCodes.h:1619
@ InvalidModeToGetSignal
The current mode of the device is invalid for getting this signal.
Definition: StatusCodes.h:1840
@ CouldNotEnterBl
Could not put the device into bootloader mode.
Definition: StatusCodes.h:1209
@ MusicFileTooOld
This music file version is too old.
Definition: StatusCodes.h:1697
@ CannotUdpToDevice
CannotUdpToDevice.
Definition: StatusCodes.h:1444
@ CorruptedPOST
CorruptedPOST.
Definition: StatusCodes.h:1302
@ DirectoryMissing
Could not find specified directory.
Definition: StatusCodes.h:1913
@ kInvalidInterface
kInvalidInterface
Definition: StatusCodes.h:1710
@ MissingContext
Could not determine context from this device hash.
Definition: StatusCodes.h:1809
@ InvalidNetwork
InvalidNetwork.
Definition: StatusCodes.h:1789
@ FirmwareVersNotCompatible
Firmware version is not compatible with this version of Phoenix.
Definition: StatusCodes.h:1909
@ ResourceNotAvailable
ResourceNotAvailable.
Definition: StatusCodes.h:1672
@ InvalidCrfNoSects
InvalidCrfNoSects.
Definition: StatusCodes.h:1376
@ CouldNotReqDevInfo
CouldNotReqDevInfo.
Definition: StatusCodes.h:1340
@ InvalidCrfBadSectHeader
InvalidCrfBadSectHeader.
Definition: StatusCodes.h:1380
@ kFirmwareInvalidResponse
kFirmwareInvalidResponse
Definition: StatusCodes.h:1770
@ CanivCliError
Command-line issue with caniv.
Definition: StatusCodes.h:1360
@ CouldNotRetrieveV6Firmware
Device firmware could not be retrieved.
Definition: StatusCodes.h:1874
@ GeneralError
General Error Occurred.
Definition: StatusCodes.h:1571
@ kGeneralWinUsbError
kGeneralWinUsbError
Definition: StatusCodes.h:1730
@ SimPhysicsTypeNotSupported
SimPhysicsTypeNotSupported.
Definition: StatusCodes.h:1512
@ CannotWriteSerialPort
CannotWriteSerialPort.
Definition: StatusCodes.h:1416
@ GEN_MODULE_ERROR
GEN_MODULE_ERROR.
Definition: StatusCodes.h:1591
@ SignalLookupFailed
Failed to lookup signal properties.
Definition: StatusCodes.h:1836
@ kWinUsbGeneralError
kWinUsbGeneralError
Definition: StatusCodes.h:1762
@ InvalidSize
Size is invalid.
Definition: StatusCodes.h:1848
@ NoCrfFile
Specified CRF file could not be found.
Definition: StatusCodes.h:1388
@ InsufficientSz
InsufficientSz.
Definition: StatusCodes.h:1332
@ AppTooOld
Device firmware application is too old.
Definition: StatusCodes.h:1245
@ GeneralWarning
General Warning Occurred.
Definition: StatusCodes.h:1476
@ UnlicensedDevice
Device is not licensed.
Definition: StatusCodes.h:1844
@ MechanismFaulted
The mechanism is disabled due to a fault in one of the devices.
Definition: StatusCodes.h:1904
@ kFailedSetup
kFailedSetup
Definition: StatusCodes.h:1734
@ CouldNotSendCanFrame
CouldNotSendCanFrame.
Definition: StatusCodes.h:1286
@ InvalidCrfWrongProduct
Specified CRF is for the wrong product.
Definition: StatusCodes.h:1372
@ LibraryCouldNotBeLoaded
LibraryCouldNotBeLoaded.
Definition: StatusCodes.h:1664
@ PulseWidthSensorNotPresent
PulseWidthSensorNotPresent.
Definition: StatusCodes.h:1472
@ FirmwareTooNew
Firmware Too New.
Definition: StatusCodes.h:1896
@ FeatureRequiresHigherFirm
Features requires newer firmware version.
Definition: StatusCodes.h:1642
@ CouldNotReqSetDesc
Unable to set name to this device.
Definition: StatusCodes.h:1249
@ FirmwareNonFRC
Firmware is legacy non-FRC version.
Definition: StatusCodes.h:1567
@ NoUdpControlFrameResp
NoUdpControlFrameResp.
Definition: StatusCodes.h:1448
@ MusicNotSupported
This device doesn't support MusicTone control mode.
Definition: StatusCodes.h:1706
@ InvalidCrfBadHeader
InvalidCrfBadHeader.
Definition: StatusCodes.h:1364
@ CouldNotSendFlash
Could not field upgrade the device.
Definition: StatusCodes.h:1221
@ kSendFailed
kSendFailed
Definition: StatusCodes.h:1742
@ TxTimeout
CAN Transmit timed out.
Definition: StatusCodes.h:1534
@ InvalidParamValue
An invalid argument was passed into the function/VI, such as a null pointer.
Definition: StatusCodes.h:1525
@ MusicInterrupted
Music interrupted due to one of the instruments being commanded a different control mode.
Definition: StatusCodes.h:1702
@ InvalidCrfBadSectSize
InvalidCrfBadSectSize.
Definition: StatusCodes.h:1384
@ PORT_MODULE_TYPE_MISMATCH
PORT_MODULE_TYPE_MISMATCH.
Definition: StatusCodes.h:1587
@ WarningNotInitialized
WarningNotInitialized.
Definition: StatusCodes.h:1779
@ kReceiveFailed
kReceiveFailed
Definition: StatusCodes.h:1746
@ SensorNotPresent
Sensor Not Present.
Definition: StatusCodes.h:1546
@ SimDeviceAlreadyExists
SimDeviceAlreadyExists.
Definition: StatusCodes.h:1516
@ NotImplemented
Not Implemented, check latest installer.
Definition: StatusCodes.h:1265
@ ConfigMotionSCurveRequiresHigherFirm
Config Motion S Curve Strength features require firmware >=4.16.
Definition: StatusCodes.h:1650
@ CouldNotConfirmBl
Could not confirm the device has entered the bootloader.
Definition: StatusCodes.h:1213
@ CouldNotFindDynamicId
CouldNotFindDynamicId.
Definition: StatusCodes.h:1392
@ kInvalidProtocol
kInvalidProtocol
Definition: StatusCodes.h:1722
@ TimeoutIso15Response
TimeoutIso15Response.
Definition: StatusCodes.h:1452
@ CannotReadSerialPort
CannotReadSerialPort.
Definition: StatusCodes.h:1420
@ CouldNotConfirmId
Could not verify that the changed ID took effect.
Definition: StatusCodes.h:1237
@ FirmwareTooOld
Firmware Too Old.
Definition: StatusCodes.h:1552
@ CouldNotValidate
Bootloader could not verify integrity of the flashed application.
Definition: StatusCodes.h:1225
@ InvalidDeviceDescriptor
InvalidDeviceDescriptor.
Definition: StatusCodes.h:1282
@ EcuIsNotPresent
Device is not present.
Definition: StatusCodes.h:1205
@ InvalidDeviceSpec
InvalidDeviceSpec.
Definition: StatusCodes.h:1200
@ NotSupported
This is not supported.
Definition: StatusCodes.h:1805
@ NoSerialControlFrameResp
NoSerialControlFrameResp.
Definition: StatusCodes.h:1428
@ ConfigFactoryDefaultRequiresHigherFirm
Config factory default features require firmware >=3.10.
Definition: StatusCodes.h:1646
@ MODULE_NOT_INIT_SET_ERROR
MODULE_NOT_INIT_SET_ERROR.
Definition: StatusCodes.h:1595
@ CouldNotReqFactoryDefault
Unable to factory default this device.
Definition: StatusCodes.h:1315
@ SelfTestIsEmpty
Self Test report does not have any values, is the firmware up to date?
Definition: StatusCodes.h:1831
@ ConfigFailed
ConfigFailed.
Definition: StatusCodes.h:1311
@ TaskIsBusy
Diagnostic Server is busy with another command.
Definition: StatusCodes.h:1196
@ DoubleVoltageCompensatingWPI
Motor Controller Voltage Compensation should not be used with setVoltage().
Definition: StatusCodes.h:1626
@ SigNotUpdated
No new response to update signal.
Definition: StatusCodes.h:1575
@ NodeIsInvalid
Specified device was not found.
Definition: StatusCodes.h:1278
@ FeatureNotSupported
This feature is not supported.
Definition: StatusCodes.h:1294
@ InvalidIDToFollow
The values specified for master are in valid.
Definition: StatusCodes.h:1885
@ CustomNameNotSupported
CustomNameNotSupported.
Definition: StatusCodes.h:1319
@ OnlySupportedInTunerX
This feature requires Tuner X.
Definition: StatusCodes.h:1356
@ FlashWasGood
Device field upgrade was successful.
Definition: StatusCodes.h:1241
@ InternalError
InternalError.
Definition: StatusCodes.h:1860
@ ModelMismatch
Model name in license file does not match model name of selected device.
Definition: StatusCodes.h:1814
@ CouldNotErase
Could not erase flash.
Definition: StatusCodes.h:1217
@ NotAllPIDValuesUpdated
NotAllPIDValuesUpdated.
Definition: StatusCodes.h:1579
@ MotProfFirmThreshold2
Motor Controller must have >= 3.4 firmware for advanced PID0/PID1 features.
Definition: StatusCodes.h:1504
@ CannotOpenSerialPort
CannotOpenSerialPort.
Definition: StatusCodes.h:1412
@ BufferFailure
BufferFailure.
Definition: StatusCodes.h:1561
@ kInvalidGuid
kInvalidGuid
Definition: StatusCodes.h:1714
@ MissingRoutineInLibrary
MissingRoutineInLibrary.
Definition: StatusCodes.h:1668
@ SerialMismatch
Serial Number in license file does not match model name of selected device.
Definition: StatusCodes.h:1819
const char * GetStatusCodeName(StatusCode_t value)
Get the name of the StatusCode passed.
const char * GetStatusCodeDescription(StatusCode_t value)
Get the description of the StatusCode passed.
Definition: RcManualEvent.hpp:12