CTRE_Phoenix 5.20.2
CANdleFaults.h
1#pragma once
2
3#include <cstdint>
4
5namespace ctre {
6namespace phoenix {
7namespace led{
8
53
57 bool HasAnyFault() const {
58 return HardwareFault |
59 APIError |
63 V5TooLow |
64 V5TooHigh |
68 }
72 int ToBitfield() const {
73 uint64_t commonFaults = 0;
74 commonFaults |= ShortCircuit ? 1 : 0; commonFaults <<= 1;
75 commonFaults |= ThermalFault ? 1 : 0; commonFaults <<= 1;
76 commonFaults |= SoftwareFuse ? 1 : 0; commonFaults <<= 1;
77 commonFaults |= V5TooLow ? 1 : 0; commonFaults <<= 1;
78 commonFaults |= V5TooHigh ? 1 : 0; commonFaults <<= 1;
79 commonFaults |= VBatTooLow ? 1 : 0; commonFaults <<= 1;
80 commonFaults |= VBatTooHigh ? 1 : 0; commonFaults <<= 1;
81 commonFaults |= BootDuringEnable ? 1 : 0; commonFaults <<= 1;
82 commonFaults |= APIError ? 1 : 0; commonFaults <<= 1;
83 commonFaults |= HardwareFault ? 1 : 0;
84
85 return commonFaults;
86 }
87 void Update(uint64_t bits) {
88 uint64_t mask = 1;
89 HardwareFault = (bits & mask) ? true : false; mask <<= 1;
90 APIError = (bits & mask) ? true : false; mask <<= 1;
91 BootDuringEnable = (bits & mask) ? true : false; mask <<= 1;
92 VBatTooHigh = (bits & mask) ? true : false; mask <<= 1;
93 VBatTooLow = (bits & mask) ? true : false; mask <<= 1;
94 V5TooHigh = (bits & mask) ? true : false; mask <<= 1;
95 V5TooLow = (bits & mask) ? true : false; mask <<= 1;
96 SoftwareFuse = (bits & mask) ? true : false; mask <<= 1;
97 ThermalFault = (bits & mask) ? true : false; mask <<= 1;
98 ShortCircuit = (bits & mask) ? true : false; mask <<= 1;
99 }
105 CANdleFaults(int bits) {
106 Update(bits);
107 }
108 CANdleFaults() {
109 Update(0);
110 }
111};
156
160 bool HasAnyFault() const {
161 return HardwareFault |
162 APIError |
164 VBatTooLow |
166 V5TooLow |
167 V5TooHigh |
171 }
175 int ToBitfield() const {
176 uint64_t commonFaults = 0;
177 commonFaults |= ShortCircuit ? 1 : 0; commonFaults <<= 1;
178 commonFaults |= ThermalFault ? 1 : 0; commonFaults <<= 1;
179 commonFaults |= SoftwareFuse ? 1 : 0; commonFaults <<= 1;
180 commonFaults |= V5TooLow ? 1 : 0; commonFaults <<= 1;
181 commonFaults |= V5TooHigh ? 1 : 0; commonFaults <<= 1;
182 commonFaults |= VBatTooLow ? 1 : 0; commonFaults <<= 1;
183 commonFaults |= VBatTooHigh ? 1 : 0; commonFaults <<= 1;
184 commonFaults |= BootDuringEnable ? 1 : 0; commonFaults <<= 1;
185 commonFaults |= APIError ? 1 : 0; commonFaults <<= 1;
186 commonFaults |= HardwareFault ? 1 : 0;
187
188 return commonFaults;
189 }
190 void Update(uint64_t bits) {
191 uint64_t mask = 1;
192 HardwareFault = (bits & mask) ? true : false; mask <<= 1;
193 APIError = (bits & mask) ? true : false; mask <<= 1;
194 BootDuringEnable = (bits & mask) ? true : false; mask <<= 1;
195 VBatTooHigh = (bits & mask) ? true : false; mask <<= 1;
196 VBatTooLow = (bits & mask) ? true : false; mask <<= 1;
197 V5TooHigh = (bits & mask) ? true : false; mask <<= 1;
198 V5TooLow = (bits & mask) ? true : false; mask <<= 1;
199 SoftwareFuse = (bits & mask) ? true : false; mask <<= 1;
200 ThermalFault = (bits & mask) ? true : false; mask <<= 1;
201 ShortCircuit = (bits & mask) ? true : false; mask <<= 1;
202 }
209 Update(bits);
210 }
212 Update(0);
213 }
214};
215
216} // led
217} // phoenix
218} // ctre
219
Definition: ErrorCode.h:5
Definition: CANdleFaults.h:12
bool VBatTooLow
Definition: CANdleFaults.h:28
bool V5TooHigh
Definition: CANdleFaults.h:40
bool V5TooLow
Definition: CANdleFaults.h:36
bool VBatTooHigh
Definition: CANdleFaults.h:32
int ToBitfield() const
Definition: CANdleFaults.h:72
bool BootDuringEnable
Definition: CANdleFaults.h:24
bool ThermalFault
Definition: CANdleFaults.h:48
bool ShortCircuit
Definition: CANdleFaults.h:52
bool HasAnyFault() const
Definition: CANdleFaults.h:57
bool HardwareFault
Definition: CANdleFaults.h:16
bool SoftwareFuse
Definition: CANdleFaults.h:44
CANdleFaults(int bits)
Definition: CANdleFaults.h:105
bool APIError
Definition: CANdleFaults.h:20
Definition: CANdleFaults.h:115
CANdleStickyFaults(int bits)
Definition: CANdleFaults.h:208
bool HasAnyFault() const
Definition: CANdleFaults.h:160
int ToBitfield() const
Definition: CANdleFaults.h:175
bool HardwareFault
Definition: CANdleFaults.h:119
bool ThermalFault
Definition: CANdleFaults.h:151
bool ShortCircuit
Definition: CANdleFaults.h:155
bool VBatTooLow
Definition: CANdleFaults.h:131
bool APIError
Definition: CANdleFaults.h:123
bool SoftwareFuse
Definition: CANdleFaults.h:147
bool BootDuringEnable
Definition: CANdleFaults.h:127
bool V5TooLow
Definition: CANdleFaults.h:139
bool V5TooHigh
Definition: CANdleFaults.h:143
bool VBatTooHigh
Definition: CANdleFaults.h:135