Index: leahi_dialin/common/alarm_defs.py =================================================================== diff -u -r2138d06d100fdcf23f2e9069f35ee2fdee62008f -rfc99e89f17c6c06ee5b783d92eabf405de39abf9 --- leahi_dialin/common/alarm_defs.py (.../alarm_defs.py) (revision 2138d06d100fdcf23f2e9069f35ee2fdee62008f) +++ leahi_dialin/common/alarm_defs.py (.../alarm_defs.py) (revision fc99e89f17c6c06ee5b783d92eabf405de39abf9) @@ -103,7 +103,6 @@ ALARM_ID_TD_PINCH_VALVE_FAULT = 80 ALARM_ID_TD_VALVE_HOMING_FAILED = 81 ALARM_ID_TD_VALVE_TRANSITION_TIMEOUT = 82 - ALARM_ID_RO_CAN_MESSAGE_NOT_ACKED_BY_DD = 83 ALARM_ID_RO_FPGA_COMM_TIMEOUT = 84 ALARM_ID_RO_COMM_TOO_MANY_BAD_CRCS = 85 Index: leahi_dialin/common/ui_defs.py =================================================================== diff -u -r2138d06d100fdcf23f2e9069f35ee2fdee62008f -rfc99e89f17c6c06ee5b783d92eabf405de39abf9 --- leahi_dialin/common/ui_defs.py (.../ui_defs.py) (revision 2138d06d100fdcf23f2e9069f35ee2fdee62008f) +++ leahi_dialin/common/ui_defs.py (.../ui_defs.py) (revision fc99e89f17c6c06ee5b783d92eabf405de39abf9) @@ -96,8 +96,6 @@ # UF states UF_PAUSED_STATE = 0 # Paused state of the ultrafiltration state machine UF_RUNNING_STATE = 1 # Running state of the ultrafiltration state machine - UF_OFF_STATE = 3 # Completed/off state of the ultrafiltration state machine - UF_COMPLETED_STATE = 4 # Completed state of ultrafiltration state machine # Heparin states HEPARIN_STATE_OFF = 0 # No heparin delivery is in progress Index: leahi_dialin/td/modules/air_trap.py =================================================================== diff -u -rafe332fec54d9d0432dfc0d54aef1debaa92b066 -rfc99e89f17c6c06ee5b783d92eabf405de39abf9 --- leahi_dialin/td/modules/air_trap.py (.../air_trap.py) (revision afe332fec54d9d0432dfc0d54aef1debaa92b066) +++ leahi_dialin/td/modules/air_trap.py (.../air_trap.py) (revision fc99e89f17c6c06ee5b783d92eabf405de39abf9) @@ -224,7 +224,7 @@ self.logger.debug("Timeout!!!!") return False - def cmd_set_hd_air_trap_valve(self, valve: int = AirTrapValves.VBT.value, + def cmd_set_td_air_trap_valve(self, valve: int = AirTrapValves.VBT.value, valve_state: int = AirTrapState.STATE_CLOSED.value) -> int: """ Constructs and sends an open/close command to the TD air trap valve Index: leahi_dialin/td/modules/valves.py =================================================================== diff -u -r90e9dd322da3b2acde64c2a205693e9ad937a9cb -rfc99e89f17c6c06ee5b783d92eabf405de39abf9 --- leahi_dialin/td/modules/valves.py (.../valves.py) (revision 90e9dd322da3b2acde64c2a205693e9ad937a9cb) +++ leahi_dialin/td/modules/valves.py (.../valves.py) (revision fc99e89f17c6c06ee5b783d92eabf405de39abf9) @@ -52,7 +52,8 @@ class TDValves(AbstractSubSystem): """ - Hemodialysis Device (HD) Dialin API sub-class for valves related commands. + + Treatment Delivery (TD) Dialin API sub-class for valves related commands. """ # Valves states publish message field positions # Note the MsgFieldPosition was not used since some of the published data are S16 @@ -74,7 +75,7 @@ def __init__(self, can_interface, logger: Logger): """ - DGDrainPump constructor + TDValves constructor @param can_interface: (DenaliCanMessenger) - Denali CAN messenger object. @param logger: (Logger) - Dialin logger @@ -94,6 +95,34 @@ self.valves_status = {ValvesEnum.VBA.name: {}, ValvesEnum.VBV.name: {}} + @publish(["td_valves_timestamp","valves_status"]) + def _handler_valves_sync(self, message: dict, timestamp=0.0) -> None: + """ + Handles published valves data messages. TD valves data are captured + for reference. + + @param message: published TD valves data message + @returns none + """ + vlv_id = struct.unpack('i', bytearray( + message['message'][self.START_POS_VALVES_ID:self.END_POS_VALVES_ID]))[0] + state_id = struct.unpack('i', bytearray( + message['message'][self.START_VALVES_STATE:self.END_VALVES_STATE]))[0] + pos_id = struct.unpack('i', bytearray( + message['message'][self.START_POS_VALVES_CURR_POS_ID:self.END_POS_VALVES_CURR_POS_ID]))[0] + pos_cnt = struct.unpack('h', bytearray( + message['message'][self.START_POS_VALVES_CURR_POS:self.END_POS_VALVES_CURR_POS]))[0] + next_pos = struct.unpack('h', bytearray( + message['message'][self.START_POS_VALVES_NEXT_POS:self.END_POS_VALVES_NEXT_POS]))[0] + + # To make sure values of the enums are not out of range + if ValvesEnum.has_value(vlv_id) and ValvesPositions.has_value(pos_id) and ValvesStates.has_value(pos_id): + vlv_name = ValvesEnum(vlv_id).name + # Update the valves dictionary + self.valves_status[vlv_name] = {'Valve': vlv_name, 'PosID': ValvesPositions(pos_id).name, 'PosCnt': pos_cnt, + 'Cmd': next_pos, 'State': ValvesStates(state_id).name} + self.td_valves_timestamp = timestamp + def cmd_valves_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: """ Constructs and sends broadcast time interval @@ -273,30 +302,3 @@ self.logger.debug("TD valve position override Timeout!!!") return False - @publish(["td_valves_timestamp","valves_status"]) - def _handler_valves_sync(self, message: dict, timestamp=0.0) -> None: - """ - Handles published valves data messages. TD valves data are captured - for reference. - - @param message: published TD valves data message - @returns none - """ - vlv_id = struct.unpack('i', bytearray( - message['message'][self.START_POS_VALVES_ID:self.END_POS_VALVES_ID]))[0] - state_id = struct.unpack('i', bytearray( - message['message'][self.START_VALVES_STATE:self.END_VALVES_STATE]))[0] - pos_id = struct.unpack('i', bytearray( - message['message'][self.START_POS_VALVES_CURR_POS_ID:self.END_POS_VALVES_CURR_POS_ID]))[0] - pos_cnt = struct.unpack('h', bytearray( - message['message'][self.START_POS_VALVES_CURR_POS:self.END_POS_VALVES_CURR_POS]))[0] - next_pos = struct.unpack('h', bytearray( - message['message'][self.START_POS_VALVES_NEXT_POS:self.END_POS_VALVES_NEXT_POS]))[0] - - # To make sure values of the enums are not out of range - if ValvesEnum.has_value(vlv_id) and ValvesPositions.has_value(pos_id) and ValvesStates.has_value(pos_id): - vlv_name = ValvesEnum(vlv_id).name - # Update the valves dictionary - self.valves_status[vlv_name] = {'Valve': vlv_name, 'PosID': ValvesPositions(pos_id).name, 'PosCnt': pos_cnt, - 'Cmd': next_pos, 'State': ValvesStates(state_id).name} - self.td_valves_timestamp = timestamp \ No newline at end of file