Index: leahi_dialin/fp/modules/temperatures.py =================================================================== diff -u -r7628b7a718a1b52c33f58a6003ef13cba4db5e5d -r7aaeb8b04744443272aaadb2c5cbb1d409a7e191 --- leahi_dialin/fp/modules/temperatures.py (.../temperatures.py) (revision 7628b7a718a1b52c33f58a6003ef13cba4db5e5d) +++ leahi_dialin/fp/modules/temperatures.py (.../temperatures.py) (revision 7aaeb8b04744443272aaadb2c5cbb1d409a7e191) @@ -26,11 +26,18 @@ @unique class FPTemperaturesNames(DialinEnum): - P23_TEMP = 0 # P23 temperature sensor. - P22_TEMP = 1 # P22 temperature sensor. - P10_TEMP = 2 # P10 temperature from inlet conductivity sensor. - P19_TEMP = 3 # P19 temperature from outlet conductivity sensor. - FP_BOARD_TEMP = 4 # Board Temperature Sensor + P10_TEMP = 0 # P10 temperature from inlet conductivity sensor. + P19_TEMP = 1 # P19 temperature from outlet conductivity sensor. + M1_TEMP = 2 # Temperature before pressure regulator (M1) + M3_TEMP = 3 # Temperature after pressure regulator (M3) + P8_TEMP = 4 # Temperature before inlet conductivity sensor (P8) + P13_TEMP = 5 # Temperature before RO filter (P13) + P17_TEMP = 6 # Temperature after RO filter (P17) + X1_TEMP = 7 # Temperature before RO pump (X1) + X2_TEMP = 8 # Temperature RO Concentrate + X3_TEMP = 9 # Temperature RO Concentrate drop + X4_TEMP = 10 # Temperature drain drop + NUM_OF_TEMPERATURE_SENSORS = 11 # Number of Temperature Sensors class FPTemperatureSensors(AbstractSubSystem): @@ -48,11 +55,17 @@ self._handler_temperature_sensors_sync) self.fp_temperature_sensors_timestamp = 0 - self.fp_temperatures = {FPTemperaturesNames.P23_TEMP.name: 0.0, - FPTemperaturesNames.P22_TEMP.name: 0.0, - FPTemperaturesNames.P10_TEMP.name: 0.0, + self.fp_temperatures = {FPTemperaturesNames.P10_TEMP.name: 0.0, FPTemperaturesNames.P19_TEMP.name: 0.0, - FPTemperaturesNames.FP_BOARD_TEMP.name: 0.0 } + FPTemperaturesNames.M1_TEMP.name: 0.0, + FPTemperaturesNames.M3_TEMP.name: 0.0, + FPTemperaturesNames.P8_TEMP.name: 0.0, + FPTemperaturesNames.P13_TEMP.name: 0.0, + FPTemperaturesNames.P17_TEMP.name: 0.0, + FPTemperaturesNames.X1_TEMP.name: 0.0, + FPTemperaturesNames.X2_TEMP.name: 0.0, + FPTemperaturesNames.X3_TEMP.name: 0.0, + FPTemperaturesNames.X4_TEMP.name: 0.0, } @publish(["fp_temperatures_timestamp", "fp_temperatures"]) def _handler_temperature_sensors_sync(self, message,timestamp=0.0): @@ -62,24 +75,41 @@ @param message: published FP temperature sensors data message @returns none """ - self.fp_temperatures[FPTemperaturesNames.P23_TEMP.name] = struct.unpack('f', bytearray( + self.fp_temperatures[FPTemperaturesNames.P10_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] - self.fp_temperatures[FPTemperaturesNames.P22_TEMP.name] = struct.unpack('f', bytearray( + self.fp_temperatures[FPTemperaturesNames.P19_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] - self.fp_temperatures[FPTemperaturesNames.P10_TEMP.name] = struct.unpack('f', bytearray( + self.fp_temperatures[FPTemperaturesNames.M1_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_3:MsgFieldPositions.END_POS_FIELD_3]))[0] - self.fp_temperatures[FPTemperaturesNames.P19_TEMP.name] = struct.unpack('f', bytearray( + self.fp_temperatures[FPTemperaturesNames.M3_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4]))[0] - self.fp_temperatures[FPTemperaturesNames.FP_BOARD_TEMP.name] = struct.unpack('f', bytearray( + self.fp_temperatures[FPTemperaturesNames.P8_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5]))[0] - self.fp_temperature_sensors_timestamp = timestamp + self.fp_temperatures[FPTemperaturesNames.P13_TEMP.name] = struct.unpack('f', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_6:MsgFieldPositions.END_POS_FIELD_6]))[0] + self.fp_temperatures[FPTemperaturesNames.P17_TEMP.name] = struct.unpack('f', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_7:MsgFieldPositions.END_POS_FIELD_7]))[0] + self.fp_temperatures[FPTemperaturesNames.X1_TEMP.name] = struct.unpack('f', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_8:MsgFieldPositions.END_POS_FIELD_8]))[0] + + self.fp_temperatures[FPTemperaturesNames.X2_TEMP.name] = struct.unpack('f', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_9:MsgFieldPositions.END_POS_FIELD_9]))[0] + + self.fp_temperatures[FPTemperaturesNames.X3_TEMP.name] = struct.unpack('f', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_10:MsgFieldPositions.END_POS_FIELD_10]))[0] + + self.fp_temperatures[FPTemperaturesNames.X4_TEMP.name] = struct.unpack('f', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_11:MsgFieldPositions.END_POS_FIELD_11]))[0] + + self.fp_temperature_sensors_timestamp = timestamp + def cmd_temperatures_data_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: """ Constructs and sends broadcast time interval. @@ -131,14 +161,18 @@ rst = integer_to_bytearray(reset) value = float_to_bytearray(sensor_value) index = integer_to_bytearray(sensor_index) - payload = rst + value + index - message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_fp_ch_id, - message_id=MsgIds.MSG_ID_FP_TEMPERATURE_OVERRIDE_REQUEST.value, - payload=payload) + if sensor_index <= FPTemperaturesNames.P19_TEMP.value: + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_fp_ch_id, + message_id=MsgIds.MSG_ID_FP_TEMPERATURE_OVERRIDE_REQUEST.value, + payload=payload) + else: # the remaining sensors are sent to the pressure temp override + message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_fp_ch_id, + message_id=MsgIds.MSG_ID_FP_PRESSURE_TEMP_OVERRIDE_REQUEST.value, + payload=payload) - self.logger.debug("Setting sensor {} to {} C".format(sensor_index, sensor_value)) + self.logger.debug("Setting sensor {} to {} C".format(FPTemperaturesNames[str(sensor_index)].name, sensor_value)) # Send message received_message = self.can_interface.send(message)