Index: leahi_dialin/td/modules/blood_flow.py =================================================================== diff -u -r2138d06d100fdcf23f2e9069f35ee2fdee62008f -rd28c8c54ba1f74adf348d1db6f5bfe034628c812 --- leahi_dialin/td/modules/blood_flow.py (.../blood_flow.py) (revision 2138d06d100fdcf23f2e9069f35ee2fdee62008f) +++ leahi_dialin/td/modules/blood_flow.py (.../blood_flow.py) (revision d28c8c54ba1f74adf348d1db6f5bfe034628c812) @@ -16,8 +16,8 @@ import struct from logging import Logger -from leahi_dialin.td.constants import PUMP_CONTROL_MODE_CLOSED_LOOP, PUMP_CONTROL_MODE_OPEN_LOOP -from leahi_dialin.td.constants import RESET, NO_RESET +from .constants import PUMP_CONTROL_MODE_CLOSED_LOOP, PUMP_CONTROL_MODE_OPEN_LOOP +from .constants import RESET, NO_RESET from leahi_dialin.common.msg_defs import MsgIds, MsgFieldPositions from leahi_dialin.protocols.CAN import DenaliMessage, DenaliChannels from leahi_dialin.utils.base import AbstractSubSystem, publish @@ -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_speed = 0.0 - self.measured_blood_pump_motor_current = 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", "target_blood_flow_rate", "measured_blood_flow_rate", "measured_blood_pump_rotor_speed", - "measured_blood_pump_speed", "measured_blood_pump_mc_speed", "measured_blood_pump_mc_current", - "rotor_count", "pres_blood_flow_rate", "rotor_hall_state"]) + @publish(["td_blood_flow_timestamp", "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 @@ -75,26 +75,26 @@ 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])) - mcspeed = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5])) 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_8:MsgFieldPositions.END_POS_FIELD_7])) + message['message'][MsgFieldPositions.START_POS_FIELD_7:MsgFieldPositions.END_POS_FIELD_7])) pres = struct.unpack('I', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_9:MsgFieldPositions.END_POS_FIELD_8])) + message['message'][MsgFieldPositions.START_POS_FIELD_8:MsgFieldPositions.END_POS_FIELD_8])) hal = struct.unpack('I', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_10:MsgFieldPositions.END_POS_FIELD_9])) + message['message'][MsgFieldPositions.START_POS_FIELD_9:MsgFieldPositions.END_POS_FIELD_9])) - self.target_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_speed = mcspeed[0] - self.measured_blood_pump_motor_current = mccurr[0] - self.rotor_count = rot[0] - self.pres_blood_flow_rate = pres[0] - self.rotor_hall_state = hal[0] + self.h4_set_blood_flow_rate = tgt[0] + self.h4_measured_blood_flow_rate = flow[0] + self.h4_measured_blood_pump_rotor_speed = rotor[0] + self.h4_measured_blood_pump_speed = speed[0] + self.h4_measured_blood_pump_motor_current = mccurr[0] + self.h4_set_rpm = rpm[0] + self.h4_rotor_count = rot[0] + self.h4_pres_blood_flow_rate = pres[0] + self.h4_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 +123,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 +134,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,19 +156,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 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]