Index: leahi_dialin/td/modules/air_trap.py =================================================================== diff -u -rdff2704b529bfbb67b2e8c822e69e3df7d955153 -r6caa49d072aceb2655d605de5d2eea52ab1a8911 --- leahi_dialin/td/modules/air_trap.py (.../air_trap.py) (revision dff2704b529bfbb67b2e8c822e69e3df7d955153) +++ leahi_dialin/td/modules/air_trap.py (.../air_trap.py) (revision 6caa49d072aceb2655d605de5d2eea52ab1a8911) @@ -53,7 +53,6 @@ self.td_air_trap_timestamp = 0.0 #: The timestamp of the last message - #: The Air Trap Level Sensors data in dictionary format self.air_trap_level_sensors = { td_enum_repository.TDAirTrapLevelSensorNames.H17_LEVEL.name: { td_enum_repository.TDAirTrapLevelSensorAttributes.LEVEL.name: self.AIR_DETECTED_AT_LEVEL, @@ -65,20 +64,95 @@ } } - #: The Air Trap Valves data in dictionary format self.air_trap_valve_states = { td_enum_repository.TDAirTrapValveNames.H13_VALV.name: 0, td_enum_repository.TDAirTrapValveNames.H20_VALV.name: 0 } - self.air_control = 0 #: Is the Air Trap FW logic is active or not - self.airTrapState = 0 #: The Air Trap's State value + self.air_control = 0 + self.air_trap_state = 0 + # TODO remove after testing - self.AirPumpLowerPowerLevel = 0 - # TODO remove after testing - self.AirPumpRaisePowerLevel = 0 + self.air_pump_lower_power = 0 + self.air_pump_raise_power = 0 self.handler_execution_times = [] + +# ============================================================ Properties ============================================================ + @property + def air_trap_level_sensors(self) -> dict: + """ + The Air Trap level sensors data + """ + return self._air_trap_level_sensors + + @air_trap_level_sensors.setter + def air_trap_level_sensors(self, value): + self._air_trap_level_sensors = value + + + @property + def air_trap_valve_states(self) -> dict: + """ + The Air Trap valves data + """ + return self._air_trap_valve_states + + @air_trap_valve_states.setter + def air_trap_valve_states(self, value): + self._air_trap_valve_states = value + + + @property + def air_control(self) -> bool: + """ + Is the Air Trap FW logic is active or not + """ + return self._air_control + + @air_control.setter + def air_control(self, value:bool): + self._air_control = value + + + @property + def air_trap_state(self) -> int: + """ + The Air Trap state value + """ + return self._air_trap_state + + @air_trap_state.setter + def air_trap_state(self, value): + self._air_trap_state = value + + + @property + def air_pump_lower_power(self) -> dict: + """ + The Air Pump lower power value + """ + return self._air_pump_lower_power + + @air_pump_lower_power.setter + def air_pump_lower_power(self, value): + self._air_pump_lower_power = value + + + @property + def air_pump_raise_power(self) -> dict: + """ + The Air Pump raise power value + """ + return self._air_pump_raise_power + + @air_pump_raise_power.setter + def air_pump_raise_power(self, value): + self._air_pump_raise_power = value + + + +# ============================================================ Handlers ============================================================ @publish(["msg_id_td_air_trap_data", "air_trap_level_sensors", "air_trap_valve_states", @@ -93,34 +167,25 @@ @return: None """ start = time.perf_counter() - sensor_list_1 =[] - sensor_list_1.append((td_enum_repository.TDAirTrapLevelSensorNames.H17_LEVEL.name, td_enum_repository.TDAirTrapLevelSensorAttributes.LEVEL.name, DataTypes.U32)) - sensor_list_1.append((td_enum_repository.TDAirTrapLevelSensorNames.H16_LEVEL.name, td_enum_repository.TDAirTrapLevelSensorAttributes.LEVEL.name, DataTypes.U32)) - sensor_list_1.append((td_enum_repository.TDAirTrapLevelSensorNames.H17_LEVEL.name, td_enum_repository.TDAirTrapLevelSensorAttributes.RAW.name, DataTypes.U32)) - sensor_list_1.append((td_enum_repository.TDAirTrapLevelSensorNames.H16_LEVEL.name, td_enum_repository.TDAirTrapLevelSensorAttributes.RAW.name, DataTypes.U32)) - sensor_list_2 =[] - sensor_list_2.append((td_enum_repository.TDAirTrapValveNames.H13_VALV.name, DataTypes.U32)) - sensor_list_2.append((td_enum_repository.TDAirTrapValveNames.H20_VALV.name, DataTypes.U32)) msg_list =[] - msg_list.append(('self.air_control', DataTypes.U32)) - msg_list.append(('self.airTrapState', DataTypes.U32)) - msg_list.append(('self.AirPumpLowerPowerLevel', DataTypes.U32)) - msg_list.append(('self.AirPumpRaisePowerLevel', DataTypes.U32)) + msg_list.append((self.air_trap_level_sensors, td_enum_repository.TDAirPumpNames.H17_LEVEL.name, td_enum_repository.TDAirPumpAttributes.LEVEL.name, DataTypes.U32)) + msg_list.append((self.air_trap_level_sensors, td_enum_repository.TDAirPumpNames.H16_LEVEL.name, td_enum_repository.TDAirPumpAttributes.LEVEL.name, DataTypes.U32)) + msg_list.append((self.air_trap_level_sensors, td_enum_repository.TDAirPumpNames.H17_LEVEL.name, td_enum_repository.TDAirPumpAttributes.RAW.name, DataTypes.U32)) + msg_list.append((self.air_trap_level_sensors, td_enum_repository.TDAirPumpNames.H16_LEVEL.name, td_enum_repository.TDAirPumpAttributes.RAW.name, DataTypes.U32)) + msg_list.append((self.air_trap_valve_states, td_enum_repository.TDAirPumpNames.H13_VALV.name, DataTypes.U32)) + msg_list.append((self.air_trap_valve_states, td_enum_repository.TDAirPumpNames.H20_VALV.name, DataTypes.U32)) + msg_list.append((type(self).air_control, DataTypes.BOOL)) + msg_list.append((type(self).airTrapState, DataTypes.U32)) + msg_list.append((type(self).AirPumpLowerPowerLevel, DataTypes.U32)) + msg_list.append((type(self).AirPumpRaisePowerLevel, DataTypes.U32)) - self.process_into_dict(dict_to_update = self.air_trap_level_sensors, - decoder_list = sensor_list_1, - message = message) - self.process_into_dict(dict_to_update = self.air_trap_valve_states, - decoder_list = sensor_list_2, - message = message, - start_from_byte = len(sensor_list_1) * DataTypes.U32.size()) - self.process_into_vars(decoder_list = msg_list, - message = message, - start_from_byte = (len(sensor_list_1) + len(sensor_list_2)) * DataTypes.U32.size()) + self.process_into_vars(decoder_list = msg_list, message = message) self.td_air_trap_timestamp = timestamp self.handler_execution_times.append((timestamp, message, time.perf_counter() - start)) + +# ============================================================ Overrides and Requests ============================================================ def cmd_air_trap_data_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: """ Constructs and sends the air trap data broadcast interval override command