Index: dialin/common/msg_ids.py =================================================================== diff -u -rbaf6c6eb48eeab63238a8b44c188d2c37f63ecc0 -ra0355d7ec27c00104dac97aadb2b76f69c89ce36 --- dialin/common/msg_ids.py (.../msg_ids.py) (revision baf6c6eb48eeab63238a8b44c188d2c37f63ecc0) +++ dialin/common/msg_ids.py (.../msg_ids.py) (revision a0355d7ec27c00104dac97aadb2b76f69c89ce36) @@ -290,7 +290,7 @@ MSG_ID_HD_BUBBLE_STATUS_OVERRIDE = 0X805E MSG_ID_HD_BLOOD_PRIME_VOLUME_OVERRIDE = 0X805F MSG_ID_HD_BUBBLE_SELF_TEST_REQUEST = 0X8060 - MSG_ID_HD___AVAILABLE_1 = 0X8061 + MSG_ID_HD_FAN_RPM_ALARM_START_TIME_OFFSET_OVERRIDE = 0x8061 MSG_ID_HD_SWITCHES_STATUS_OVERRIDE = 0x8062 MSG_ID_HD_SWITCHES_PUBLISH_INTERVAL_OVERRIDE = 0x8063 MSG_ID_HD_BATTERY_REMAINING_PERCENT_OVERRIDE = 0x8064 @@ -385,6 +385,7 @@ MSG_ID_DG_DRAIN_PUMP_MEASURED_RPM_OVERRIDE = 0XA046 MSG_ID_DG_SUPER_CLEAR_ALARMS_CMD = 0XA047 MSG_ID_DG_ALARM_INFO_SEND_INTERVAL_OVERRIDE = 0XA048 + MSG_ID_DG_FAN_RPM_ALARM_START_TIME_OFFSET_OVERRIDE = 0xA049, MSG_ID_HD_DEBUG_EVENT = 0XFFF1 MSG_ID_DG_DEBUG_EVENT = 0XFFF2 Index: dialin/dg/fans.py =================================================================== diff -u -r10fc464de499c61413fa6355fba95665a17accbb -ra0355d7ec27c00104dac97aadb2b76f69c89ce36 --- dialin/dg/fans.py (.../fans.py) (revision 10fc464de499c61413fa6355fba95665a17accbb) +++ dialin/dg/fans.py (.../fans.py) (revision a0355d7ec27c00104dac97aadb2b76f69c89ce36) @@ -234,3 +234,39 @@ else: self.logger.debug("Timeout!!!!") return False + + def cmd_fans_rpm_alarm_start_time_offset_override(self, hours: int, minutes: int, reset: int = NO_RESET) -> int: + """ + Constructs and sends the HD fan RPM alarm start time override command + Constraints: + Must be logged into HD. + + @param hours: (int) hours that the fan alarm start time must be overridden to + @param minutes: (int) minutes that the fan alarm start time must be overridden to + @param reset: (int) 1 to reset a previous override, 0 to override + @return: 1 if successful, zero otherwise + """ + reset_value = integer_to_bytearray(reset) + h = integer_to_bytearray(hours) + m = integer_to_bytearray(minutes) + payload = reset_value + h + m + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_hd_ch_id, + message_id=MsgIds.MSG_ID_DG_FAN_RPM_ALARM_START_TIME_OFFSET_OVERRIDE.value, + payload=payload) + + self.logger.debug("Override fan RPM alarm start time") + + # Send message + received_message = self.can_interface.send(message) + + # If there is no content... + if received_message is not None: + + self.logger.debug("Set RPM alarm start time to: " + + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) + # response payload is OK or not OK + return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] + else: + self.logger.debug("Timeout!!!!") + return False Index: dialin/hd/fans.py =================================================================== diff -u -r10fc464de499c61413fa6355fba95665a17accbb -ra0355d7ec27c00104dac97aadb2b76f69c89ce36 --- dialin/hd/fans.py (.../fans.py) (revision 10fc464de499c61413fa6355fba95665a17accbb) +++ dialin/hd/fans.py (.../fans.py) (revision a0355d7ec27c00104dac97aadb2b76f69c89ce36) @@ -178,4 +178,40 @@ return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: self.logger.debug("Timeout!!!!") - return False \ No newline at end of file + return False + + def cmd_fans_rpm_alarm_start_time_offset_override(self, hours: int, minutes: int, reset: int = NO_RESET) -> int: + """ + Constructs and sends the HD fan RPM alarm start time override command + Constraints: + Must be logged into HD. + + @param hours: (int) hours that the fan alarm start time must be overridden to + @param minutes: (int) minutes that the fan alarm start time must be overridden to + @param reset: (int) 1 to reset a previous override, 0 to override + @return: 1 if successful, zero otherwise + """ + reset_value = integer_to_bytearray(reset) + h = integer_to_bytearray(hours) + m = integer_to_bytearray(minutes) + payload = reset_value + h + m + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_hd_ch_id, + message_id=MsgIds.MSG_ID_HD_FAN_RPM_ALARM_START_TIME_OFFSET_OVERRIDE.value, + payload=payload) + + self.logger.debug("Override fan RPM alarm start time") + + # Send message + received_message = self.can_interface.send(message) + + # If there is no content... + if received_message is not None: + + self.logger.debug("Set RPM alarm start time to: " + + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) + # 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_heat_and_chemical_disinfect_test.py =================================================================== diff -u -r7cf2a8a92fdaaa457abf49e07a211ccf06131f12 -ra0355d7ec27c00104dac97aadb2b76f69c89ce36 --- tests/dg_heat_and_chemical_disinfect_test.py (.../dg_heat_and_chemical_disinfect_test.py) (revision 7cf2a8a92fdaaa457abf49e07a211ccf06131f12) +++ tests/dg_heat_and_chemical_disinfect_test.py (.../dg_heat_and_chemical_disinfect_test.py) (revision a0355d7ec27c00104dac97aadb2b76f69c89ce36) @@ -629,13 +629,17 @@ # cmd_test_heaters() - collect_treatment_data() + #collect_treatment_data() # collect_hd_treatment() + #hd.fans.cmd_fans_rpm_alarm_start_time_override(24, 59, reset=1) + #hd.fans.cmd_fans_rpm_override(0, 1382.80, reset=0) + #dg.fans.cmd_fans_rpm_override(2, 5000) +