Index: leahi_dialin/td/modules/alarms.py =================================================================== diff -u -r1f2bf6d939eb4033dbedb7d7005494cc12fccbc6 -rfa670938681e25a1314c56aafc630e9dc2f13a4a --- leahi_dialin/td/modules/alarms.py (.../alarms.py) (revision 1f2bf6d939eb4033dbedb7d7005494cc12fccbc6) +++ leahi_dialin/td/modules/alarms.py (.../alarms.py) (revision fa670938681e25a1314c56aafc630e9dc2f13a4a) @@ -633,3 +633,50 @@ override_text = f'{str(current)} mA', logger = self.logger, can_interface = self.can_interface) + + + def cmd_request_alarm_table(self) -> int: + """ + Constructs and sends the Alarm details request for selected alarm. + Constraints: + Must be logged into TD. + + @param alarm_id: (Integer) The Alarm's ID + @return: 1 if successful, zero otherwise + """ + response = 1 + for alarm_enum in AlarmList: + retry = 3 + attempt = 0 + while attempt < retry: + resp = self.cmd_request_alarm_details_for_id(alarm_enum.value) + if resp == 1: + attempt += retry + attempt += 1 + # If at least one request didn't go through, set sent response to 0 + if retry < attempt: + response = 0 + return response + + + + def cmd_request_alarm_details_for_id(self, alarm_id: int) -> int: + """ + Constructs and sends the Alarm details request for selected alarm. + Constraints: + Must be logged into TD. + + @param alarm_id: (Integer) The Alarm's ID + @return: 1 if successful, zero otherwise + """ + payload = integer_to_bytearray(alarm_id) + + return cmd_generic_override( + payload = payload, + reset = None, + channel_id = CanChannels.dialin_to_td_ch_id, + msg_id = MsgIds.MSG_ID_TD_GET_ALARM_PROPERTIES_REQUEST, + entity_name = f'TD Alarms Details for {AlarmList(alarm_id)} ({alarm_id})', + override_text = f'requested', + logger = self.logger, + can_interface = self.can_interface)