CTRE Phoenix 6 C++ 25.1.0
Loading...
Searching...
No Matches
HasTalonSignals.hpp
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
12
14#include <units/angle.h>
15#include <units/angular_acceleration.h>
16#include <units/angular_velocity.h>
17#include <units/current.h>
18#include <units/dimensionless.h>
19#include <units/temperature.h>
20#include <units/voltage.h>
21
22namespace ctre {
23namespace phoenix6 {
24namespace hardware {
25namespace traits {
26
27/**
28 * Contains all status signals available for devices that support Talon signals.
29 */
31{
32public:
33 virtual ~HasTalonSignals() = default;
34
35 /**
36 * \brief App Major Version number.
37 *
38 * - Minimum Value: 0
39 * - Maximum Value: 255
40 * - Default Value: 0
41 * - Units:
42 *
43 * This refreshes and returns a cached StatusSignal object.
44 *
45 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
46 * \returns VersionMajor Status Signal Object
47 */
48 virtual StatusSignal<int> &GetVersionMajor(bool refresh = true) = 0;
49
50 /**
51 * \brief App Minor Version number.
52 *
53 * - Minimum Value: 0
54 * - Maximum Value: 255
55 * - Default Value: 0
56 * - Units:
57 *
58 * This refreshes and returns a cached StatusSignal object.
59 *
60 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
61 * \returns VersionMinor Status Signal Object
62 */
63 virtual StatusSignal<int> &GetVersionMinor(bool refresh = true) = 0;
64
65 /**
66 * \brief App Bugfix Version number.
67 *
68 * - Minimum Value: 0
69 * - Maximum Value: 255
70 * - Default Value: 0
71 * - Units:
72 *
73 * This refreshes and returns a cached StatusSignal object.
74 *
75 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
76 * \returns VersionBugfix Status Signal Object
77 */
78 virtual StatusSignal<int> &GetVersionBugfix(bool refresh = true) = 0;
79
80 /**
81 * \brief App Build Version number.
82 *
83 * - Minimum Value: 0
84 * - Maximum Value: 255
85 * - Default Value: 0
86 * - Units:
87 *
88 * This refreshes and returns a cached StatusSignal object.
89 *
90 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
91 * \returns VersionBuild Status Signal Object
92 */
93 virtual StatusSignal<int> &GetVersionBuild(bool refresh = true) = 0;
94
95 /**
96 * \brief Full Version of firmware in device. The format is a four
97 * byte value.
98 *
99 * - Minimum Value: 0
100 * - Maximum Value: 4294967295
101 * - Default Value: 0
102 * - Units:
103 *
104 * This refreshes and returns a cached StatusSignal object.
105 *
106 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
107 * \returns Version Status Signal Object
108 */
109 virtual StatusSignal<int> &GetVersion(bool refresh = true) = 0;
110
111 /**
112 * \brief Integer representing all fault flags reported by the device.
113 *
114 * \details These are device specific and are not used directly in
115 * typical applications. Use the signal specific GetFault_*() methods
116 * instead.
117 *
118 * - Minimum Value: 0
119 * - Maximum Value: 4294967295
120 * - Default Value: 0
121 * - Units:
122 *
123 * This refreshes and returns a cached StatusSignal object.
124 *
125 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
126 * \returns FaultField Status Signal Object
127 */
128 virtual StatusSignal<int> &GetFaultField(bool refresh = true) = 0;
129
130 /**
131 * \brief Integer representing all (persistent) sticky fault flags
132 * reported by the device.
133 *
134 * \details These are device specific and are not used directly in
135 * typical applications. Use the signal specific GetStickyFault_*()
136 * methods instead.
137 *
138 * - Minimum Value: 0
139 * - Maximum Value: 4294967295
140 * - Default Value: 0
141 * - Units:
142 *
143 * This refreshes and returns a cached StatusSignal object.
144 *
145 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
146 * \returns StickyFaultField Status Signal Object
147 */
148 virtual StatusSignal<int> &GetStickyFaultField(bool refresh = true) = 0;
149
150 /**
151 * \brief The applied (output) motor voltage.
152 *
153 * - Minimum Value: -40.96
154 * - Maximum Value: 40.95
155 * - Default Value: 0
156 * - Units: V
157 *
158 * This refreshes and returns a cached StatusSignal object.
159 *
160 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
161 * \returns MotorVoltage Status Signal Object
162 */
163 virtual StatusSignal<units::voltage::volt_t> &GetMotorVoltage(bool refresh = true) = 0;
164
165 /**
166 * \brief Forward Limit Pin.
167 *
168 *
169 * This refreshes and returns a cached StatusSignal object.
170 *
171 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
172 * \returns ForwardLimit Status Signal Object
173 */
175
176 /**
177 * \brief Reverse Limit Pin.
178 *
179 *
180 * This refreshes and returns a cached StatusSignal object.
181 *
182 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
183 * \returns ReverseLimit Status Signal Object
184 */
186
187 /**
188 * \brief The applied rotor polarity as seen from the front of the
189 * motor. This typically is determined by the Inverted config, but
190 * can be overridden if using Follower features.
191 *
192 *
193 * This refreshes and returns a cached StatusSignal object.
194 *
195 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
196 * \returns AppliedRotorPolarity Status Signal Object
197 */
199
200 /**
201 * \brief The applied motor duty cycle.
202 *
203 * - Minimum Value: -2.0
204 * - Maximum Value: 1.9990234375
205 * - Default Value: 0
206 * - Units: fractional
207 *
208 * This refreshes and returns a cached StatusSignal object.
209 *
210 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
211 * \returns DutyCycle Status Signal Object
212 */
214
215 /**
216 * \brief Current corresponding to the torque output by the motor.
217 * Similar to StatorCurrent. Users will likely prefer this current to
218 * calculate the applied torque to the rotor.
219 *
220 * \details Stator current where positive current means torque is
221 * applied in the forward direction as determined by the Inverted
222 * setting.
223 *
224 * - Minimum Value: -327.68
225 * - Maximum Value: 327.67
226 * - Default Value: 0
227 * - Units: A
228 *
229 * This refreshes and returns a cached StatusSignal object.
230 *
231 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
232 * \returns TorqueCurrent Status Signal Object
233 */
235
236 /**
237 * \brief Current corresponding to the stator windings. Similar to
238 * TorqueCurrent. Users will likely prefer TorqueCurrent over
239 * StatorCurrent.
240 *
241 * \details Stator current where Positive current indicates motoring
242 * regardless of direction. Negative current indicates regenerative
243 * braking regardless of direction.
244 *
245 * - Minimum Value: -327.68
246 * - Maximum Value: 327.66
247 * - Default Value: 0
248 * - Units: A
249 *
250 * This refreshes and returns a cached StatusSignal object.
251 *
252 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
253 * \returns StatorCurrent Status Signal Object
254 */
256
257 /**
258 * \brief Measured supply side current.
259 *
260 * - Minimum Value: -327.68
261 * - Maximum Value: 327.66
262 * - Default Value: 0
263 * - Units: A
264 *
265 * This refreshes and returns a cached StatusSignal object.
266 *
267 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
268 * \returns SupplyCurrent Status Signal Object
269 */
271
272 /**
273 * \brief Measured supply voltage to the device.
274 *
275 * - Minimum Value: 4
276 * - Maximum Value: 29.575
277 * - Default Value: 4
278 * - Units: V
279 *
280 * This refreshes and returns a cached StatusSignal object.
281 *
282 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
283 * \returns SupplyVoltage Status Signal Object
284 */
286
287 /**
288 * \brief Temperature of device.
289 *
290 * \details This is the temperature that the device measures itself to
291 * be at. Similar to Processor Temperature.
292 *
293 * - Minimum Value: 0.0
294 * - Maximum Value: 255.0
295 * - Default Value: 0
296 * - Units: ℃
297 *
298 * This refreshes and returns a cached StatusSignal object.
299 *
300 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
301 * \returns DeviceTemp Status Signal Object
302 */
304
305 /**
306 * \brief Temperature of the processor.
307 *
308 * \details This is the temperature that the processor measures itself
309 * to be at. Similar to Device Temperature.
310 *
311 * - Minimum Value: 0.0
312 * - Maximum Value: 255.0
313 * - Default Value: 0
314 * - Units: ℃
315 *
316 * This refreshes and returns a cached StatusSignal object.
317 *
318 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
319 * \returns ProcessorTemp Status Signal Object
320 */
322
323 /**
324 * \brief Velocity of the motor rotor. This velocity is not affected
325 * by any feedback configs.
326 *
327 * - Minimum Value: -512.0
328 * - Maximum Value: 511.998046875
329 * - Default Value: 0
330 * - Units: rotations per second
331 *
332 * This refreshes and returns a cached StatusSignal object.
333 *
334 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
335 * \returns RotorVelocity Status Signal Object
336 */
338
339 /**
340 * \brief Position of the motor rotor. This position is only affected
341 * by the RotorOffset config and calls to setPosition.
342 *
343 * - Minimum Value: -16384.0
344 * - Maximum Value: 16383.999755859375
345 * - Default Value: 0
346 * - Units: rotations
347 *
348 * This refreshes and returns a cached StatusSignal object.
349 *
350 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
351 * \returns RotorPosition Status Signal Object
352 */
353 virtual StatusSignal<units::angle::turn_t> &GetRotorPosition(bool refresh = true) = 0;
354
355 /**
356 * \brief Velocity of the device in mechanism rotations per second.
357 * This can be the velocity of a remote sensor and is affected by the
358 * RotorToSensorRatio and SensorToMechanismRatio configs.
359 *
360 * - Minimum Value: -512.0
361 * - Maximum Value: 511.998046875
362 * - Default Value: 0
363 * - Units: rotations per second
364 *
365 * This refreshes and returns a cached StatusSignal object.
366 *
367 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
368 * \returns Velocity Status Signal Object
369 */
371
372 /**
373 * \brief Position of the device in mechanism rotations. This can be
374 * the position of a remote sensor and is affected by the
375 * RotorToSensorRatio and SensorToMechanismRatio configs, as well as
376 * calls to setPosition.
377 *
378 * - Minimum Value: -16384.0
379 * - Maximum Value: 16383.999755859375
380 * - Default Value: 0
381 * - Units: rotations
382 *
383 * This refreshes and returns a cached StatusSignal object.
384 *
385 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
386 * \returns Position Status Signal Object
387 */
388 virtual StatusSignal<units::angle::turn_t> &GetPosition(bool refresh = true) = 0;
389
390 /**
391 * \brief Acceleration of the device in mechanism rotations per
392 * second². This can be the acceleration of a remote sensor and is
393 * affected by the RotorToSensorRatio and SensorToMechanismRatio
394 * configs.
395 *
396 * - Minimum Value: -2048.0
397 * - Maximum Value: 2047.75
398 * - Default Value: 0
399 * - Units: rotations per second²
400 *
401 * This refreshes and returns a cached StatusSignal object.
402 *
403 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
404 * \returns Acceleration Status Signal Object
405 */
407
408 /**
409 * \brief The active control mode of the motor controller.
410 *
411 *
412 * This refreshes and returns a cached StatusSignal object.
413 *
414 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
415 * \returns ControlMode Status Signal Object
416 */
418
419 /**
420 * \brief Check if Motion Magic® is running. This is equivalent to
421 * checking that the reported control mode is a Motion Magic® based
422 * mode.
423 *
424 *
425 * This refreshes and returns a cached StatusSignal object.
426 *
427 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
428 * \returns MotionMagicIsRunning Status Signal Object
429 */
431
432 /**
433 * \brief Indicates if device is actuator enabled.
434 *
435 *
436 * This refreshes and returns a cached StatusSignal object.
437 *
438 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
439 * \returns DeviceEnable Status Signal Object
440 */
442
443 /**
444 * \brief The slot that the closed-loop PID is using.
445 *
446 * - Minimum Value: 0
447 * - Maximum Value: 2
448 * - Default Value: 0
449 * - Units:
450 *
451 * This refreshes and returns a cached StatusSignal object.
452 *
453 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
454 * \returns ClosedLoopSlot Status Signal Object
455 */
456 virtual StatusSignal<int> &GetClosedLoopSlot(bool refresh = true) = 0;
457
458 /**
459 * \brief Assess the status of the motor output with respect to load
460 * and supply.
461 *
462 * \details This routine can be used to determine the general status
463 * of motor commutation.
464 *
465 *
466 * This refreshes and returns a cached StatusSignal object.
467 *
468 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
469 * \returns MotorOutputStatus Status Signal Object
470 */
472
473 /**
474 * \brief The active control mode of the differential controller.
475 *
476 *
477 * This refreshes and returns a cached StatusSignal object.
478 *
479 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
480 * \returns DifferentialControlMode Status Signal Object
481 */
483
484 /**
485 * \brief Average component of the differential velocity of device.
486 *
487 * - Minimum Value: -512.0
488 * - Maximum Value: 511.998046875
489 * - Default Value: 0
490 * - Units: rotations per second
491 *
492 * This refreshes and returns a cached StatusSignal object.
493 *
494 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
495 * \returns DifferentialAverageVelocity Status Signal Object
496 */
498
499 /**
500 * \brief Average component of the differential position of device.
501 *
502 * - Minimum Value: -16384.0
503 * - Maximum Value: 16383.999755859375
504 * - Default Value: 0
505 * - Units: rotations
506 *
507 * This refreshes and returns a cached StatusSignal object.
508 *
509 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
510 * \returns DifferentialAveragePosition Status Signal Object
511 */
513
514 /**
515 * \brief Difference component of the differential velocity of device.
516 *
517 * - Minimum Value: -512.0
518 * - Maximum Value: 511.998046875
519 * - Default Value: 0
520 * - Units: rotations per second
521 *
522 * This refreshes and returns a cached StatusSignal object.
523 *
524 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
525 * \returns DifferentialDifferenceVelocity Status Signal Object
526 */
528
529 /**
530 * \brief Difference component of the differential position of device.
531 *
532 * - Minimum Value: -16384.0
533 * - Maximum Value: 16383.999755859375
534 * - Default Value: 0
535 * - Units: rotations
536 *
537 * This refreshes and returns a cached StatusSignal object.
538 *
539 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
540 * \returns DifferentialDifferencePosition Status Signal Object
541 */
543
544 /**
545 * \brief The slot that the closed-loop differential PID is using.
546 *
547 * - Minimum Value: 0
548 * - Maximum Value: 2
549 * - Default Value: 0
550 * - Units:
551 *
552 * This refreshes and returns a cached StatusSignal object.
553 *
554 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
555 * \returns DifferentialClosedLoopSlot Status Signal Object
556 */
557 virtual StatusSignal<int> &GetDifferentialClosedLoopSlot(bool refresh = true) = 0;
558
559 /**
560 * \brief The torque constant (K_T) of the motor.
561 *
562 * - Minimum Value: 0.0
563 * - Maximum Value: 0.025500000000000002
564 * - Default Value: 0
565 * - Units: Nm/A
566 *
567 * This refreshes and returns a cached StatusSignal object.
568 *
569 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
570 * \returns MotorKT Status Signal Object
571 */
573
574 /**
575 * \brief The velocity constant (K_V) of the motor.
576 *
577 * - Minimum Value: 0.0
578 * - Maximum Value: 2047.0
579 * - Default Value: 0
580 * - Units: RPM/V
581 *
582 * This refreshes and returns a cached StatusSignal object.
583 *
584 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
585 * \returns MotorKV Status Signal Object
586 */
587 virtual StatusSignal<ctre::unit::rpm_per_volt_t> &GetMotorKV(bool refresh = true) = 0;
588
589 /**
590 * \brief The stall current of the motor at 12 V output.
591 *
592 * - Minimum Value: 0.0
593 * - Maximum Value: 1023.0
594 * - Default Value: 0
595 * - Units: A
596 *
597 * This refreshes and returns a cached StatusSignal object.
598 *
599 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
600 * \returns MotorStallCurrent Status Signal Object
601 */
603
604 /**
605 * \brief The applied output of the bridge.
606 *
607 *
608 * This refreshes and returns a cached StatusSignal object.
609 *
610 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
611 * \returns BridgeOutput Status Signal Object
612 */
614
615 /**
616 * \brief Whether the device is Phoenix Pro licensed.
617 *
618 * - Default Value: False
619 *
620 * This refreshes and returns a cached StatusSignal object.
621 *
622 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
623 * \returns IsProLicensed Status Signal Object
624 */
625 virtual StatusSignal<bool> &GetIsProLicensed(bool refresh = true) = 0;
626
627 /**
628 * \brief Temperature of device from second sensor.
629 *
630 * \details Newer versions of Talon have multiple temperature
631 * measurement methods.
632 *
633 * - Minimum Value: 0.0
634 * - Maximum Value: 255.0
635 * - Default Value: 0
636 * - Units: ℃
637 *
638 * This refreshes and returns a cached StatusSignal object.
639 *
640 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
641 * \returns AncillaryDeviceTemp Status Signal Object
642 */
644
645 /**
646 * \brief The type of motor attached to the Talon.
647 *
648 * \details This can be used to determine what motor is attached to
649 * the Talon FX. Return will be "Unknown" if firmware is too old or
650 * device is not present.
651 *
652 *
653 * This refreshes and returns a cached StatusSignal object.
654 *
655 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
656 * \returns ConnectedMotor Status Signal Object
657 */
659
660 /**
661 * \brief Hardware fault occurred
662 *
663 * - Default Value: False
664 *
665 * This refreshes and returns a cached StatusSignal object.
666 *
667 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
668 * \returns Fault_Hardware Status Signal Object
669 */
670 virtual StatusSignal<bool> &GetFault_Hardware(bool refresh = true) = 0;
671
672 /**
673 * \brief Hardware fault occurred
674 *
675 * - Default Value: False
676 *
677 * This refreshes and returns a cached StatusSignal object.
678 *
679 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
680 * \returns StickyFault_Hardware Status Signal Object
681 */
682 virtual StatusSignal<bool> &GetStickyFault_Hardware(bool refresh = true) = 0;
683
684 /**
685 * \brief Processor temperature exceeded limit
686 *
687 * - Default Value: False
688 *
689 * This refreshes and returns a cached StatusSignal object.
690 *
691 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
692 * \returns Fault_ProcTemp Status Signal Object
693 */
694 virtual StatusSignal<bool> &GetFault_ProcTemp(bool refresh = true) = 0;
695
696 /**
697 * \brief Processor temperature exceeded limit
698 *
699 * - Default Value: False
700 *
701 * This refreshes and returns a cached StatusSignal object.
702 *
703 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
704 * \returns StickyFault_ProcTemp Status Signal Object
705 */
706 virtual StatusSignal<bool> &GetStickyFault_ProcTemp(bool refresh = true) = 0;
707
708 /**
709 * \brief Device temperature exceeded limit
710 *
711 * - Default Value: False
712 *
713 * This refreshes and returns a cached StatusSignal object.
714 *
715 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
716 * \returns Fault_DeviceTemp Status Signal Object
717 */
718 virtual StatusSignal<bool> &GetFault_DeviceTemp(bool refresh = true) = 0;
719
720 /**
721 * \brief Device temperature exceeded limit
722 *
723 * - Default Value: False
724 *
725 * This refreshes and returns a cached StatusSignal object.
726 *
727 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
728 * \returns StickyFault_DeviceTemp Status Signal Object
729 */
730 virtual StatusSignal<bool> &GetStickyFault_DeviceTemp(bool refresh = true) = 0;
731
732 /**
733 * \brief Device supply voltage dropped to near brownout levels
734 *
735 * - Default Value: False
736 *
737 * This refreshes and returns a cached StatusSignal object.
738 *
739 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
740 * \returns Fault_Undervoltage Status Signal Object
741 */
742 virtual StatusSignal<bool> &GetFault_Undervoltage(bool refresh = true) = 0;
743
744 /**
745 * \brief Device supply voltage dropped to near brownout levels
746 *
747 * - Default Value: False
748 *
749 * This refreshes and returns a cached StatusSignal object.
750 *
751 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
752 * \returns StickyFault_Undervoltage Status Signal Object
753 */
754 virtual StatusSignal<bool> &GetStickyFault_Undervoltage(bool refresh = true) = 0;
755
756 /**
757 * \brief Device boot while detecting the enable signal
758 *
759 * - Default Value: False
760 *
761 * This refreshes and returns a cached StatusSignal object.
762 *
763 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
764 * \returns Fault_BootDuringEnable Status Signal Object
765 */
766 virtual StatusSignal<bool> &GetFault_BootDuringEnable(bool refresh = true) = 0;
767
768 /**
769 * \brief Device boot while detecting the enable signal
770 *
771 * - Default Value: False
772 *
773 * This refreshes and returns a cached StatusSignal object.
774 *
775 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
776 * \returns StickyFault_BootDuringEnable Status Signal Object
777 */
778 virtual StatusSignal<bool> &GetStickyFault_BootDuringEnable(bool refresh = true) = 0;
779
780 /**
781 * \brief An unlicensed feature is in use, device may not behave as
782 * expected.
783 *
784 * - Default Value: False
785 *
786 * This refreshes and returns a cached StatusSignal object.
787 *
788 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
789 * \returns Fault_UnlicensedFeatureInUse Status Signal Object
790 */
791 virtual StatusSignal<bool> &GetFault_UnlicensedFeatureInUse(bool refresh = true) = 0;
792
793 /**
794 * \brief An unlicensed feature is in use, device may not behave as
795 * expected.
796 *
797 * - Default Value: False
798 *
799 * This refreshes and returns a cached StatusSignal object.
800 *
801 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
802 * \returns StickyFault_UnlicensedFeatureInUse Status Signal Object
803 */
805
806 /**
807 * \brief Bridge was disabled most likely due to supply voltage
808 * dropping too low.
809 *
810 * - Default Value: False
811 *
812 * This refreshes and returns a cached StatusSignal object.
813 *
814 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
815 * \returns Fault_BridgeBrownout Status Signal Object
816 */
817 virtual StatusSignal<bool> &GetFault_BridgeBrownout(bool refresh = true) = 0;
818
819 /**
820 * \brief Bridge was disabled most likely due to supply voltage
821 * dropping too low.
822 *
823 * - Default Value: False
824 *
825 * This refreshes and returns a cached StatusSignal object.
826 *
827 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
828 * \returns StickyFault_BridgeBrownout Status Signal Object
829 */
830 virtual StatusSignal<bool> &GetStickyFault_BridgeBrownout(bool refresh = true) = 0;
831
832 /**
833 * \brief The remote sensor has reset.
834 *
835 * - Default Value: False
836 *
837 * This refreshes and returns a cached StatusSignal object.
838 *
839 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
840 * \returns Fault_RemoteSensorReset Status Signal Object
841 */
842 virtual StatusSignal<bool> &GetFault_RemoteSensorReset(bool refresh = true) = 0;
843
844 /**
845 * \brief The remote sensor has reset.
846 *
847 * - Default Value: False
848 *
849 * This refreshes and returns a cached StatusSignal object.
850 *
851 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
852 * \returns StickyFault_RemoteSensorReset Status Signal Object
853 */
854 virtual StatusSignal<bool> &GetStickyFault_RemoteSensorReset(bool refresh = true) = 0;
855
856 /**
857 * \brief The remote Talon used for differential control is not
858 * present on CAN Bus.
859 *
860 * - Default Value: False
861 *
862 * This refreshes and returns a cached StatusSignal object.
863 *
864 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
865 * \returns Fault_MissingDifferentialFX Status Signal Object
866 */
867 virtual StatusSignal<bool> &GetFault_MissingDifferentialFX(bool refresh = true) = 0;
868
869 /**
870 * \brief The remote Talon used for differential control is not
871 * present on CAN Bus.
872 *
873 * - Default Value: False
874 *
875 * This refreshes and returns a cached StatusSignal object.
876 *
877 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
878 * \returns StickyFault_MissingDifferentialFX Status Signal Object
879 */
881
882 /**
883 * \brief The remote sensor position has overflowed. Because of the
884 * nature of remote sensors, it is possible for the remote sensor
885 * position to overflow beyond what is supported by the status signal
886 * frame. However, this is rare and cannot occur over the course of an
887 * FRC match under normal use.
888 *
889 * - Default Value: False
890 *
891 * This refreshes and returns a cached StatusSignal object.
892 *
893 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
894 * \returns Fault_RemoteSensorPosOverflow Status Signal Object
895 */
896 virtual StatusSignal<bool> &GetFault_RemoteSensorPosOverflow(bool refresh = true) = 0;
897
898 /**
899 * \brief The remote sensor position has overflowed. Because of the
900 * nature of remote sensors, it is possible for the remote sensor
901 * position to overflow beyond what is supported by the status signal
902 * frame. However, this is rare and cannot occur over the course of an
903 * FRC match under normal use.
904 *
905 * - Default Value: False
906 *
907 * This refreshes and returns a cached StatusSignal object.
908 *
909 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
910 * \returns StickyFault_RemoteSensorPosOverflow Status Signal Object
911 */
913
914 /**
915 * \brief Supply Voltage has exceeded the maximum voltage rating of
916 * device.
917 *
918 * - Default Value: False
919 *
920 * This refreshes and returns a cached StatusSignal object.
921 *
922 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
923 * \returns Fault_OverSupplyV Status Signal Object
924 */
925 virtual StatusSignal<bool> &GetFault_OverSupplyV(bool refresh = true) = 0;
926
927 /**
928 * \brief Supply Voltage has exceeded the maximum voltage rating of
929 * device.
930 *
931 * - Default Value: False
932 *
933 * This refreshes and returns a cached StatusSignal object.
934 *
935 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
936 * \returns StickyFault_OverSupplyV Status Signal Object
937 */
938 virtual StatusSignal<bool> &GetStickyFault_OverSupplyV(bool refresh = true) = 0;
939
940 /**
941 * \brief Supply Voltage is unstable. Ensure you are using a battery
942 * and current limited power supply.
943 *
944 * - Default Value: False
945 *
946 * This refreshes and returns a cached StatusSignal object.
947 *
948 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
949 * \returns Fault_UnstableSupplyV Status Signal Object
950 */
951 virtual StatusSignal<bool> &GetFault_UnstableSupplyV(bool refresh = true) = 0;
952
953 /**
954 * \brief Supply Voltage is unstable. Ensure you are using a battery
955 * and current limited power supply.
956 *
957 * - Default Value: False
958 *
959 * This refreshes and returns a cached StatusSignal object.
960 *
961 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
962 * \returns StickyFault_UnstableSupplyV Status Signal Object
963 */
964 virtual StatusSignal<bool> &GetStickyFault_UnstableSupplyV(bool refresh = true) = 0;
965
966 /**
967 * \brief Reverse limit switch has been asserted. Output is set to
968 * neutral.
969 *
970 * - Default Value: False
971 *
972 * This refreshes and returns a cached StatusSignal object.
973 *
974 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
975 * \returns Fault_ReverseHardLimit Status Signal Object
976 */
977 virtual StatusSignal<bool> &GetFault_ReverseHardLimit(bool refresh = true) = 0;
978
979 /**
980 * \brief Reverse limit switch has been asserted. Output is set to
981 * neutral.
982 *
983 * - Default Value: False
984 *
985 * This refreshes and returns a cached StatusSignal object.
986 *
987 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
988 * \returns StickyFault_ReverseHardLimit Status Signal Object
989 */
990 virtual StatusSignal<bool> &GetStickyFault_ReverseHardLimit(bool refresh = true) = 0;
991
992 /**
993 * \brief Forward limit switch has been asserted. Output is set to
994 * neutral.
995 *
996 * - Default Value: False
997 *
998 * This refreshes and returns a cached StatusSignal object.
999 *
1000 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1001 * \returns Fault_ForwardHardLimit Status Signal Object
1002 */
1003 virtual StatusSignal<bool> &GetFault_ForwardHardLimit(bool refresh = true) = 0;
1004
1005 /**
1006 * \brief Forward limit switch has been asserted. Output is set to
1007 * neutral.
1008 *
1009 * - Default Value: False
1010 *
1011 * This refreshes and returns a cached StatusSignal object.
1012 *
1013 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1014 * \returns StickyFault_ForwardHardLimit Status Signal Object
1015 */
1016 virtual StatusSignal<bool> &GetStickyFault_ForwardHardLimit(bool refresh = true) = 0;
1017
1018 /**
1019 * \brief Reverse soft limit has been asserted. Output is set to
1020 * neutral.
1021 *
1022 * - Default Value: False
1023 *
1024 * This refreshes and returns a cached StatusSignal object.
1025 *
1026 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1027 * \returns Fault_ReverseSoftLimit Status Signal Object
1028 */
1029 virtual StatusSignal<bool> &GetFault_ReverseSoftLimit(bool refresh = true) = 0;
1030
1031 /**
1032 * \brief Reverse soft limit has been asserted. Output is set to
1033 * neutral.
1034 *
1035 * - Default Value: False
1036 *
1037 * This refreshes and returns a cached StatusSignal object.
1038 *
1039 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1040 * \returns StickyFault_ReverseSoftLimit Status Signal Object
1041 */
1042 virtual StatusSignal<bool> &GetStickyFault_ReverseSoftLimit(bool refresh = true) = 0;
1043
1044 /**
1045 * \brief Forward soft limit has been asserted. Output is set to
1046 * neutral.
1047 *
1048 * - Default Value: False
1049 *
1050 * This refreshes and returns a cached StatusSignal object.
1051 *
1052 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1053 * \returns Fault_ForwardSoftLimit Status Signal Object
1054 */
1055 virtual StatusSignal<bool> &GetFault_ForwardSoftLimit(bool refresh = true) = 0;
1056
1057 /**
1058 * \brief Forward soft limit has been asserted. Output is set to
1059 * neutral.
1060 *
1061 * - Default Value: False
1062 *
1063 * This refreshes and returns a cached StatusSignal object.
1064 *
1065 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1066 * \returns StickyFault_ForwardSoftLimit Status Signal Object
1067 */
1068 virtual StatusSignal<bool> &GetStickyFault_ForwardSoftLimit(bool refresh = true) = 0;
1069
1070 /**
1071 * \brief The remote soft limit device is not present on CAN Bus.
1072 *
1073 * - Default Value: False
1074 *
1075 * This refreshes and returns a cached StatusSignal object.
1076 *
1077 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1078 * \returns Fault_MissingSoftLimitRemote Status Signal Object
1079 */
1080 virtual StatusSignal<bool> &GetFault_MissingSoftLimitRemote(bool refresh = true) = 0;
1081
1082 /**
1083 * \brief The remote soft limit device is not present on CAN Bus.
1084 *
1085 * - Default Value: False
1086 *
1087 * This refreshes and returns a cached StatusSignal object.
1088 *
1089 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1090 * \returns StickyFault_MissingSoftLimitRemote Status Signal Object
1091 */
1093
1094 /**
1095 * \brief The remote limit switch device is not present on CAN Bus.
1096 *
1097 * - Default Value: False
1098 *
1099 * This refreshes and returns a cached StatusSignal object.
1100 *
1101 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1102 * \returns Fault_MissingHardLimitRemote Status Signal Object
1103 */
1104 virtual StatusSignal<bool> &GetFault_MissingHardLimitRemote(bool refresh = true) = 0;
1105
1106 /**
1107 * \brief The remote limit switch device is not present on CAN Bus.
1108 *
1109 * - Default Value: False
1110 *
1111 * This refreshes and returns a cached StatusSignal object.
1112 *
1113 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1114 * \returns StickyFault_MissingHardLimitRemote Status Signal Object
1115 */
1117
1118 /**
1119 * \brief The remote sensor's data is no longer trusted. This can
1120 * happen if the remote sensor disappears from the CAN bus or if the
1121 * remote sensor indicates its data is no longer valid, such as when a
1122 * CANcoder's magnet strength falls into the "red" range.
1123 *
1124 * - Default Value: False
1125 *
1126 * This refreshes and returns a cached StatusSignal object.
1127 *
1128 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1129 * \returns Fault_RemoteSensorDataInvalid Status Signal Object
1130 */
1131 virtual StatusSignal<bool> &GetFault_RemoteSensorDataInvalid(bool refresh = true) = 0;
1132
1133 /**
1134 * \brief The remote sensor's data is no longer trusted. This can
1135 * happen if the remote sensor disappears from the CAN bus or if the
1136 * remote sensor indicates its data is no longer valid, such as when a
1137 * CANcoder's magnet strength falls into the "red" range.
1138 *
1139 * - Default Value: False
1140 *
1141 * This refreshes and returns a cached StatusSignal object.
1142 *
1143 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1144 * \returns StickyFault_RemoteSensorDataInvalid Status Signal Object
1145 */
1147
1148 /**
1149 * \brief The remote sensor used for fusion has fallen out of sync to
1150 * the local sensor. A re-synchronization has occurred, which may
1151 * cause a discontinuity. This typically happens if there is
1152 * significant slop in the mechanism, or if the RotorToSensorRatio
1153 * configuration parameter is incorrect.
1154 *
1155 * - Default Value: False
1156 *
1157 * This refreshes and returns a cached StatusSignal object.
1158 *
1159 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1160 * \returns Fault_FusedSensorOutOfSync Status Signal Object
1161 */
1162 virtual StatusSignal<bool> &GetFault_FusedSensorOutOfSync(bool refresh = true) = 0;
1163
1164 /**
1165 * \brief The remote sensor used for fusion has fallen out of sync to
1166 * the local sensor. A re-synchronization has occurred, which may
1167 * cause a discontinuity. This typically happens if there is
1168 * significant slop in the mechanism, or if the RotorToSensorRatio
1169 * configuration parameter is incorrect.
1170 *
1171 * - Default Value: False
1172 *
1173 * This refreshes and returns a cached StatusSignal object.
1174 *
1175 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1176 * \returns StickyFault_FusedSensorOutOfSync Status Signal Object
1177 */
1179
1180 /**
1181 * \brief Stator current limit occured.
1182 *
1183 * - Default Value: False
1184 *
1185 * This refreshes and returns a cached StatusSignal object.
1186 *
1187 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1188 * \returns Fault_StatorCurrLimit Status Signal Object
1189 */
1190 virtual StatusSignal<bool> &GetFault_StatorCurrLimit(bool refresh = true) = 0;
1191
1192 /**
1193 * \brief Stator current limit occured.
1194 *
1195 * - Default Value: False
1196 *
1197 * This refreshes and returns a cached StatusSignal object.
1198 *
1199 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1200 * \returns StickyFault_StatorCurrLimit Status Signal Object
1201 */
1202 virtual StatusSignal<bool> &GetStickyFault_StatorCurrLimit(bool refresh = true) = 0;
1203
1204 /**
1205 * \brief Supply current limit occured.
1206 *
1207 * - Default Value: False
1208 *
1209 * This refreshes and returns a cached StatusSignal object.
1210 *
1211 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1212 * \returns Fault_SupplyCurrLimit Status Signal Object
1213 */
1214 virtual StatusSignal<bool> &GetFault_SupplyCurrLimit(bool refresh = true) = 0;
1215
1216 /**
1217 * \brief Supply current limit occured.
1218 *
1219 * - Default Value: False
1220 *
1221 * This refreshes and returns a cached StatusSignal object.
1222 *
1223 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1224 * \returns StickyFault_SupplyCurrLimit Status Signal Object
1225 */
1226 virtual StatusSignal<bool> &GetStickyFault_SupplyCurrLimit(bool refresh = true) = 0;
1227
1228 /**
1229 * \brief Using Fused CANcoder feature while unlicensed. Device has
1230 * fallen back to remote CANcoder.
1231 *
1232 * - Default Value: False
1233 *
1234 * This refreshes and returns a cached StatusSignal object.
1235 *
1236 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1237 * \returns Fault_UsingFusedCANcoderWhileUnlicensed Status Signal Object
1238 */
1240
1241 /**
1242 * \brief Using Fused CANcoder feature while unlicensed. Device has
1243 * fallen back to remote CANcoder.
1244 *
1245 * - Default Value: False
1246 *
1247 * This refreshes and returns a cached StatusSignal object.
1248 *
1249 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1250 * \returns StickyFault_UsingFusedCANcoderWhileUnlicensed Status Signal Object
1251 */
1253
1254 /**
1255 * \brief Static brake was momentarily disabled due to excessive
1256 * braking current while disabled.
1257 *
1258 * - Default Value: False
1259 *
1260 * This refreshes and returns a cached StatusSignal object.
1261 *
1262 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1263 * \returns Fault_StaticBrakeDisabled Status Signal Object
1264 */
1265 virtual StatusSignal<bool> &GetFault_StaticBrakeDisabled(bool refresh = true) = 0;
1266
1267 /**
1268 * \brief Static brake was momentarily disabled due to excessive
1269 * braking current while disabled.
1270 *
1271 * - Default Value: False
1272 *
1273 * This refreshes and returns a cached StatusSignal object.
1274 *
1275 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1276 * \returns StickyFault_StaticBrakeDisabled Status Signal Object
1277 */
1279
1280 /**
1281 * \brief Closed loop proportional component
1282 *
1283 * \details The portion of the closed loop output that is the
1284 * proportional to the error. Alternatively, the p-Contribution of the
1285 * closed loop output.
1286 *
1287 * This refreshes and returns a cached StatusSignal object.
1288 *
1289 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1290 * \returns ClosedLoopProportionalOutput Status Signal object
1291 */
1293
1294 /**
1295 * \brief Closed loop integrated component
1296 *
1297 * \details The portion of the closed loop output that is proportional
1298 * to the integrated error. Alternatively, the i-Contribution of the
1299 * closed loop output.
1300 *
1301 * This refreshes and returns a cached StatusSignal object.
1302 *
1303 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1304 * \returns ClosedLoopIntegratedOutput Status Signal object
1305 */
1306 virtual StatusSignal<double> &GetClosedLoopIntegratedOutput(bool refresh = true) = 0;
1307
1308 /**
1309 * \brief Feedforward passed by the user
1310 *
1311 * \details This is the general feedforward that the user provides for
1312 * the closed loop.
1313 *
1314 * This refreshes and returns a cached StatusSignal object.
1315 *
1316 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1317 * \returns ClosedLoopFeedForward Status Signal object
1318 */
1319 virtual StatusSignal<double> &GetClosedLoopFeedForward(bool refresh = true) = 0;
1320
1321 /**
1322 * \brief Closed loop derivative component
1323 *
1324 * \details The portion of the closed loop output that is the
1325 * proportional to the deriviative the error. Alternatively, the
1326 * d-Contribution of the closed loop output.
1327 *
1328 * This refreshes and returns a cached StatusSignal object.
1329 *
1330 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1331 * \returns ClosedLoopDerivativeOutput Status Signal object
1332 */
1333 virtual StatusSignal<double> &GetClosedLoopDerivativeOutput(bool refresh = true) = 0;
1334
1335 /**
1336 * \brief Closed loop total output
1337 *
1338 * \details The total output of the closed loop output.
1339 *
1340 * This refreshes and returns a cached StatusSignal object.
1341 *
1342 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1343 * \returns ClosedLoopOutput Status Signal object
1344 */
1345 virtual StatusSignal<double> &GetClosedLoopOutput(bool refresh = true) = 0;
1346
1347 /**
1348 * \brief Value that the closed loop is targeting
1349 *
1350 * \details This is the value that the closed loop PID controller
1351 * targets.
1352 *
1353 * This refreshes and returns a cached StatusSignal object.
1354 *
1355 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1356 * \returns ClosedLoopReference Status Signal object
1357 */
1358 virtual StatusSignal<double> &GetClosedLoopReference(bool refresh = true) = 0;
1359
1360 /**
1361 * \brief Derivative of the target that the closed loop is targeting
1362 *
1363 * \details This is the change in the closed loop reference. This may
1364 * be used in the feed-forward calculation, the derivative-error, or
1365 * in application of the signage for kS. Typically, this represents
1366 * the target velocity during Motion Magic®.
1367 *
1368 * This refreshes and returns a cached StatusSignal object.
1369 *
1370 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1371 * \returns ClosedLoopReferenceSlope Status Signal object
1372 */
1373 virtual StatusSignal<double> &GetClosedLoopReferenceSlope(bool refresh = true) = 0;
1374
1375 /**
1376 * \brief The difference between target reference and current
1377 * measurement
1378 *
1379 * \details This is the value that is treated as the error in the PID
1380 * loop.
1381 *
1382 * This refreshes and returns a cached StatusSignal object.
1383 *
1384 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1385 * \returns ClosedLoopError Status Signal object
1386 */
1387 virtual StatusSignal<double> &GetClosedLoopError(bool refresh = true) = 0;
1388
1389 /**
1390 * \brief The calculated motor output for differential followers.
1391 *
1392 * \details This is a torque request when using the TorqueCurrentFOC
1393 * control output type, and a duty cycle in all other control types.
1394 *
1395 * This refreshes and returns a cached StatusSignal object.
1396 *
1397 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1398 * \returns DifferentialOutput Status Signal object
1399 */
1400 virtual StatusSignal<double> &GetDifferentialOutput(bool refresh = true) = 0;
1401
1402 /**
1403 * \brief Differential closed loop proportional component
1404 *
1405 * \details The portion of the differential closed loop output that is
1406 * the proportional to the error. Alternatively, the p-Contribution of
1407 * the closed loop output.
1408 *
1409 * This refreshes and returns a cached StatusSignal object.
1410 *
1411 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1412 * \returns DifferentialClosedLoopProportionalOutput Status Signal object
1413 */
1415
1416 /**
1417 * \brief Differential closed loop integrated component
1418 *
1419 * \details The portion of the differential closed loop output that is
1420 * proportional to the integrated error. Alternatively, the
1421 * i-Contribution of the closed loop output.
1422 *
1423 * This refreshes and returns a cached StatusSignal object.
1424 *
1425 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1426 * \returns DifferentialClosedLoopIntegratedOutput Status Signal object
1427 */
1429
1430 /**
1431 * \brief Differential Feedforward passed by the user
1432 *
1433 * \details This is the general feedforward that the user provides for
1434 * the differential closed loop.
1435 *
1436 * This refreshes and returns a cached StatusSignal object.
1437 *
1438 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1439 * \returns DifferentialClosedLoopFeedForward Status Signal object
1440 */
1442
1443 /**
1444 * \brief Differential closed loop derivative component
1445 *
1446 * \details The portion of the differential closed loop output that is
1447 * the proportional to the deriviative the error. Alternatively, the
1448 * d-Contribution of the closed loop output.
1449 *
1450 * This refreshes and returns a cached StatusSignal object.
1451 *
1452 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1453 * \returns DifferentialClosedLoopDerivativeOutput Status Signal object
1454 */
1456
1457 /**
1458 * \brief Differential closed loop total output
1459 *
1460 * \details The total output of the differential closed loop output.
1461 *
1462 * This refreshes and returns a cached StatusSignal object.
1463 *
1464 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1465 * \returns DifferentialClosedLoopOutput Status Signal object
1466 */
1468
1469 /**
1470 * \brief Value that the differential closed loop is targeting
1471 *
1472 * \details This is the value that the differential closed loop PID
1473 * controller targets.
1474 *
1475 * This refreshes and returns a cached StatusSignal object.
1476 *
1477 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1478 * \returns DifferentialClosedLoopReference Status Signal object
1479 */
1481
1482 /**
1483 * \brief Derivative of the target that the differential closed loop
1484 * is targeting
1485 *
1486 * \details This is the change in the closed loop reference. This may
1487 * be used in the feed-forward calculation, the derivative-error, or
1488 * in application of the signage for kS. Typically, this represents
1489 * the target velocity during Motion Magic®.
1490 *
1491 * This refreshes and returns a cached StatusSignal object.
1492 *
1493 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1494 * \returns DifferentialClosedLoopReferenceSlope Status Signal object
1495 */
1497
1498 /**
1499 * \brief The difference between target differential reference and
1500 * current measurement
1501 *
1502 * \details This is the value that is treated as the error in the
1503 * differential PID loop.
1504 *
1505 * This refreshes and returns a cached StatusSignal object.
1506 *
1507 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1508 * \returns DifferentialClosedLoopError Status Signal object
1509 */
1510 virtual StatusSignal<double> &GetDifferentialClosedLoopError(bool refresh = true) = 0;
1511
1512
1513
1514 /**
1515 * \brief Sets the mechanism position of the device in mechanism
1516 * rotations.
1517 *
1518 * \param newValue Value to set to. Units are in rotations.
1519 * \param timeoutSeconds Maximum time to wait up to in seconds.
1520 * \returns StatusCode of the set command
1521 */
1522 virtual ctre::phoenix::StatusCode SetPosition(units::angle::turn_t newValue, units::time::second_t timeoutSeconds) = 0;
1523 /**
1524 * \brief Sets the mechanism position of the device in mechanism
1525 * rotations.
1526 *
1527 * This will wait up to 0.100 seconds (100ms) by default.
1528 *
1529 * \param newValue Value to set to. Units are in rotations.
1530 * \returns StatusCode of the set command
1531 */
1532 virtual ctre::phoenix::StatusCode SetPosition(units::angle::turn_t newValue) = 0;
1533
1534 /**
1535 * \brief Clear the sticky faults in the device.
1536 *
1537 * \details This typically has no impact on the device functionality.
1538 * Instead, it just clears telemetry faults that are accessible via
1539 * API and Tuner Self-Test.
1540 *
1541 * \param timeoutSeconds Maximum time to wait up to in seconds.
1542 * \returns StatusCode of the set command
1543 */
1544 virtual ctre::phoenix::StatusCode ClearStickyFaults(units::time::second_t timeoutSeconds) = 0;
1545 /**
1546 * \brief Clear the sticky faults in the device.
1547 *
1548 * \details This typically has no impact on the device functionality.
1549 * Instead, it just clears telemetry faults that are accessible via
1550 * API and Tuner Self-Test.
1551 *
1552 * This will wait up to 0.100 seconds (100ms) by default.
1553 *
1554 * \returns StatusCode of the set command
1555 */
1557
1558 /**
1559 * \brief Clear sticky fault: Hardware fault occurred
1560 *
1561 * \param timeoutSeconds Maximum time to wait up to in seconds.
1562 * \returns StatusCode of the set command
1563 */
1564 virtual ctre::phoenix::StatusCode ClearStickyFault_Hardware(units::time::second_t timeoutSeconds) = 0;
1565 /**
1566 * \brief Clear sticky fault: Hardware fault occurred
1567 *
1568 * This will wait up to 0.100 seconds (100ms) by default.
1569 *
1570 * \returns StatusCode of the set command
1571 */
1573
1574 /**
1575 * \brief Clear sticky fault: Processor temperature exceeded limit
1576 *
1577 * \param timeoutSeconds Maximum time to wait up to in seconds.
1578 * \returns StatusCode of the set command
1579 */
1580 virtual ctre::phoenix::StatusCode ClearStickyFault_ProcTemp(units::time::second_t timeoutSeconds) = 0;
1581 /**
1582 * \brief Clear sticky fault: Processor temperature exceeded limit
1583 *
1584 * This will wait up to 0.100 seconds (100ms) by default.
1585 *
1586 * \returns StatusCode of the set command
1587 */
1589
1590 /**
1591 * \brief Clear sticky fault: Device temperature exceeded limit
1592 *
1593 * \param timeoutSeconds Maximum time to wait up to in seconds.
1594 * \returns StatusCode of the set command
1595 */
1596 virtual ctre::phoenix::StatusCode ClearStickyFault_DeviceTemp(units::time::second_t timeoutSeconds) = 0;
1597 /**
1598 * \brief Clear sticky fault: Device temperature exceeded limit
1599 *
1600 * This will wait up to 0.100 seconds (100ms) by default.
1601 *
1602 * \returns StatusCode of the set command
1603 */
1605
1606 /**
1607 * \brief Clear sticky fault: Device supply voltage dropped to near
1608 * brownout levels
1609 *
1610 * \param timeoutSeconds Maximum time to wait up to in seconds.
1611 * \returns StatusCode of the set command
1612 */
1613 virtual ctre::phoenix::StatusCode ClearStickyFault_Undervoltage(units::time::second_t timeoutSeconds) = 0;
1614 /**
1615 * \brief Clear sticky fault: Device supply voltage dropped to near
1616 * brownout levels
1617 *
1618 * This will wait up to 0.100 seconds (100ms) by default.
1619 *
1620 * \returns StatusCode of the set command
1621 */
1623
1624 /**
1625 * \brief Clear sticky fault: Device boot while detecting the enable
1626 * signal
1627 *
1628 * \param timeoutSeconds Maximum time to wait up to in seconds.
1629 * \returns StatusCode of the set command
1630 */
1631 virtual ctre::phoenix::StatusCode ClearStickyFault_BootDuringEnable(units::time::second_t timeoutSeconds) = 0;
1632 /**
1633 * \brief Clear sticky fault: Device boot while detecting the enable
1634 * signal
1635 *
1636 * This will wait up to 0.100 seconds (100ms) by default.
1637 *
1638 * \returns StatusCode of the set command
1639 */
1641
1642 /**
1643 * \brief Clear sticky fault: An unlicensed feature is in use, device
1644 * may not behave as expected.
1645 *
1646 * \param timeoutSeconds Maximum time to wait up to in seconds.
1647 * \returns StatusCode of the set command
1648 */
1649 virtual ctre::phoenix::StatusCode ClearStickyFault_UnlicensedFeatureInUse(units::time::second_t timeoutSeconds) = 0;
1650 /**
1651 * \brief Clear sticky fault: An unlicensed feature is in use, device
1652 * may not behave as expected.
1653 *
1654 * This will wait up to 0.100 seconds (100ms) by default.
1655 *
1656 * \returns StatusCode of the set command
1657 */
1659
1660 /**
1661 * \brief Clear sticky fault: Bridge was disabled most likely due to
1662 * supply voltage dropping too low.
1663 *
1664 * \param timeoutSeconds Maximum time to wait up to in seconds.
1665 * \returns StatusCode of the set command
1666 */
1667 virtual ctre::phoenix::StatusCode ClearStickyFault_BridgeBrownout(units::time::second_t timeoutSeconds) = 0;
1668 /**
1669 * \brief Clear sticky fault: Bridge was disabled most likely due to
1670 * supply voltage dropping too low.
1671 *
1672 * This will wait up to 0.100 seconds (100ms) by default.
1673 *
1674 * \returns StatusCode of the set command
1675 */
1677
1678 /**
1679 * \brief Clear sticky fault: The remote sensor has reset.
1680 *
1681 * \param timeoutSeconds Maximum time to wait up to in seconds.
1682 * \returns StatusCode of the set command
1683 */
1684 virtual ctre::phoenix::StatusCode ClearStickyFault_RemoteSensorReset(units::time::second_t timeoutSeconds) = 0;
1685 /**
1686 * \brief Clear sticky fault: The remote sensor has reset.
1687 *
1688 * This will wait up to 0.100 seconds (100ms) by default.
1689 *
1690 * \returns StatusCode of the set command
1691 */
1693
1694 /**
1695 * \brief Clear sticky fault: The remote Talon used for differential
1696 * control is not present on CAN Bus.
1697 *
1698 * \param timeoutSeconds Maximum time to wait up to in seconds.
1699 * \returns StatusCode of the set command
1700 */
1701 virtual ctre::phoenix::StatusCode ClearStickyFault_MissingDifferentialFX(units::time::second_t timeoutSeconds) = 0;
1702 /**
1703 * \brief Clear sticky fault: The remote Talon used for differential
1704 * control is not present on CAN Bus.
1705 *
1706 * This will wait up to 0.100 seconds (100ms) by default.
1707 *
1708 * \returns StatusCode of the set command
1709 */
1711
1712 /**
1713 * \brief Clear sticky fault: The remote sensor position has
1714 * overflowed. Because of the nature of remote sensors, it is possible
1715 * for the remote sensor position to overflow beyond what is supported
1716 * by the status signal frame. However, this is rare and cannot occur
1717 * over the course of an FRC match under normal use.
1718 *
1719 * \param timeoutSeconds Maximum time to wait up to in seconds.
1720 * \returns StatusCode of the set command
1721 */
1722 virtual ctre::phoenix::StatusCode ClearStickyFault_RemoteSensorPosOverflow(units::time::second_t timeoutSeconds) = 0;
1723 /**
1724 * \brief Clear sticky fault: The remote sensor position has
1725 * overflowed. Because of the nature of remote sensors, it is possible
1726 * for the remote sensor position to overflow beyond what is supported
1727 * by the status signal frame. However, this is rare and cannot occur
1728 * over the course of an FRC match under normal use.
1729 *
1730 * This will wait up to 0.100 seconds (100ms) by default.
1731 *
1732 * \returns StatusCode of the set command
1733 */
1735
1736 /**
1737 * \brief Clear sticky fault: Supply Voltage has exceeded the maximum
1738 * voltage rating of device.
1739 *
1740 * \param timeoutSeconds Maximum time to wait up to in seconds.
1741 * \returns StatusCode of the set command
1742 */
1743 virtual ctre::phoenix::StatusCode ClearStickyFault_OverSupplyV(units::time::second_t timeoutSeconds) = 0;
1744 /**
1745 * \brief Clear sticky fault: Supply Voltage has exceeded the maximum
1746 * voltage rating of device.
1747 *
1748 * This will wait up to 0.100 seconds (100ms) by default.
1749 *
1750 * \returns StatusCode of the set command
1751 */
1753
1754 /**
1755 * \brief Clear sticky fault: Supply Voltage is unstable. Ensure you
1756 * are using a battery and current limited power supply.
1757 *
1758 * \param timeoutSeconds Maximum time to wait up to in seconds.
1759 * \returns StatusCode of the set command
1760 */
1761 virtual ctre::phoenix::StatusCode ClearStickyFault_UnstableSupplyV(units::time::second_t timeoutSeconds) = 0;
1762 /**
1763 * \brief Clear sticky fault: Supply Voltage is unstable. Ensure you
1764 * are using a battery and current limited power supply.
1765 *
1766 * This will wait up to 0.100 seconds (100ms) by default.
1767 *
1768 * \returns StatusCode of the set command
1769 */
1771
1772 /**
1773 * \brief Clear sticky fault: Reverse limit switch has been asserted.
1774 * Output is set to neutral.
1775 *
1776 * \param timeoutSeconds Maximum time to wait up to in seconds.
1777 * \returns StatusCode of the set command
1778 */
1779 virtual ctre::phoenix::StatusCode ClearStickyFault_ReverseHardLimit(units::time::second_t timeoutSeconds) = 0;
1780 /**
1781 * \brief Clear sticky fault: Reverse limit switch has been asserted.
1782 * Output is set to neutral.
1783 *
1784 * This will wait up to 0.100 seconds (100ms) by default.
1785 *
1786 * \returns StatusCode of the set command
1787 */
1789
1790 /**
1791 * \brief Clear sticky fault: Forward limit switch has been asserted.
1792 * Output is set to neutral.
1793 *
1794 * \param timeoutSeconds Maximum time to wait up to in seconds.
1795 * \returns StatusCode of the set command
1796 */
1797 virtual ctre::phoenix::StatusCode ClearStickyFault_ForwardHardLimit(units::time::second_t timeoutSeconds) = 0;
1798 /**
1799 * \brief Clear sticky fault: Forward limit switch has been asserted.
1800 * Output is set to neutral.
1801 *
1802 * This will wait up to 0.100 seconds (100ms) by default.
1803 *
1804 * \returns StatusCode of the set command
1805 */
1807
1808 /**
1809 * \brief Clear sticky fault: Reverse soft limit has been asserted.
1810 * Output is set to neutral.
1811 *
1812 * \param timeoutSeconds Maximum time to wait up to in seconds.
1813 * \returns StatusCode of the set command
1814 */
1815 virtual ctre::phoenix::StatusCode ClearStickyFault_ReverseSoftLimit(units::time::second_t timeoutSeconds) = 0;
1816 /**
1817 * \brief Clear sticky fault: Reverse soft limit has been asserted.
1818 * Output is set to neutral.
1819 *
1820 * This will wait up to 0.100 seconds (100ms) by default.
1821 *
1822 * \returns StatusCode of the set command
1823 */
1825
1826 /**
1827 * \brief Clear sticky fault: Forward soft limit has been asserted.
1828 * Output is set to neutral.
1829 *
1830 * \param timeoutSeconds Maximum time to wait up to in seconds.
1831 * \returns StatusCode of the set command
1832 */
1833 virtual ctre::phoenix::StatusCode ClearStickyFault_ForwardSoftLimit(units::time::second_t timeoutSeconds) = 0;
1834 /**
1835 * \brief Clear sticky fault: Forward soft limit has been asserted.
1836 * Output is set to neutral.
1837 *
1838 * This will wait up to 0.100 seconds (100ms) by default.
1839 *
1840 * \returns StatusCode of the set command
1841 */
1843
1844 /**
1845 * \brief Clear sticky fault: The remote soft limit device is not
1846 * present on CAN Bus.
1847 *
1848 * \param timeoutSeconds Maximum time to wait up to in seconds.
1849 * \returns StatusCode of the set command
1850 */
1851 virtual ctre::phoenix::StatusCode ClearStickyFault_MissingSoftLimitRemote(units::time::second_t timeoutSeconds) = 0;
1852 /**
1853 * \brief Clear sticky fault: The remote soft limit device is not
1854 * present on CAN Bus.
1855 *
1856 * This will wait up to 0.100 seconds (100ms) by default.
1857 *
1858 * \returns StatusCode of the set command
1859 */
1861
1862 /**
1863 * \brief Clear sticky fault: The remote limit switch device is not
1864 * present on CAN Bus.
1865 *
1866 * \param timeoutSeconds Maximum time to wait up to in seconds.
1867 * \returns StatusCode of the set command
1868 */
1869 virtual ctre::phoenix::StatusCode ClearStickyFault_MissingHardLimitRemote(units::time::second_t timeoutSeconds) = 0;
1870 /**
1871 * \brief Clear sticky fault: The remote limit switch device is not
1872 * present on CAN Bus.
1873 *
1874 * This will wait up to 0.100 seconds (100ms) by default.
1875 *
1876 * \returns StatusCode of the set command
1877 */
1879
1880 /**
1881 * \brief Clear sticky fault: The remote sensor's data is no longer
1882 * trusted. This can happen if the remote sensor disappears from the
1883 * CAN bus or if the remote sensor indicates its data is no longer
1884 * valid, such as when a CANcoder's magnet strength falls into the
1885 * "red" range.
1886 *
1887 * \param timeoutSeconds Maximum time to wait up to in seconds.
1888 * \returns StatusCode of the set command
1889 */
1890 virtual ctre::phoenix::StatusCode ClearStickyFault_RemoteSensorDataInvalid(units::time::second_t timeoutSeconds) = 0;
1891 /**
1892 * \brief Clear sticky fault: The remote sensor's data is no longer
1893 * trusted. This can happen if the remote sensor disappears from the
1894 * CAN bus or if the remote sensor indicates its data is no longer
1895 * valid, such as when a CANcoder's magnet strength falls into the
1896 * "red" range.
1897 *
1898 * This will wait up to 0.100 seconds (100ms) by default.
1899 *
1900 * \returns StatusCode of the set command
1901 */
1903
1904 /**
1905 * \brief Clear sticky fault: The remote sensor used for fusion has
1906 * fallen out of sync to the local sensor. A re-synchronization has
1907 * occurred, which may cause a discontinuity. This typically happens
1908 * if there is significant slop in the mechanism, or if the
1909 * RotorToSensorRatio configuration parameter is incorrect.
1910 *
1911 * \param timeoutSeconds Maximum time to wait up to in seconds.
1912 * \returns StatusCode of the set command
1913 */
1914 virtual ctre::phoenix::StatusCode ClearStickyFault_FusedSensorOutOfSync(units::time::second_t timeoutSeconds) = 0;
1915 /**
1916 * \brief Clear sticky fault: The remote sensor used for fusion has
1917 * fallen out of sync to the local sensor. A re-synchronization has
1918 * occurred, which may cause a discontinuity. This typically happens
1919 * if there is significant slop in the mechanism, or if the
1920 * RotorToSensorRatio configuration parameter is incorrect.
1921 *
1922 * This will wait up to 0.100 seconds (100ms) by default.
1923 *
1924 * \returns StatusCode of the set command
1925 */
1927
1928 /**
1929 * \brief Clear sticky fault: Stator current limit occured.
1930 *
1931 * \param timeoutSeconds Maximum time to wait up to in seconds.
1932 * \returns StatusCode of the set command
1933 */
1934 virtual ctre::phoenix::StatusCode ClearStickyFault_StatorCurrLimit(units::time::second_t timeoutSeconds) = 0;
1935 /**
1936 * \brief Clear sticky fault: Stator current limit occured.
1937 *
1938 * This will wait up to 0.100 seconds (100ms) by default.
1939 *
1940 * \returns StatusCode of the set command
1941 */
1943
1944 /**
1945 * \brief Clear sticky fault: Supply current limit occured.
1946 *
1947 * \param timeoutSeconds Maximum time to wait up to in seconds.
1948 * \returns StatusCode of the set command
1949 */
1950 virtual ctre::phoenix::StatusCode ClearStickyFault_SupplyCurrLimit(units::time::second_t timeoutSeconds) = 0;
1951 /**
1952 * \brief Clear sticky fault: Supply current limit occured.
1953 *
1954 * This will wait up to 0.100 seconds (100ms) by default.
1955 *
1956 * \returns StatusCode of the set command
1957 */
1959
1960 /**
1961 * \brief Clear sticky fault: Using Fused CANcoder feature while
1962 * unlicensed. Device has fallen back to remote CANcoder.
1963 *
1964 * \param timeoutSeconds Maximum time to wait up to in seconds.
1965 * \returns StatusCode of the set command
1966 */
1968 /**
1969 * \brief Clear sticky fault: Using Fused CANcoder feature while
1970 * unlicensed. Device has fallen back to remote CANcoder.
1971 *
1972 * This will wait up to 0.100 seconds (100ms) by default.
1973 *
1974 * \returns StatusCode of the set command
1975 */
1977
1978 /**
1979 * \brief Clear sticky fault: Static brake was momentarily disabled
1980 * due to excessive braking current while disabled.
1981 *
1982 * \param timeoutSeconds Maximum time to wait up to in seconds.
1983 * \returns StatusCode of the set command
1984 */
1985 virtual ctre::phoenix::StatusCode ClearStickyFault_StaticBrakeDisabled(units::time::second_t timeoutSeconds) = 0;
1986 /**
1987 * \brief Clear sticky fault: Static brake was momentarily disabled
1988 * due to excessive braking current while disabled.
1989 *
1990 * This will wait up to 0.100 seconds (100ms) by default.
1991 *
1992 * \returns StatusCode of the set command
1993 */
1995};
1996
1997}
1998}
1999}
2000}
2001
Represents a status signal with data of type T, and operations available to retrieve information abou...
Definition StatusSignal.hpp:656
Contains all status signals available for devices that support Talon signals.
Definition HasTalonSignals.hpp:31
virtual StatusSignal< int > & GetVersionBuild(bool refresh=true)=0
App Build Version number.
virtual StatusSignal< units::temperature::celsius_t > & GetAncillaryDeviceTemp(bool refresh=true)=0
Temperature of device from second sensor.
virtual ctre::phoenix::StatusCode ClearStickyFault_UsingFusedCANcoderWhileUnlicensed()=0
Clear sticky fault: Using Fused CANcoder feature while unlicensed.
virtual ctre::phoenix::StatusCode SetPosition(units::angle::turn_t newValue)=0
Sets the mechanism position of the device in mechanism rotations.
virtual ctre::phoenix::StatusCode ClearStickyFaults(units::time::second_t timeoutSeconds)=0
Clear the sticky faults in the device.
virtual StatusSignal< int > & GetVersionMajor(bool refresh=true)=0
App Major Version number.
virtual ctre::phoenix::StatusCode ClearStickyFault_DeviceTemp()=0
Clear sticky fault: Device temperature exceeded limit.
virtual StatusSignal< units::current::ampere_t > & GetTorqueCurrent(bool refresh=true)=0
Current corresponding to the torque output by the motor.
virtual StatusSignal< double > & GetClosedLoopIntegratedOutput(bool refresh=true)=0
Closed loop integrated component.
virtual ctre::phoenix::StatusCode ClearStickyFault_ForwardHardLimit()=0
Clear sticky fault: Forward limit switch has been asserted.
virtual ctre::phoenix::StatusCode ClearStickyFault_ForwardSoftLimit(units::time::second_t timeoutSeconds)=0
Clear sticky fault: Forward soft limit has been asserted.
virtual StatusSignal< double > & GetDifferentialClosedLoopOutput(bool refresh=true)=0
Differential closed loop total output.
virtual ctre::phoenix::StatusCode ClearStickyFault_ForwardHardLimit(units::time::second_t timeoutSeconds)=0
Clear sticky fault: Forward limit switch has been asserted.
virtual StatusSignal< bool > & GetStickyFault_StatorCurrLimit(bool refresh=true)=0
Stator current limit occured.
virtual StatusSignal< double > & GetDifferentialClosedLoopDerivativeOutput(bool refresh=true)=0
Differential closed loop derivative component.
virtual StatusSignal< bool > & GetFault_UnlicensedFeatureInUse(bool refresh=true)=0
An unlicensed feature is in use, device may not behave as expected.
virtual StatusSignal< bool > & GetFault_StaticBrakeDisabled(bool refresh=true)=0
Static brake was momentarily disabled due to excessive braking current while disabled.
virtual StatusSignal< double > & GetDifferentialClosedLoopReference(bool refresh=true)=0
Value that the differential closed loop is targeting.
virtual StatusSignal< bool > & GetFault_RemoteSensorPosOverflow(bool refresh=true)=0
The remote sensor position has overflowed.
virtual StatusSignal< bool > & GetStickyFault_Hardware(bool refresh=true)=0
Hardware fault occurred.
virtual ctre::phoenix::StatusCode ClearStickyFault_SupplyCurrLimit()=0
Clear sticky fault: Supply current limit occured.
virtual StatusSignal< ctre::unit::rpm_per_volt_t > & GetMotorKV(bool refresh=true)=0
The velocity constant (K_V) of the motor.
virtual StatusSignal< double > & GetDifferentialClosedLoopReferenceSlope(bool refresh=true)=0
Derivative of the target that the differential closed loop is targeting.
virtual StatusSignal< signals::ForwardLimitValue > & GetForwardLimit(bool refresh=true)=0
Forward Limit Pin.
virtual ctre::phoenix::StatusCode SetPosition(units::angle::turn_t newValue, units::time::second_t timeoutSeconds)=0
Sets the mechanism position of the device in mechanism rotations.
virtual StatusSignal< units::angular_velocity::turns_per_second_t > & GetDifferentialAverageVelocity(bool refresh=true)=0
Average component of the differential velocity of device.
virtual StatusSignal< double > & GetClosedLoopDerivativeOutput(bool refresh=true)=0
Closed loop derivative component.
virtual StatusSignal< bool > & GetStickyFault_BootDuringEnable(bool refresh=true)=0
Device boot while detecting the enable signal.
virtual ctre::phoenix::StatusCode ClearStickyFault_Hardware()=0
Clear sticky fault: Hardware fault occurred.
virtual StatusSignal< units::angle::turn_t > & GetPosition(bool refresh=true)=0
Position of the device in mechanism rotations.
virtual ctre::phoenix::StatusCode ClearStickyFault_UsingFusedCANcoderWhileUnlicensed(units::time::second_t timeoutSeconds)=0
Clear sticky fault: Using Fused CANcoder feature while unlicensed.
virtual StatusSignal< double > & GetClosedLoopProportionalOutput(bool refresh=true)=0
Closed loop proportional component.
virtual StatusSignal< units::angular_velocity::turns_per_second_t > & GetDifferentialDifferenceVelocity(bool refresh=true)=0
Difference component of the differential velocity of device.
virtual StatusSignal< units::current::ampere_t > & GetStatorCurrent(bool refresh=true)=0
Current corresponding to the stator windings.
virtual StatusSignal< units::voltage::volt_t > & GetMotorVoltage(bool refresh=true)=0
The applied (output) motor voltage.
virtual ctre::phoenix::StatusCode ClearStickyFaults()=0
Clear the sticky faults in the device.
virtual StatusSignal< units::angle::turn_t > & GetDifferentialAveragePosition(bool refresh=true)=0
Average component of the differential position of device.
virtual ctre::phoenix::StatusCode ClearStickyFault_FusedSensorOutOfSync()=0
Clear sticky fault: The remote sensor used for fusion has fallen out of sync to the local sensor.
virtual StatusSignal< bool > & GetFault_SupplyCurrLimit(bool refresh=true)=0
Supply current limit occured.
virtual StatusSignal< bool > & GetStickyFault_RemoteSensorReset(bool refresh=true)=0
The remote sensor has reset.
virtual StatusSignal< signals::BridgeOutputValue > & GetBridgeOutput(bool refresh=true)=0
The applied output of the bridge.
virtual ctre::phoenix::StatusCode ClearStickyFault_ReverseSoftLimit(units::time::second_t timeoutSeconds)=0
Clear sticky fault: Reverse soft limit has been asserted.
virtual StatusSignal< int > & GetClosedLoopSlot(bool refresh=true)=0
The slot that the closed-loop PID is using.
virtual StatusSignal< signals::DeviceEnableValue > & GetDeviceEnable(bool refresh=true)=0
Indicates if device is actuator enabled.
virtual ctre::phoenix::StatusCode ClearStickyFault_MissingDifferentialFX()=0
Clear sticky fault: The remote Talon used for differential control is not present on CAN Bus.
virtual ctre::phoenix::StatusCode ClearStickyFault_UnlicensedFeatureInUse()=0
Clear sticky fault: An unlicensed feature is in use, device may not behave as expected.
virtual StatusSignal< signals::MotorOutputStatusValue > & GetMotorOutputStatus(bool refresh=true)=0
Assess the status of the motor output with respect to load and supply.
virtual StatusSignal< units::temperature::celsius_t > & GetDeviceTemp(bool refresh=true)=0
Temperature of device.
virtual StatusSignal< signals::MotionMagicIsRunningValue > & GetMotionMagicIsRunning(bool refresh=true)=0
Check if Motion Magic® is running.
virtual StatusSignal< bool > & GetStickyFault_RemoteSensorPosOverflow(bool refresh=true)=0
The remote sensor position has overflowed.
virtual ctre::phoenix::StatusCode ClearStickyFault_StaticBrakeDisabled()=0
Clear sticky fault: Static brake was momentarily disabled due to excessive braking current while disa...
virtual StatusSignal< bool > & GetStickyFault_UnstableSupplyV(bool refresh=true)=0
Supply Voltage is unstable.
virtual ctre::phoenix::StatusCode ClearStickyFault_BridgeBrownout(units::time::second_t timeoutSeconds)=0
Clear sticky fault: Bridge was disabled most likely due to supply voltage dropping too low.
virtual StatusSignal< units::angular_velocity::turns_per_second_t > & GetVelocity(bool refresh=true)=0
Velocity of the device in mechanism rotations per second.
virtual StatusSignal< bool > & GetFault_UsingFusedCANcoderWhileUnlicensed(bool refresh=true)=0
Using Fused CANcoder feature while unlicensed.
virtual StatusSignal< signals::DifferentialControlModeValue > & GetDifferentialControlMode(bool refresh=true)=0
The active control mode of the differential controller.
virtual StatusSignal< bool > & GetFault_OverSupplyV(bool refresh=true)=0
Supply Voltage has exceeded the maximum voltage rating of device.
virtual ctre::phoenix::StatusCode ClearStickyFault_FusedSensorOutOfSync(units::time::second_t timeoutSeconds)=0
Clear sticky fault: The remote sensor used for fusion has fallen out of sync to the local sensor.
virtual StatusSignal< double > & GetDifferentialClosedLoopProportionalOutput(bool refresh=true)=0
Differential closed loop proportional component.
virtual ctre::phoenix::StatusCode ClearStickyFault_RemoteSensorReset()=0
Clear sticky fault: The remote sensor has reset.
virtual StatusSignal< units::angle::turn_t > & GetRotorPosition(bool refresh=true)=0
Position of the motor rotor.
virtual StatusSignal< bool > & GetStickyFault_Undervoltage(bool refresh=true)=0
Device supply voltage dropped to near brownout levels.
virtual ctre::phoenix::StatusCode ClearStickyFault_ReverseSoftLimit()=0
Clear sticky fault: Reverse soft limit has been asserted.
virtual StatusSignal< int > & GetVersionMinor(bool refresh=true)=0
App Minor Version number.
virtual StatusSignal< signals::ReverseLimitValue > & GetReverseLimit(bool refresh=true)=0
Reverse Limit Pin.
virtual StatusSignal< ctre::unit::newton_meters_per_ampere_t > & GetMotorKT(bool refresh=true)=0
The torque constant (K_T) of the motor.
virtual StatusSignal< units::temperature::celsius_t > & GetProcessorTemp(bool refresh=true)=0
Temperature of the processor.
virtual StatusSignal< signals::ConnectedMotorValue > & GetConnectedMotor(bool refresh=true)=0
The type of motor attached to the Talon.
virtual StatusSignal< bool > & GetStickyFault_BridgeBrownout(bool refresh=true)=0
Bridge was disabled most likely due to supply voltage dropping too low.
virtual StatusSignal< bool > & GetStickyFault_UsingFusedCANcoderWhileUnlicensed(bool refresh=true)=0
Using Fused CANcoder feature while unlicensed.
virtual StatusSignal< bool > & GetStickyFault_ForwardHardLimit(bool refresh=true)=0
Forward limit switch has been asserted.
virtual ctre::phoenix::StatusCode ClearStickyFault_BootDuringEnable()=0
Clear sticky fault: Device boot while detecting the enable signal.
virtual ctre::phoenix::StatusCode ClearStickyFault_RemoteSensorDataInvalid(units::time::second_t timeoutSeconds)=0
Clear sticky fault: The remote sensor's data is no longer trusted.
virtual StatusSignal< bool > & GetFault_Hardware(bool refresh=true)=0
Hardware fault occurred.
virtual StatusSignal< bool > & GetStickyFault_ReverseSoftLimit(bool refresh=true)=0
Reverse soft limit has been asserted.
virtual StatusSignal< bool > & GetFault_StatorCurrLimit(bool refresh=true)=0
Stator current limit occured.
virtual ctre::phoenix::StatusCode ClearStickyFault_MissingSoftLimitRemote(units::time::second_t timeoutSeconds)=0
Clear sticky fault: The remote soft limit device is not present on CAN Bus.
virtual StatusSignal< bool > & GetStickyFault_ReverseHardLimit(bool refresh=true)=0
Reverse limit switch has been asserted.
virtual StatusSignal< units::angular_velocity::turns_per_second_t > & GetRotorVelocity(bool refresh=true)=0
Velocity of the motor rotor.
virtual ctre::phoenix::StatusCode ClearStickyFault_RemoteSensorPosOverflow()=0
Clear sticky fault: The remote sensor position has overflowed.
virtual StatusSignal< bool > & GetStickyFault_MissingDifferentialFX(bool refresh=true)=0
The remote Talon used for differential control is not present on CAN Bus.
virtual ctre::phoenix::StatusCode ClearStickyFault_Hardware(units::time::second_t timeoutSeconds)=0
Clear sticky fault: Hardware fault occurred.
virtual ctre::phoenix::StatusCode ClearStickyFault_MissingDifferentialFX(units::time::second_t timeoutSeconds)=0
Clear sticky fault: The remote Talon used for differential control is not present on CAN Bus.
virtual StatusSignal< bool > & GetFault_ForwardHardLimit(bool refresh=true)=0
Forward limit switch has been asserted.
virtual ctre::phoenix::StatusCode ClearStickyFault_Undervoltage(units::time::second_t timeoutSeconds)=0
Clear sticky fault: Device supply voltage dropped to near brownout levels.
virtual ctre::phoenix::StatusCode ClearStickyFault_UnlicensedFeatureInUse(units::time::second_t timeoutSeconds)=0
Clear sticky fault: An unlicensed feature is in use, device may not behave as expected.
virtual ctre::phoenix::StatusCode ClearStickyFault_StatorCurrLimit(units::time::second_t timeoutSeconds)=0
Clear sticky fault: Stator current limit occured.
virtual StatusSignal< bool > & GetStickyFault_ProcTemp(bool refresh=true)=0
Processor temperature exceeded limit.
virtual StatusSignal< bool > & GetFault_BootDuringEnable(bool refresh=true)=0
Device boot while detecting the enable signal.
virtual StatusSignal< bool > & GetStickyFault_FusedSensorOutOfSync(bool refresh=true)=0
The remote sensor used for fusion has fallen out of sync to the local sensor.
virtual ctre::phoenix::StatusCode ClearStickyFault_ReverseHardLimit(units::time::second_t timeoutSeconds)=0
Clear sticky fault: Reverse limit switch has been asserted.
virtual StatusSignal< int > & GetVersion(bool refresh=true)=0
Full Version of firmware in device.
virtual StatusSignal< bool > & GetFault_BridgeBrownout(bool refresh=true)=0
Bridge was disabled most likely due to supply voltage dropping too low.
virtual StatusSignal< double > & GetClosedLoopReferenceSlope(bool refresh=true)=0
Derivative of the target that the closed loop is targeting.
virtual ctre::phoenix::StatusCode ClearStickyFault_BootDuringEnable(units::time::second_t timeoutSeconds)=0
Clear sticky fault: Device boot while detecting the enable signal.
virtual StatusSignal< bool > & GetFault_Undervoltage(bool refresh=true)=0
Device supply voltage dropped to near brownout levels.
virtual StatusSignal< bool > & GetFault_UnstableSupplyV(bool refresh=true)=0
Supply Voltage is unstable.
virtual StatusSignal< units::current::ampere_t > & GetMotorStallCurrent(bool refresh=true)=0
The stall current of the motor at 12 V output.
virtual ctre::phoenix::StatusCode ClearStickyFault_BridgeBrownout()=0
Clear sticky fault: Bridge was disabled most likely due to supply voltage dropping too low.
virtual ctre::phoenix::StatusCode ClearStickyFault_ProcTemp(units::time::second_t timeoutSeconds)=0
Clear sticky fault: Processor temperature exceeded limit.
virtual ctre::phoenix::StatusCode ClearStickyFault_RemoteSensorPosOverflow(units::time::second_t timeoutSeconds)=0
Clear sticky fault: The remote sensor position has overflowed.
virtual ctre::phoenix::StatusCode ClearStickyFault_MissingSoftLimitRemote()=0
Clear sticky fault: The remote soft limit device is not present on CAN Bus.
virtual ctre::phoenix::StatusCode ClearStickyFault_RemoteSensorDataInvalid()=0
Clear sticky fault: The remote sensor's data is no longer trusted.
virtual StatusSignal< bool > & GetStickyFault_RemoteSensorDataInvalid(bool refresh=true)=0
The remote sensor's data is no longer trusted.
virtual StatusSignal< units::current::ampere_t > & GetSupplyCurrent(bool refresh=true)=0
Measured supply side current.
virtual StatusSignal< int > & GetFaultField(bool refresh=true)=0
Integer representing all fault flags reported by the device.
virtual StatusSignal< signals::ControlModeValue > & GetControlMode(bool refresh=true)=0
The active control mode of the motor controller.
virtual StatusSignal< int > & GetDifferentialClosedLoopSlot(bool refresh=true)=0
The slot that the closed-loop differential PID is using.
virtual StatusSignal< units::voltage::volt_t > & GetSupplyVoltage(bool refresh=true)=0
Measured supply voltage to the device.
virtual StatusSignal< bool > & GetStickyFault_MissingHardLimitRemote(bool refresh=true)=0
The remote limit switch device is not present on CAN Bus.
virtual StatusSignal< bool > & GetStickyFault_UnlicensedFeatureInUse(bool refresh=true)=0
An unlicensed feature is in use, device may not behave as expected.
virtual ctre::phoenix::StatusCode ClearStickyFault_SupplyCurrLimit(units::time::second_t timeoutSeconds)=0
Clear sticky fault: Supply current limit occured.
virtual ctre::phoenix::StatusCode ClearStickyFault_UnstableSupplyV()=0
Clear sticky fault: Supply Voltage is unstable.
virtual StatusSignal< bool > & GetFault_MissingHardLimitRemote(bool refresh=true)=0
The remote limit switch device is not present on CAN Bus.
virtual ctre::phoenix::StatusCode ClearStickyFault_Undervoltage()=0
Clear sticky fault: Device supply voltage dropped to near brownout levels.
virtual ctre::phoenix::StatusCode ClearStickyFault_ProcTemp()=0
Clear sticky fault: Processor temperature exceeded limit.
virtual StatusSignal< bool > & GetStickyFault_OverSupplyV(bool refresh=true)=0
Supply Voltage has exceeded the maximum voltage rating of device.
virtual StatusSignal< signals::AppliedRotorPolarityValue > & GetAppliedRotorPolarity(bool refresh=true)=0
The applied rotor polarity as seen from the front of the motor.
virtual ctre::phoenix::StatusCode ClearStickyFault_UnstableSupplyV(units::time::second_t timeoutSeconds)=0
Clear sticky fault: Supply Voltage is unstable.
virtual StatusSignal< bool > & GetStickyFault_StaticBrakeDisabled(bool refresh=true)=0
Static brake was momentarily disabled due to excessive braking current while disabled.
virtual StatusSignal< bool > & GetFault_ProcTemp(bool refresh=true)=0
Processor temperature exceeded limit.
virtual ctre::phoenix::StatusCode ClearStickyFault_StatorCurrLimit()=0
Clear sticky fault: Stator current limit occured.
virtual StatusSignal< units::angle::turn_t > & GetDifferentialDifferencePosition(bool refresh=true)=0
Difference component of the differential position of device.
virtual ctre::phoenix::StatusCode ClearStickyFault_MissingHardLimitRemote(units::time::second_t timeoutSeconds)=0
Clear sticky fault: The remote limit switch device is not present on CAN Bus.
virtual StatusSignal< bool > & GetFault_ForwardSoftLimit(bool refresh=true)=0
Forward soft limit has been asserted.
virtual ctre::phoenix::StatusCode ClearStickyFault_ForwardSoftLimit()=0
Clear sticky fault: Forward soft limit has been asserted.
virtual StatusSignal< bool > & GetFault_RemoteSensorDataInvalid(bool refresh=true)=0
The remote sensor's data is no longer trusted.
virtual StatusSignal< int > & GetStickyFaultField(bool refresh=true)=0
Integer representing all (persistent) sticky fault flags reported by the device.
virtual StatusSignal< double > & GetDifferentialClosedLoopError(bool refresh=true)=0
The difference between target differential reference and current measurement.
virtual StatusSignal< bool > & GetStickyFault_DeviceTemp(bool refresh=true)=0
Device temperature exceeded limit.
virtual ctre::phoenix::StatusCode ClearStickyFault_OverSupplyV(units::time::second_t timeoutSeconds)=0
Clear sticky fault: Supply Voltage has exceeded the maximum voltage rating of device.
virtual ctre::phoenix::StatusCode ClearStickyFault_DeviceTemp(units::time::second_t timeoutSeconds)=0
Clear sticky fault: Device temperature exceeded limit.
virtual StatusSignal< double > & GetClosedLoopOutput(bool refresh=true)=0
Closed loop total output.
virtual StatusSignal< bool > & GetIsProLicensed(bool refresh=true)=0
Whether the device is Phoenix Pro licensed.
virtual StatusSignal< bool > & GetStickyFault_MissingSoftLimitRemote(bool refresh=true)=0
The remote soft limit device is not present on CAN Bus.
virtual StatusSignal< bool > & GetFault_FusedSensorOutOfSync(bool refresh=true)=0
The remote sensor used for fusion has fallen out of sync to the local sensor.
virtual StatusSignal< bool > & GetFault_DeviceTemp(bool refresh=true)=0
Device temperature exceeded limit.
virtual StatusSignal< units::dimensionless::scalar_t > & GetDutyCycle(bool refresh=true)=0
The applied motor duty cycle.
virtual ctre::phoenix::StatusCode ClearStickyFault_OverSupplyV()=0
Clear sticky fault: Supply Voltage has exceeded the maximum voltage rating of device.
virtual StatusSignal< bool > & GetFault_RemoteSensorReset(bool refresh=true)=0
The remote sensor has reset.
virtual StatusSignal< double > & GetClosedLoopReference(bool refresh=true)=0
Value that the closed loop is targeting.
virtual ctre::phoenix::StatusCode ClearStickyFault_ReverseHardLimit()=0
Clear sticky fault: Reverse limit switch has been asserted.
virtual ctre::phoenix::StatusCode ClearStickyFault_StaticBrakeDisabled(units::time::second_t timeoutSeconds)=0
Clear sticky fault: Static brake was momentarily disabled due to excessive braking current while disa...
virtual StatusSignal< units::angular_acceleration::turns_per_second_squared_t > & GetAcceleration(bool refresh=true)=0
Acceleration of the device in mechanism rotations per second².
virtual StatusSignal< bool > & GetFault_ReverseHardLimit(bool refresh=true)=0
Reverse limit switch has been asserted.
virtual StatusSignal< double > & GetDifferentialClosedLoopFeedForward(bool refresh=true)=0
Differential Feedforward passed by the user.
virtual StatusSignal< double > & GetClosedLoopError(bool refresh=true)=0
The difference between target reference and current measurement.
virtual StatusSignal< bool > & GetFault_MissingDifferentialFX(bool refresh=true)=0
The remote Talon used for differential control is not present on CAN Bus.
virtual StatusSignal< int > & GetVersionBugfix(bool refresh=true)=0
App Bugfix Version number.
virtual StatusSignal< double > & GetDifferentialClosedLoopIntegratedOutput(bool refresh=true)=0
Differential closed loop integrated component.
virtual ctre::phoenix::StatusCode ClearStickyFault_MissingHardLimitRemote()=0
Clear sticky fault: The remote limit switch device is not present on CAN Bus.
virtual StatusSignal< bool > & GetFault_MissingSoftLimitRemote(bool refresh=true)=0
The remote soft limit device is not present on CAN Bus.
virtual StatusSignal< double > & GetClosedLoopFeedForward(bool refresh=true)=0
Feedforward passed by the user.
virtual ctre::phoenix::StatusCode ClearStickyFault_RemoteSensorReset(units::time::second_t timeoutSeconds)=0
Clear sticky fault: The remote sensor has reset.
virtual StatusSignal< bool > & GetFault_ReverseSoftLimit(bool refresh=true)=0
Reverse soft limit has been asserted.
virtual StatusSignal< bool > & GetStickyFault_SupplyCurrLimit(bool refresh=true)=0
Supply current limit occured.
virtual StatusSignal< double > & GetDifferentialOutput(bool refresh=true)=0
The calculated motor output for differential followers.
virtual StatusSignal< bool > & GetStickyFault_ForwardSoftLimit(bool refresh=true)=0
Forward soft limit has been asserted.
Status codes reported by APIs, including OK, warnings, and errors.
Definition StatusCodes.h:27
Definition MotionMagicExpoTorqueCurrentFOC.hpp:18