@@ -137,48 +137,48 @@ const char* sensorIDToString(SensorID id) {
137137const char * sensorIDToAbbreviation (SensorID id) {
138138 switch (id) {
139139 // ESC
140- case SensorID::ESC_MOS_Temp: return " ESC-M " ; // MOSFET temp
141- case SensorID::ESC_MCU_Temp: return " ESC -C" ; // Controller temp
142- case SensorID::ESC_CAP_Temp: return " ESC -P" ; // Capacitor temp
143- case SensorID::Motor_Temp: return " MTR-T " ; // Motor temp
140+ case SensorID::ESC_MOS_Temp: return " MC-F " ; // MOSFET temp
141+ case SensorID::ESC_MCU_Temp: return " MC -C" ; // Controller temp
142+ case SensorID::ESC_CAP_Temp: return " MC -P" ; // Capacitor temp
143+ case SensorID::Motor_Temp: return " MC-M " ; // Motor temp
144144 // ESC Running Errors (Critical) - with bit numbers
145- case SensorID::ESC_OverCurrent_Error: return " ESC -RE-0" ; // Bit 0
146- case SensorID::ESC_LockedRotor_Error: return " ESC -RE-1" ; // Bit 1
147- case SensorID::ESC_OverTemp_Error: return " ESC -RE-2" ; // Bit 2
148- case SensorID::ESC_OverVolt_Error: return " ESC -RE-6" ; // Bit 6
149- case SensorID::ESC_VoltageDrop_Error: return " ESC -RE-7" ; // Bit 7
145+ case SensorID::ESC_OverCurrent_Error: return " MC -RE-0" ; // Bit 0
146+ case SensorID::ESC_LockedRotor_Error: return " MC -RE-1" ; // Bit 1
147+ case SensorID::ESC_OverTemp_Error: return " MC -RE-2" ; // Bit 2
148+ case SensorID::ESC_OverVolt_Error: return " MC -RE-6" ; // Bit 6
149+ case SensorID::ESC_VoltageDrop_Error: return " MC -RE-7" ; // Bit 7
150150 // ESC Running Warnings - with bit numbers
151- case SensorID::ESC_ThrottleSat_Warning: return " ESC -RW-5" ; // Bit 5
151+ case SensorID::ESC_ThrottleSat_Warning: return " MC -RW-5" ; // Bit 5
152152 // ESC Self-Check Errors - with bit numbers
153- case SensorID::ESC_MotorCurrentOut_Error: return " ESC -SE-0" ; // Bit 0
154- case SensorID::ESC_TotalCurrentOut_Error: return " ESC -SE-1" ; // Bit 1
155- case SensorID::ESC_MotorVoltageOut_Error: return " ESC -SE-2" ; // Bit 2
156- case SensorID::ESC_CapNTC_Error: return " ESC -SE-3" ; // Bit 3
157- case SensorID::ESC_MosNTC_Error: return " ESC -SE-4" ; // Bit 4
158- case SensorID::ESC_BusVoltRange_Error: return " ESC -SE-5" ; // Bit 5
159- case SensorID::ESC_BusVoltSample_Error: return " ESC -SE-6" ; // Bit 6
160- case SensorID::ESC_MotorZLow_Error: return " ESC -SE-7" ; // Bit 7
161- case SensorID::ESC_MotorZHigh_Error: return " ESC -SE-8" ; // Bit 8
162- case SensorID::ESC_MotorVDet1_Error: return " ESC -SE-9" ; // Bit 9
163- case SensorID::ESC_MotorVDet2_Error: return " ESC -SE-10" ; // Bit 10
164- case SensorID::ESC_MotorIDet2_Error: return " ESC -SE-11" ; // Bit 11
165- case SensorID::ESC_SwHwIncompat_Error: return " ESC -SE-13" ; // Bit 13
166- case SensorID::ESC_BootloaderBad_Error: return " ESC -SE-14" ; // Bit 14
153+ case SensorID::ESC_MotorCurrentOut_Error: return " MC -SE-0" ; // Bit 0
154+ case SensorID::ESC_TotalCurrentOut_Error: return " MC -SE-1" ; // Bit 1
155+ case SensorID::ESC_MotorVoltageOut_Error: return " MC -SE-2" ; // Bit 2
156+ case SensorID::ESC_CapNTC_Error: return " MC -SE-3" ; // Bit 3
157+ case SensorID::ESC_MosNTC_Error: return " MC -SE-4" ; // Bit 4
158+ case SensorID::ESC_BusVoltRange_Error: return " MC -SE-5" ; // Bit 5
159+ case SensorID::ESC_BusVoltSample_Error: return " MC -SE-6" ; // Bit 6
160+ case SensorID::ESC_MotorZLow_Error: return " MC -SE-7" ; // Bit 7
161+ case SensorID::ESC_MotorZHigh_Error: return " MC -SE-8" ; // Bit 8
162+ case SensorID::ESC_MotorVDet1_Error: return " MC -SE-9" ; // Bit 9
163+ case SensorID::ESC_MotorVDet2_Error: return " MC -SE-10" ; // Bit 10
164+ case SensorID::ESC_MotorIDet2_Error: return " MC -SE-11" ; // Bit 11
165+ case SensorID::ESC_SwHwIncompat_Error: return " MC -SE-13" ; // Bit 13
166+ case SensorID::ESC_BootloaderBad_Error: return " MC -SE-14" ; // Bit 14
167167
168168 // BMS (Battery Management System)
169- case SensorID::BMS_MOS_Temp: return " BMS-M " ;
170- case SensorID::BMS_Balance_Temp: return " BMS -B" ;
171- case SensorID::BMS_T1_Temp: return " BMS -T1" ;
172- case SensorID::BMS_T2_Temp: return " BMS -T2" ;
173- case SensorID::BMS_T3_Temp: return " BMS -T3" ;
174- case SensorID::BMS_T4_Temp: return " BMS -T4" ;
175- case SensorID::BMS_High_Cell_Voltage: return " BMS -CV-H" ;
176- case SensorID::BMS_Low_Cell_Voltage: return " BMS -CV-L" ;
177- case SensorID::BMS_SOC: return " BMS -SOC" ;
178- case SensorID::BMS_Total_Voltage: return " BMS -Vtot" ;
179- case SensorID::BMS_Voltage_Differential:return " BMS -dV" ;
180- case SensorID::BMS_Charge_MOS: return " BMS -CHG" ;
181- case SensorID::BMS_Discharge_MOS: return " BMS -DSG" ;
169+ case SensorID::BMS_MOS_Temp: return " BC-F " ;
170+ case SensorID::BMS_Balance_Temp: return " BC -B" ;
171+ case SensorID::BMS_T1_Temp: return " BC -T1" ;
172+ case SensorID::BMS_T2_Temp: return " BC -T2" ;
173+ case SensorID::BMS_T3_Temp: return " BC -T3" ;
174+ case SensorID::BMS_T4_Temp: return " BC -T4" ;
175+ case SensorID::BMS_High_Cell_Voltage: return " BC -CV-H" ;
176+ case SensorID::BMS_Low_Cell_Voltage: return " BC -CV-L" ;
177+ case SensorID::BMS_SOC: return " BC -SOC" ;
178+ case SensorID::BMS_Total_Voltage: return " BC -Vtot" ;
179+ case SensorID::BMS_Voltage_Differential:return " BC -dV" ;
180+ case SensorID::BMS_Charge_MOS: return " BC -CHG" ;
181+ case SensorID::BMS_Discharge_MOS: return " BC -DSG" ;
182182
183183 // Altimeter
184184 case SensorID::Baro_Temp: return " BARO-T" ;
@@ -190,6 +190,97 @@ const char* sensorIDToAbbreviation(SensorID id) {
190190 }
191191}
192192
193+ // Dynamic abbreviations for temperature sensors based on alert level
194+ const char * sensorIDToAbbreviationWithLevel (SensorID id, AlertLevel level) {
195+ switch (id) {
196+ // ESC Temperature sensors with dynamic suffixes
197+ case SensorID::ESC_MOS_Temp:
198+ if (level == AlertLevel::WARN_HIGH || level == AlertLevel::CRIT_HIGH) {
199+ return " MC-FT-H" ; // MOSFET temp high
200+ } else if (level == AlertLevel::WARN_LOW || level == AlertLevel::CRIT_LOW) {
201+ return " MC-FT-L" ; // MOSFET temp low
202+ }
203+ return " MC-F" ; // Default
204+
205+ case SensorID::ESC_MCU_Temp:
206+ if (level == AlertLevel::WARN_HIGH || level == AlertLevel::CRIT_HIGH) {
207+ return " MC-CT-H" ; // Controller temp high
208+ } else if (level == AlertLevel::WARN_LOW || level == AlertLevel::CRIT_LOW) {
209+ return " MC-CT-L" ; // Controller temp low
210+ }
211+ return " MC-C" ; // Default
212+
213+ case SensorID::ESC_CAP_Temp:
214+ if (level == AlertLevel::WARN_HIGH || level == AlertLevel::CRIT_HIGH) {
215+ return " MC-PT-H" ; // Capacitor temp high
216+ } else if (level == AlertLevel::WARN_LOW || level == AlertLevel::CRIT_LOW) {
217+ return " MC-PT-L" ; // Capacitor temp low
218+ }
219+ return " MC-P" ; // Default
220+
221+ case SensorID::Motor_Temp:
222+ if (level == AlertLevel::WARN_HIGH || level == AlertLevel::CRIT_HIGH) {
223+ return " MC-MT-H" ; // Motor temp high
224+ } else if (level == AlertLevel::WARN_LOW || level == AlertLevel::CRIT_LOW) {
225+ return " MC-MT-L" ; // Motor temp low
226+ }
227+ return " MC-M" ; // Default
228+
229+ // BMS Temperature sensors with dynamic suffixes
230+ case SensorID::BMS_MOS_Temp:
231+ if (level == AlertLevel::WARN_HIGH || level == AlertLevel::CRIT_HIGH) {
232+ return " BC-F-H" ; // MOS temp high
233+ } else if (level == AlertLevel::WARN_LOW || level == AlertLevel::CRIT_LOW) {
234+ return " BC-F-L" ; // MOS temp low
235+ }
236+ return " BC-F" ; // Default
237+
238+ case SensorID::BMS_Balance_Temp:
239+ if (level == AlertLevel::WARN_HIGH || level == AlertLevel::CRIT_HIGH) {
240+ return " BC-B-H" ; // Balance temp high
241+ } else if (level == AlertLevel::WARN_LOW || level == AlertLevel::CRIT_LOW) {
242+ return " BC-B-L" ; // Balance temp low
243+ }
244+ return " BC-B" ; // Default
245+
246+ case SensorID::BMS_T1_Temp:
247+ if (level == AlertLevel::WARN_HIGH || level == AlertLevel::CRIT_HIGH) {
248+ return " BC-T1-H" ; // Cell 1 temp high
249+ } else if (level == AlertLevel::WARN_LOW || level == AlertLevel::CRIT_LOW) {
250+ return " BC-T1-L" ; // Cell 1 temp low
251+ }
252+ return " BC-T1" ; // Default
253+
254+ case SensorID::BMS_T2_Temp:
255+ if (level == AlertLevel::WARN_HIGH || level == AlertLevel::CRIT_HIGH) {
256+ return " BC-T2-H" ; // Cell 2 temp high
257+ } else if (level == AlertLevel::WARN_LOW || level == AlertLevel::CRIT_LOW) {
258+ return " BC-T2-L" ; // Cell 2 temp low
259+ }
260+ return " BC-T2" ; // Default
261+
262+ case SensorID::BMS_T3_Temp:
263+ if (level == AlertLevel::WARN_HIGH || level == AlertLevel::CRIT_HIGH) {
264+ return " BC-T3-H" ; // Cell 3 temp high
265+ } else if (level == AlertLevel::WARN_LOW || level == AlertLevel::CRIT_LOW) {
266+ return " BC-T3-L" ; // Cell 3 temp low
267+ }
268+ return " BC-T3" ; // Default
269+
270+ case SensorID::BMS_T4_Temp:
271+ if (level == AlertLevel::WARN_HIGH || level == AlertLevel::CRIT_HIGH) {
272+ return " BC-T4-H" ; // Cell 4 temp high
273+ } else if (level == AlertLevel::WARN_LOW || level == AlertLevel::CRIT_LOW) {
274+ return " BC-T4-L" ; // Cell 4 temp low
275+ }
276+ return " BC-T4" ; // Default
277+
278+ // For all other sensors, use the standard abbreviation
279+ default :
280+ return sensorIDToAbbreviation (id);
281+ }
282+ }
283+
193284void initSimpleMonitor () {
194285 USBSerial.println (" Initializing Simple Monitor System" );
195286 setupLoggerSinks ();
0 commit comments