Loading [MathJax]/extensions/tex2jax.js
CTRE Phoenix 6 C++ 25.4.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 the robot is 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 RobotEnable Status Signal Object
440 */
442
443 /**
444 * \brief Indicates if device is actuator enabled.
445 *
446 *
447 * This refreshes and returns a cached StatusSignal object.
448 *
449 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
450 * \returns DeviceEnable Status Signal Object
451 */
453
454 /**
455 * \brief The slot that the closed-loop PID is using.
456 *
457 * - Minimum Value: 0
458 * - Maximum Value: 2
459 * - Default Value: 0
460 * - Units:
461 *
462 * This refreshes and returns a cached StatusSignal object.
463 *
464 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
465 * \returns ClosedLoopSlot Status Signal Object
466 */
467 virtual StatusSignal<int> &GetClosedLoopSlot(bool refresh = true) = 0;
468
469 /**
470 * \brief Assess the status of the motor output with respect to load
471 * and supply.
472 *
473 * \details This routine can be used to determine the general status
474 * of motor commutation.
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 MotorOutputStatus Status Signal Object
481 */
483
484 /**
485 * \brief The active control mode of the differential controller.
486 *
487 *
488 * This refreshes and returns a cached StatusSignal object.
489 *
490 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
491 * \returns DifferentialControlMode Status Signal Object
492 */
494
495 /**
496 * \brief Average component of the differential velocity of device.
497 *
498 * - Minimum Value: -512.0
499 * - Maximum Value: 511.998046875
500 * - Default Value: 0
501 * - Units: rotations per second
502 *
503 * This refreshes and returns a cached StatusSignal object.
504 *
505 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
506 * \returns DifferentialAverageVelocity Status Signal Object
507 */
509
510 /**
511 * \brief Average component of the differential position of device.
512 *
513 * - Minimum Value: -16384.0
514 * - Maximum Value: 16383.999755859375
515 * - Default Value: 0
516 * - Units: rotations
517 *
518 * This refreshes and returns a cached StatusSignal object.
519 *
520 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
521 * \returns DifferentialAveragePosition Status Signal Object
522 */
524
525 /**
526 * \brief Difference component of the differential velocity of device.
527 *
528 * - Minimum Value: -512.0
529 * - Maximum Value: 511.998046875
530 * - Default Value: 0
531 * - Units: rotations per second
532 *
533 * This refreshes and returns a cached StatusSignal object.
534 *
535 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
536 * \returns DifferentialDifferenceVelocity Status Signal Object
537 */
539
540 /**
541 * \brief Difference component of the differential position of device.
542 *
543 * - Minimum Value: -16384.0
544 * - Maximum Value: 16383.999755859375
545 * - Default Value: 0
546 * - Units: rotations
547 *
548 * This refreshes and returns a cached StatusSignal object.
549 *
550 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
551 * \returns DifferentialDifferencePosition Status Signal Object
552 */
554
555 /**
556 * \brief The slot that the closed-loop differential PID is using.
557 *
558 * - Minimum Value: 0
559 * - Maximum Value: 2
560 * - Default Value: 0
561 * - Units:
562 *
563 * This refreshes and returns a cached StatusSignal object.
564 *
565 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
566 * \returns DifferentialClosedLoopSlot Status Signal Object
567 */
568 virtual StatusSignal<int> &GetDifferentialClosedLoopSlot(bool refresh = true) = 0;
569
570 /**
571 * \brief The torque constant (K_T) of the motor.
572 *
573 * - Minimum Value: 0.0
574 * - Maximum Value: 0.025500000000000002
575 * - Default Value: 0
576 * - Units: Nm/A
577 *
578 * This refreshes and returns a cached StatusSignal object.
579 *
580 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
581 * \returns MotorKT Status Signal Object
582 */
584
585 /**
586 * \brief The velocity constant (K_V) of the motor.
587 *
588 * - Minimum Value: 0.0
589 * - Maximum Value: 2047.0
590 * - Default Value: 0
591 * - Units: RPM/V
592 *
593 * This refreshes and returns a cached StatusSignal object.
594 *
595 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
596 * \returns MotorKV Status Signal Object
597 */
598 virtual StatusSignal<ctre::unit::rpm_per_volt_t> &GetMotorKV(bool refresh = true) = 0;
599
600 /**
601 * \brief The stall current of the motor at 12 V output.
602 *
603 * - Minimum Value: 0.0
604 * - Maximum Value: 1023.0
605 * - Default Value: 0
606 * - Units: A
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 MotorStallCurrent Status Signal Object
612 */
614
615 /**
616 * \brief The applied output of the bridge.
617 *
618 *
619 * This refreshes and returns a cached StatusSignal object.
620 *
621 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
622 * \returns BridgeOutput Status Signal Object
623 */
625
626 /**
627 * \brief Whether the device is Phoenix Pro licensed.
628 *
629 * - Default Value: False
630 *
631 * This refreshes and returns a cached StatusSignal object.
632 *
633 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
634 * \returns IsProLicensed Status Signal Object
635 */
636 virtual StatusSignal<bool> &GetIsProLicensed(bool refresh = true) = 0;
637
638 /**
639 * \brief Temperature of device from second sensor.
640 *
641 * \details Newer versions of Talon have multiple temperature
642 * measurement methods.
643 *
644 * - Minimum Value: 0.0
645 * - Maximum Value: 255.0
646 * - Default Value: 0
647 * - Units: ℃
648 *
649 * This refreshes and returns a cached StatusSignal object.
650 *
651 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
652 * \returns AncillaryDeviceTemp Status Signal Object
653 */
655
656 /**
657 * \brief The type of motor attached to the Talon.
658 *
659 * \details This can be used to determine what motor is attached to
660 * the Talon FX. Return will be "Unknown" if firmware is too old or
661 * device is not present.
662 *
663 *
664 * This refreshes and returns a cached StatusSignal object.
665 *
666 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
667 * \returns ConnectedMotor Status Signal Object
668 */
670
671 /**
672 * \brief Hardware fault occurred
673 *
674 * - Default Value: False
675 *
676 * This refreshes and returns a cached StatusSignal object.
677 *
678 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
679 * \returns Fault_Hardware Status Signal Object
680 */
681 virtual StatusSignal<bool> &GetFault_Hardware(bool refresh = true) = 0;
682
683 /**
684 * \brief Hardware fault occurred
685 *
686 * - Default Value: False
687 *
688 * This refreshes and returns a cached StatusSignal object.
689 *
690 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
691 * \returns StickyFault_Hardware Status Signal Object
692 */
693 virtual StatusSignal<bool> &GetStickyFault_Hardware(bool refresh = true) = 0;
694
695 /**
696 * \brief Processor temperature exceeded limit
697 *
698 * - Default Value: False
699 *
700 * This refreshes and returns a cached StatusSignal object.
701 *
702 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
703 * \returns Fault_ProcTemp Status Signal Object
704 */
705 virtual StatusSignal<bool> &GetFault_ProcTemp(bool refresh = true) = 0;
706
707 /**
708 * \brief Processor temperature exceeded limit
709 *
710 * - Default Value: False
711 *
712 * This refreshes and returns a cached StatusSignal object.
713 *
714 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
715 * \returns StickyFault_ProcTemp Status Signal Object
716 */
717 virtual StatusSignal<bool> &GetStickyFault_ProcTemp(bool refresh = true) = 0;
718
719 /**
720 * \brief Device temperature exceeded limit
721 *
722 * - Default Value: False
723 *
724 * This refreshes and returns a cached StatusSignal object.
725 *
726 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
727 * \returns Fault_DeviceTemp Status Signal Object
728 */
729 virtual StatusSignal<bool> &GetFault_DeviceTemp(bool refresh = true) = 0;
730
731 /**
732 * \brief Device temperature exceeded limit
733 *
734 * - Default Value: False
735 *
736 * This refreshes and returns a cached StatusSignal object.
737 *
738 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
739 * \returns StickyFault_DeviceTemp Status Signal Object
740 */
741 virtual StatusSignal<bool> &GetStickyFault_DeviceTemp(bool refresh = true) = 0;
742
743 /**
744 * \brief Device supply voltage dropped to near brownout levels
745 *
746 * - Default Value: False
747 *
748 * This refreshes and returns a cached StatusSignal object.
749 *
750 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
751 * \returns Fault_Undervoltage Status Signal Object
752 */
753 virtual StatusSignal<bool> &GetFault_Undervoltage(bool refresh = true) = 0;
754
755 /**
756 * \brief Device supply voltage dropped to near brownout levels
757 *
758 * - Default Value: False
759 *
760 * This refreshes and returns a cached StatusSignal object.
761 *
762 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
763 * \returns StickyFault_Undervoltage Status Signal Object
764 */
765 virtual StatusSignal<bool> &GetStickyFault_Undervoltage(bool refresh = true) = 0;
766
767 /**
768 * \brief Device boot while detecting the enable signal
769 *
770 * - Default Value: False
771 *
772 * This refreshes and returns a cached StatusSignal object.
773 *
774 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
775 * \returns Fault_BootDuringEnable Status Signal Object
776 */
777 virtual StatusSignal<bool> &GetFault_BootDuringEnable(bool refresh = true) = 0;
778
779 /**
780 * \brief Device boot while detecting the enable signal
781 *
782 * - Default Value: False
783 *
784 * This refreshes and returns a cached StatusSignal object.
785 *
786 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
787 * \returns StickyFault_BootDuringEnable Status Signal Object
788 */
789 virtual StatusSignal<bool> &GetStickyFault_BootDuringEnable(bool refresh = true) = 0;
790
791 /**
792 * \brief An unlicensed feature is in use, device may not behave as
793 * expected.
794 *
795 * - Default Value: False
796 *
797 * This refreshes and returns a cached StatusSignal object.
798 *
799 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
800 * \returns Fault_UnlicensedFeatureInUse Status Signal Object
801 */
802 virtual StatusSignal<bool> &GetFault_UnlicensedFeatureInUse(bool refresh = true) = 0;
803
804 /**
805 * \brief An unlicensed feature is in use, device may not behave as
806 * expected.
807 *
808 * - Default Value: False
809 *
810 * This refreshes and returns a cached StatusSignal object.
811 *
812 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
813 * \returns StickyFault_UnlicensedFeatureInUse Status Signal Object
814 */
816
817 /**
818 * \brief Bridge was disabled most likely due to supply voltage
819 * dropping too low.
820 *
821 * - Default Value: False
822 *
823 * This refreshes and returns a cached StatusSignal object.
824 *
825 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
826 * \returns Fault_BridgeBrownout Status Signal Object
827 */
828 virtual StatusSignal<bool> &GetFault_BridgeBrownout(bool refresh = true) = 0;
829
830 /**
831 * \brief Bridge was disabled most likely due to supply voltage
832 * dropping too low.
833 *
834 * - Default Value: False
835 *
836 * This refreshes and returns a cached StatusSignal object.
837 *
838 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
839 * \returns StickyFault_BridgeBrownout Status Signal Object
840 */
841 virtual StatusSignal<bool> &GetStickyFault_BridgeBrownout(bool refresh = true) = 0;
842
843 /**
844 * \brief The remote sensor has reset.
845 *
846 * - Default Value: False
847 *
848 * This refreshes and returns a cached StatusSignal object.
849 *
850 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
851 * \returns Fault_RemoteSensorReset Status Signal Object
852 */
853 virtual StatusSignal<bool> &GetFault_RemoteSensorReset(bool refresh = true) = 0;
854
855 /**
856 * \brief The remote sensor has reset.
857 *
858 * - Default Value: False
859 *
860 * This refreshes and returns a cached StatusSignal object.
861 *
862 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
863 * \returns StickyFault_RemoteSensorReset Status Signal Object
864 */
865 virtual StatusSignal<bool> &GetStickyFault_RemoteSensorReset(bool refresh = true) = 0;
866
867 /**
868 * \brief The remote Talon used for differential control is not
869 * present on CAN Bus.
870 *
871 * - Default Value: False
872 *
873 * This refreshes and returns a cached StatusSignal object.
874 *
875 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
876 * \returns Fault_MissingDifferentialFX Status Signal Object
877 */
878 virtual StatusSignal<bool> &GetFault_MissingDifferentialFX(bool refresh = true) = 0;
879
880 /**
881 * \brief The remote Talon used for differential control is not
882 * present on CAN Bus.
883 *
884 * - Default Value: False
885 *
886 * This refreshes and returns a cached StatusSignal object.
887 *
888 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
889 * \returns StickyFault_MissingDifferentialFX Status Signal Object
890 */
892
893 /**
894 * \brief The remote sensor position has overflowed. Because of the
895 * nature of remote sensors, it is possible for the remote sensor
896 * position to overflow beyond what is supported by the status signal
897 * frame. However, this is rare and cannot occur over the course of an
898 * FRC match under normal use.
899 *
900 * - Default Value: False
901 *
902 * This refreshes and returns a cached StatusSignal object.
903 *
904 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
905 * \returns Fault_RemoteSensorPosOverflow Status Signal Object
906 */
907 virtual StatusSignal<bool> &GetFault_RemoteSensorPosOverflow(bool refresh = true) = 0;
908
909 /**
910 * \brief The remote sensor position has overflowed. Because of the
911 * nature of remote sensors, it is possible for the remote sensor
912 * position to overflow beyond what is supported by the status signal
913 * frame. However, this is rare and cannot occur over the course of an
914 * FRC match under normal use.
915 *
916 * - Default Value: False
917 *
918 * This refreshes and returns a cached StatusSignal object.
919 *
920 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
921 * \returns StickyFault_RemoteSensorPosOverflow Status Signal Object
922 */
924
925 /**
926 * \brief Supply Voltage has exceeded the maximum voltage rating of
927 * device.
928 *
929 * - Default Value: False
930 *
931 * This refreshes and returns a cached StatusSignal object.
932 *
933 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
934 * \returns Fault_OverSupplyV Status Signal Object
935 */
936 virtual StatusSignal<bool> &GetFault_OverSupplyV(bool refresh = true) = 0;
937
938 /**
939 * \brief Supply Voltage has exceeded the maximum voltage rating of
940 * device.
941 *
942 * - Default Value: False
943 *
944 * This refreshes and returns a cached StatusSignal object.
945 *
946 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
947 * \returns StickyFault_OverSupplyV Status Signal Object
948 */
949 virtual StatusSignal<bool> &GetStickyFault_OverSupplyV(bool refresh = true) = 0;
950
951 /**
952 * \brief Supply Voltage is unstable. Ensure you are using a battery
953 * and current limited power supply.
954 *
955 * - Default Value: False
956 *
957 * This refreshes and returns a cached StatusSignal object.
958 *
959 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
960 * \returns Fault_UnstableSupplyV Status Signal Object
961 */
962 virtual StatusSignal<bool> &GetFault_UnstableSupplyV(bool refresh = true) = 0;
963
964 /**
965 * \brief Supply Voltage is unstable. Ensure you are using a battery
966 * and current limited power supply.
967 *
968 * - Default Value: False
969 *
970 * This refreshes and returns a cached StatusSignal object.
971 *
972 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
973 * \returns StickyFault_UnstableSupplyV Status Signal Object
974 */
975 virtual StatusSignal<bool> &GetStickyFault_UnstableSupplyV(bool refresh = true) = 0;
976
977 /**
978 * \brief Reverse limit switch has been asserted. Output is set to
979 * neutral.
980 *
981 * - Default Value: False
982 *
983 * This refreshes and returns a cached StatusSignal object.
984 *
985 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
986 * \returns Fault_ReverseHardLimit Status Signal Object
987 */
988 virtual StatusSignal<bool> &GetFault_ReverseHardLimit(bool refresh = true) = 0;
989
990 /**
991 * \brief Reverse limit switch has been asserted. Output is set to
992 * neutral.
993 *
994 * - Default Value: False
995 *
996 * This refreshes and returns a cached StatusSignal object.
997 *
998 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
999 * \returns StickyFault_ReverseHardLimit Status Signal Object
1000 */
1001 virtual StatusSignal<bool> &GetStickyFault_ReverseHardLimit(bool refresh = true) = 0;
1002
1003 /**
1004 * \brief Forward limit switch has been asserted. Output is set to
1005 * neutral.
1006 *
1007 * - Default Value: False
1008 *
1009 * This refreshes and returns a cached StatusSignal object.
1010 *
1011 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1012 * \returns Fault_ForwardHardLimit Status Signal Object
1013 */
1014 virtual StatusSignal<bool> &GetFault_ForwardHardLimit(bool refresh = true) = 0;
1015
1016 /**
1017 * \brief Forward limit switch has been asserted. Output is set to
1018 * neutral.
1019 *
1020 * - Default Value: False
1021 *
1022 * This refreshes and returns a cached StatusSignal object.
1023 *
1024 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1025 * \returns StickyFault_ForwardHardLimit Status Signal Object
1026 */
1027 virtual StatusSignal<bool> &GetStickyFault_ForwardHardLimit(bool refresh = true) = 0;
1028
1029 /**
1030 * \brief Reverse soft limit has been asserted. Output is set to
1031 * neutral.
1032 *
1033 * - Default Value: False
1034 *
1035 * This refreshes and returns a cached StatusSignal object.
1036 *
1037 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1038 * \returns Fault_ReverseSoftLimit Status Signal Object
1039 */
1040 virtual StatusSignal<bool> &GetFault_ReverseSoftLimit(bool refresh = true) = 0;
1041
1042 /**
1043 * \brief Reverse soft limit has been asserted. Output is set to
1044 * neutral.
1045 *
1046 * - Default Value: False
1047 *
1048 * This refreshes and returns a cached StatusSignal object.
1049 *
1050 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1051 * \returns StickyFault_ReverseSoftLimit Status Signal Object
1052 */
1053 virtual StatusSignal<bool> &GetStickyFault_ReverseSoftLimit(bool refresh = true) = 0;
1054
1055 /**
1056 * \brief Forward soft limit has been asserted. Output is set to
1057 * neutral.
1058 *
1059 * - Default Value: False
1060 *
1061 * This refreshes and returns a cached StatusSignal object.
1062 *
1063 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1064 * \returns Fault_ForwardSoftLimit Status Signal Object
1065 */
1066 virtual StatusSignal<bool> &GetFault_ForwardSoftLimit(bool refresh = true) = 0;
1067
1068 /**
1069 * \brief Forward soft limit has been asserted. Output is set to
1070 * neutral.
1071 *
1072 * - Default Value: False
1073 *
1074 * This refreshes and returns a cached StatusSignal object.
1075 *
1076 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1077 * \returns StickyFault_ForwardSoftLimit Status Signal Object
1078 */
1079 virtual StatusSignal<bool> &GetStickyFault_ForwardSoftLimit(bool refresh = true) = 0;
1080
1081 /**
1082 * \brief The remote soft limit device is not present on CAN Bus.
1083 *
1084 * - Default Value: False
1085 *
1086 * This refreshes and returns a cached StatusSignal object.
1087 *
1088 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1089 * \returns Fault_MissingSoftLimitRemote Status Signal Object
1090 */
1091 virtual StatusSignal<bool> &GetFault_MissingSoftLimitRemote(bool refresh = true) = 0;
1092
1093 /**
1094 * \brief The remote soft limit device is not present on CAN Bus.
1095 *
1096 * - Default Value: False
1097 *
1098 * This refreshes and returns a cached StatusSignal object.
1099 *
1100 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1101 * \returns StickyFault_MissingSoftLimitRemote Status Signal Object
1102 */
1104
1105 /**
1106 * \brief The remote limit switch device is not present on CAN Bus.
1107 *
1108 * - Default Value: False
1109 *
1110 * This refreshes and returns a cached StatusSignal object.
1111 *
1112 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1113 * \returns Fault_MissingHardLimitRemote Status Signal Object
1114 */
1115 virtual StatusSignal<bool> &GetFault_MissingHardLimitRemote(bool refresh = true) = 0;
1116
1117 /**
1118 * \brief The remote limit switch device is not present on CAN Bus.
1119 *
1120 * - Default Value: False
1121 *
1122 * This refreshes and returns a cached StatusSignal object.
1123 *
1124 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1125 * \returns StickyFault_MissingHardLimitRemote Status Signal Object
1126 */
1128
1129 /**
1130 * \brief The remote sensor's data is no longer trusted. This can
1131 * happen if the remote sensor disappears from the CAN bus or if the
1132 * remote sensor indicates its data is no longer valid, such as when a
1133 * CANcoder's magnet strength falls into the "red" range.
1134 *
1135 * - Default Value: False
1136 *
1137 * This refreshes and returns a cached StatusSignal object.
1138 *
1139 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1140 * \returns Fault_RemoteSensorDataInvalid Status Signal Object
1141 */
1142 virtual StatusSignal<bool> &GetFault_RemoteSensorDataInvalid(bool refresh = true) = 0;
1143
1144 /**
1145 * \brief The remote sensor's data is no longer trusted. This can
1146 * happen if the remote sensor disappears from the CAN bus or if the
1147 * remote sensor indicates its data is no longer valid, such as when a
1148 * CANcoder's magnet strength falls into the "red" range.
1149 *
1150 * - Default Value: False
1151 *
1152 * This refreshes and returns a cached StatusSignal object.
1153 *
1154 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1155 * \returns StickyFault_RemoteSensorDataInvalid Status Signal Object
1156 */
1158
1159 /**
1160 * \brief The remote sensor used for fusion has fallen out of sync to
1161 * the local sensor. A re-synchronization has occurred, which may
1162 * cause a discontinuity. This typically happens if there is
1163 * significant slop in the mechanism, or if the RotorToSensorRatio
1164 * configuration parameter is incorrect.
1165 *
1166 * - Default Value: False
1167 *
1168 * This refreshes and returns a cached StatusSignal object.
1169 *
1170 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1171 * \returns Fault_FusedSensorOutOfSync Status Signal Object
1172 */
1173 virtual StatusSignal<bool> &GetFault_FusedSensorOutOfSync(bool refresh = true) = 0;
1174
1175 /**
1176 * \brief The remote sensor used for fusion has fallen out of sync to
1177 * the local sensor. A re-synchronization has occurred, which may
1178 * cause a discontinuity. This typically happens if there is
1179 * significant slop in the mechanism, or if the RotorToSensorRatio
1180 * configuration parameter is incorrect.
1181 *
1182 * - Default Value: False
1183 *
1184 * This refreshes and returns a cached StatusSignal object.
1185 *
1186 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1187 * \returns StickyFault_FusedSensorOutOfSync Status Signal Object
1188 */
1190
1191 /**
1192 * \brief Stator current limit occured.
1193 *
1194 * - Default Value: False
1195 *
1196 * This refreshes and returns a cached StatusSignal object.
1197 *
1198 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1199 * \returns Fault_StatorCurrLimit Status Signal Object
1200 */
1201 virtual StatusSignal<bool> &GetFault_StatorCurrLimit(bool refresh = true) = 0;
1202
1203 /**
1204 * \brief Stator current limit occured.
1205 *
1206 * - Default Value: False
1207 *
1208 * This refreshes and returns a cached StatusSignal object.
1209 *
1210 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1211 * \returns StickyFault_StatorCurrLimit Status Signal Object
1212 */
1213 virtual StatusSignal<bool> &GetStickyFault_StatorCurrLimit(bool refresh = true) = 0;
1214
1215 /**
1216 * \brief Supply current limit occured.
1217 *
1218 * - Default Value: False
1219 *
1220 * This refreshes and returns a cached StatusSignal object.
1221 *
1222 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1223 * \returns Fault_SupplyCurrLimit Status Signal Object
1224 */
1225 virtual StatusSignal<bool> &GetFault_SupplyCurrLimit(bool refresh = true) = 0;
1226
1227 /**
1228 * \brief Supply current limit occured.
1229 *
1230 * - Default Value: False
1231 *
1232 * This refreshes and returns a cached StatusSignal object.
1233 *
1234 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1235 * \returns StickyFault_SupplyCurrLimit Status Signal Object
1236 */
1237 virtual StatusSignal<bool> &GetStickyFault_SupplyCurrLimit(bool refresh = true) = 0;
1238
1239 /**
1240 * \brief Using Fused CANcoder feature while unlicensed. Device has
1241 * fallen back to remote CANcoder.
1242 *
1243 * - Default Value: False
1244 *
1245 * This refreshes and returns a cached StatusSignal object.
1246 *
1247 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1248 * \returns Fault_UsingFusedCANcoderWhileUnlicensed Status Signal Object
1249 */
1251
1252 /**
1253 * \brief Using Fused CANcoder feature while unlicensed. Device has
1254 * fallen back to remote CANcoder.
1255 *
1256 * - Default Value: False
1257 *
1258 * This refreshes and returns a cached StatusSignal object.
1259 *
1260 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1261 * \returns StickyFault_UsingFusedCANcoderWhileUnlicensed Status Signal Object
1262 */
1264
1265 /**
1266 * \brief Static brake was momentarily disabled due to excessive
1267 * braking current while disabled.
1268 *
1269 * - Default Value: False
1270 *
1271 * This refreshes and returns a cached StatusSignal object.
1272 *
1273 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1274 * \returns Fault_StaticBrakeDisabled Status Signal Object
1275 */
1276 virtual StatusSignal<bool> &GetFault_StaticBrakeDisabled(bool refresh = true) = 0;
1277
1278 /**
1279 * \brief Static brake was momentarily disabled due to excessive
1280 * braking current while disabled.
1281 *
1282 * - Default Value: False
1283 *
1284 * This refreshes and returns a cached StatusSignal object.
1285 *
1286 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1287 * \returns StickyFault_StaticBrakeDisabled Status Signal Object
1288 */
1290
1291 /**
1292 * \brief Closed loop proportional component
1293 *
1294 * \details The portion of the closed loop output that is the
1295 * proportional to the error. Alternatively, the p-Contribution of the
1296 * closed loop output.
1297 *
1298 * This refreshes and returns a cached StatusSignal object.
1299 *
1300 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1301 * \returns ClosedLoopProportionalOutput Status Signal object
1302 */
1304
1305 /**
1306 * \brief Closed loop integrated component
1307 *
1308 * \details The portion of the closed loop output that is proportional
1309 * to the integrated error. Alternatively, the i-Contribution of the
1310 * closed loop output.
1311 *
1312 * This refreshes and returns a cached StatusSignal object.
1313 *
1314 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1315 * \returns ClosedLoopIntegratedOutput Status Signal object
1316 */
1317 virtual StatusSignal<double> &GetClosedLoopIntegratedOutput(bool refresh = true) = 0;
1318
1319 /**
1320 * \brief Feedforward passed by the user
1321 *
1322 * \details This is the general feedforward that the user provides for
1323 * the closed loop.
1324 *
1325 * This refreshes and returns a cached StatusSignal object.
1326 *
1327 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1328 * \returns ClosedLoopFeedForward Status Signal object
1329 */
1330 virtual StatusSignal<double> &GetClosedLoopFeedForward(bool refresh = true) = 0;
1331
1332 /**
1333 * \brief Closed loop derivative component
1334 *
1335 * \details The portion of the closed loop output that is the
1336 * proportional to the deriviative the error. Alternatively, the
1337 * d-Contribution of the closed loop output.
1338 *
1339 * This refreshes and returns a cached StatusSignal object.
1340 *
1341 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1342 * \returns ClosedLoopDerivativeOutput Status Signal object
1343 */
1344 virtual StatusSignal<double> &GetClosedLoopDerivativeOutput(bool refresh = true) = 0;
1345
1346 /**
1347 * \brief Closed loop total output
1348 *
1349 * \details The total output of the closed loop output.
1350 *
1351 * This refreshes and returns a cached StatusSignal object.
1352 *
1353 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1354 * \returns ClosedLoopOutput Status Signal object
1355 */
1356 virtual StatusSignal<double> &GetClosedLoopOutput(bool refresh = true) = 0;
1357
1358 /**
1359 * \brief Value that the closed loop is targeting
1360 *
1361 * \details This is the value that the closed loop PID controller
1362 * targets.
1363 *
1364 * This refreshes and returns a cached StatusSignal object.
1365 *
1366 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1367 * \returns ClosedLoopReference Status Signal object
1368 */
1369 virtual StatusSignal<double> &GetClosedLoopReference(bool refresh = true) = 0;
1370
1371 /**
1372 * \brief Derivative of the target that the closed loop is targeting
1373 *
1374 * \details This is the change in the closed loop reference. This may
1375 * be used in the feed-forward calculation, the derivative-error, or
1376 * in application of the signage for kS. Typically, this represents
1377 * the target velocity during Motion Magic®.
1378 *
1379 * This refreshes and returns a cached StatusSignal object.
1380 *
1381 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1382 * \returns ClosedLoopReferenceSlope Status Signal object
1383 */
1384 virtual StatusSignal<double> &GetClosedLoopReferenceSlope(bool refresh = true) = 0;
1385
1386 /**
1387 * \brief The difference between target reference and current
1388 * measurement
1389 *
1390 * \details This is the value that is treated as the error in the PID
1391 * loop.
1392 *
1393 * This refreshes and returns a cached StatusSignal object.
1394 *
1395 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1396 * \returns ClosedLoopError Status Signal object
1397 */
1398 virtual StatusSignal<double> &GetClosedLoopError(bool refresh = true) = 0;
1399
1400 /**
1401 * \brief The calculated motor output for differential followers.
1402 *
1403 * \details This is a torque request when using the TorqueCurrentFOC
1404 * control output type, and a duty cycle in all other control types.
1405 *
1406 * This refreshes and returns a cached StatusSignal object.
1407 *
1408 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1409 * \returns DifferentialOutput Status Signal object
1410 */
1411 virtual StatusSignal<double> &GetDifferentialOutput(bool refresh = true) = 0;
1412
1413 /**
1414 * \brief Differential closed loop proportional component
1415 *
1416 * \details The portion of the differential closed loop output that is
1417 * the proportional to the error. Alternatively, the p-Contribution of
1418 * the closed loop output.
1419 *
1420 * This refreshes and returns a cached StatusSignal object.
1421 *
1422 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1423 * \returns DifferentialClosedLoopProportionalOutput Status Signal object
1424 */
1426
1427 /**
1428 * \brief Differential closed loop integrated component
1429 *
1430 * \details The portion of the differential closed loop output that is
1431 * proportional to the integrated error. Alternatively, the
1432 * i-Contribution of the closed loop output.
1433 *
1434 * This refreshes and returns a cached StatusSignal object.
1435 *
1436 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1437 * \returns DifferentialClosedLoopIntegratedOutput Status Signal object
1438 */
1440
1441 /**
1442 * \brief Differential Feedforward passed by the user
1443 *
1444 * \details This is the general feedforward that the user provides for
1445 * the differential closed loop.
1446 *
1447 * This refreshes and returns a cached StatusSignal object.
1448 *
1449 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1450 * \returns DifferentialClosedLoopFeedForward Status Signal object
1451 */
1453
1454 /**
1455 * \brief Differential closed loop derivative component
1456 *
1457 * \details The portion of the differential closed loop output that is
1458 * the proportional to the deriviative the error. Alternatively, the
1459 * d-Contribution of the closed loop output.
1460 *
1461 * This refreshes and returns a cached StatusSignal object.
1462 *
1463 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1464 * \returns DifferentialClosedLoopDerivativeOutput Status Signal object
1465 */
1467
1468 /**
1469 * \brief Differential closed loop total output
1470 *
1471 * \details The total output of the differential closed loop output.
1472 *
1473 * This refreshes and returns a cached StatusSignal object.
1474 *
1475 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1476 * \returns DifferentialClosedLoopOutput Status Signal object
1477 */
1479
1480 /**
1481 * \brief Value that the differential closed loop is targeting
1482 *
1483 * \details This is the value that the differential closed loop PID
1484 * controller targets.
1485 *
1486 * This refreshes and returns a cached StatusSignal object.
1487 *
1488 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1489 * \returns DifferentialClosedLoopReference Status Signal object
1490 */
1492
1493 /**
1494 * \brief Derivative of the target that the differential closed loop
1495 * is targeting
1496 *
1497 * \details This is the change in the closed loop reference. This may
1498 * be used in the feed-forward calculation, the derivative-error, or
1499 * in application of the signage for kS. Typically, this represents
1500 * the target velocity during Motion Magic®.
1501 *
1502 * This refreshes and returns a cached StatusSignal object.
1503 *
1504 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1505 * \returns DifferentialClosedLoopReferenceSlope Status Signal object
1506 */
1508
1509 /**
1510 * \brief The difference between target differential reference and
1511 * current measurement
1512 *
1513 * \details This is the value that is treated as the error in the
1514 * differential PID loop.
1515 *
1516 * This refreshes and returns a cached StatusSignal object.
1517 *
1518 * \param refresh Whether to refresh the StatusSignal before returning it; defaults to true
1519 * \returns DifferentialClosedLoopError Status Signal object
1520 */
1521 virtual StatusSignal<double> &GetDifferentialClosedLoopError(bool refresh = true) = 0;
1522
1523
1524
1525 /**
1526 * \brief Sets the mechanism position of the device in mechanism
1527 * rotations.
1528 *
1529 * \param newValue Value to set to. Units are in rotations.
1530 * \param timeoutSeconds Maximum time to wait up to in seconds.
1531 * \returns StatusCode of the set command
1532 */
1533 virtual ctre::phoenix::StatusCode SetPosition(units::angle::turn_t newValue, units::time::second_t timeoutSeconds) = 0;
1534 /**
1535 * \brief Sets the mechanism position of the device in mechanism
1536 * rotations.
1537 *
1538 * This will wait up to 0.100 seconds (100ms) by default.
1539 *
1540 * \param newValue Value to set to. Units are in rotations.
1541 * \returns StatusCode of the set command
1542 */
1543 virtual ctre::phoenix::StatusCode SetPosition(units::angle::turn_t newValue) = 0;
1544
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 * \param timeoutSeconds Maximum time to wait up to in seconds.
1553 * \returns StatusCode of the set command
1554 */
1555 virtual ctre::phoenix::StatusCode ClearStickyFaults(units::time::second_t timeoutSeconds) = 0;
1556 /**
1557 * \brief Clear the sticky faults in the device.
1558 *
1559 * \details This typically has no impact on the device functionality.
1560 * Instead, it just clears telemetry faults that are accessible via
1561 * API and Tuner Self-Test.
1562 *
1563 * This will wait up to 0.100 seconds (100ms) by default.
1564 *
1565 * \returns StatusCode of the set command
1566 */
1568
1569 /**
1570 * \brief Clear sticky fault: Hardware fault occurred
1571 *
1572 * \param timeoutSeconds Maximum time to wait up to in seconds.
1573 * \returns StatusCode of the set command
1574 */
1575 virtual ctre::phoenix::StatusCode ClearStickyFault_Hardware(units::time::second_t timeoutSeconds) = 0;
1576 /**
1577 * \brief Clear sticky fault: Hardware fault occurred
1578 *
1579 * This will wait up to 0.100 seconds (100ms) by default.
1580 *
1581 * \returns StatusCode of the set command
1582 */
1584
1585 /**
1586 * \brief Clear sticky fault: Processor temperature exceeded limit
1587 *
1588 * \param timeoutSeconds Maximum time to wait up to in seconds.
1589 * \returns StatusCode of the set command
1590 */
1591 virtual ctre::phoenix::StatusCode ClearStickyFault_ProcTemp(units::time::second_t timeoutSeconds) = 0;
1592 /**
1593 * \brief Clear sticky fault: Processor temperature exceeded limit
1594 *
1595 * This will wait up to 0.100 seconds (100ms) by default.
1596 *
1597 * \returns StatusCode of the set command
1598 */
1600
1601 /**
1602 * \brief Clear sticky fault: Device temperature exceeded limit
1603 *
1604 * \param timeoutSeconds Maximum time to wait up to in seconds.
1605 * \returns StatusCode of the set command
1606 */
1607 virtual ctre::phoenix::StatusCode ClearStickyFault_DeviceTemp(units::time::second_t timeoutSeconds) = 0;
1608 /**
1609 * \brief Clear sticky fault: Device temperature exceeded limit
1610 *
1611 * This will wait up to 0.100 seconds (100ms) by default.
1612 *
1613 * \returns StatusCode of the set command
1614 */
1616
1617 /**
1618 * \brief Clear sticky fault: Device supply voltage dropped to near
1619 * brownout levels
1620 *
1621 * \param timeoutSeconds Maximum time to wait up to in seconds.
1622 * \returns StatusCode of the set command
1623 */
1624 virtual ctre::phoenix::StatusCode ClearStickyFault_Undervoltage(units::time::second_t timeoutSeconds) = 0;
1625 /**
1626 * \brief Clear sticky fault: Device supply voltage dropped to near
1627 * brownout levels
1628 *
1629 * This will wait up to 0.100 seconds (100ms) by default.
1630 *
1631 * \returns StatusCode of the set command
1632 */
1634
1635 /**
1636 * \brief Clear sticky fault: Device boot while detecting the enable
1637 * signal
1638 *
1639 * \param timeoutSeconds Maximum time to wait up to in seconds.
1640 * \returns StatusCode of the set command
1641 */
1642 virtual ctre::phoenix::StatusCode ClearStickyFault_BootDuringEnable(units::time::second_t timeoutSeconds) = 0;
1643 /**
1644 * \brief Clear sticky fault: Device boot while detecting the enable
1645 * signal
1646 *
1647 * This will wait up to 0.100 seconds (100ms) by default.
1648 *
1649 * \returns StatusCode of the set command
1650 */
1652
1653 /**
1654 * \brief Clear sticky fault: An unlicensed feature is in use, device
1655 * may not behave as expected.
1656 *
1657 * \param timeoutSeconds Maximum time to wait up to in seconds.
1658 * \returns StatusCode of the set command
1659 */
1660 virtual ctre::phoenix::StatusCode ClearStickyFault_UnlicensedFeatureInUse(units::time::second_t timeoutSeconds) = 0;
1661 /**
1662 * \brief Clear sticky fault: An unlicensed feature is in use, device
1663 * may not behave as expected.
1664 *
1665 * This will wait up to 0.100 seconds (100ms) by default.
1666 *
1667 * \returns StatusCode of the set command
1668 */
1670
1671 /**
1672 * \brief Clear sticky fault: Bridge was disabled most likely due to
1673 * supply voltage dropping too low.
1674 *
1675 * \param timeoutSeconds Maximum time to wait up to in seconds.
1676 * \returns StatusCode of the set command
1677 */
1678 virtual ctre::phoenix::StatusCode ClearStickyFault_BridgeBrownout(units::time::second_t timeoutSeconds) = 0;
1679 /**
1680 * \brief Clear sticky fault: Bridge was disabled most likely due to
1681 * supply voltage dropping too low.
1682 *
1683 * This will wait up to 0.100 seconds (100ms) by default.
1684 *
1685 * \returns StatusCode of the set command
1686 */
1688
1689 /**
1690 * \brief Clear sticky fault: The remote sensor has reset.
1691 *
1692 * \param timeoutSeconds Maximum time to wait up to in seconds.
1693 * \returns StatusCode of the set command
1694 */
1695 virtual ctre::phoenix::StatusCode ClearStickyFault_RemoteSensorReset(units::time::second_t timeoutSeconds) = 0;
1696 /**
1697 * \brief Clear sticky fault: The remote sensor has reset.
1698 *
1699 * This will wait up to 0.100 seconds (100ms) by default.
1700 *
1701 * \returns StatusCode of the set command
1702 */
1704
1705 /**
1706 * \brief Clear sticky fault: The remote Talon used for differential
1707 * control is not present on CAN Bus.
1708 *
1709 * \param timeoutSeconds Maximum time to wait up to in seconds.
1710 * \returns StatusCode of the set command
1711 */
1712 virtual ctre::phoenix::StatusCode ClearStickyFault_MissingDifferentialFX(units::time::second_t timeoutSeconds) = 0;
1713 /**
1714 * \brief Clear sticky fault: The remote Talon used for differential
1715 * control is not present on CAN Bus.
1716 *
1717 * This will wait up to 0.100 seconds (100ms) by default.
1718 *
1719 * \returns StatusCode of the set command
1720 */
1722
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 * \param timeoutSeconds Maximum time to wait up to in seconds.
1731 * \returns StatusCode of the set command
1732 */
1733 virtual ctre::phoenix::StatusCode ClearStickyFault_RemoteSensorPosOverflow(units::time::second_t timeoutSeconds) = 0;
1734 /**
1735 * \brief Clear sticky fault: The remote sensor position has
1736 * overflowed. Because of the nature of remote sensors, it is possible
1737 * for the remote sensor position to overflow beyond what is supported
1738 * by the status signal frame. However, this is rare and cannot occur
1739 * over the course of an FRC match under normal use.
1740 *
1741 * This will wait up to 0.100 seconds (100ms) by default.
1742 *
1743 * \returns StatusCode of the set command
1744 */
1746
1747 /**
1748 * \brief Clear sticky fault: Supply Voltage has exceeded the maximum
1749 * voltage rating of device.
1750 *
1751 * \param timeoutSeconds Maximum time to wait up to in seconds.
1752 * \returns StatusCode of the set command
1753 */
1754 virtual ctre::phoenix::StatusCode ClearStickyFault_OverSupplyV(units::time::second_t timeoutSeconds) = 0;
1755 /**
1756 * \brief Clear sticky fault: Supply Voltage has exceeded the maximum
1757 * voltage rating of device.
1758 *
1759 * This will wait up to 0.100 seconds (100ms) by default.
1760 *
1761 * \returns StatusCode of the set command
1762 */
1764
1765 /**
1766 * \brief Clear sticky fault: Supply Voltage is unstable. Ensure you
1767 * are using a battery and current limited power supply.
1768 *
1769 * \param timeoutSeconds Maximum time to wait up to in seconds.
1770 * \returns StatusCode of the set command
1771 */
1772 virtual ctre::phoenix::StatusCode ClearStickyFault_UnstableSupplyV(units::time::second_t timeoutSeconds) = 0;
1773 /**
1774 * \brief Clear sticky fault: Supply Voltage is unstable. Ensure you
1775 * are using a battery and current limited power supply.
1776 *
1777 * This will wait up to 0.100 seconds (100ms) by default.
1778 *
1779 * \returns StatusCode of the set command
1780 */
1782
1783 /**
1784 * \brief Clear sticky fault: Reverse limit switch has been asserted.
1785 * Output is set to neutral.
1786 *
1787 * \param timeoutSeconds Maximum time to wait up to in seconds.
1788 * \returns StatusCode of the set command
1789 */
1790 virtual ctre::phoenix::StatusCode ClearStickyFault_ReverseHardLimit(units::time::second_t timeoutSeconds) = 0;
1791 /**
1792 * \brief Clear sticky fault: Reverse limit switch has been asserted.
1793 * Output is set to neutral.
1794 *
1795 * This will wait up to 0.100 seconds (100ms) by default.
1796 *
1797 * \returns StatusCode of the set command
1798 */
1800
1801 /**
1802 * \brief Clear sticky fault: Forward limit switch has been asserted.
1803 * Output is set to neutral.
1804 *
1805 * \param timeoutSeconds Maximum time to wait up to in seconds.
1806 * \returns StatusCode of the set command
1807 */
1808 virtual ctre::phoenix::StatusCode ClearStickyFault_ForwardHardLimit(units::time::second_t timeoutSeconds) = 0;
1809 /**
1810 * \brief Clear sticky fault: Forward limit switch has been asserted.
1811 * Output is set to neutral.
1812 *
1813 * This will wait up to 0.100 seconds (100ms) by default.
1814 *
1815 * \returns StatusCode of the set command
1816 */
1818
1819 /**
1820 * \brief Clear sticky fault: Reverse soft limit has been asserted.
1821 * Output is set to neutral.
1822 *
1823 * \param timeoutSeconds Maximum time to wait up to in seconds.
1824 * \returns StatusCode of the set command
1825 */
1826 virtual ctre::phoenix::StatusCode ClearStickyFault_ReverseSoftLimit(units::time::second_t timeoutSeconds) = 0;
1827 /**
1828 * \brief Clear sticky fault: Reverse soft limit has been asserted.
1829 * Output is set to neutral.
1830 *
1831 * This will wait up to 0.100 seconds (100ms) by default.
1832 *
1833 * \returns StatusCode of the set command
1834 */
1836
1837 /**
1838 * \brief Clear sticky fault: Forward soft limit has been asserted.
1839 * Output is set to neutral.
1840 *
1841 * \param timeoutSeconds Maximum time to wait up to in seconds.
1842 * \returns StatusCode of the set command
1843 */
1844 virtual ctre::phoenix::StatusCode ClearStickyFault_ForwardSoftLimit(units::time::second_t timeoutSeconds) = 0;
1845 /**
1846 * \brief Clear sticky fault: Forward soft limit has been asserted.
1847 * Output is set to neutral.
1848 *
1849 * This will wait up to 0.100 seconds (100ms) by default.
1850 *
1851 * \returns StatusCode of the set command
1852 */
1854
1855 /**
1856 * \brief Clear sticky fault: The remote soft limit device is not
1857 * present on CAN Bus.
1858 *
1859 * \param timeoutSeconds Maximum time to wait up to in seconds.
1860 * \returns StatusCode of the set command
1861 */
1862 virtual ctre::phoenix::StatusCode ClearStickyFault_MissingSoftLimitRemote(units::time::second_t timeoutSeconds) = 0;
1863 /**
1864 * \brief Clear sticky fault: The remote soft limit device is not
1865 * present on CAN Bus.
1866 *
1867 * This will wait up to 0.100 seconds (100ms) by default.
1868 *
1869 * \returns StatusCode of the set command
1870 */
1872
1873 /**
1874 * \brief Clear sticky fault: The remote limit switch device is not
1875 * present on CAN Bus.
1876 *
1877 * \param timeoutSeconds Maximum time to wait up to in seconds.
1878 * \returns StatusCode of the set command
1879 */
1880 virtual ctre::phoenix::StatusCode ClearStickyFault_MissingHardLimitRemote(units::time::second_t timeoutSeconds) = 0;
1881 /**
1882 * \brief Clear sticky fault: The remote limit switch device is not
1883 * present on CAN Bus.
1884 *
1885 * This will wait up to 0.100 seconds (100ms) by default.
1886 *
1887 * \returns StatusCode of the set command
1888 */
1890
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 * \param timeoutSeconds Maximum time to wait up to in seconds.
1899 * \returns StatusCode of the set command
1900 */
1901 virtual ctre::phoenix::StatusCode ClearStickyFault_RemoteSensorDataInvalid(units::time::second_t timeoutSeconds) = 0;
1902 /**
1903 * \brief Clear sticky fault: The remote sensor's data is no longer
1904 * trusted. This can happen if the remote sensor disappears from the
1905 * CAN bus or if the remote sensor indicates its data is no longer
1906 * valid, such as when a CANcoder's magnet strength falls into the
1907 * "red" range.
1908 *
1909 * This will wait up to 0.100 seconds (100ms) by default.
1910 *
1911 * \returns StatusCode of the set command
1912 */
1914
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 * \param timeoutSeconds Maximum time to wait up to in seconds.
1923 * \returns StatusCode of the set command
1924 */
1925 virtual ctre::phoenix::StatusCode ClearStickyFault_FusedSensorOutOfSync(units::time::second_t timeoutSeconds) = 0;
1926 /**
1927 * \brief Clear sticky fault: The remote sensor used for fusion has
1928 * fallen out of sync to the local sensor. A re-synchronization has
1929 * occurred, which may cause a discontinuity. This typically happens
1930 * if there is significant slop in the mechanism, or if the
1931 * RotorToSensorRatio configuration parameter is incorrect.
1932 *
1933 * This will wait up to 0.100 seconds (100ms) by default.
1934 *
1935 * \returns StatusCode of the set command
1936 */
1938
1939 /**
1940 * \brief Clear sticky fault: Stator current limit occured.
1941 *
1942 * \param timeoutSeconds Maximum time to wait up to in seconds.
1943 * \returns StatusCode of the set command
1944 */
1945 virtual ctre::phoenix::StatusCode ClearStickyFault_StatorCurrLimit(units::time::second_t timeoutSeconds) = 0;
1946 /**
1947 * \brief Clear sticky fault: Stator current limit occured.
1948 *
1949 * This will wait up to 0.100 seconds (100ms) by default.
1950 *
1951 * \returns StatusCode of the set command
1952 */
1954
1955 /**
1956 * \brief Clear sticky fault: Supply current limit occured.
1957 *
1958 * \param timeoutSeconds Maximum time to wait up to in seconds.
1959 * \returns StatusCode of the set command
1960 */
1961 virtual ctre::phoenix::StatusCode ClearStickyFault_SupplyCurrLimit(units::time::second_t timeoutSeconds) = 0;
1962 /**
1963 * \brief Clear sticky fault: Supply current limit occured.
1964 *
1965 * This will wait up to 0.100 seconds (100ms) by default.
1966 *
1967 * \returns StatusCode of the set command
1968 */
1970
1971 /**
1972 * \brief Clear sticky fault: Using Fused CANcoder feature while
1973 * unlicensed. Device has fallen back to remote CANcoder.
1974 *
1975 * \param timeoutSeconds Maximum time to wait up to in seconds.
1976 * \returns StatusCode of the set command
1977 */
1979 /**
1980 * \brief Clear sticky fault: Using Fused CANcoder feature while
1981 * unlicensed. Device has fallen back to remote CANcoder.
1982 *
1983 * This will wait up to 0.100 seconds (100ms) by default.
1984 *
1985 * \returns StatusCode of the set command
1986 */
1988
1989 /**
1990 * \brief Clear sticky fault: Static brake was momentarily disabled
1991 * due to excessive braking current while disabled.
1992 *
1993 * \param timeoutSeconds Maximum time to wait up to in seconds.
1994 * \returns StatusCode of the set command
1995 */
1996 virtual ctre::phoenix::StatusCode ClearStickyFault_StaticBrakeDisabled(units::time::second_t timeoutSeconds) = 0;
1997 /**
1998 * \brief Clear sticky fault: Static brake was momentarily disabled
1999 * due to excessive braking current while disabled.
2000 *
2001 * This will wait up to 0.100 seconds (100ms) by default.
2002 *
2003 * \returns StatusCode of the set command
2004 */
2006};
2007
2008}
2009}
2010}
2011}
2012
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< signals::RobotEnableValue > & GetRobotEnable(bool refresh=true)=0
Indicates if the robot is enabled.
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 Diff_PositionDutyCycle_Position.hpp:15