Index: dialin/common/msg_ids.py =================================================================== diff -u -r5fbe22677f97d8792b9a9b781134851cdda1572a -rfc301b720e14c38a55e8a86e04e5c63bddf12000 --- dialin/common/msg_ids.py (.../msg_ids.py) (revision 5fbe22677f97d8792b9a9b781134851cdda1572a) +++ dialin/common/msg_ids.py (.../msg_ids.py) (revision fc301b720e14c38a55e8a86e04e5c63bddf12000) @@ -395,6 +395,7 @@ MSG_ID_HD_PARTIAL_OCCLUSION_BLOOD_PUMP_OVERRIDE = 0x80A1 MSG_ID_HD_PARTIAL_OCCL_BLOOD_PUMP_BASELINE_OVERRIDE = 0x80A2 MSG_ID_HD_BLOOD_LEAK_EMB_MODE_INFO_VALUES_OVERRIDE = 0x80A3 + MSG_ID_HD_BLOOD_LEAK_INTENSITY_MVG_AVERAGE_OVERRIDE = 0x80A4 MSG_ID_DG_TESTER_LOGIN_REQUEST = 0xA000 MSG_ID_DG_ALARM_STATE_OVERRIDE = 0xA001 Index: dialin/hd/blood_leak.py =================================================================== diff -u -rc9f18b760becaf2f774b0edc15131c871538bd26 -rfc301b720e14c38a55e8a86e04e5c63bddf12000 --- dialin/hd/blood_leak.py (.../blood_leak.py) (revision c9f18b760becaf2f774b0edc15131c871538bd26) +++ dialin/hd/blood_leak.py (.../blood_leak.py) (revision fc301b720e14c38a55e8a86e04e5c63bddf12000) @@ -17,6 +17,7 @@ from logging import Logger from enum import unique +from build.lib.dialin import float_to_bytearray from .constants import RESET, NO_RESET from ..common.msg_defs import MsgIds, MsgFieldPositions from ..protocols.CAN import DenaliMessage, DenaliChannels @@ -374,3 +375,35 @@ else: self.logger.debug("Timeout!!!!") return False + + def cmd_blood_leak_intensity_moving_average_override(self, value: float, reset=NO_RESET): + """ + Constructs and sends the blood leak intensity moving average + Constraints: + Must be logged into HD. + + @param value: float - blood leak intensity moving average + @param reset: integer - 1 to reset a previous override, 0 to override + @return: 1 if successful, zero otherwise + """ + rst = integer_to_bytearray(reset) + avg = float_to_bytearray(value) + payload = rst + avg + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_hd_ch_id, + message_id=MsgIds.MSG_ID_HD_BLOOD_LEAK_INTENSITY_MVG_AVERAGE_OVERRIDE.value, + payload=payload) + + self.logger.debug("Override blood leak intensity moving average to {:5.3f}".format(value)) + + # Send 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 + Index: tests/dg_tests.py =================================================================== diff -u -r5fbe22677f97d8792b9a9b781134851cdda1572a -rfc301b720e14c38a55e8a86e04e5c63bddf12000 --- tests/dg_tests.py (.../dg_tests.py) (revision 5fbe22677f97d8792b9a9b781134851cdda1572a) +++ tests/dg_tests.py (.../dg_tests.py) (revision fc301b720e14c38a55e8a86e04e5c63bddf12000) @@ -779,7 +779,8 @@ #hd.ui.cmd_set_ro_only_mode_status(1) - hd.blood_leak.cmd_blood_leak_emb_mode_info_cmds_override(EmbModeCommands.I.value, 1000, reset=1) + #hd.blood_leak.cmd_blood_leak_emb_mode_info_cmds_override(EmbModeCommands.I.value, 1000, reset=1) + hd.blood_leak.cmd_blood_leak_intensity_moving_average_override(1100.3, reset=1) while True: # print(dg.switches.dg_switches_status)