Index: leahi_dialin/td/modules/air_trap.py =================================================================== diff -u -r1f2bf6d939eb4033dbedb7d7005494cc12fccbc6 -r3f4937e339925dde0b95f08e49969f8983c5cba4 --- leahi_dialin/td/modules/air_trap.py (.../air_trap.py) (revision 1f2bf6d939eb4033dbedb7d7005494cc12fccbc6) +++ leahi_dialin/td/modules/air_trap.py (.../air_trap.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 +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 from leahi_dialin.protocols.CAN import CanMessenger, CanChannels @@ -55,7 +55,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, @@ -67,19 +66,94 @@ } } - #: 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 + +# ============================================================ Properties ============================================================ + @property + def air_trap_level_sensors(self) -> dict: + """ + The current 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 current 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) -> int: + """ + Is the Air Trap FW logic is active or not + """ + return self._air_control + + @air_control.setter + def air_control(self, value): + self._air_control = value + + + @property + def air_trap_state(self) -> int: + """ + The current 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 current 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 current 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,33 +167,24 @@ @param message: published air trap data message @return: None """ - 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.U32)) + 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 + +# ============================================================ 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