Index: leahi_dialin/td/modules/blood_flow.py =================================================================== diff -u -r2ef41bc7fb2b7ddd59061ee453ec7efd9f676eda -rf4759a283992acdf2e66198ce4ab0747a5aa34a1 --- leahi_dialin/td/modules/blood_flow.py (.../blood_flow.py) (revision 2ef41bc7fb2b7ddd59061ee453ec7efd9f676eda) +++ leahi_dialin/td/modules/blood_flow.py (.../blood_flow.py) (revision f4759a283992acdf2e66198ce4ab0747a5aa34a1) @@ -44,20 +44,20 @@ self.can_interface.register_receiving_publication_function(channel_id, msg_id, self._handler_blood_flow_sync) self.td_blood_flow_timestamp = 0.0 - self.set_blood_flow_rate = 0 - self.measured_blood_flow_rate = 0.0 - self.measured_blood_pump_rotor_speed = 0.0 - self.measured_blood_pump_speed = 0.0 - self.measured_blood_pump_motor_current = 0.0 - self.set_rpm = 0.0 - self.rotor_count = 0 - self.pres_blood_flow_rate = 0 - self.rotor_hall_state = 0 + self.h4_set_blood_flow_rate = 0 + self.h4_measured_blood_flow_rate = 0.0 + self.h4_measured_blood_pump_rotor_speed = 0.0 + self.h4_measured_blood_pump_speed = 0.0 + self.h4_measured_blood_pump_motor_current = 0.0 + self.h4_set_rpm = 0.0 + self.h4_rotor_count = 0 + self.h4_pres_blood_flow_rate = 0 + self.h4_rotor_hall_state = 0 - @publish(["td_blood_flow_timestamp", "set_blood_flow_rate", "measured_blood_flow_rate", "measured_blood_pump_rotor_speed", - "measured_blood_pump_speed", "measured_blood_pump_motor_current", "set_rpm", - "rotor_count", "pres_blood_flow_rate", "rotor_hall_state"]) + @publish(["td_blood_flow_timestamp", "h4_set_blood_flow_rate", "h4_measured_blood_flow_rate", "h4_measured_blood_pump_rotor_speed", + "h4_measured_blood_pump_speed", "h4_measured_blood_pump_motor_current", "h4_set_rpm", + "h4_rotor_count", "h4_pres_blood_flow_rate", "h4_rotor_hall_state"]) def _handler_blood_flow_sync(self, message, timestamp=0.0): """ Handles published blood flow data messages. Blood flow data are captured @@ -67,34 +67,25 @@ @return: none """ - tgt = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1])) - flow = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2])) - rotor = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_3:MsgFieldPositions.END_POS_FIELD_3])) - speed = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4])) - mccurr = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5])) - rpm = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_6:MsgFieldPositions.END_POS_FIELD_6])) - rot = struct.unpack('I', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_7:MsgFieldPositions.END_POS_FIELD_7])) - pres = struct.unpack('I', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_8:MsgFieldPositions.END_POS_FIELD_8])) - hal = struct.unpack('I', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_9:MsgFieldPositions.END_POS_FIELD_9])) + self.h4_set_blood_flow_rate = struct.unpack('i', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] + self.h4_measured_blood_flow_rate = struct.unpack('f', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] + self.h4_measured_blood_pump_rotor_speed = struct.unpack('f', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_3:MsgFieldPositions.END_POS_FIELD_3]))[0] + self.h4_measured_blood_pump_speed = struct.unpack('f', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4]))[0] + self.h4_measured_blood_pump_motor_current = struct.unpack('f', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5]))[0] + self.h4_set_rpm = struct.unpack('f', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_6:MsgFieldPositions.END_POS_FIELD_6]))[0] + self.h4_rotor_count = struct.unpack('I', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_7:MsgFieldPositions.END_POS_FIELD_7]))[0] + self.h4_pres_blood_flow_rate = struct.unpack('I', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_8:MsgFieldPositions.END_POS_FIELD_8]))[0] + self.h4_rotor_hall_state = struct.unpack('I', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_9:MsgFieldPositions.END_POS_FIELD_9]))[0] - self.set_blood_flow_rate = tgt[0] - self.measured_blood_flow_rate = flow[0] - self.measured_blood_pump_rotor_speed = rotor[0] - self.measured_blood_pump_speed = speed[0] - self.measured_blood_pump_motor_current = mccurr[0] - self.set_rpm = rpm[0] - self.rotor_count = rot[0] - self.pres_blood_flow_rate = pres[0] - self.rotor_hall_state = hal[0] self.td_blood_flow_timestamp = timestamp def cmd_blood_flow_set_flow_rate_request(self, flow: int, mode: int = PUMP_CONTROL_MODE_CLOSED_LOOP) -> int: @@ -123,19 +114,8 @@ # If there is content... if received_message is not None: - # self.logger.debug(received_message) - if reset == RESET: - str_res = "reset back to normal" - else: - str_res = str(flow) - - if mode == PUMP_CONTROL_MODE_OPEN_LOOP: - str_mode = " (open loop): " - else: - str_mode = " (closed loop): " self.logger.debug( - "Blood flow set point overridden to " + str_res + " mL/min" + str_mode + - + "Blood flow set point overridden to " + str(flo) + " mL/min" + str(mod) + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] @@ -145,7 +125,7 @@ def cmd_blood_flow_set_speed_rate_request(self, rpm: int) -> int: """ - Constructs and sends the blood flow set point command + Constructs and sends the blood flow set speed command Constraints: Must be logged into TD. @@ -167,10 +147,9 @@ # If there is content... if received_message is not None: - # # self.logger.debug(received_message) - # self.logger.debug( - # "Blood flow set point overridden to " + str_res + " mL/min" + str_mode + - # str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) + self.logger.debug( + "Blood flow speed rate to " + str(rpm) + + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: