Index: dialin/common/msg_ids.py =================================================================== diff -u -r8ff49bb248b9b98b18dde057d836b5c2d308922c -rd69bbb975b2a422eafc323038b48d2febbb72a66 --- dialin/common/msg_ids.py (.../msg_ids.py) (revision 8ff49bb248b9b98b18dde057d836b5c2d308922c) +++ dialin/common/msg_ids.py (.../msg_ids.py) (revision d69bbb975b2a422eafc323038b48d2febbb72a66) @@ -320,6 +320,7 @@ MSG_ID_HD_HEPRIN_BOLUS_TARGET_RATE_OVERRIDE = 0x807A MSG_ID_HD_REQ_CURRENT_TREATMENT_PARAMETERS = 0x807B MSG_ID_HD_RES_CURRENT_TREATMENT_PARAMETERS = 0x807C + MSG_ID_HD_SET_FANS_RPM_ALARM_START_TIME_OFFSET = 0x807D MSG_ID_DG_TESTER_LOGIN_REQUEST = 0xA000 MSG_ID_DG_ALARM_STATE_OVERRIDE = 0xA001 @@ -396,6 +397,7 @@ MSG_ID_DG_SET_SW_CONFIG_RECORD = 0xA04B MSG_ID_DG_SEND_SW_CONFIG_RECORD = 0xA04C MSG_ID_DG_FANS_DUTY_CYCLE_OVERRIDE = 0xA04D + MSG_ID_DG_SET_FANS_RPM_ALARM_START_TIME_OFFSET = 0xA04E MSG_ID_HD_DEBUG_EVENT = 0xFFF1 MSG_ID_DG_DEBUG_EVENT = 0xFFF2 Index: dialin/dg/fans.py =================================================================== diff -u -r88b4967ce6b9ac816ac21b26326450de4b540887 -rd69bbb975b2a422eafc323038b48d2febbb72a66 --- dialin/dg/fans.py (.../fans.py) (revision 88b4967ce6b9ac816ac21b26326450de4b540887) +++ dialin/dg/fans.py (.../fans.py) (revision d69bbb975b2a422eafc323038b48d2febbb72a66) @@ -194,6 +194,37 @@ self.logger.debug("Timeout!!!!") return False + def cmd_fans_rpm_alarm_start_time_offset(self, time: int) -> int: + """ + Constructs and sends the DG fan RPM alarm start time offset command + Constraints: + Must be logged into DG. + + @param time: (int) time offset in seconds + @return: 1 if successful, zero otherwise + """ + payload = integer_to_bytearray(time) + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dg_ch_id, + message_id=MsgIds.MSG_ID_DG_SET_FANS_RPM_ALARM_START_TIME_OFFSET.value, + payload=payload) + + self.logger.debug("Override fan RPM alarm start time offset") + + # Send message + received_message = self.can_interface.send(message) + + # If there is no content... + if received_message is not None: + + self.logger.debug("RPM alarm start time offset set 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 + def cmd_fans_data_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: """ Constructs and sends the fans data publish interval. @@ -238,40 +269,6 @@ self.logger.debug("Timeout!!!!") return False - def cmd_fans_rpm_alarm_start_time_offset_override(self, seconds: int, reset: int = NO_RESET) -> int: - """ - Constructs and sends the HD fan RPM alarm start time override command - Constraints: - Must be logged into DG. - - @param seconds: (int) seconds 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) - s = integer_to_bytearray(seconds) - payload = reset_value + s - - message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dg_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 - def cmd_fans_duty_cycle_override(self, duty_cycle: float, reset: int = NO_RESET) -> int: """ Constructs and sends the DG fans duty cycle override command Index: dialin/hd/fans.py =================================================================== diff -u -r88b4967ce6b9ac816ac21b26326450de4b540887 -rd69bbb975b2a422eafc323038b48d2febbb72a66 --- dialin/hd/fans.py (.../fans.py) (revision 88b4967ce6b9ac816ac21b26326450de4b540887) +++ dialin/hd/fans.py (.../fans.py) (revision d69bbb975b2a422eafc323038b48d2febbb72a66) @@ -135,6 +135,37 @@ self.logger.debug("Timeout!!!!") return False + def cmd_fans_rpm_alarm_start_time_offset(self, time: int) -> int: + """ + Constructs and sends the HD fan RPM alarm start time offset command + Constraints: + Must be logged into HD. + + @param time: (int) time offset in seconds + @return: 1 if successful, zero otherwise + """ + payload = integer_to_bytearray(time) + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_hd_ch_id, + message_id=MsgIds.MSG_ID_HD_SET_FANS_RPM_ALARM_START_TIME_OFFSET.value, + payload=payload) + + self.logger.debug("Override fan RPM alarm start time offset") + + # Send message + received_message = self.can_interface.send(message) + + # If there is no content... + if received_message is not None: + + self.logger.debug("RPM alarm start time offset set 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 + def cmd_fans_data_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: """ Constructs and sends the fans data publish interval. @@ -179,40 +210,6 @@ self.logger.debug("Timeout!!!!") return False - def cmd_fans_rpm_alarm_start_time_offset_override(self, seconds: 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 seconds: (int) seconds 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) - s = integer_to_bytearray(seconds) - payload = reset_value + s - - 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 - def cmd_fans_duty_cycle_override(self, duty_cycle: float, reset: int = NO_RESET) -> int: """ Constructs and sends the HD fans duty cycle override command Index: tests/dg_tests.py =================================================================== diff -u -r88b4967ce6b9ac816ac21b26326450de4b540887 -rd69bbb975b2a422eafc323038b48d2febbb72a66 --- tests/dg_tests.py (.../dg_tests.py) (revision 88b4967ce6b9ac816ac21b26326450de4b540887) +++ tests/dg_tests.py (.../dg_tests.py) (revision d69bbb975b2a422eafc323038b48d2febbb72a66) @@ -220,7 +220,7 @@ def get_hd_fans_info(): info = ('HD_Fan_DC, {:5.3f}, Target_HD_RPM, {:5.3f}, Inlet1_RPM, {:5.3f}, HD_Board_temp, {:5.3f}, ' 'HD_Power_supply, {:5.3f}, HD_FPGA_temp, {:5.3f}, PBA_ADC_temp, {:5.3f}, Venous_temp, {:5.3f}, ' - 'Arterial_temp, {:5.3f}, RPM_time_offset, {}, Start_time, {} ' + 'Arterial_temp, {:5.3f}, RPM_time_offset, {}, start_time, {}, ' .format(hd.fans.duty_cycle, hd.fans.target_rpm, hd.fans.inlet_1_rpm, hd.temperatures.hd_temperatures[HDTemperaturesNames.THERMISTOR_ONBOARD_NTC.name], hd.temperatures.hd_temperatures[HDTemperaturesNames.THERMISTOR_POWER_SUPPLY_1.name], @@ -489,7 +489,7 @@ ack = True if ack: if i == 0 and counter == 50: - hd.fans.cmd_fans_rpm_alarm_start_time_offset_override(86401) + hd.fans.cmd_fans_rpm_alarm_start_time_offset(86300) i += 1 elif alarm_state and i > 0: break @@ -532,7 +532,7 @@ ack = True if ack: if i == 0 and counter == 50: - dg.fans.cmd_fans_rpm_alarm_start_time_offset_override(86390) + dg.fans.cmd_fans_rpm_alarm_start_time_offset(86390) i += 1 elif alarm_state and i > 0: break @@ -564,10 +564,4 @@ # test_hd_fans_alarms() - # test_dg_fans_alarms() - - while True: - #print(get_dg_fans_info()) - for i in range(0, 18): - print(dg.temperatures.get_temperatures_values(i)) - sleep(1) + test_dg_fans_alarms()