CTRE_Phoenix 5.20.2
StickyFaults.h
1#pragma once
2#include <sstream>
3namespace ctre {
4namespace phoenix {
5namespace motorcontrol {
6
68
72 bool HasAnyFault() const {
73 return UnderVoltage |
83 APIError |
86 }
90 int ToBitfield() const {
91 int retval = 0;
92 int mask = 1;
93 retval |= UnderVoltage ? mask : 0; mask <<= 1;
94 retval |= ForwardLimitSwitch ? mask : 0; mask <<= 1;
95 retval |= ReverseLimitSwitch ? mask : 0; mask <<= 1;
96 retval |= ForwardSoftLimit ? mask : 0; mask <<= 1;
97 retval |= ReverseSoftLimit ? mask : 0; mask <<= 1;
98 retval |= ResetDuringEn ? mask : 0; mask <<= 1;
99 retval |= SensorOverflow ? mask : 0; mask <<= 1;
100 retval |= SensorOutOfPhase ? mask : 0; mask <<= 1;
101 retval |= HardwareESDReset ? mask : 0; mask <<= 1;
102 retval |= RemoteLossOfSignal ? mask : 0; mask <<= 1;
103 retval |= APIError ? mask : 0; mask <<= 1;
104 retval |= SupplyOverV ? mask : 0; mask <<= 1;
105 retval |= SupplyUnstable ? mask : 0; mask <<= 1;
106 return retval;
107 }
113 StickyFaults(int bits) {
114 int mask = 1;
115 UnderVoltage = (bits & mask) ? true : false; mask <<= 1;
116 ForwardLimitSwitch = (bits & mask) ? true : false; mask <<= 1;
117 ReverseLimitSwitch = (bits & mask) ? true : false; mask <<= 1;
118 ForwardSoftLimit = (bits & mask) ? true : false; mask <<= 1;
119 ReverseSoftLimit = (bits & mask) ? true : false; mask <<= 1;
120 ResetDuringEn = (bits & mask) ? true : false; mask <<= 1;
121 SensorOverflow = (bits & mask) ? true : false; mask <<= 1;
122 SensorOutOfPhase = (bits & mask) ? true : false; mask <<= 1;
123 HardwareESDReset = (bits & mask) ? true : false; mask <<= 1;
124 RemoteLossOfSignal = (bits & mask) ? true : false; mask <<= 1;
125 APIError = (bits & mask) ? true : false; mask <<= 1;
126 SupplyOverV = (bits & mask) ? true : false; mask <<= 1;
127 SupplyUnstable = (bits & mask) ? true : false; mask <<= 1;
128 }
129 StickyFaults() {
130 UnderVoltage = false;
131 ForwardLimitSwitch = false;
132 ReverseLimitSwitch = false;
133 ForwardSoftLimit = false;
134 ReverseSoftLimit = false;
135 ResetDuringEn = false;
136 SensorOverflow = false;
137 SensorOutOfPhase = false;
138 HardwareESDReset = false;
139 RemoteLossOfSignal = false;
140 APIError = false;
141 SupplyOverV = false;
142 SupplyUnstable = false;
143 }
147 std::string ToString() {
148 std::stringstream work;
149 work << " UnderVoltage:" << (UnderVoltage ? "1" : "0");
150 work << " ForwardLimitSwitch:" << (ForwardLimitSwitch ? "1" : "0");
151 work << " ReverseLimitSwitch:" << (ReverseLimitSwitch ? "1" : "0");
152 work << " ForwardSoftLimit:" << (ForwardSoftLimit ? "1" : "0");
153 work << " ReverseSoftLimit:" << (ReverseSoftLimit ? "1" : "0");
154 work << " ResetDuringEn:" << (ResetDuringEn ? "1" : "0");
155 work << " SensorOverflow:" << (SensorOverflow ? "1" : "0");
156 work << " SensorOutOfPhase:" << (SensorOutOfPhase ? "1" : "0");
157 work << " HardwareESDReset:" << (HardwareESDReset ? "1" : "0");
158 work << " RemoteLossOfSignal:" << (RemoteLossOfSignal ? "1" : "0");
159 work << " APIError:" << (APIError ? "1" : "0");
160 work << " SupplyOverV:" << (SupplyOverV ? "1" : "0");
161 work << " SupplyUnstable:" << (SupplyUnstable ? "1" : "0");
162 return work.str();
163 }
164};
165
166} // namespace motorcontrol
167} // namespace phoenix
168} // namespace ctre
Definition: ErrorCode.h:5
Definition: StickyFaults.h:10
bool ReverseLimitSwitch
Definition: StickyFaults.h:24
bool RemoteLossOfSignal
Definition: StickyFaults.h:55
bool HardwareESDReset
Definition: StickyFaults.h:51
StickyFaults(int bits)
Definition: StickyFaults.h:113
bool ForwardSoftLimit
Definition: StickyFaults.h:29
bool ForwardLimitSwitch
Definition: StickyFaults.h:19
std::string ToString()
Definition: StickyFaults.h:147
bool SensorOutOfPhase
Definition: StickyFaults.h:47
int ToBitfield() const
Definition: StickyFaults.h:90
bool ReverseSoftLimit
Definition: StickyFaults.h:34
bool SensorOverflow
Definition: StickyFaults.h:43
bool HasAnyFault() const
Definition: StickyFaults.h:72
bool UnderVoltage
Definition: StickyFaults.h:14
bool SupplyOverV
Definition: StickyFaults.h:63
bool SupplyUnstable
Definition: StickyFaults.h:67
bool APIError
Definition: StickyFaults.h:59
bool ResetDuringEn
Definition: StickyFaults.h:39