From aaef2b7489b0854805be1b4249f597e241493f85 Mon Sep 17 00:00:00 2001 From: atef Date: Wed, 19 Mar 2025 11:35:08 +0100 Subject: [PATCH] Add alarm event 1 parsing on the Telecommand Frame parser --- .../TelecommandFrameParser.cs | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/csharp/Lib/Devices/BatteryDeligreen/TelecommandFrameParser.cs b/csharp/Lib/Devices/BatteryDeligreen/TelecommandFrameParser.cs index 214486f41..8a0fd5bba 100644 --- a/csharp/Lib/Devices/BatteryDeligreen/TelecommandFrameParser.cs +++ b/csharp/Lib/Devices/BatteryDeligreen/TelecommandFrameParser.cs @@ -80,8 +80,9 @@ public class TelecommandFrameParser var powerTempAlarm = ParseAndPrintField(response, "Power Temperature Alarm" ); var currentAlarm = ParseAndPrintField(response, "Charge/Discharge Current Alarm" ); var totalVoltageAlarm = ParseAndPrintField(response, "Total Battery Voltage Alarm" ); - - var batteryAlarmRecord = new BatteryDeligreenAlarmRecord(cellAlarmList, cellTemperatureAlarm, enviTempAlarm, powerTempAlarm,currentAlarm, totalVoltageAlarm); + var alarmEvent1 = ParseByteAlarm(response, "Alarm Event 1"); + + var batteryAlarmRecord = new BatteryDeligreenAlarmRecord(cellAlarmList, cellTemperatureAlarm, enviTempAlarm, powerTempAlarm,currentAlarm, totalVoltageAlarm, alarmEvent1); return batteryAlarmRecord; } @@ -151,6 +152,23 @@ public class TelecommandFrameParser _currentIndex += length; } + private static Byte ParseByteAlarm(String response, String fieldName) + { + var fieldBytes = response.Substring(_currentIndex, 4); + Byte byteValue = 0; + try + { + var tempAscii = HexToAscii(fieldBytes); + byteValue = byte.Parse(tempAscii, NumberStyles.HexNumber); + } + catch (Exception) + { + Console.WriteLine($"Failed to decode : {fieldName}" + " Alarm"); + } + _currentIndex += 4; + return byteValue; + } + private static String ParseAndPrintField(String response, String fieldName) { var fieldBytes = response.Substring(_currentIndex, 4);