Index: dialin/hd/alarms.py =================================================================== diff -u -rb2883ad890516361d0c22919811ff1d5752c0aaf -r4828fa8a43886d9dedc8f1f379a7052e423a0c90 --- dialin/hd/alarms.py (.../alarms.py) (revision b2883ad890516361d0c22919811ff1d5752c0aaf) +++ dialin/hd/alarms.py (.../alarms.py) (revision 4828fa8a43886d9dedc8f1f379a7052e423a0c90) @@ -121,15 +121,14 @@ # alarm debug data on alarm triggered message self.alarm_data = [0, 0] * 500 - - # alarm information self.alarm_data_type = dict() self.alarm_volume = 0 self.alarm_audio_curr_hg = 0.0 self.alarm_audio_curr_lg = 0.0 self.alarm_backup_audio_curr = 0.0 self.safety_shutdown_active = False + self.ac_power_lost = False self.alarm_table_button_blockers = [False] * self.AlarmResponseButtons.NUM_OF_HD_ALARM_RESPONSE_BUTTONS.value self.alarm_state_button_blockers = [False] * self.AlarmResponseButtons.NUM_OF_HD_ALARM_RESPONSE_BUTTONS.value @@ -316,6 +315,14 @@ """ return self.safety_shutdown_active + def get_ac_power_lost(self): + """ + Gets the state of the HD a/c power loss signal. + + @return: (bool) a/c power is lost (T/F) + """ + return self.ac_power_lost + def get_alarm_flag_system_fault(self) -> bool: """ Gets the alarm flag system fault. @@ -512,7 +519,7 @@ self.hd_alarm_clr_condition_timestamp = timestamp @publish(["hd_alarm_information_timestamp", "alarm_volume", "alarm_audio_curr_hg", "alarm_audio_curr_lg", "alarm_backup_audio_curr", - "safety_shutdown_active", "alarm_table_button_blockers", "alarm_state_button_blockers"]) + "safety_shutdown_active", "ac_power_lost", "alarm_table_button_blockers", "alarm_state_button_blockers"]) def _handler_alarm_information_sync(self, message, timestamp=0.0): """ Handles published HD alarm information broadcast messages. @@ -531,24 +538,27 @@ message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4])) saf = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5])) + acp = struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_6:MsgFieldPositions.END_POS_FIELD_6])) trs = struct.unpack('B', bytearray( - message['message'][MsgFieldPositions.END_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5+1])) + message['message'][MsgFieldPositions.END_POS_FIELD_7:MsgFieldPositions.END_POS_FIELD_7+1])) trb = struct.unpack('B', bytearray( - message['message'][MsgFieldPositions.END_POS_FIELD_5+1:MsgFieldPositions.END_POS_FIELD_5+2])) + message['message'][MsgFieldPositions.END_POS_FIELD_7+1:MsgFieldPositions.END_POS_FIELD_7+2])) tet = struct.unpack('B', bytearray( - message['message'][MsgFieldPositions.END_POS_FIELD_5+2:MsgFieldPositions.END_POS_FIELD_5+3])) + message['message'][MsgFieldPositions.END_POS_FIELD_7+2:MsgFieldPositions.END_POS_FIELD_7+3])) srs = struct.unpack('B', bytearray( - message['message'][MsgFieldPositions.END_POS_FIELD_5+3:MsgFieldPositions.END_POS_FIELD_5+4])) + message['message'][MsgFieldPositions.END_POS_FIELD_7+3:MsgFieldPositions.END_POS_FIELD_7+4])) srb = struct.unpack('B', bytearray( - message['message'][MsgFieldPositions.END_POS_FIELD_5+4:MsgFieldPositions.END_POS_FIELD_5+5])) + message['message'][MsgFieldPositions.END_POS_FIELD_7+4:MsgFieldPositions.END_POS_FIELD_7+5])) set = struct.unpack('B', bytearray( - message['message'][MsgFieldPositions.END_POS_FIELD_5+5:MsgFieldPositions.END_POS_FIELD_5+6])) + message['message'][MsgFieldPositions.END_POS_FIELD_7+5:MsgFieldPositions.END_POS_FIELD_7+6])) self.alarm_volume = vol[0] self.alarm_audio_curr_hg = ach[0] self.alarm_audio_curr_lg = acl[0] self.alarm_backup_audio_curr = bac[0] self.safety_shutdown_active = True if saf[0] == 1 else False + self.ac_power_lost = True if acp[0] == 1 else False self.alarm_table_button_blockers[self.AlarmResponseButtons.HD_ALARM_RESPONSE_BUTTON_RESUME.value] = True if trs[0] == 1 else False self.alarm_table_button_blockers[self.AlarmResponseButtons.HD_ALARM_RESPONSE_BUTTON_RINSEBACK.value] = True if trb[0] else False self.alarm_table_button_blockers[self.AlarmResponseButtons.HD_ALARM_RESPONSE_BUTTON_END_TREATMENT.value] = True if tet[0] else False