udpate battery register to read alarm for Cerbo and Venus

This commit is contained in:
Yinyin Liu 2024-06-25 15:15:43 +02:00
parent c787c823bc
commit a5bec1bbaa
2 changed files with 109 additions and 109 deletions

View File

@ -481,33 +481,33 @@ def init_signals(hardware_version, firmware_version, n_batteries):
Signal('/WarningFlags/TOCW', c.return_in_list, c.read_bool(register=1005, bit=47)),
Signal('/WarningFlags/BUSL', c.return_in_list, c.read_bool(register=1005, bit=49)),
# Alarms
Signal('/AlarmFlags/Tam', c.return_in_list, c.read_bool(register=1005, bit=0)),
Signal('/AlarmFlags/TaM2', c.return_in_list, c.read_bool(register=1005, bit=2)),
Signal('/AlarmFlags/Tbm', c.return_in_list, c.read_bool(register=1005, bit=3)),
Signal('/AlarmFlags/TbM2', c.return_in_list, c.read_bool(register=1005, bit=5)),
Signal('/AlarmFlags/VBm2', c.return_in_list, c.read_bool(register=1005, bit=7)),
Signal('/AlarmFlags/VBM2', c.return_in_list, c.read_bool(register=1005, bit=9)),
Signal('/AlarmFlags/IDM2', c.return_in_list, c.read_bool(register=1005, bit=11)),
Signal('/AlarmFlags/ISOB', c.return_in_list, c.read_bool(register=1005, bit=12)),
Signal('/AlarmFlags/MSWE', c.return_in_list, c.read_bool(register=1005, bit=13)),
Signal('/AlarmFlags/FUSE', c.return_in_list, c.read_bool(register=1005, bit=14)),
Signal('/AlarmFlags/HTRE', c.return_in_list, c.read_bool(register=1005, bit=15)),
Signal('/AlarmFlags/TCPE', c.return_in_list, c.read_bool(register=1005, bit=16)),
Signal('/AlarmFlags/STRE', c.return_in_list, c.read_bool(register=1005, bit=17)),
Signal('/AlarmFlags/CME', c.return_in_list, c.read_bool(register=1005, bit=18)),
Signal('/AlarmFlags/HWFL', c.return_in_list, c.read_bool(register=1005, bit=19)),
Signal('/AlarmFlags/HWEM', c.return_in_list, c.read_bool(register=1005, bit=20)),
Signal('/AlarmFlags/ThM', c.return_in_list, c.read_bool(register=1005, bit=21)),
Signal('/AlarmFlags/vsm2', c.return_in_list, c.read_bool(register=1005, bit=23)),
Signal('/AlarmFlags/vsM2', c.return_in_list, c.read_bool(register=1005, bit=25)),
Signal('/AlarmFlags/iCM2', c.return_in_list, c.read_bool(register=1005, bit=27)),
Signal('/AlarmFlags/iDM2', c.return_in_list, c.read_bool(register=1005, bit=29)),
Signal('/AlarmFlags/MID2', c.return_in_list, c.read_bool(register=1005, bit=31)),
Signal('/AlarmFlags/HTFS', c.return_in_list, c.read_bool(register=1005, bit=42)),
Signal('/AlarmFlags/DATA', c.return_in_list, c.read_bool(register=1005, bit=43)),
Signal('/AlarmFlags/LMPA', c.return_in_list, c.read_bool(register=1005, bit=45)),
Signal('/AlarmFlags/HEBT', c.return_in_list, c.read_bool(register=1005, bit=46)),
Signal('/AlarmFlags/CURM', c.return_in_list, c.read_bool(register=1005, bit=48)),
Signal('/AlarmFlags/Tam', c.return_in_list, c.read_bool(register=1009, bit=0)),
Signal('/AlarmFlags/TaM2', c.return_in_list, c.read_bool(register=1009, bit=2)),
Signal('/AlarmFlags/Tbm', c.return_in_list, c.read_bool(register=1009, bit=3)),
Signal('/AlarmFlags/TbM2', c.return_in_list, c.read_bool(register=1009, bit=5)),
Signal('/AlarmFlags/VBm2', c.return_in_list, c.read_bool(register=1009, bit=7)),
Signal('/AlarmFlags/VBM2', c.return_in_list, c.read_bool(register=1009, bit=9)),
Signal('/AlarmFlags/IDM2', c.return_in_list, c.read_bool(register=1009, bit=11)),
Signal('/AlarmFlags/ISOB', c.return_in_list, c.read_bool(register=1009, bit=12)),
Signal('/AlarmFlags/MSWE', c.return_in_list, c.read_bool(register=1009, bit=13)),
Signal('/AlarmFlags/FUSE', c.return_in_list, c.read_bool(register=1009, bit=14)),
Signal('/AlarmFlags/HTRE', c.return_in_list, c.read_bool(register=1009, bit=15)),
Signal('/AlarmFlags/TCPE', c.return_in_list, c.read_bool(register=1009, bit=16)),
Signal('/AlarmFlags/STRE', c.return_in_list, c.read_bool(register=1009, bit=17)),
Signal('/AlarmFlags/CME', c.return_in_list, c.read_bool(register=1009, bit=18)),
Signal('/AlarmFlags/HWFL', c.return_in_list, c.read_bool(register=1009, bit=19)),
Signal('/AlarmFlags/HWEM', c.return_in_list, c.read_bool(register=1009, bit=20)),
Signal('/AlarmFlags/ThM', c.return_in_list, c.read_bool(register=1009, bit=21)),
Signal('/AlarmFlags/vsm2', c.return_in_list, c.read_bool(register=1009, bit=23)),
Signal('/AlarmFlags/vsM2', c.return_in_list, c.read_bool(register=1009, bit=25)),
Signal('/AlarmFlags/iCM2', c.return_in_list, c.read_bool(register=1009, bit=27)),
Signal('/AlarmFlags/iDM2', c.return_in_list, c.read_bool(register=1009, bit=29)),
Signal('/AlarmFlags/MID2', c.return_in_list, c.read_bool(register=1009, bit=31)),
Signal('/AlarmFlags/HTFS', c.return_in_list, c.read_bool(register=1009, bit=42)),
Signal('/AlarmFlags/DATA', c.return_in_list, c.read_bool(register=1009, bit=43)),
Signal('/AlarmFlags/LMPA', c.return_in_list, c.read_bool(register=1009, bit=45)),
Signal('/AlarmFlags/HEBT', c.return_in_list, c.read_bool(register=1009, bit=46)),
Signal('/AlarmFlags/CURM', c.return_in_list, c.read_bool(register=1009, bit=48)),
# LedStatus
Signal('/LedStatus/Red', c.first, c.read_led_state(register=1004, led=LedColor.red)),
Signal('/LedStatus/Blue', c.first, c.read_led_state(register=1004, led=LedColor.blue)),
@ -823,33 +823,33 @@ def read_warning_and_alarm_flags():
CsvSignal('/Battery/Devices/WarningFlags/BUSL', c.read_bool(register=1005, bit=49)),
], [
# Alarms
CsvSignal('/Battery/Devices/AlarmFlags/Tam', c.read_bool(register=1005, bit=0)),
CsvSignal('/Battery/Devices/AlarmFlags/TaM2', c.read_bool(register=1005, bit=2)),
CsvSignal('/Battery/Devices/AlarmFlags/Tbm', c.read_bool(register=1005, bit=3)),
CsvSignal('/Battery/Devices/AlarmFlags/TbM2', c.read_bool(register=1005, bit=5)),
CsvSignal('/Battery/Devices/AlarmFlags/VBm2', c.read_bool(register=1005, bit=7)),
CsvSignal('/Battery/Devices/AlarmFlags/VBM2', c.read_bool(register=1005, bit=9)),
CsvSignal('/Battery/Devices/AlarmFlags/IDM2', c.read_bool(register=1005, bit=11)),
CsvSignal('/Battery/Devices/AlarmFlags/ISOB', c.read_bool(register=1005, bit=12)),
CsvSignal('/Battery/Devices/AlarmFlags/MSWE', c.read_bool(register=1005, bit=13)),
CsvSignal('/Battery/Devices/AlarmFlags/FUSE', c.read_bool(register=1005, bit=14)),
CsvSignal('/Battery/Devices/AlarmFlags/HTRE', c.read_bool(register=1005, bit=15)),
CsvSignal('/Battery/Devices/AlarmFlags/TCPE', c.read_bool(register=1005, bit=16)),
CsvSignal('/Battery/Devices/AlarmFlags/STRE', c.read_bool(register=1005, bit=17)),
CsvSignal('/Battery/Devices/AlarmFlags/CME', c.read_bool(register=1005, bit=18)),
CsvSignal('/Battery/Devices/AlarmFlags/HWFL', c.read_bool(register=1005, bit=19)),
CsvSignal('/Battery/Devices/AlarmFlags/HWEM', c.read_bool(register=1005, bit=20)),
CsvSignal('/Battery/Devices/AlarmFlags/ThM', c.read_bool(register=1005, bit=21)),
CsvSignal('/Battery/Devices/AlarmFlags/vsm2', c.read_bool(register=1005, bit=23)),
CsvSignal('/Battery/Devices/AlarmFlags/vsM2', c.read_bool(register=1005, bit=25)),
CsvSignal('/Battery/Devices/AlarmFlags/iCM2', c.read_bool(register=1005, bit=27)),
CsvSignal('/Battery/Devices/AlarmFlags/iDM2', c.read_bool(register=1005, bit=29)),
CsvSignal('/Battery/Devices/AlarmFlags/MID2', c.read_bool(register=1005, bit=31)),
CsvSignal('/Battery/Devices/AlarmFlags/HTFS', c.read_bool(register=1005, bit=42)),
CsvSignal('/Battery/Devices/AlarmFlags/DATA', c.read_bool(register=1005, bit=43)),
CsvSignal('/Battery/Devices/AlarmFlags/LMPA', c.read_bool(register=1005, bit=45)),
CsvSignal('/Battery/Devices/AlarmFlags/HEBT', c.read_bool(register=1005, bit=46)),
CsvSignal('/Battery/Devices/AlarmFlags/CURM', c.read_bool(register=1005, bit=48)),
CsvSignal('/Battery/Devices/AlarmFlags/Tam', c.read_bool(register=1009, bit=0)),
CsvSignal('/Battery/Devices/AlarmFlags/TaM2', c.read_bool(register=1009, bit=2)),
CsvSignal('/Battery/Devices/AlarmFlags/Tbm', c.read_bool(register=1009, bit=3)),
CsvSignal('/Battery/Devices/AlarmFlags/TbM2', c.read_bool(register=1009, bit=5)),
CsvSignal('/Battery/Devices/AlarmFlags/VBm2', c.read_bool(register=1009, bit=7)),
CsvSignal('/Battery/Devices/AlarmFlags/VBM2', c.read_bool(register=1009, bit=9)),
CsvSignal('/Battery/Devices/AlarmFlags/IDM2', c.read_bool(register=1009, bit=11)),
CsvSignal('/Battery/Devices/AlarmFlags/ISOB', c.read_bool(register=1009, bit=12)),
CsvSignal('/Battery/Devices/AlarmFlags/MSWE', c.read_bool(register=1009, bit=13)),
CsvSignal('/Battery/Devices/AlarmFlags/FUSE', c.read_bool(register=1009, bit=14)),
CsvSignal('/Battery/Devices/AlarmFlags/HTRE', c.read_bool(register=1009, bit=15)),
CsvSignal('/Battery/Devices/AlarmFlags/TCPE', c.read_bool(register=1009, bit=16)),
CsvSignal('/Battery/Devices/AlarmFlags/STRE', c.read_bool(register=1009, bit=17)),
CsvSignal('/Battery/Devices/AlarmFlags/CME', c.read_bool(register=1009, bit=18)),
CsvSignal('/Battery/Devices/AlarmFlags/HWFL', c.read_bool(register=1009, bit=19)),
CsvSignal('/Battery/Devices/AlarmFlags/HWEM', c.read_bool(register=1009, bit=20)),
CsvSignal('/Battery/Devices/AlarmFlags/ThM', c.read_bool(register=1009, bit=21)),
CsvSignal('/Battery/Devices/AlarmFlags/vsm2', c.read_bool(register=1009, bit=23)),
CsvSignal('/Battery/Devices/AlarmFlags/vsM2', c.read_bool(register=1009, bit=25)),
CsvSignal('/Battery/Devices/AlarmFlags/iCM2', c.read_bool(register=1009, bit=27)),
CsvSignal('/Battery/Devices/AlarmFlags/iDM2', c.read_bool(register=1009, bit=29)),
CsvSignal('/Battery/Devices/AlarmFlags/MID2', c.read_bool(register=1009, bit=31)),
CsvSignal('/Battery/Devices/AlarmFlags/HTFS', c.read_bool(register=1009, bit=42)),
CsvSignal('/Battery/Devices/AlarmFlags/DATA', c.read_bool(register=1009, bit=43)),
CsvSignal('/Battery/Devices/AlarmFlags/LMPA', c.read_bool(register=1009, bit=45)),
CsvSignal('/Battery/Devices/AlarmFlags/HEBT', c.read_bool(register=1009, bit=46)),
CsvSignal('/Battery/Devices/AlarmFlags/CURM', c.read_bool(register=1009, bit=48)),
CsvSignal('/Battery/Devices/AlarmFlags/2 or more string are disabled',c.read_limb_string(1059)),
]

View File

@ -167,34 +167,34 @@ def init_battery_signals():
BatterySignal('/WarningFlags/TOCW', any, read_bool(base_register=1005, bit=47)),
BatterySignal('/WarningFlags/BUSL', any, read_bool(base_register=1005, bit=49)),
BatterySignal('/NumberOfAlarmFlags', sum, count_bits(base_register=1005, nb_of_registers=4, nb_of_bits=50)),
BatterySignal('/AlarmFlags/Tam', any, read_bool(base_register=1005, bit=0)),
BatterySignal('/AlarmFlags/TaM2', any, read_bool(base_register=1005, bit=2)),
BatterySignal('/AlarmFlags/Tbm', any, read_bool(base_register=1005, bit=3)),
BatterySignal('/AlarmFlags/TbM2', any, read_bool(base_register=1005, bit=5)),
BatterySignal('/AlarmFlags/VBm2', any, read_bool(base_register=1005, bit=7)),
BatterySignal('/AlarmFlags/VBM2', any, read_bool(base_register=1005, bit=9)),
BatterySignal('/AlarmFlags/IDM2', any, read_bool(base_register=1005, bit=11)),
BatterySignal('/AlarmFlags/ISOB', any, read_bool(base_register=1005, bit=12)),
BatterySignal('/AlarmFlags/MSWE', any, read_bool(base_register=1005, bit=13)),
BatterySignal('/AlarmFlags/FUSE', any, read_bool(base_register=1005, bit=14)),
BatterySignal('/AlarmFlags/HTRE', any, read_bool(base_register=1005, bit=15)),
BatterySignal('/AlarmFlags/TCPE', any, read_bool(base_register=1005, bit=16)),
BatterySignal('/AlarmFlags/STRE', any, read_bool(base_register=1005, bit=17)),
BatterySignal('/AlarmFlags/CME', any, read_bool(base_register=1005, bit=18)),
BatterySignal('/AlarmFlags/HWFL', any, read_bool(base_register=1005, bit=19)),
BatterySignal('/AlarmFlags/HWEM', any, read_bool(base_register=1005, bit=20)),
BatterySignal('/AlarmFlags/ThM', any, read_bool(base_register=1005, bit=21)),
BatterySignal('/AlarmFlags/vsm2', any, read_bool(base_register=1005, bit=23)),
BatterySignal('/AlarmFlags/vsM2', any, read_bool(base_register=1005, bit=25)),
BatterySignal('/AlarmFlags/iCM2', any, read_bool(base_register=1005, bit=27)),
BatterySignal('/AlarmFlags/iDM2', any, read_bool(base_register=1005, bit=29)),
BatterySignal('/AlarmFlags/MID2', any, read_bool(base_register=1005, bit=31)),
BatterySignal('/AlarmFlags/HTFS', any, read_bool(base_register=1005, bit=42)),
BatterySignal('/AlarmFlags/DATA', any, read_bool(base_register=1005, bit=43)),
BatterySignal('/AlarmFlags/LMPA', any, read_bool(base_register=1005, bit=45)),
BatterySignal('/AlarmFlags/HEBT', any, read_bool(base_register=1005, bit=46)),
BatterySignal('/AlarmFlags/CURM', any, read_bool(base_register=1005, bit=48)),
BatterySignal('/NumberOfAlarmFlags', sum, count_bits(base_register=1009, nb_of_registers=4, nb_of_bits=50)),
BatterySignal('/AlarmFlags/Tam', any, read_bool(base_register=1009, bit=0)),
BatterySignal('/AlarmFlags/TaM2', any, read_bool(base_register=1009, bit=2)),
BatterySignal('/AlarmFlags/Tbm', any, read_bool(base_register=1009, bit=3)),
BatterySignal('/AlarmFlags/TbM2', any, read_bool(base_register=1009, bit=5)),
BatterySignal('/AlarmFlags/VBm2', any, read_bool(base_register=1009, bit=7)),
BatterySignal('/AlarmFlags/VBM2', any, read_bool(base_register=1009, bit=9)),
BatterySignal('/AlarmFlags/IDM2', any, read_bool(base_register=1009, bit=11)),
BatterySignal('/AlarmFlags/ISOB', any, read_bool(base_register=1009, bit=12)),
BatterySignal('/AlarmFlags/MSWE', any, read_bool(base_register=1009, bit=13)),
BatterySignal('/AlarmFlags/FUSE', any, read_bool(base_register=1009, bit=14)),
BatterySignal('/AlarmFlags/HTRE', any, read_bool(base_register=1009, bit=15)),
BatterySignal('/AlarmFlags/TCPE', any, read_bool(base_register=1009, bit=16)),
BatterySignal('/AlarmFlags/STRE', any, read_bool(base_register=1009, bit=17)),
BatterySignal('/AlarmFlags/CME', any, read_bool(base_register=1009, bit=18)),
BatterySignal('/AlarmFlags/HWFL', any, read_bool(base_register=1009, bit=19)),
BatterySignal('/AlarmFlags/HWEM', any, read_bool(base_register=1009, bit=20)),
BatterySignal('/AlarmFlags/ThM', any, read_bool(base_register=1009, bit=21)),
BatterySignal('/AlarmFlags/vsm2', any, read_bool(base_register=1009, bit=23)),
BatterySignal('/AlarmFlags/vsM2', any, read_bool(base_register=1009, bit=25)),
BatterySignal('/AlarmFlags/iCM2', any, read_bool(base_register=1009, bit=27)),
BatterySignal('/AlarmFlags/iDM2', any, read_bool(base_register=1009, bit=29)),
BatterySignal('/AlarmFlags/MID2', any, read_bool(base_register=1009, bit=31)),
BatterySignal('/AlarmFlags/HTFS', any, read_bool(base_register=1009, bit=42)),
BatterySignal('/AlarmFlags/DATA', any, read_bool(base_register=1009, bit=43)),
BatterySignal('/AlarmFlags/LMPA', any, read_bool(base_register=1009, bit=45)),
BatterySignal('/AlarmFlags/HEBT', any, read_bool(base_register=1009, bit=46)),
BatterySignal('/AlarmFlags/CURM', any, read_bool(base_register=1009, bit=48)),
BatterySignal('/LedStatus/Red', max, read_led_state(register=1004, led=LedColor.red)),
BatterySignal('/LedStatus/Blue', max, read_led_state(register=1004, led=LedColor.blue)),
@ -351,32 +351,32 @@ def read_warning_and_alarm_flags():
CsvSignal('/Battery/Devices/WarningFlags/BUSL', read_bool(base_register=1005, bit=49)),
], [
# Alarms
CsvSignal('/Battery/Devices/AlarmFlags/Tam', read_bool(base_register=1005, bit=0)),
CsvSignal('/Battery/Devices/AlarmFlags/TaM2', read_bool(base_register=1005, bit=2)),
CsvSignal('/Battery/Devices/AlarmFlags/Tbm', read_bool(base_register=1005, bit=3)),
CsvSignal('/Battery/Devices/AlarmFlags/TbM2', read_bool(base_register=1005, bit=5)),
CsvSignal('/Battery/Devices/AlarmFlags/VBm2', read_bool(base_register=1005, bit=7)),
CsvSignal('/Battery/Devices/AlarmFlags/VBM2', read_bool(base_register=1005, bit=9)),
CsvSignal('/Battery/Devices/AlarmFlags/IDM2', read_bool(base_register=1005, bit=11)),
CsvSignal('/Battery/Devices/AlarmFlags/ISOB', read_bool(base_register=1005, bit=12)),
CsvSignal('/Battery/Devices/AlarmFlags/MSWE', read_bool(base_register=1005, bit=13)),
CsvSignal('/Battery/Devices/AlarmFlags/FUSE', read_bool(base_register=1005, bit=14)),
CsvSignal('/Battery/Devices/AlarmFlags/HTRE', read_bool(base_register=1005, bit=15)),
CsvSignal('/Battery/Devices/AlarmFlags/TCPE', read_bool(base_register=1005, bit=16)),
CsvSignal('/Battery/Devices/AlarmFlags/STRE', read_bool(base_register=1005, bit=17)),
CsvSignal('/Battery/Devices/AlarmFlags/CME', read_bool(base_register=1005, bit=18)),
CsvSignal('/Battery/Devices/AlarmFlags/HWFL', read_bool(base_register=1005, bit=19)),
CsvSignal('/Battery/Devices/AlarmFlags/HWEM', read_bool(base_register=1005, bit=20)),
CsvSignal('/Battery/Devices/AlarmFlags/ThM', read_bool(base_register=1005, bit=21)),
CsvSignal('/Battery/Devices/AlarmFlags/vsm2', read_bool(base_register=1005, bit=23)),
CsvSignal('/Battery/Devices/AlarmFlags/vsM2', read_bool(base_register=1005, bit=25)),
CsvSignal('/Battery/Devices/AlarmFlags/iCM2', read_bool(base_register=1005, bit=27)),
CsvSignal('/Battery/Devices/AlarmFlags/iDM2', read_bool(base_register=1005, bit=29)),
CsvSignal('/Battery/Devices/AlarmFlags/MID2', read_bool(base_register=1005, bit=31)),
CsvSignal('/Battery/Devices/AlarmFlags/HTFS', read_bool(base_register=1005, bit=42)),
CsvSignal('/Battery/Devices/AlarmFlags/DATA', read_bool(base_register=1005, bit=43)),
CsvSignal('/Battery/Devices/AlarmFlags/LMPA', read_bool(base_register=1005, bit=45)),
CsvSignal('/Battery/Devices/AlarmFlags/HEBT', read_bool(base_register=1005, bit=46)),
CsvSignal('/Battery/Devices/AlarmFlags/CURM', read_bool(base_register=1005, bit=48)),
CsvSignal('/Battery/Devices/AlarmFlags/Tam', read_bool(base_register=1009, bit=0)),
CsvSignal('/Battery/Devices/AlarmFlags/TaM2', read_bool(base_register=1009, bit=2)),
CsvSignal('/Battery/Devices/AlarmFlags/Tbm', read_bool(base_register=1009, bit=3)),
CsvSignal('/Battery/Devices/AlarmFlags/TbM2', read_bool(base_register=1009, bit=5)),
CsvSignal('/Battery/Devices/AlarmFlags/VBm2', read_bool(base_register=1009, bit=7)),
CsvSignal('/Battery/Devices/AlarmFlags/VBM2', read_bool(base_register=1009, bit=9)),
CsvSignal('/Battery/Devices/AlarmFlags/IDM2', read_bool(base_register=1009, bit=11)),
CsvSignal('/Battery/Devices/AlarmFlags/ISOB', read_bool(base_register=1009, bit=12)),
CsvSignal('/Battery/Devices/AlarmFlags/MSWE', read_bool(base_register=1009, bit=13)),
CsvSignal('/Battery/Devices/AlarmFlags/FUSE', read_bool(base_register=1009, bit=14)),
CsvSignal('/Battery/Devices/AlarmFlags/HTRE', read_bool(base_register=1009, bit=15)),
CsvSignal('/Battery/Devices/AlarmFlags/TCPE', read_bool(base_register=1009, bit=16)),
CsvSignal('/Battery/Devices/AlarmFlags/STRE', read_bool(base_register=1009, bit=17)),
CsvSignal('/Battery/Devices/AlarmFlags/CME', read_bool(base_register=1009, bit=18)),
CsvSignal('/Battery/Devices/AlarmFlags/HWFL', read_bool(base_register=1009, bit=19)),
CsvSignal('/Battery/Devices/AlarmFlags/HWEM', read_bool(base_register=1009, bit=20)),
CsvSignal('/Battery/Devices/AlarmFlags/ThM', read_bool(base_register=1009, bit=21)),
CsvSignal('/Battery/Devices/AlarmFlags/vsm2', read_bool(base_register=1009, bit=23)),
CsvSignal('/Battery/Devices/AlarmFlags/vsM2', read_bool(base_register=1009, bit=25)),
CsvSignal('/Battery/Devices/AlarmFlags/iCM2', read_bool(base_register=1009, bit=27)),
CsvSignal('/Battery/Devices/AlarmFlags/iDM2', read_bool(base_register=1009, bit=29)),
CsvSignal('/Battery/Devices/AlarmFlags/MID2', read_bool(base_register=1009, bit=31)),
CsvSignal('/Battery/Devices/AlarmFlags/HTFS', read_bool(base_register=1009, bit=42)),
CsvSignal('/Battery/Devices/AlarmFlags/DATA', read_bool(base_register=1009, bit=43)),
CsvSignal('/Battery/Devices/AlarmFlags/LMPA', read_bool(base_register=1009, bit=45)),
CsvSignal('/Battery/Devices/AlarmFlags/HEBT', read_bool(base_register=1009, bit=46)),
CsvSignal('/Battery/Devices/AlarmFlags/CURM', read_bool(base_register=1009, bit=48)),
CsvSignal('/Battery/Devices/AlarmFlags/2 or more string are disabled',read_limb_string(1059)),
]