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