Index: leahi_dialin/dd/modules/concentrate_pump.py =================================================================== diff -u -r2d5b191186134e69ad5110ba3901490be12f99d7 -rbe5dde1cc2e93cc22ebed1fc4dfd6b6082cae8a3 --- leahi_dialin/dd/modules/concentrate_pump.py (.../concentrate_pump.py) (revision 2d5b191186134e69ad5110ba3901490be12f99d7) +++ leahi_dialin/dd/modules/concentrate_pump.py (.../concentrate_pump.py) (revision be5dde1cc2e93cc22ebed1fc4dfd6b6082cae8a3) @@ -69,6 +69,10 @@ self.concentrate_pump_cp2_target_speed = 0.0 self.concentrate_pump_cp1_current_state = 0.0 self.concentrate_pump_cp2_current_state = 0.0 + self.concentrate_pump_cp1_target_rev_count = 0.0 + self.concentrate_pump_cp2_target_rev_count = 0.0 + self.concentrate_pump_cp1_measured_rev_count = 0.0 + self.concentrate_pump_cp2_measured_rev_count = 0.0 self.concentrate_pump_cp1_parked = False self.concentrate_pump_cp2_parked = False self.concentrate_pump_cp1_park_fault = False @@ -81,6 +85,8 @@ "concentrate_pump_cp1_current_set_speed", "concentrate_pump_cp1_measured_speed", "concentrate_pump_cp1_target_speed", "concentrate_pump_cp2_current_set_speed", "concentrate_pump_cp2_measured_speed", "concentrate_pump_cp2_target_speed", "concentrate_pump_cp1_current_state", "concentrate_pump_cp2_current_state", + "concentrate_pump_cp1_target_rev_count", "concentrate_pump_cp2_target_rev_count", + "concentrate_pump_cp1_measured_rev_count", "concentrate_pump_cp2_measured_rev_count", "concentrate_pump_cp1_parked", "concentrate_pump_cp2_parked", "concentrate_pump_cp1_park_fault", "concentrate_pump_cp2_park_fault"]) def _handler_concentrate_pumps_sync(self, message, timestamp=0.0): @@ -96,35 +102,49 @@ message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] self.concentrate_pump_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.concentrate_pump_cp1_target_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.concentrate_pump_cp2_current_set_speed = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4]))[0] + self.concentrate_pump_cp2_measured_speed = struct.unpack('f', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5]))[0] + self.concentrate_pump_cp2_target_speed = struct.unpack('f', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_6:MsgFieldPositions.END_POS_FIELD_6]))[0] + self.concentrate_pump_cp1_target_rev_count = struct.unpack('f', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_7:MsgFieldPositions.END_POS_FIELD_7]))[0] + self.concentrate_pump_cp1_measured_rev_count = struct.unpack('f', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_8:MsgFieldPositions.END_POS_FIELD_8]))[0] + self.concentrate_pump_cp2_target_rev_count = struct.unpack('f', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_9:MsgFieldPositions.END_POS_FIELD_9]))[0] + self.concentrate_pump_cp2_measured_rev_count = struct.unpack('f', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_10:MsgFieldPositions.END_POS_FIELD_10]))[0] + self.concentrate_pump_cp1_current_state = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_6]))[0] + message['message'][MsgFieldPositions.START_POS_FIELD_11:MsgFieldPositions.END_POS_FIELD_11]))[0] self.concentrate_pump_cp2_current_state = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_6:MsgFieldPositions.END_POS_FIELD_6]))[0] + message['message'][MsgFieldPositions.START_POS_FIELD_12:MsgFieldPositions.END_POS_FIELD_12]))[0] self.cp1_pulse_us = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_7:MsgFieldPositions.END_POS_FIELD_7]))[0] + message['message'][MsgFieldPositions.START_POS_FIELD_13:MsgFieldPositions.END_POS_FIELD_13]))[0] self.cp2_pulse_us = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_8:MsgFieldPositions.END_POS_FIELD_8]))[0] + message['message'][MsgFieldPositions.START_POS_FIELD_14:MsgFieldPositions.END_POS_FIELD_14]))[0] self.concentrate_pump_cp1_target_speed = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_9:MsgFieldPositions.END_POS_FIELD_9]))[0] + message['message'][MsgFieldPositions.START_POS_FIELD_15:MsgFieldPositions.END_POS_FIELD_15]))[0] self.concentrate_pump_cp2_target_speed = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_10:MsgFieldPositions.END_POS_FIELD_10]))[0] + message['message'][MsgFieldPositions.START_POS_FIELD_16:MsgFieldPositions.END_POS_FIELD_16]))[0] self.concentrate_pump_cp1_parked = True if struct.unpack('I', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_11:MsgFieldPositions.END_POS_FIELD_11]))[0] == 1 else False + message['message'][MsgFieldPositions.START_POS_FIELD_17:MsgFieldPositions.END_POS_FIELD_17]))[0] == 1 else False self.concentrate_pump_cp2_parked = True if struct.unpack('I', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_12:MsgFieldPositions.END_POS_FIELD_12]))[0] == 1 else False + message['message'][MsgFieldPositions.START_POS_FIELD_18:MsgFieldPositions.END_POS_FIELD_18]))[0] == 1 else False self.concentrate_pump_cp1_park_fault = True if struct.unpack('I', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_13:MsgFieldPositions.END_POS_FIELD_13]))[0] == 1 else False + message['message'][MsgFieldPositions.START_POS_FIELD_19:MsgFieldPositions.END_POS_FIELD_19]))[0] == 1 else False self.concentrate_pump_cp2_park_fault = True if struct.unpack('I', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_14:MsgFieldPositions.END_POS_FIELD_14]))[0] == 1 else False + message['message'][MsgFieldPositions.START_POS_FIELD_20:MsgFieldPositions.END_POS_FIELD_20]))[0] == 1 else False self.dd_concentrate_pump_timestamp = timestamp Index: leahi_dialin/dd/modules/pressure_sensors.py =================================================================== diff -u -r29ad0ac04795b6500f44acde49317c61b380f3dc -rbe5dde1cc2e93cc22ebed1fc4dfd6b6082cae8a3 --- leahi_dialin/dd/modules/pressure_sensors.py (.../pressure_sensors.py) (revision 29ad0ac04795b6500f44acde49317c61b380f3dc) +++ leahi_dialin/dd/modules/pressure_sensors.py (.../pressure_sensors.py) (revision be5dde1cc2e93cc22ebed1fc4dfd6b6082cae8a3) @@ -30,13 +30,12 @@ PRESSURE_SENSOR_WATER_INLET_INPUT = 0 PRESSURE_SENSOR_WATER_INLET_OUTPUT = 1 PRESSURE_SENSOR_HYDRAULICS_OUTLET = 2 - PRESSURE_SENSOR_DRAIN_PUMP_OUTLET = 3 - PRESSURE_SENSOR_BIBAG = 4 - PRESSURE_SENSOR_SPENT_DIALYSATE = 5 - PRESSURE_SENSOR_FRESH_DIALYSATE = 6 - PRESSURE_SENSOR_TRANSMEMBRANE = 7 - PRESSURE_SENSOR_BAROMETRIC = 8 - NUM_OF_PRESSURE_SENSORS = 9 + PRESSURE_SENSOR_BIBAG = 3 + PRESSURE_SENSOR_SPENT_DIALYSATE = 4 + PRESSURE_SENSOR_FRESH_DIALYSATE = 5 + PRESSURE_SENSOR_TRANSMEMBRANE = 6 + PRESSURE_SENSOR_BAROMETRIC = 7 + NUM_OF_PRESSURE_SENSORS = 8 class DDPressureSensors(AbstractSubSystem): Index: leahi_dialin/dd/modules/valves.py =================================================================== diff -u -r6c364ae181c63c1323b0a34ae0bbd99422e64580 -rbe5dde1cc2e93cc22ebed1fc4dfd6b6082cae8a3 --- leahi_dialin/dd/modules/valves.py (.../valves.py) (revision 6c364ae181c63c1323b0a34ae0bbd99422e64580) +++ leahi_dialin/dd/modules/valves.py (.../valves.py) (revision be5dde1cc2e93cc22ebed1fc4dfd6b6082cae8a3) @@ -39,15 +39,15 @@ @unique class DDValveNames(DialinEnum): - VDR = 0 # Valve Drain (D53) + VHO = 0 # Valve Hydraulics Outlet (D14) VTD = 1 # Valve Thermal Disinfect (D52) VHB = 2 # Valve Hydraulics Bypass (D8) VRP = 3 # Valve Rinse Port (D54) - VHO = 4 # Valve Hydraulics Outlet (D14) - VDB1 = 5 # Valve DryBcarb Inlet (D65) + VDR = 4 # Valve Drain (D53) + VDB2 = 5 # Valve DryBcarb Inlet (D65) VP1 = 6 # Valve Purge 1 (D64) VPT = 7 # Valve Pressure Test (D31) - VDB2 = 8 # Valve Dialyzer Bypass (D34) + VDB1 = 8 # Valve Dialyzer Bypass (D34) VDI = 9 # Valve Dialyzer Inlet (D35) VDO = 10 # Valve Dialyzer Outlet (D40) VP2 = 11 # Valve Dialysate Out Purge 2 (D47) @@ -253,15 +253,15 @@ vst = struct.unpack('H', bytearray(message['message'][self.START_POS_VALVES_STATES:self.END_POS_VALVES_STATES])) # Extract each valve state from U16 valves states using bit-masking - self.valve_state_VDR["state"] = self._binary_to_valve_state(vst[0] & 1) + self.valve_state_VHO["state"] = self._binary_to_valve_state(vst[0] & 1) self.valve_state_VTD["state"] = self._binary_to_valve_state(vst[0] & 2) self.valve_state_VHB["state"] = self._binary_to_valve_state(vst[0] & 8) self.valve_state_VRP["state"] = self._binary_to_valve_state(vst[0] & 16) - self.valve_state_VHO["state"] = self._binary_to_valve_state(vst[0] & 32) - self.valve_state_VDB1["state"] = self._binary_to_valve_state(vst[0] & 64) + self.valve_state_VDR["state"] = self._binary_to_valve_state(vst[0] & 32) + self.valve_state_VDB2["state"] = self._binary_to_valve_state(vst[0] & 64) self.valve_state_VP1["state"] = self._binary_to_valve_state(vst[0] & 128) self.valve_state_VPT["state"] = self._binary_to_valve_state(vst[0] & 256) - self.valve_state_VDB2["state"] = self._binary_to_valve_state(vst[0] & 512) + self.valve_state_VDB1["state"] = self._binary_to_valve_state(vst[0] & 512) self.valve_state_VDI["state"] = self._binary_to_valve_state(vst[0] & 1024) self.valve_state_VDO["state"] = self._binary_to_valve_state(vst[0] & 2048) self.valve_state_VP2["state"] = self._binary_to_valve_state(vst[0] & 4096)