Index: leahi_dialin/dd/modules/pressure_sensors.py =================================================================== diff -u -rbe5dde1cc2e93cc22ebed1fc4dfd6b6082cae8a3 -r9466b5c6b5867f392104a42608aa9542a7ff0358 --- leahi_dialin/dd/modules/pressure_sensors.py (.../pressure_sensors.py) (revision be5dde1cc2e93cc22ebed1fc4dfd6b6082cae8a3) +++ leahi_dialin/dd/modules/pressure_sensors.py (.../pressure_sensors.py) (revision 9466b5c6b5867f392104a42608aa9542a7ff0358) @@ -27,15 +27,14 @@ @unique class PressureNames(DialinEnum): # Pressure Sensor IDs - PRESSURE_SENSOR_WATER_INLET_INPUT = 0 - PRESSURE_SENSOR_WATER_INLET_OUTPUT = 1 - PRESSURE_SENSOR_HYDRAULICS_OUTLET = 2 - 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 + M1_PRI = 0 # Water Inlet pressure before regulator (PRi) + M3_PRO = 1 # Water Inlet pressure after regulator (PRo) + D9_PHO = 2 # Hydraulics outlet pressure (PHo/Pn) + D66_PDB = 3 # Dry Bicarb pressure (PDB/PCb) + D51_PDS = 4 # Spent Dialysate pressure (PDs) + D18_PDF = 5 # Fresh Dialysate pressure (PDf) + D41_PTM = 6 # Transmembrane pressure (Ptm) + NUM_OF_PRESSURE_SENSORS = 7 class DDPressureSensors(AbstractSubSystem): @@ -44,7 +43,6 @@ """ - def __init__(self, can_interface, logger: Logger): """ @@ -61,85 +59,85 @@ self.can_interface.register_receiving_publication_function(channel_id, msg_id, self._handler_pressures_sync) - self.filtered_water_inlet_input_pressure = 0.0 - self.filtered_water_inlet_output_pressure = 0.0 - self.filtered_hydraulics_output_pressure = 0.0 - self.filtered_bibag_presssure = 0.0 - self.filtered_spent_dialysate_pressure = 0.0 - self.filtered_fresh_dialysate_pressure = 0.0 - self.filtered_transmembrane_pressure = 0.0 - self.filtered_water_inlet_input_temp = 0.0 - self.filtered_water_inlet_output_temp = 0.0 - self.filtered_hydraulics_output_temp = 0.0 - self.filtered_bibag_temp = 0.0 - self.filtered_spent_dialysate_temp = 0.0 - self.filtered_fresh_dialysate_temp = 0.0 - self.transmembrane_temp = 0.0 + self.m1_pri = 0.0 + self.m3_pro = 0.0 + self.d9_pho = 0.0 + self.d66_pdb = 0.0 + self.d51_pds = 0.0 + self.d18_pdf = 0.0 + self.d41_ptm = 0.0 + self.m1_pri_temp = 0.0 + self.m3_pro_temp = 0.0 + self.d9_pho_temp = 0.0 + self.d66_pdb_temp = 0.0 + self.d51_pds_temp = 0.0 + self.d18_pdf_temp = 0.0 + self.d41_ptm_temp = 0.0 self.dd_pressures_timestamp = 0 @publish([ "dd_pressures_timestamp", - "water_inlet_input_pressure", - "water_inlet_output_pressure", - "hydraulics_output_pressure", - "bibag_presssure", - "spent_dialysate_pressure", - "fresh_dialysate_pressure", - "transmembrane_pressure", - "water_inlet_input_temp", - "water_inlet_output_temp", - "hydraulics_output_temp", - "bibag_temp", - "spent_dialysate_temp", - "fresh_dialysate_temp", - "transmembrane_temp", + "m1_pri", + "m3_pro", + "d9_pho", + "d66_pdb", + "d51_pds", + "d18_pdf", + "d41_ptm", + "m1_pri_temp", + "m3_pro_temp", + "d9_pho_temp", + "d66_pdb_temp", + "d51_pds_temp", + "d18_pdf_temp", + "d41_ptm_temp", ]) def _handler_pressures_sync(self, message,timestamp=0.0): """ - Handles published pressure data messages. Pressure data are captured + Handles published DD pressure data messages. DD Pressure data are captured for reference. - @param message: published pressure data message + @param message: published DD pressure data message @return: none """ - self.filtered_water_inlet_input_pressure = struct.unpack('f', bytearray( + self.m1_pri = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] - self.filtered_water_inlet_output_pressure = struct.unpack('f', bytearray( + self.m3_pro = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] - self.filtered_hydraulics_output_pressure = struct.unpack('f', bytearray( + self.d9_pho = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_3:MsgFieldPositions.END_POS_FIELD_3]))[0] - self.filtered_bibag_presssure = struct.unpack('f', bytearray( + self.d66_pdb = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4]))[0] - self.filtered_spent_dialysate_pressure = struct.unpack('f', bytearray( + self.d51_pds = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5]))[0] - self.filtered_fresh_dialysate_pressure = struct.unpack('f', bytearray( + self.d18_pdf = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_6:MsgFieldPositions.END_POS_FIELD_6]))[0] - self.filtered_transmembrane_pressure = struct.unpack('f', bytearray( + self.d41_ptm = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_7:MsgFieldPositions.END_POS_FIELD_7]))[0] - self.filtered_water_inlet_input_temp = struct.unpack('f', bytearray( + self.m1_pri_temp = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_8:MsgFieldPositions.END_POS_FIELD_8]))[0] - self.filtered_water_inlet_output_temp = struct.unpack('f', bytearray( + self.m3_pro_temp = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_9:MsgFieldPositions.END_POS_FIELD_9]))[0] - self.filtered_hydraulics_output_temp = struct.unpack('f', bytearray( + self.d9_pho_temp = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_10:MsgFieldPositions.END_POS_FIELD_10]))[0] - self.filtered_bibag_temp = struct.unpack('f', bytearray( + self.d66_pdb_temp = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_11:MsgFieldPositions.END_POS_FIELD_11]))[0] - self.filtered_spent_dialysate_temp = struct.unpack('f', bytearray( + self.d51_pds_temp = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_12:MsgFieldPositions.END_POS_FIELD_12]))[0] - self.filtered_fresh_dialysate_temp = struct.unpack('f', bytearray( + self.d18_pdf_temp = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_13:MsgFieldPositions.END_POS_FIELD_13]))[0] - self.filtered_transmembrane_temp = struct.unpack('f', bytearray( + self.d41_ptm_temp = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_14:MsgFieldPositions.END_POS_FIELD_14]))[0] self.dd_pressures_timestamp = timestamp def cmd_pressure_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: """ - Constructs and sends the pressure override command. + Constructs and sends the pressure broadcast interval override command. Constraints: - Must be logged into DG. - Given interval must be non-zero and a multiple of the DG general task interval (50 ms). + Must be logged into DD. + Given interval must be non-zero and a multiple of the DD general task interval (50 ms). @param ms: unsigned int - broadcast interval (in ms) @param reset: integer - 1 to reset a previous override, 0 to override @@ -173,13 +171,12 @@ def cmd_pressure_readings_override(self, sensor: int, pressure: float, reset: int = NO_RESET) -> int: """ - Constructs and sends the pressure override command. + Constructs and sends the pressure readings override command. Constraints: - Must be logged into DG. - Given sensor must be one of the sensors listed below. + Must be logged into DD. @param sensor: unsigned int - sensor ID - @param pressure: unsigned int - pressure (in PSI) + @param pressure: float - pressure (in PSI) @param reset: integer - 1 to reset a previous override, 0 to override @return: 1 if successful, zero otherwise """ @@ -208,13 +205,12 @@ def cmd_pressure_temperature_override(self, sensor: int, temperature: float, reset: int = NO_RESET) -> int: """ - Constructs and sends the pressure override command. + Constructs and sends the pressure temperature override command. Constraints: - Must be logged into DG. - Given sensor must be one of the sensors listed below. + Must be logged into DD. @param sensor: unsigned int - sensor ID - @param temperature: unsigned int - pressure (in PSI) + @param temperature: float - pressure (in PSI) @param reset: integer - 1 to reset a previous override, 0 to override @return: 1 if successful, zero otherwise """ @@ -243,10 +239,12 @@ def cmd_pressure_sensor_read_counter_override(self, sensor: int, counter: int, reset: int = NO_RESET) -> int: """ - Constructs and sends the conductivity value override command + Constructs and sends the pressure sensor read counter override command + Constraints: + Must be logged into DD. @param sensor: unsigned int - sensor ID - @param counter: integer - conductivity value to override sensor with + @param counter: integer - read count to override sensor with @param reset: integer - 1 to reset a previous override, 0 to override @return: 1 if successful, zero otherwise @@ -265,7 +263,7 @@ str_res = "reset back to normal" else: str_res = str(sensor) + " psi" - self.logger.debug("override pressure sensor value for sensor " + str(sensor) + ": " + str_res) + self.logger.debug("override read counter value for pressure sensor " + str(sensor) + ": " + str_res) # Send message received_message = self.can_interface.send(message) @@ -280,10 +278,12 @@ def cmd_pressure_sensor_error_counter_override(self, sensor: int, counter: int, reset: int = NO_RESET) -> int: """ - Constructs and sends the conductivity value override command + Constructs and sends the pressure sensor error counter override command. + Constraints: + Must be logged into DD. @param sensor: unsigned int - sensor ID - @param counter: integer - conductivity value to override sensor with + @param counter: integer - error count to override sensor with @param reset: integer - 1 to reset a previous override, 0 to override @return: 1 if successful, zero otherwise @@ -302,7 +302,7 @@ str_res = "reset back to normal" else: str_res = str(sensor) + " psi" - self.logger.debug("override pressure sensor value for sensor " + str(sensor) + ": " + str_res) + self.logger.debug("override error counter value for pressure sensor " + str(sensor) + ": " + str_res) # Send message received_message = self.can_interface.send(message) @@ -317,13 +317,12 @@ def cmd_pressure_filtered_readings_override(self, sensor: int, pressure: float, reset: int = NO_RESET) -> int: """ - Constructs and sends the pressure override command. + Constructs and sends the pressure filtered readings override command. Constraints: - Must be logged into DG. - Given sensor must be one of the sensors listed below. + Must be logged into DD. @param sensor: unsigned int - sensor ID - @param pressure: unsigned int - pressure (in PSI) + @param pressure: float - pressure (in PSI) @param reset: integer - 1 to reset a previous override, 0 to override @return: 1 if successful, zero otherwise """ @@ -352,13 +351,12 @@ def cmd_pressure_filtered_temperature_override(self, sensor: int, temperature: float, reset: int = NO_RESET) -> int: """ - Constructs and sends the pressure override command. + Constructs and sends the filtered temperature override command. Constraints: - Must be logged into DG. - Given sensor must be one of the sensors listed below. + Must be logged into DD. @param sensor: unsigned int - sensor ID - @param temperature: unsigned int - pressure (in PSI) + @param temperature: float - temperature to override the sensor with @param reset: integer - 1 to reset a previous override, 0 to override @return: 1 if successful, zero otherwise """