Index: leahi_dialin/td/modules/pressure_sensors.py =================================================================== diff -u -r5c1132f5aadff6082afa56588ad1f4a64f828cd9 -r6caa49d072aceb2655d605de5d2eea52ab1a8911 --- leahi_dialin/td/modules/pressure_sensors.py (.../pressure_sensors.py) (revision 5c1132f5aadff6082afa56588ad1f4a64f828cd9) +++ leahi_dialin/td/modules/pressure_sensors.py (.../pressure_sensors.py) (revision 6caa49d072aceb2655d605de5d2eea52ab1a8911) @@ -21,7 +21,6 @@ # Project imports from leahi_dialin.common.constants import NO_RESET from leahi_dialin.common.generic_defs import DataTypes -from leahi_dialin.common.msg_defs import MsgFieldPositions from leahi_dialin.common.msg_ids import MsgIds from leahi_dialin.common.override_templates import cmd_generic_broadcast_interval_override, cmd_generic_override from leahi_dialin.common import td_enum_repository @@ -52,7 +51,6 @@ self.td_pressure_timestamp = 0.0 #: The timestamp of the latest message - #: The Pressure data in dictionary format self.td_pressure_sensors = { td_enum_repository.TDPressureSensorNames.H2_PRES.name: { td_enum_repository.TDPressureSensorAttributes.PRES.name: 0.0, @@ -77,9 +75,38 @@ } } - self.pressure_limits_state = 0 #: Pressure limits state value + self.pressure_limits_state = 0 self.handler_execution_times = [] + + +# ============================================================ Properties ============================================================ + @property + def td_pressure_sensors(self) -> dict: + """ + The Pressure Sensors data + """ + return self._pressure_sensors + + @td_pressure_sensors.setter + def td_pressure_sensors(self, value): + self._pressure_sensors = value + + + @property + def pressure_limits_state(self) -> dict: + """ + Pressure limits state value + """ + return self._pressure_limits_state + + @pressure_limits_state.setter + def pressure_limits_state(self, value): + self._pressure_limits_state = value + + + +# ============================================================ Handlers ============================================================ @publish([ "msg_id_td_pressure_data", "td_pressure_sensors", @@ -99,41 +126,29 @@ @return: none """ start = time.perf_counter() - sensor_list_1 = [] - sensor_list_1.append((td_enum_repository.TDPressureSensorNames.H2_PRES.name, td_enum_repository.TDPressureSensorAttributes.PRES.name, DataTypes.F32)) - sensor_list_1.append((td_enum_repository.TDPressureSensorNames.H14_PRES.name, td_enum_repository.TDPressureSensorAttributes.PRES.name, DataTypes.F32)) - msg_list_1 = [] - msg_list_1.append(['self.pressure_limits_state', DataTypes.U32]) - sensor_list_2 = [] - sensor_list_2.append((td_enum_repository.TDPressureSensorNames.H2_PRES.name, td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name, DataTypes.S32)) - sensor_list_2.append((td_enum_repository.TDPressureSensorNames.H2_PRES.name, td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name, DataTypes.S32)) - sensor_list_2.append((td_enum_repository.TDPressureSensorNames.H14_PRES.name, td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name, DataTypes.S32)) - sensor_list_2.append((td_enum_repository.TDPressureSensorNames.H14_PRES.name, td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name, DataTypes.S32)) - sensor_list_2.append((td_enum_repository.TDPressureSensorNames.H2_PRES.name, td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name, DataTypes.F32)) - sensor_list_2.append((td_enum_repository.TDPressureSensorNames.H14_PRES.name, td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name, DataTypes.F32)) - sensor_list_2.append(('TMP_PRES', td_enum_repository.TDPressureSensorAttributes.PRES.name, DataTypes.F32)) - sensor_list_2.append(('TMP_PRES', td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name, DataTypes.F32)) - sensor_list_2.append(('TMP_PRES', td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name, DataTypes.F32)) - sensor_list_2.append(('TMP_PRES', td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name, DataTypes.F32)) - sensor_list_2.append((td_enum_repository.TDPressureSensorNames.H23_PRES.name, td_enum_repository.TDPressureSensorAttributes.PRES.name, DataTypes.F32)) + msg_list = [] + msg_list.append((self.td_pressure_sensors, td_enum_repository.TDPressureSensorNames.H2_PRES.name, td_enum_repository.TDPressureSensorAttributes.PRES.name, DataTypes.F32)) + msg_list.append((self.td_pressure_sensors, td_enum_repository.TDPressureSensorNames.H14_PRES.name, td_enum_repository.TDPressureSensorAttributes.PRES.name, DataTypes.F32)) + msg_list.append((type(self).pressure_limits_state, DataTypes.U32)) + msg_list.append((self.td_pressure_sensors, td_enum_repository.TDPressureSensorNames.H2_PRES.name, td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name, DataTypes.S32)) + msg_list.append((self.td_pressure_sensors, td_enum_repository.TDPressureSensorNames.H2_PRES.name, td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name, DataTypes.S32)) + msg_list.append((self.td_pressure_sensors, td_enum_repository.TDPressureSensorNames.H14_PRES.name, td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name, DataTypes.S32)) + msg_list.append((self.td_pressure_sensors, td_enum_repository.TDPressureSensorNames.H14_PRES.name, td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name, DataTypes.S32)) + msg_list.append((self.td_pressure_sensors, td_enum_repository.TDPressureSensorNames.H2_PRES.name, td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name, DataTypes.F32)) + msg_list.append((self.td_pressure_sensors, td_enum_repository.TDPressureSensorNames.H14_PRES.name, td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name, DataTypes.F32)) + msg_list.append((self.td_pressure_sensors, 'TMP_PRES', td_enum_repository.TDPressureSensorAttributes.PRES.name, DataTypes.F32)) + msg_list.append((self.td_pressure_sensors, 'TMP_PRES', td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name, DataTypes.F32)) + msg_list.append((self.td_pressure_sensors, 'TMP_PRES', td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name, DataTypes.F32)) + msg_list.append((self.td_pressure_sensors, 'TMP_PRES', td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name, DataTypes.F32)) + msg_list.append((self.td_pressure_sensors, td_enum_repository.TDPressureSensorNames.H23_PRES.name, td_enum_repository.TDPressureSensorAttributes.PRES.name, DataTypes.F32)) - self.process_into_dict(dict_to_update = self.td_pressure_sensors, - decoder_list = sensor_list_1, - message = message) - - self.process_into_vars(decoder_list = msg_list_1, - message = message, - start_from_byte = len(sensor_list_1) * DataTypes.F32.size()) - - self.process_into_dict(dict_to_update = self.td_pressure_sensors, - decoder_list = sensor_list_2, - message = message, - start_from_byte = (len(sensor_list_1) + len(msg_list_1)) * DataTypes.F32.size()) - + self.process_into_vars(decoder_list = msg_list, message = message) self.td_pressure_timestamp = timestamp self.handler_execution_times.append((timestamp, message, time.perf_counter() - start)) + +# ============================================================ Overrides and Requests ============================================================ def cmd_pressure_sensors_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: """ Constructs and sends the measured pressure sensors broadcast interval override command