Index: dialin/hd/blood_leak.py =================================================================== diff -u -r3f02ec4d8a155a1da7000cdc264d45f3f700492b -r4ba661babfe27c5396ffaf4342199faa8e10dd69 --- dialin/hd/blood_leak.py (.../blood_leak.py) (revision 3f02ec4d8a155a1da7000cdc264d45f3f700492b) +++ dialin/hd/blood_leak.py (.../blood_leak.py) (revision 4ba661babfe27c5396ffaf4342199faa8e10dd69) @@ -106,8 +106,9 @@ def get_blood_leak_state(self): """ Gets the current blood leak state + (0: wait for POST, 1: check set point, 2: init, 3: zero and self test, 4: normal ) - @return: integer - blood leak state (0: init, 1: zeroing, 2: self-test, 3: normal) + @return: integer - blood leak state """ return self.blood_leak_state Index: dialin/hd/ui_proxy.py =================================================================== diff -u -r881c190c1e90f09fa5584231a3e93a09bfb955c8 -r4ba661babfe27c5396ffaf4342199faa8e10dd69 --- dialin/hd/ui_proxy.py (.../ui_proxy.py) (revision 881c190c1e90f09fa5584231a3e93a09bfb955c8) +++ dialin/hd/ui_proxy.py (.../ui_proxy.py) (revision 4ba661babfe27c5396ffaf4342199faa8e10dd69) @@ -1890,4 +1890,40 @@ return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: self.logger.debug("Timeout!!!!") + return False + + def cmd_ui_send_alarm_triggered_message(self, alarm_id: int, data_field1: int = 0, data_field2: int = 0) -> int: + """ + Constructs and sends an alarm triggered message to the HD. Used for UI POST failures. + Data fields are restricted to unsigned integer type. Defaulted to 0. + + @param alarm_id: (int) the alarm id from the ui to trigger + @param data_field1: (int) data value for data field 1 + @param data_field2: (int) data value for data field 2 + @return: 1 if successful, zero otherwise + """ + + field_type_unit = 1 + + alarm = integer_to_bytearray(alarm_id) + data_type1 = integer_to_bytearray(field_type_unit) + dat1 = integer_to_bytearray(data_field1) + data_type2 = integer_to_bytearray(field_type_unit) + dat2 = integer_to_bytearray(data_field2) + + payload = alarm + data_type1 + dat1 + data_type2 + dat2 + message = DenaliMessage.build_message(channel_id=DenaliChannels.ui_to_hd_ch_id, + message_id=MsgIds.MSG_ID_ALARM_TRIGGERED.value, + payload=payload) + + self.logger.debug("Sending UI alarm triggered message") + + received_message = self.can_interface.send(message) + + # If there is content... + if received_message is not None: + # response payload is OK or not OK + return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] + else: + self.logger.debug("Timeout!!!!") return False \ No newline at end of file