Index: leahi_dialin/dd/modules/levels.py =================================================================== diff -u -r5c1132f5aadff6082afa56588ad1f4a64f828cd9 -r6caa49d072aceb2655d605de5d2eea52ab1a8911 --- leahi_dialin/dd/modules/levels.py (.../levels.py) (revision 5c1132f5aadff6082afa56588ad1f4a64f828cd9) +++ leahi_dialin/dd/modules/levels.py (.../levels.py) (revision 6caa49d072aceb2655d605de5d2eea52ab1a8911) @@ -50,18 +50,45 @@ function = self._handler_levels_sync) self.dd_levels_timestamp = 0 #: The timestamp of the latest message - - #: The Level Sensors data in dictionary format self.dd_level_sensors = { dd_enum_repository.DDLevelSensorNames.D46_LEVEL.name: 0, dd_enum_repository.DDLevelSensorNames.D63_LEVEL.name: 0, dd_enum_repository.DDLevelSensorNames.D98_LEVEL.name: 0, dd_enum_repository.DDLevelSensorNames.D6_LEVEL.name: 0, } - self.dd_bicarb_level = 0 #: The Bicarb level + + self.dd_bicarb_level = 0 self.handler_execution_times = [] + +# ============================================================ Properties ============================================================ + @property + def dd_level_sensors(self) -> dict: + """ + The Level Sensors data + """ + return self._level_sensors + + @dd_level_sensors.setter + def dd_level_sensors(self, value): + self._level_sensors = value + + + @property + def dd_bicarb_level(self) -> int: + """ + The Bicarb level + """ + return self._bicarb_level + + @dd_bicarb_level.setter + def dd_bicarb_level(self, value): + self._bicarb_level = value + + + +# ============================================================ Handlers ============================================================ @publish(["msg_id_dd_level_data", "dd_level_sensors", "dd_bicarb_level", "dd_levels_timestamp"]) def _handler_levels_sync(self, message, timestamp=0.0): """ @@ -71,24 +98,20 @@ @returns none """ start = time.perf_counter() - sensor_list =[] - sensor_list.append((dd_enum_repository.DDLevelSensorNames.D46_LEVEL.name, DataTypes.U32)) - sensor_list.append((dd_enum_repository.DDLevelSensorNames.D63_LEVEL.name, DataTypes.U32)) - sensor_list.append((dd_enum_repository.DDLevelSensorNames.D98_LEVEL.name, DataTypes.U32)) - sensor_list.append((dd_enum_repository.DDLevelSensorNames.D6_LEVEL.name, DataTypes.U32)) msg_list =[] - msg_list.append(('self.dd_bicarb_level', DataTypes.U32)) + msg_list.append((self.dd_level_sensors, dd_enum_repository.DDLevelSensorNames.D46_LEVEL.name, DataTypes.U32)) + msg_list.append((self.dd_level_sensors, dd_enum_repository.DDLevelSensorNames.D63_LEVEL.name, DataTypes.U32)) + msg_list.append((self.dd_level_sensors, dd_enum_repository.DDLevelSensorNames.D98_LEVEL.name, DataTypes.U32)) + msg_list.append((self.dd_level_sensors, dd_enum_repository.DDLevelSensorNames.D6_LEVEL.name, DataTypes.U32)) + msg_list.append((type(self).dd_bicarb_level, DataTypes.U32)) - self.process_into_dict(dict_to_update = self.dd_level_sensors, - decoder_list = sensor_list, - message = message) - self.process_into_vars(decoder_list = msg_list, - message = message, - start_from_byte = len(sensor_list) * DataTypes.U32.size()) + self.process_into_vars(decoder_list = msg_list, message = message) self.dd_levels_timestamp = timestamp self.handler_execution_times.append((timestamp, message, time.perf_counter() - start)) + +# ============================================================ Overrides and Requests ============================================================ def cmd_levels_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: """ Constructs and sends dd levels broadcast time interval override.