Index: HemodialysisDevice.py =================================================================== diff -u -r19d2a5ccba2780d7ff0045afa341da9a21d8a45f -r3f171e5d0207b44d3008de8d213e7e513eb11729 --- HemodialysisDevice.py (.../HemodialysisDevice.py) (revision 19d2a5ccba2780d7ff0045afa341da9a21d8a45f) +++ HemodialysisDevice.py (.../HemodialysisDevice.py) (revision 3f171e5d0207b44d3008de8d213e7e513eb11729) @@ -123,7 +123,7 @@ if received_message is not None: print(received_message) print("Inserted message: " + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # 5th element is OK or not OK + # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: print("Timeout!!!!") @@ -183,7 +183,7 @@ print("Off button overridden to " + str_res + ":" + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # 5th element is OK or not OK + # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: print("Timeout!!!!") @@ -220,7 +220,7 @@ str_res = ("pressed" if state != 0 else "released") print("Stop button overridden to " + str_res + ":" + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # 5th element is OK or not OK + # response payload is OK or not OK return received_message["message"][DenaliMessage.PAYLOAD_START_INDEX] else: print("Timeout!!!!") @@ -280,7 +280,7 @@ str_res = ("checked in" if state != 0 else "not checked in") print("Watchdog task check-in overridden to " + str_res + ":" + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # 5th element is OK or not OK + # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: print("Timeout!!!!") @@ -308,6 +308,18 @@ HD_ALARM_LAMP_PATTERN_LOW = 5 HD_ALARM_LAMP_PATTERN_MANUAL = 6 + # Alarm status message field positions + START_POS_ALARM_STATE = DenaliMessage.PAYLOAD_START_INDEX + END_POS_ALARM_STATE = START_POS_ALARM_STATE + 4 + START_POS_ALARM_TOP = END_POS_ALARM_STATE + END_POS_ALARM_TOP = START_POS_ALARM_TOP + 4 + START_POS_ALARM_SILENCE_EXPIRES_IN = END_POS_ALARM_TOP + END_POS_ALARM_SILENCE_EXPIRES_IN = START_POS_ALARM_SILENCE_EXPIRES_IN + 4 + START_POS_ALARMS_SILENCED = END_POS_ALARM_SILENCE_EXPIRES_IN + END_POS_ALARMS_SILENCED = START_POS_ALARMS_SILENCED + 1 + START_POS_ALARMS_FLAGS = END_POS_ALARMS_SILENCED + END_POS_ALARMS_FLAGS = START_POS_ALARMS_FLAGS + 1 + def __init__(self, outer_instance, can_interface=None): """ HD_Alarms constructor @@ -339,11 +351,19 @@ \returns none """ - self.alarmsState = int.from_bytes(bytearray(message['message'][4:8]), byteorder=DenaliMessage.BYTE_ORDER) - self.alarmTop = int.from_bytes(bytearray(message['message'][8:12]), byteorder=DenaliMessage.BYTE_ORDER) - self.alarmsSilenceExpiresIn = int.from_bytes(bytearray(message['message'][12:16]), byteorder=DenaliMessage.BYTE_ORDER) - self.alarmsSilenced = (False if bytearray(message['message'][16:17]) != 1 else True) - self.alarmsFlags = bytearray(message['message'][17:18]) + self.alarmsState = int.from_bytes(bytearray( + message['message'][self.START_POS_ALARM_STATE:self.END_POS_ALARM_STATE]), + byteorder=DenaliMessage.BYTE_ORDER) + self.alarmTop = int.from_bytes(bytearray( + message['message'][self.START_POS_ALARM_TOP:self.END_POS_ALARM_TOP]), + byteorder=DenaliMessage.BYTE_ORDER) + self.alarmsSilenceExpiresIn = int.from_bytes(bytearray( + message['message'][self.START_POS_ALARM_SILENCE_EXPIRES_IN:self.END_POS_ALARM_SILENCE_EXPIRES_IN]), + byteorder=DenaliMessage.BYTE_ORDER) + self.alarmsSilenced = (False if bytearray( + message['message'][self.START_POS_ALARMS_SILENCED:self.END_POS_ALARMS_SILENCED]) != 1 else True) + self.alarmsFlags = bytearray( + message['message'][self.START_POS_ALARMS_FLAGS:self.END_POS_ALARMS_FLAGS]) def CmdAlarmStateOverride(self, reset, state, alarm): """ @@ -378,7 +398,7 @@ str_res = ("active" if state != 0 else "inactive") print("Alarm state overridden to " + str_res + ":" + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # 5th element is OK or not OK + # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: print("Timeout!!!!") @@ -417,7 +437,7 @@ str_res = str(time_ms) print("Alarm time since activated overridden to " + str_res + " ms: " + str( received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # 5th element is OK or not OK + # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: print("Timeout!!!!") @@ -474,7 +494,7 @@ str_pat = "manual" print("Alarm lamp pattern overridden to " + str_pat + ":" + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # 5th element is OK or not OK + # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: print("Timeout!!!!") @@ -498,6 +518,20 @@ MSG_ID_HD_BLOOD_PUMP_MEAS_SPEED_OVERRIDE = 0x800E MSG_ID_HD_BLOOD_PUMP_ROTOR_MEAS_SPEED_OVERRIDE = 0x800F + # BloodFlow broadcast message field positions + START_POS_SET_PT = DenaliMessage.PAYLOAD_START_INDEX + END_POS_SET_PT = START_POS_SET_PT + 4 + START_POS_MEAS_FLOW = END_POS_SET_PT + END_POS_MEAS_FLOW = START_POS_MEAS_FLOW + 4 + START_POS_MEAS_ROT_SPEED = END_POS_MEAS_FLOW + END_POS_MEAS_ROT_SPEED = START_POS_MEAS_ROT_SPEED + 4 + START_POS_MEAS_SPEED = END_POS_MEAS_ROT_SPEED + END_POS_MEAS_SPEED = START_POS_MEAS_SPEED + 4 + START_POS_MEAS_MC_SPEED = END_POS_MEAS_SPEED + END_POS_MEAS_MC_SPEED = START_POS_MEAS_MC_SPEED + 4 + START_POS_MEAS_MC_CURR = END_POS_MEAS_MC_SPEED + END_POS_MEAS_MC_CURR = START_POS_MEAS_MC_CURR + 4 + def __init__(self, outer_instance, can_interface=None): """ HD_BloodFlow constructor @@ -530,13 +564,19 @@ \returns none """ - self.TargetBloodFlowRate = int.from_bytes(bytearray(message['message'][4:8]), - byteorder=DenaliMessage.BYTE_ORDER) - self.MeasuredBloodFlowRate = struct.unpack('f', bytearray(message['message'][8:12])) - self.MeasuredBloodPumpRotorSpeed = struct.unpack('f', bytearray(message['message'][12:16])) - self.MeasuredBloodPumpSpeed = struct.unpack('f', bytearray(message['message'][16:20])) - self.MeasuredBloodPumpMCSpeed = struct.unpack('f', bytearray(message['message'][20:24])) - self.MeasuredBloodPumpMCCurrent = struct.unpack('f', bytearray(message['message'][24:28])) + self.TargetBloodFlowRate = int.from_bytes(bytearray( + message['message'][self.START_POS_SET_PT:self.END_POS_SET_PT]), + byteorder=DenaliMessage.BYTE_ORDER) + self.MeasuredBloodFlowRate = struct.unpack('f', bytearray( + message['message'][self.START_POS_MEAS_FLOW:self.END_POS_MEAS_FLOW])) + self.MeasuredBloodPumpRotorSpeed = struct.unpack('f', bytearray( + message['message'][self.START_POS_MEAS_ROT_SPEED:self.END_POS_MEAS_ROT_SPEED])) + self.MeasuredBloodPumpSpeed = struct.unpack('f', bytearray( + message['message'][self.START_POS_MEAS_SPEED:self.END_POS_MEAS_SPEED])) + self.MeasuredBloodPumpMCSpeed = struct.unpack('f', bytearray( + message['message'][self.START_POS_MEAS_MC_SPEED:self.END_POS_MEAS_MC_SPEED])) + self.MeasuredBloodPumpMCCurrent = struct.unpack('f', bytearray( + message['message'][self.START_POS_MEAS_MC_CURR:self.END_POS_MEAS_MC_CURR])) def CmdBloodFlowSetPointOverride(self, reset, flow): """ @@ -570,7 +610,7 @@ print( "Blood flow set point overridden to " + str_res + " mL/min: " + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # 5th element is OK or not OK + # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: print("Timeout!!!!") @@ -607,7 +647,7 @@ str_res = str(flow) print("Blood flow (measured)) overridden to " + str_res + " mL/min: " + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # 5th element is OK or not OK + # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: print("Timeout!!!!") @@ -648,7 +688,7 @@ str_res = str(speed) print("Blood pump MC speed (measured) overridden to " + str_res + " RPM: " + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # 5th element is OK or not OK + # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: print("Timeout!!!!") @@ -685,7 +725,7 @@ str_res = str(curr) print("Blood pump MC current (measured) overridden to " + str_res + " mA: " + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # 5th element is OK or not OK + # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: print("Timeout!!!!") @@ -723,7 +763,7 @@ str_res = str(speed) print("Blood pump speed (measured) overridden to " + str_res + " RPM: " + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # 5th element is OK or not OK + # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: print("Timeout!!!!") @@ -761,7 +801,7 @@ str_res = str(speed) print("Blood pump rotor speed (measured) overridden to " + str_res + " RPM: " + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # 5th element is OK or not OK + # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: print("Timeout!!!!") @@ -798,7 +838,7 @@ str_res = str(ms) + " ms: " print("Blood flow broadcast interval overridden to " + str_res + str(received_message['message'][DenaliMessage.PAYLOAD_START_INDEX])) - # 5th element is OK or not OK + # response payload is OK or not OK return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] else: print("Timeout!!!!")