Index: leahi_dialin/td/modules/pressure_sensors.py =================================================================== diff -u -r4b63107021e34fd1968e02f9d72bbb31f38fefd7 -r71975b0c600fd9bd4b2a43cc707e6b0a2012f8b0 --- leahi_dialin/td/modules/pressure_sensors.py (.../pressure_sensors.py) (revision 4b63107021e34fd1968e02f9d72bbb31f38fefd7) +++ leahi_dialin/td/modules/pressure_sensors.py (.../pressure_sensors.py) (revision 71975b0c600fd9bd4b2a43cc707e6b0a2012f8b0) @@ -18,7 +18,7 @@ from leahi_dialin.common.constants import RESET, NO_RESET from leahi_dialin.common.msg_defs import MsgIds, MsgFieldPositions -from leahi_dialin.common.td_defs import TDPressureSensorNames, TDPressureSensorAttributes +from leahi_dialin.common.td_defs import td_enum_repository from leahi_dialin.common.override_templates import cmd_generic_broadcast_interval_override, cmd_generic_override from leahi_dialin.protocols.CAN import DenaliChannels from leahi_dialin.utils.base import AbstractSubSystem, publish @@ -46,20 +46,20 @@ self._handler_pressure_sync) self.td_pressure_timestamp = 0.0 self.td_pressure_sensors = { - TDPressureSensorNames.H2_PRES.name: { - TDPressureSensorAttributes.PRES.name: 0.0, - TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name: 0.0, - TDPressureSensorAttributes.PRES_LIMIT_MIN.name: 0, - TDPressureSensorAttributes.PRES_LIMIT_MAX.name: 0 + td_enum_repository.TDPressureSensorNames.H2_PRES.name: { + td_enum_repository.TDPressureSensorAttributes.PRES.name: 0.0, + td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name: 0.0, + td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name: 0, + td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name: 0 }, - TDPressureSensorNames.H14_PRES.name: { - TDPressureSensorAttributes.PRES.name: 0.0, - TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name: 0.0, - TDPressureSensorAttributes.PRES_LIMIT_MIN.name: 0, - TDPressureSensorAttributes.PRES_LIMIT_MAX.name: 0 + td_enum_repository.TDPressureSensorNames.H14_PRES.name: { + td_enum_repository.TDPressureSensorAttributes.PRES.name: 0.0, + td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name: 0.0, + td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name: 0, + td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name: 0 }, - TDPressureSensorNames.H23_PRES.name: { - TDPressureSensorAttributes.PRES.name : 0.0 + td_enum_repository.TDPressureSensorNames.H23_PRES.name: { + td_enum_repository.TDPressureSensorAttributes.PRES.name : 0.0 } } self.pressure_limits_state = 0 @@ -113,22 +113,44 @@ baro = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_13:MsgFieldPositions.END_POS_FIELD_13])) - self.td_pressure_sensors[TDPressureSensorNames.H2_PRES.name][TDPressureSensorAttributes.PRES.name] = art[0] - self.td_pressure_sensors[TDPressureSensorNames.H14_PRES.name][TDPressureSensorAttributes.PRES.name] = ven[0] + self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES.name] = art[0] + self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES.name] = ven[0] self.pressure_limits_state = pls[0] - self.td_pressure_sensors[TDPressureSensorNames.H2_PRES.name][TDPressureSensorAttributes.PRES_LIMIT_MIN.name] = apl[0] - self.td_pressure_sensors[TDPressureSensorNames.H2_PRES.name][TDPressureSensorAttributes.PRES_LIMIT_MAX.name] = apu[0] - self.td_pressure_sensors[TDPressureSensorNames.H14_PRES.name][TDPressureSensorAttributes.PRES_LIMIT_MIN.name] = vpl[0] - self.td_pressure_sensors[TDPressureSensorNames.H14_PRES.name][TDPressureSensorAttributes.PRES_LIMIT_MAX.name] = vpu[0] - self.td_pressure_sensors[TDPressureSensorNames.H2_PRES.name][TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name] = lfa[0] - self.td_pressure_sensors[TDPressureSensorNames.H14_PRES.name][TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name] = lfv[0] + self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name] = apl[0] + self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name] = apu[0] + self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name] = vpl[0] + self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name] = vpu[0] + self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name] = lfa[0] + self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name] = lfv[0] self.tmp_pressure = tps[0] self.tmp_min_limit = tmin[0] self.tmp_max_limit = tmax[0] - self.td_pressure_sensors[TDPressureSensorNames.H23_PRES.name][TDPressureSensorAttributes.PRES.name] = baro[0] + self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H23_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES.name] = baro[0] self.td_pressure_timestamp = timestamp + 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 + Constraints: + Must be logged into TD. + Given interval must be non-zero and a multiple of the TD general task interval (50 ms). + + @param ms: integer - interval (in ms) to override with + @param reset: integer - 1 to reset a previous override, 0 to override + @return: 1 if successful, zero otherwise + """ + + return cmd_generic_broadcast_interval_override( + ms = ms, + reset = reset, + channel_id = DenaliChannels.dialin_to_td_ch_id, + msg_id = MsgIds.MSG_ID_TD_PRESSURE_PUBLISH_INTERVAL_OVERRIDE_REQUEST, + module_name = 'TD pressure sensors', + logger = self.logger, + can_interface = self.can_interface) + + def cmd_pressure_sensor_override(self, sensor: int, pressure: float, reset: int = NO_RESET) -> int: """ Constructs and sends the measured pressure sensor override command @@ -187,25 +209,3 @@ logger = self.logger, can_interface = self.can_interface ) - - - 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 - Constraints: - Must be logged into TD. - Given interval must be non-zero and a multiple of the TD general task interval (50 ms). - - @param ms: integer - interval (in ms) to override with - @param reset: integer - 1 to reset a previous override, 0 to override - @return: 1 if successful, zero otherwise - """ - - return cmd_generic_broadcast_interval_override( - ms = ms, - reset = reset, - channel_id = DenaliChannels.dialin_to_td_ch_id, - msg_id = MsgIds.MSG_ID_TD_PRESSURE_PUBLISH_INTERVAL_OVERRIDE_REQUEST, - module_name = 'TD pressure sensors', - logger = self.logger, - can_interface = self.can_interface)