Index: leahi_dialin/td/modules/pressure_sensors.py =================================================================== diff -u -r60a4cdf7272161c64bb60aac93b26acf50465494 -r3f4937e339925dde0b95f08e49969f8983c5cba4 --- leahi_dialin/td/modules/pressure_sensors.py (.../pressure_sensors.py) (revision 60a4cdf7272161c64bb60aac93b26acf50465494) +++ leahi_dialin/td/modules/pressure_sensors.py (.../pressure_sensors.py) (revision 3f4937e339925dde0b95f08e49969f8983c5cba4) @@ -20,7 +20,7 @@ # 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 MsgIds, 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 @@ -50,7 +50,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, @@ -75,9 +74,37 @@ } } - self.pressure_limits_state = 0 #: Pressure limits state value + self.pressure_limits_state = 0 + +# ============================================================ Properties ============================================================ + @property + def td_pressure_sensors(self) -> dict: + """ + The current Pressure 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", @@ -96,41 +123,28 @@ @param message: published pressure & occlusion data message @return: none """ + 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)) - 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)) - - 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 + +# ============================================================ 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