Index: leahi_dialin/dd/modules/temperature_sensors.py =================================================================== diff -u -r6e0b0571d3f4064c8d7bb2b737e326c460780759 -rd27c40205e18118f4689f62463a266da1f91dba6 --- leahi_dialin/dd/modules/temperature_sensors.py (.../temperature_sensors.py) (revision 6e0b0571d3f4064c8d7bb2b737e326c460780759) +++ leahi_dialin/dd/modules/temperature_sensors.py (.../temperature_sensors.py) (revision d27c40205e18118f4689f62463a266da1f91dba6) @@ -19,7 +19,7 @@ from .constants import NO_RESET, RESET from leahi_dialin.common.msg_defs import MsgIds, MsgFieldPositions -from leahi_dialin.common.dd_defs import COND_SENSOR_INDEX_OFFSET, PRES_SENSOR_INDEX_OFFSET, DDTemperaturesNames +from leahi_dialin.common.dd_defs import dd_enum_repository from leahi_dialin.protocols.CAN import DenaliMessage, DenaliChannels from leahi_dialin.utils.base import AbstractSubSystem, publish, DialinEnum from leahi_dialin.utils.checks import check_broadcast_interval_override_ms @@ -39,24 +39,24 @@ # Dictionary of the temperature sensors self.dd_temperatures_timestamp = 0.0 self.dd_temperatures = { - DDTemperaturesNames.D1_TEMP.name: 0.0, - DDTemperaturesNames.D78_TEMP.name: 0.0, - DDTemperaturesNames.D4_TEMP.name: 0.0, - DDTemperaturesNames.D50_TEMP.name: 0.0, - DDTemperaturesNames.BRD_TEMP.name: 0.0, - DDTemperaturesNames.D16_TEMP.name: 0.0, - DDTemperaturesNames.D28_TEMP.name: 0.0, - DDTemperaturesNames.D30_TEMP.name: 0.0, - DDTemperaturesNames.D44_TEMP.name: 0.0, - DDTemperaturesNames.D75_TEMP.name: 0.0, - DDTemperaturesNames.D4_AVG_TEMP.name: 0.0, - DDTemperaturesNames.D50_AVG_TEMP.name: 0.0, - DDTemperaturesNames.D28_AVG_TEMP.name: 0.0, - DDTemperaturesNames.D30_AVG_TEMP.name: 0.0, - DDTemperaturesNames.D66_TEMP.name: 0.0, - DDTemperaturesNames.D51_TEMP.name: 0.0, - DDTemperaturesNames.D18_TEMP.name: 0.0, - DDTemperaturesNames.D41_TEMP.name: 0.0 + dd_enum_repository.DDTemperatureSensorNames.D1_TEMP.name: 0.0, + dd_enum_repository.DDTemperatureSensorNames.D78_TEMP.name: 0.0, + dd_enum_repository.DDTemperatureSensorNames.D4_TEMP.name: 0.0, + dd_enum_repository.DDTemperatureSensorNames.D50_TEMP.name: 0.0, + dd_enum_repository.DDTemperatureSensorNames.BRD_TEMP.name: 0.0, + dd_enum_repository.DDTemperatureSensorNames.D16_TEMP.name: 0.0, + dd_enum_repository.DDTemperatureSensorNames.D28_TEMP.name: 0.0, + dd_enum_repository.DDTemperatureSensorNames.D30_TEMP.name: 0.0, + dd_enum_repository.DDTemperatureSensorNames.D44_TEMP.name: 0.0, + dd_enum_repository.DDTemperatureSensorNames.D75_TEMP.name: 0.0, + dd_enum_repository.DDTemperatureSensorNames.D4_AVG_TEMP.name: 0.0, + dd_enum_repository.DDTemperatureSensorNames.D50_AVG_TEMP.name: 0.0, + dd_enum_repository.DDTemperatureSensorNames.D28_AVG_TEMP.name: 0.0, + dd_enum_repository.DDTemperatureSensorNames.D30_AVG_TEMP.name: 0.0, + dd_enum_repository.DDTemperatureSensorNames.D66_TEMP.name: 0.0, + dd_enum_repository.DDTemperatureSensorNames.D51_TEMP.name: 0.0, + dd_enum_repository.DDTemperatureSensorNames.D18_TEMP.name: 0.0, + dd_enum_repository.DDTemperatureSensorNames.D41_TEMP.name: 0.0 } if self.can_interface is not None: @@ -73,61 +73,61 @@ @param message: published DD temperature sensors data message @returns none """ - self.dd_temperatures[DDTemperaturesNames.D1_TEMP.name] = struct.unpack('f', bytearray( + self.dd_temperatures[dd_enum_repository.DDTemperatureSensorNames.D1_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] - self.dd_temperatures[DDTemperaturesNames.D78_TEMP.name] = struct.unpack('f', bytearray( + self.dd_temperatures[dd_enum_repository.DDTemperatureSensorNames.D78_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] - self.dd_temperatures[DDTemperaturesNames.D4_TEMP.name] = struct.unpack('f', bytearray( + self.dd_temperatures[dd_enum_repository.DDTemperatureSensorNames.D4_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_3:MsgFieldPositions.END_POS_FIELD_3]))[0] - self.dd_temperatures[DDTemperaturesNames.D50_TEMP.name] = struct.unpack('f', bytearray( + self.dd_temperatures[dd_enum_repository.DDTemperatureSensorNames.D50_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4]))[0] - self.dd_temperatures[DDTemperaturesNames.BRD_TEMP.name] = struct.unpack('f', bytearray( + self.dd_temperatures[dd_enum_repository.DDTemperatureSensorNames.BRD_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5]))[0] - self.dd_temperatures[DDTemperaturesNames.D16_TEMP.name] = struct.unpack('f', bytearray( + self.dd_temperatures[dd_enum_repository.DDTemperatureSensorNames.D16_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_6:MsgFieldPositions.END_POS_FIELD_6]))[0] - self.dd_temperatures[DDTemperaturesNames.D28_TEMP.name] = struct.unpack('f', bytearray( + self.dd_temperatures[dd_enum_repository.DDTemperatureSensorNames.D28_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_7:MsgFieldPositions.END_POS_FIELD_7]))[0] - self.dd_temperatures[DDTemperaturesNames.D30_TEMP.name] = struct.unpack('f', bytearray( + self.dd_temperatures[dd_enum_repository.DDTemperatureSensorNames.D30_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_8:MsgFieldPositions.END_POS_FIELD_8]))[0] - self.dd_temperatures[DDTemperaturesNames.D44_TEMP.name] = struct.unpack('f', bytearray( + self.dd_temperatures[dd_enum_repository.DDTemperatureSensorNames.D44_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_9:MsgFieldPositions.END_POS_FIELD_9]))[0] - self.dd_temperatures[DDTemperaturesNames.D75_TEMP.name] = struct.unpack('f', bytearray( + self.dd_temperatures[dd_enum_repository.DDTemperatureSensorNames.D75_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_10:MsgFieldPositions.END_POS_FIELD_10]))[0] - self.dd_temperatures[DDTemperaturesNames.D4_AVG_TEMP.name] = struct.unpack('f', bytearray( + self.dd_temperatures[dd_enum_repository.DDTemperatureSensorNames.D4_AVG_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_11:MsgFieldPositions.END_POS_FIELD_11]))[0] - self.dd_temperatures[DDTemperaturesNames.D50_AVG_TEMP.name] = struct.unpack('f', bytearray( + self.dd_temperatures[dd_enum_repository.DDTemperatureSensorNames.D50_AVG_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_12:MsgFieldPositions.END_POS_FIELD_12]))[0] - self.dd_temperatures[DDTemperaturesNames.D28_AVG_TEMP.name] = struct.unpack('f', bytearray( + self.dd_temperatures[dd_enum_repository.DDTemperatureSensorNames.D28_AVG_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_13:MsgFieldPositions.END_POS_FIELD_13]))[0] - self.dd_temperatures[DDTemperaturesNames.D30_AVG_TEMP.name] = struct.unpack('f', bytearray( + self.dd_temperatures[dd_enum_repository.DDTemperatureSensorNames.D30_AVG_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_14:MsgFieldPositions.END_POS_FIELD_14]))[0] - self.dd_temperatures[DDTemperaturesNames.D9_TEMP.name] = struct.unpack('f', bytearray( + self.dd_temperatures[dd_enum_repository.DDTemperatureSensorNames.D9_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_15:MsgFieldPositions.END_POS_FIELD_15]))[0] - self.dd_temperatures[DDTemperaturesNames.D66_TEMP.name] = struct.unpack('f', bytearray( + self.dd_temperatures[dd_enum_repository.DDTemperatureSensorNames.D66_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_16:MsgFieldPositions.END_POS_FIELD_16]))[0] - self.dd_temperatures[DDTemperaturesNames.D51_TEMP.name] = struct.unpack('f', bytearray( + self.dd_temperatures[dd_enum_repository.DDTemperatureSensorNames.D51_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_17:MsgFieldPositions.END_POS_FIELD_17]))[0] - self.dd_temperatures[DDTemperaturesNames.D18_TEMP.name] = struct.unpack('f', bytearray( + self.dd_temperatures[dd_enum_repository.DDTemperatureSensorNames.D18_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_18:MsgFieldPositions.END_POS_FIELD_18]))[0] - self.dd_temperatures[DDTemperaturesNames.D41_TEMP.name] = struct.unpack('f', bytearray( + self.dd_temperatures[dd_enum_repository.DDTemperatureSensorNames.D41_TEMP.name] = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_19:MsgFieldPositions.END_POS_FIELD_19]))[0] self.dd_temperatures_timestamp = timestamp @@ -184,16 +184,16 @@ value = float_to_bytearray(sensor_value) # DD Conductivity Sensors' Temperature Reading Override - if DDTemperaturesNames.D16_TEMP.value <= sensor_index <= DDTemperaturesNames.D75_TEMP.value: - index = integer_to_bytearray((sensor_index - COND_SENSOR_INDEX_OFFSET)) + if dd_enum_repository.DDTemperatureSensorNames.FIRST_CONDUCTIVITY_SENSOR.value <= sensor_index <= dd_enum_repository.DDTemperatureSensorNames.LAST_CONDUCTIVITY_SENSOR.value: + index = integer_to_bytearray((sensor_index - dd_enum_repository.DDTemperatureSensorNames.FIRST_CONDUCTIVITY_SENSOR.value)) payload = rst + value + index message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dd_ch_id, message_id=MsgIds.MSG_ID_DD_CONDUCTIVITY_SENSOR_TEMPERATURE_OVERRIDE_REQUEST.value, payload=payload) # DD Pressure Sensors' Temperature Reading Override - elif DDTemperaturesNames.D9_TEMP.value <= sensor_index < DDTemperaturesNames.NUM_OF_TEMP_SENSORS.value: - index = integer_to_bytearray((sensor_index - PRES_SENSOR_INDEX_OFFSET)) + elif dd_enum_repository.DDTemperatureSensorNames.FIRST_PRESSURE_SENSOR.value <= sensor_index <= dd_enum_repository.DDTemperatureSensorNames.LAST_PRESSURE_SENSOR.value: + index = integer_to_bytearray((sensor_index - dd_enum_repository.DDTemperatureSensorNames.FIRST_PRESSURE_SENSOR.value)) payload = rst + value + index message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dd_ch_id, message_id=MsgIds.MSG_ID_DD_PRESSURE_SENSOR_TEMPERATURE_OVERRIDE_REQUEST.value, @@ -207,7 +207,7 @@ message_id=MsgIds.MSG_ID_DD_TEMPERATURE_SENSOR_MEASURED_TEMPERATURE_OVERRIDE_REQUEST.value, payload=payload) - self.logger.debug("Setting sensor {} to {} C".format(DDTemperaturesNames(sensor_index).name, sensor_value)) + self.logger.debug("Setting sensor {} to {} C".format(dd_enum_repository.DDTemperatureSensorNames(sensor_index).name, sensor_value)) # Send message received_message = self.can_interface.send(message) @@ -327,15 +327,15 @@ Constraints: Must be logged into DD. - @param sensor: unsigned int - sensor ID, use the index of DDTemperaturesNames + @param sensor: unsigned int - sensor ID, use the index of dd_enum_repository.DDTemperatureSensorNames @param temperature: float - temperature to override the sensor with @param reset: integer - 1 to reset a previous override, 0 to override @return: 1 if successful, zero otherwise """ rst = integer_to_bytearray(reset) tmp = float_to_bytearray(temperature) - idx = integer_to_bytearray(sensor - PRES_SENSOR_INDEX_OFFSET) + idx = integer_to_bytearray(sensor - dd_enum_repository.DDTemperatureSensorNames.FIRST_PRESSURE_SENSOR.value) payload = rst + tmp + idx message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_dd_ch_id,