Index: leahi_dialin/common/msg_ids.py =================================================================== diff -u -rf9dd375900151a5daafe3b687187187645d5f1ab -ra01dcb7ce7e9f929e5e5f41414ace01ce69ad051 --- leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision f9dd375900151a5daafe3b687187187645d5f1ab) +++ leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision a01dcb7ce7e9f929e5e5f41414ace01ce69ad051) @@ -182,9 +182,12 @@ MSG_ID_DD_DIAL_DELIVERY_GOOD_TO_DELIVER_OVERRIDE_REQUEST = 0xA034 MSG_ID_DD_HEATERS_TARGET_TEMPERATURE_OVERRIDE_REQUEST = 0xA035 MSG_ID_DD_BC_VALVE_STATES_OVERRIDE_REQUEST = 0xA036 - MSG_ID_DD_PISTON_PUMP_DATA_PUBLISH_OVERRIDE_REQUEST = 0xA037 - MSG_ID_DD_PISTON_PUMP_START_STOP_OVERRIDE_REQUEST = 0xA038 + MSG_ID_DD_BC_SWITCH_ONLY_START_STOP_OVERRIDE_REQUEST = 0xA037 + MSG_ID_DD_HYD_CHAMBER_TARGET_TEMP_OVERRIDE_REQUEST = 0xA038 + MSG_ID_DD_PISTON_PUMP_DATA_PUBLISH_OVERRIDE_REQUEST = 0xAF00 + MSG_ID_DD_PISTON_PUMP_START_STOP_OVERRIDE_REQUEST = 0xAF01 + MSG_ID_TD_DEBUG_EVENT = 0xFFF1 MSG_ID_DD_DEBUG_EVENT = 0xFFF2 Index: leahi_dialin/dd/modules/balancing_chamber.py =================================================================== diff -u -r351b713da824c7d6d7f73d0b33ddf1fd53621f1a -ra01dcb7ce7e9f929e5e5f41414ace01ce69ad051 --- leahi_dialin/dd/modules/balancing_chamber.py (.../balancing_chamber.py) (revision 351b713da824c7d6d7f73d0b33ddf1fd53621f1a) +++ leahi_dialin/dd/modules/balancing_chamber.py (.../balancing_chamber.py) (revision a01dcb7ce7e9f929e5e5f41414ace01ce69ad051) @@ -125,7 +125,7 @@ def cmd_switch_frequency_override(self, frequency: float, reset: int = NO_RESET) -> int: """ - Constructs and sends the switch frequency override command + Constructs and sends the balancing chamber switch frequency override command @param frequency: float - frequency value to override switch frequency with @param reset: integer - 1 to reset a previous override, 0 to override Index: leahi_dialin/dd/modules/concentrate_pump.py =================================================================== diff -u -r3660c662fceaa81ef9af72f3260276a11710919d -ra01dcb7ce7e9f929e5e5f41414ace01ce69ad051 --- leahi_dialin/dd/modules/concentrate_pump.py (.../concentrate_pump.py) (revision 3660c662fceaa81ef9af72f3260276a11710919d) +++ leahi_dialin/dd/modules/concentrate_pump.py (.../concentrate_pump.py) (revision a01dcb7ce7e9f929e5e5f41414ace01ce69ad051) @@ -80,13 +80,13 @@ self.dd_concentrate_pump_timestamp = 0.0 @publish(["dd_concentrate_pump_timestamp", - "cp1_current_set_speed", "cp1_measured_speed", "cp1_target_speed", - "cp2_current_set_speed", "cp2_measured_speed", "cp2_target_speed", - "cp1_current_state", "cp2_current_state", - "cp1_target_rev_count", "cp2_target_rev_count", - "cp1_measured_rev_count", "cp2_measured_rev_count", - "cp1_parked", "cp2_parked", - "cp1_park_fault", "cp2_park_fault"]) + "d11_cp1_current_set_speed", "d11_cp1_measured_speed", "d11_cp1_target_speed", + "cp2_current_set_speed", "d10_cp2_measured_speed", "d10_cp2_target_speed", + "d11_cp1_current_state", "d10_cp2_current_state", + "d11_cp1_target_rev_count", "d10_cp2_target_rev_count", + "d11_cp1_measured_rev_count", "d10_cp2_measured_rev_count", + "d11_cp1_parked", "d10_cp2_parked", + "d11_cp1_park_fault", "d10_cp2_park_fault"]) def _handler_concentrate_pumps_sync(self, message, timestamp=0.0): """ Handles published concentrate pumps' data messages. Concentrate pumps' speed data are captured @@ -96,48 +96,48 @@ @return: None """ - self.concentrate_pump_cp1_current_set_speed = struct.unpack('f', bytearray( + self.d11_cp1_current_set_speed = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] - self.concentrate_pump_cp1_measured_speed = struct.unpack('f', bytearray( + self.d11_cp1_measured_speed = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] - self.concentrate_pump_cp2_current_set_speed = struct.unpack('f', bytearray( + self.d10_cp2_current_set_speed = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_3:MsgFieldPositions.END_POS_FIELD_3]))[0] - self.concentrate_pump_cp2_measured_speed = struct.unpack('f', bytearray( + self.d10_cp2_measured_speed = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4]))[0] - self.concentrate_pump_cp1_target_rev_count = struct.unpack('i', bytearray( + self.d11_cp1_target_rev_count = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5]))[0] - self.concentrate_pump_cp1_measured_rev_count = struct.unpack('i', bytearray( + self.d11_cp1_measured_rev_count = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_6:MsgFieldPositions.END_POS_FIELD_6]))[0] - self.concentrate_pump_cp2_target_rev_count = struct.unpack('i', bytearray( + self.d10_cp2_target_rev_count = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_7:MsgFieldPositions.END_POS_FIELD_7]))[0] - self.concentrate_pump_cp2_measured_rev_count = struct.unpack('i', bytearray( + self.d10_cp2_measured_rev_count = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_8:MsgFieldPositions.END_POS_FIELD_8]))[0] - self.concentrate_pump_cp1_current_state = struct.unpack('i', bytearray( + self.d11_cp1_current_state = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_9:MsgFieldPositions.END_POS_FIELD_9]))[0] - self.concentrate_pump_cp2_current_state = struct.unpack('i', bytearray( + self.d10_cp2_current_state = struct.unpack('i', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_10:MsgFieldPositions.END_POS_FIELD_10]))[0] - self.cp1_pulse_us = struct.unpack('f', bytearray( + self.d11_cp1_pulse_us = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_11:MsgFieldPositions.END_POS_FIELD_11]))[0] - self.cp2_pulse_us = struct.unpack('f', bytearray( + self.d10_cp2_pulse_us = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_12:MsgFieldPositions.END_POS_FIELD_12]))[0] - self.concentrate_pump_cp1_target_speed = struct.unpack('f', bytearray( + self.d11_cp1_target_speed = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_13:MsgFieldPositions.END_POS_FIELD_13]))[0] - self.concentrate_pump_cp2_target_speed = struct.unpack('f', bytearray( + self.d10_cp2_target_speed = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_14:MsgFieldPositions.END_POS_FIELD_14]))[0] - self.concentrate_pump_cp1_parked = True if struct.unpack('I', bytearray( + self.d11_cp1_parked = True if struct.unpack('I', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_15:MsgFieldPositions.END_POS_FIELD_15]))[0] == 1 else False - self.concentrate_pump_cp2_parked = True if struct.unpack('I', bytearray( + self.d10_cp2_parked = True if struct.unpack('I', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_16:MsgFieldPositions.END_POS_FIELD_16]))[0] == 1 else False - self.concentrate_pump_cp1_park_fault = True if struct.unpack('I', bytearray( + self.d11_cp1_park_fault = True if struct.unpack('I', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_17:MsgFieldPositions.END_POS_FIELD_17]))[0] == 1 else False - self.concentrate_pump_cp2_park_fault = True if struct.unpack('I', bytearray( + self.d10_cp2_park_fault = True if struct.unpack('I', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_18:MsgFieldPositions.END_POS_FIELD_18]))[0] == 1 else False self.dd_concentrate_pump_timestamp = timestamp @@ -146,8 +146,8 @@ """ Constructs and sends the concentrate pump data broadcast interval override command Constraints: - Must be logged into DG. - Given interval must be non-zero and a multiple of the DG general task interval (50 ms). + Must be logged into DD. + Given interval must be non-zero and a multiple of the DD general task interval (50 ms). @param ms: integer - interval (in ms) to override with @param reset: integer - 1 to reset a previous override, 0 to override @@ -165,7 +165,7 @@ message_id=MsgIds.MSG_ID_DD_CONCENTRATE_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST.value, payload=payload) - self.logger.debug("override DG concentrate pump data broadcast interval") + self.logger.debug("override DD concentrate pump data broadcast interval") # Send message received_message = self.can_interface.send(message) @@ -187,8 +187,8 @@ @return: 1 if successful, zero otherwise Concentrate pump IDs: \n - 0 = CP1 \n - 1 = CP2 \n + 0 = D11_CP1_ACID \n + 1 = D10_CP2_BICARB \n """ reset_byte_array = integer_to_bytearray(reset) @@ -200,7 +200,7 @@ message_id=MsgIds.MSG_ID_DD_CONCENTRATE_PUMP_TARGET_SPEED_OVERRIDE_REQUEST.value, payload=payload) - self.logger.debug("override target speed: " + str(speed) + " - for pump: " + str(pump_id)) + self.logger.debug("override concentrate pump target speed: " + str(speed) + " - for concentrate pump: " + str(pump_id)) # Send message received_message = self.can_interface.send(message) @@ -223,8 +223,8 @@ @return: 1 if successful, zero otherwise Concentrate pump IDs: \n - 0 = CP1 \n - 1 = CP2 \n + 0 = D11_CP1_ACID \n + 1 = D10_CP2_BICARB \n """ reset_byte_array = integer_to_bytearray(reset) @@ -237,9 +237,9 @@ payload=payload) if reset == RESET: - self.logger.debug("reset back to normal value for pump: " + str(pump_id)) + self.logger.debug("reset back to normal value for concentrate pump: " + str(pump_id)) else: - self.logger.debug("override measured speed: " + str(speed) + " - for pump: " + str(pump_id)) + self.logger.debug("override concentrate pump measured speed: " + str(speed) + " - for concentrate pump: " + str(pump_id)) # Send message received_message = self.can_interface.send(message) @@ -262,8 +262,8 @@ @return: 1 if successful, zero otherwise Concentrate pump IDs: \n - 0 = CP1 \n - 1 = CP2 \n + 0 = D11_CP1_ACID \n + 1 = D10_CP2_BICARB \n """ reset_byte_array = integer_to_bytearray(reset) @@ -276,9 +276,9 @@ payload=payload) if reset == RESET: - self.logger.debug("reset parked status back to normal for pump: " + str(pump_id)) + self.logger.debug("reset parked status back to normal for concentrate pump park status: " + str(pump_id)) else: - self.logger.debug("override parked status to: " + str(status) + " - for pump: " + str(pump_id)) + self.logger.debug("override parked status to: " + str(status) + " - for concentrate pump: " + str(pump_id)) # Send message received_message = self.can_interface.send(message) @@ -301,8 +301,8 @@ @return: 1 if successful, zero otherwise Concentrate pump IDs: \n - 0 = CP1 \n - 1 = CP2 \n + 0 = D11_CP1_ACID \n + 1 = D10_CP2_BICARB \n """ reset_byte_array = integer_to_bytearray(reset) @@ -315,9 +315,9 @@ payload=payload) if reset == RESET: - self.logger.debug("reset park fault status back to normal for pump: " + str(pump_id)) + self.logger.debug("reset park fault status back to normal for concentrate pump park fault: " + str(pump_id)) else: - self.logger.debug("override park fault status to: " + str(status) + " - for pump: " + str(pump_id)) + self.logger.debug("override park fault status to: " + str(status) + " - for concentrate pump: " + str(pump_id)) # Send message received_message = self.can_interface.send(message) @@ -338,8 +338,8 @@ @return: 1 if successful, zero otherwise Concentrate pump IDs: \n - 0 = CP1 \n - 1 = CP2 \n + 0 = D11_CP1_ACID \n + 1 = D10_CP2_BICARB \n """ payload = integer_to_bytearray(pump_id) @@ -383,7 +383,7 @@ message_id=MsgIds.MSG_ID_DD_CONCENTRATE_PUMPS_START_STOP_OVERRIDE_REQUEST.value, payload=payload) - self.logger.debug("setting " + str(spd) + " - for pump: " + str(pump_id)) + self.logger.debug("setting " + str(spd) + " - for concentrate pump: " + str(pump_id)) # Send message received_message = self.can_interface.send(message) Index: leahi_dialin/dd/modules/gen_dialysate.py =================================================================== diff -u -r351b713da824c7d6d7f73d0b33ddf1fd53621f1a -ra01dcb7ce7e9f929e5e5f41414ace01ce69ad051 --- leahi_dialin/dd/modules/gen_dialysate.py (.../gen_dialysate.py) (revision 351b713da824c7d6d7f73d0b33ddf1fd53621f1a) +++ leahi_dialin/dd/modules/gen_dialysate.py (.../gen_dialysate.py) (revision a01dcb7ce7e9f929e5e5f41414ace01ce69ad051) @@ -197,4 +197,39 @@ return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: self.logger.error("Timeout!!!!") + return False + + def cmd_hydraulics_chamber_fluid_temperature_override(self, temperature: float, reset: int = NO_RESET) -> int: + """ + Constructs and sends the hydraulic fluid temperature override command + + @param temperature: float - value to override in fluid temperature. + @param reset: integer - 1 to reset a previous override, 0 to override + @return: 1 if successful, zero otherwise + + """ + + reset_byte_array = integer_to_bytearray(reset) + tmp = float_to_bytearray(temperature) + payload = reset_byte_array + tmp + + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dd_ch_id, + message_id=MsgIds.MSG_ID_DD_HYD_CHAMBER_TARGET_TEMP_OVERRIDE_REQUEST.value, + payload=payload) + + if reset == RESET: + str_res = "reset back to normal" + else: + str_res = str(temperature) + self.logger.debug("override hydraulic fluid temperature to " + ": " + str_res) + + # 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.error("Timeout!!!!") return False \ No newline at end of file