Index: leahi_dialin/td/modules/pressure_sensors.py =================================================================== diff -u -rddff9b411685f2a08790ae47ff691d9d32937a7a -rbf4919e5da8d2a6c0288d63341bfca7886c5ab2e --- leahi_dialin/td/modules/pressure_sensors.py (.../pressure_sensors.py) (revision ddff9b411685f2a08790ae47ff691d9d32937a7a) +++ leahi_dialin/td/modules/pressure_sensors.py (.../pressure_sensors.py) (revision bf4919e5da8d2a6c0288d63341bfca7886c5ab2e) @@ -44,7 +44,10 @@ self.msg_id_td_pressure_data = MsgIds.MSG_ID_TD_PRESSURE_DATA.value self.can_interface.register_receiving_publication_function(channel_id, self.msg_id_td_pressure_data, self._handler_pressure_sync) + #: The timestamp of the latest message self.td_pressure_timestamp = 0.0 + + #: A dictionary for for TD Pressure data self.td_pressure_sensors = { td_enum_repository.TDPressureSensorNames.H2_PRES.name: { td_enum_repository.TDPressureSensorAttributes.PRES.name: 0.0, @@ -62,10 +65,20 @@ td_enum_repository.TDPressureSensorAttributes.PRES.name : 0.0 } } + + #: Pressure limits state value self.pressure_limits_state = 0 + + #: Tmp Pressure value self.tmp_pressure = 0.0 + + #: Tmp Average Pressure value self.tmp_long_filtered_pressure = 0.0 + + #: Tmp Pressure minimum limit value self.tmp_min_limit = 0.0 + + #: Tmp Pressure maximum limit value self.tmp_max_limit = 0.0 @@ -88,28 +101,30 @@ @return: none """ sensor_list =[] - sensor_list.append((self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES.name], 'f')) - sensor_list.append((self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES.name], 'f')) - sensor_list.append((self.pressure_limits_state, 'f')) - sensor_list.append((self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name], 'f')) - sensor_list.append((self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name], 'f')) - sensor_list.append((self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name], 'f')) - sensor_list.append((self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name], 'f')) - sensor_list.append((self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name], 'f')) - sensor_list.append((self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name], 'f')) - sensor_list.append((self.tmp_pressure, 'f')) - sensor_list.append((self.tmp_long_filtered_pressure, 'f')) - sensor_list.append((self.tmp_min_limit, 'f')) - sensor_list.append((self.tmp_max_limit, 'f')) - sensor_list.append((self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H23_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES.name], 'f')) + sensor_list.append(['self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES.name]', 'f']) + sensor_list.append(['self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES.name]', 'f']) + sensor_list.append(['self.pressure_limits_state', 'f']) + sensor_list.append(['self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name]', 'f']) + sensor_list.append(['self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name]', 'f']) + sensor_list.append(['self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name]', 'f']) + sensor_list.append(['self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name]', 'f']) + sensor_list.append(['self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name]', 'f']) + sensor_list.append(['self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name]', 'f']) + sensor_list.append(['self.tmp_pressure', 'f']) + sensor_list.append(['self.tmp_long_filtered_pressure', 'f']) + sensor_list.append(['self.tmp_min_limit', 'f']) + sensor_list.append(['self.tmp_max_limit', 'f']) + sensor_list.append(['self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H23_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES.name]', 'f']) i = 1 for sensor in sensor_list: start_pos = eval(f'MsgFieldPositions.START_POS_FIELD_{i}') end_pos = eval(f'MsgFieldPositions.END_POS_FIELD_{i}') - sensor[0] = struct.unpack(sensor[1],bytearray(message['message'][start_pos:end_pos]))[0] + value = struct.unpack(sensor[1],bytearray(message['message'][start_pos:end_pos]))[0] + if 'nan' in str(value).lower(): + value = None + exec(f'{sensor[0]} = {value}') i += 1 - self.td_pressure_timestamp = timestamp