Index: leahi_dialin/fp/modules/temperatures.py =================================================================== diff -u -r40186f183b0331f4c76c24c1e5385539ce603402 -r27ba75c69e57738042f0790093dcd90ec114c654 --- leahi_dialin/fp/modules/temperatures.py (.../temperatures.py) (revision 40186f183b0331f4c76c24c1e5385539ce603402) +++ leahi_dialin/fp/modules/temperatures.py (.../temperatures.py) (revision 27ba75c69e57738042f0790093dcd90ec114c654) @@ -52,6 +52,8 @@ fp_enum_repository.FPTemperatureSensorNames.P19_TEMP.name: 0.0, fp_enum_repository.FPTemperatureSensorNames.P7_TEMP.name: 0.0, fp_enum_repository.FPTemperatureSensorNames.P16_TEMP.name: 0.0, + fp_enum_repository.FPTemperatureSensorNames.P7_INTERNAL_TEMP.name: 0.0, + fp_enum_repository.FPTemperatureSensorNames.P16_INTERNAL_TEMP.name: 0.0, } if GlobalVariables().HW_BETA_1_9: self.fp_temperatures[fp_enum_repository.FPTemperatureSensorNames.P46_TEMP.name] = 0.0 @@ -65,34 +67,29 @@ @param message: published FP temperature sensors data message @returns none """ - self.fp_temperatures[fp_enum_repository.FPTemperatureSensorNames.M3_TEMP.name] = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] - - self.fp_temperatures[fp_enum_repository.FPTemperatureSensorNames.P10_TEMP.name] = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] - - self.fp_temperatures[fp_enum_repository.FPTemperatureSensorNames.P19_TEMP.name] = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_3:MsgFieldPositions.END_POS_FIELD_3]))[0] - - self.fp_temperatures[fp_enum_repository.FPTemperatureSensorNames.P8_TEMP.name] = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4]))[0] - - self.fp_temperatures[fp_enum_repository.FPTemperatureSensorNames.P13_TEMP.name] = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5]))[0] - - self.fp_temperatures[fp_enum_repository.FPTemperatureSensorNames.P17_TEMP.name] = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_6:MsgFieldPositions.END_POS_FIELD_6]))[0] - - self.fp_temperatures[fp_enum_repository.FPTemperatureSensorNames.P7_TEMP.name] = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_7:MsgFieldPositions.END_POS_FIELD_7]))[0] - - self.fp_temperatures[fp_enum_repository.FPTemperatureSensorNames.P16_TEMP.name] = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_8:MsgFieldPositions.END_POS_FIELD_8]))[0] - + sensor_list =[] + sensor_list.append((fp_enum_repository.FPTemperatureSensorNames.M3_TEMP, 'f')) + sensor_list.append((fp_enum_repository.FPTemperatureSensorNames.P10_TEMP, 'f')) + sensor_list.append((fp_enum_repository.FPTemperatureSensorNames.P19_TEMP, 'f')) + sensor_list.append((fp_enum_repository.FPTemperatureSensorNames.P8_TEMP, 'f')) + sensor_list.append((fp_enum_repository.FPTemperatureSensorNames.P13_TEMP, 'f')) + sensor_list.append((fp_enum_repository.FPTemperatureSensorNames.P17_TEMP, 'f')) + sensor_list.append((fp_enum_repository.FPTemperatureSensorNames.P7_TEMP, 'f')) + sensor_list.append((fp_enum_repository.FPTemperatureSensorNames.P16_TEMP, 'f')) + sensor_list.append((fp_enum_repository.FPTemperatureSensorNames.P7_INTERNAL_TEMP, 'f')) + sensor_list.append((fp_enum_repository.FPTemperatureSensorNames.P16_INTERNAL_TEMP, 'f')) if GlobalVariables().HW_BETA_1_9: - self.fp_temperatures[fp_enum_repository.FPTemperatureSensorNames.P46_TEMP.name] = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_9:MsgFieldPositions.END_POS_FIELD_9]))[0] + if fp_enum_repository.FPTemperatureSensorNames.P46_TEMP.name not in self.fp_enum_repository: + self.fp_temperatures[fp_enum_repository.FPTemperatureSensorNames.P46_TEMP.name] = 0.0 + sensor_list.append((fp_enum_repository.FPTemperatureSensorNames.P46_TEMP, 'f')) + i = 1 + for sensor in sensor_list: + start_pos = eval(f'MsgFieldPositions.START_POS_FIELD_{i}') + end_pos = eval(f'MsgFieldPositions.END_POS_FIELD_{i}') + self.fp_temperatures[sensor[0].name] = struct.unpack(sensor[1], bytearray(message['message'][start_pos:end_pos]))[0] + i += 1 + self.fp_temperature_sensors_timestamp = timestamp def cmd_temperatures_data_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: