CTRE_Phoenix 5.20.2
Faults.h
1#pragma once
2#include <sstream>
3namespace ctre {
4namespace phoenix {
5namespace motorcontrol {
6
10struct Faults {
72
76 bool HasAnyFault() const {
77 return UnderVoltage |
88 APIError |
91 }
95 int ToBitfield() const {
96 int retval = 0;
97 int mask = 1;
98 retval |= UnderVoltage ? mask : 0; mask <<= 1;
99 retval |= ForwardLimitSwitch ? mask : 0; mask <<= 1;
100 retval |= ReverseLimitSwitch ? mask : 0; mask <<= 1;
101 retval |= ForwardSoftLimit ? mask : 0; mask <<= 1;
102 retval |= ReverseSoftLimit ? mask : 0; mask <<= 1;
103 retval |= HardwareFailure ? mask : 0; mask <<= 1;
104 retval |= ResetDuringEn ? mask : 0; mask <<= 1;
105 retval |= SensorOverflow ? mask : 0; mask <<= 1;
106 retval |= SensorOutOfPhase ? mask : 0; mask <<= 1;
107 retval |= HardwareESDReset ? mask : 0; mask <<= 1;
108 retval |= RemoteLossOfSignal ? mask : 0; mask <<= 1;
109 retval |= APIError ? mask : 0; mask <<= 1;
110 retval |= SupplyOverV ? mask : 0; mask <<= 1;
111 retval |= SupplyUnstable ? mask : 0; mask <<= 1;
112 return retval;
113 }
119 Faults(int bits) {
120 int mask = 1;
121 UnderVoltage = (bits & mask) ? true : false; mask <<= 1;
122 ForwardLimitSwitch = (bits & mask) ? true : false; mask <<= 1;
123 ReverseLimitSwitch = (bits & mask) ? true : false; mask <<= 1;
124 ForwardSoftLimit = (bits & mask) ? true : false; mask <<= 1;
125 ReverseSoftLimit = (bits & mask) ? true : false; mask <<= 1;
126 HardwareFailure = (bits & mask) ? true : false; mask <<= 1;
127 ResetDuringEn = (bits & mask) ? true : false; mask <<= 1;
128 SensorOverflow = (bits & mask) ? true : false; mask <<= 1;
129 SensorOutOfPhase = (bits & mask) ? true : false; mask <<= 1;
130 HardwareESDReset = (bits & mask) ? true : false; mask <<= 1;
131 RemoteLossOfSignal = (bits & mask) ? true : false; mask <<= 1;
132 APIError = (bits & mask) ? true : false; mask <<= 1;
133 SupplyOverV = (bits & mask) ? true : false; mask <<= 1;
134 SupplyUnstable = (bits & mask) ? true : false; mask <<= 1;
135 }
136 Faults() {
137 UnderVoltage = false;
138 ForwardLimitSwitch = false;
139 ReverseLimitSwitch = false;
140 ForwardSoftLimit = false;
141 ReverseSoftLimit = false;
142 HardwareFailure =false;
143 ResetDuringEn = false;
144 SensorOverflow = false;
145 SensorOutOfPhase = false;
146 HardwareESDReset = false;
147 RemoteLossOfSignal = false;
148 APIError = false;
149 SupplyOverV = false;
150 SupplyUnstable = false;
151 }
155 std::string ToString() {
156 std::stringstream work;
157 work << " UnderVoltage:" << (UnderVoltage ? "1" : "0");
158 work << " ForwardLimitSwitch:" << (ForwardLimitSwitch ? "1" : "0");
159 work << " ReverseLimitSwitch:" << (ReverseLimitSwitch ? "1" : "0");
160 work << " ForwardSoftLimit:" << (ForwardSoftLimit ? "1" : "0");
161 work << " ReverseSoftLimit:" << (ReverseSoftLimit ? "1" : "0");
162 work << " HardwareFailure:" << (HardwareFailure ? "1" : "0");
163 work << " ResetDuringEn:" << (ResetDuringEn ? "1" : "0");
164 work << " SensorOverflow:" << (SensorOverflow ? "1" : "0");
165 work << " SensorOutOfPhase:" << (SensorOutOfPhase ? "1" : "0");
166 work << " HardwareESDReset:" << (HardwareESDReset ? "1" : "0");
167 work << " RemoteLossOfSignal:" << (RemoteLossOfSignal ? "1" : "0");
168 work << " APIError:" << (APIError ? "1" : "0");
169 work << " SupplyOverV:" << (SupplyOverV ? "1" : "0");
170 work << " SupplyUnstable:" << (SupplyUnstable ? "1" : "0");
171 return work.str();
172 }
173};
174
175} // namespace motorcontrol
176} // namespace phoenix
177} // namespace ctre
Definition: ErrorCode.h:5
int ToBitfield() const
Definition: Faults.h:95
bool ForwardLimitSwitch
Definition: Faults.h:19
bool HardwareESDReset
Definition: Faults.h:55
bool ForwardSoftLimit
Definition: Faults.h:29
std::string ToString()
Definition: Faults.h:155
bool ReverseSoftLimit
Definition: Faults.h:34
bool SensorOverflow
Definition: Faults.h:47
bool SensorOutOfPhase
Definition: Faults.h:51
Faults(int bits)
Definition: Faults.h:119
bool HasAnyFault() const
Definition: Faults.h:76
bool ResetDuringEn
Definition: Faults.h:43
bool RemoteLossOfSignal
Definition: Faults.h:59
bool HardwareFailure
Definition: Faults.h:38
bool SupplyOverV
Definition: Faults.h:67
bool UnderVoltage
Definition: Faults.h:14
bool ReverseLimitSwitch
Definition: Faults.h:24
bool SupplyUnstable
Definition: Faults.h:71
bool APIError
Definition: Faults.h:63