Index: leahi_dialin/fp/modules/temperatures.py =================================================================== diff -u -r3715028b608b10e1d440a8a738c8a4f70d3d411b -redccc0fd295ef1c384046edbcc3a83901bfc9bc9 --- leahi_dialin/fp/modules/temperatures.py (.../temperatures.py) (revision 3715028b608b10e1d440a8a738c8a4f70d3d411b) +++ leahi_dialin/fp/modules/temperatures.py (.../temperatures.py) (revision edccc0fd295ef1c384046edbcc3a83901bfc9bc9) @@ -45,6 +45,7 @@ fp_enum_repository.FPTemperatureSensorNames.P8_TEMP.name: 0.0, fp_enum_repository.FPTemperatureSensorNames.P13_TEMP.name: 0.0, fp_enum_repository.FPTemperatureSensorNames.P17_TEMP.name: 0.0, + fp_enum_repository.FPTemperatureSensorNames.P46_TEMP.name: 0.0, fp_enum_repository.FPTemperatureSensorNames.P10_TEMP.name: 0.0, fp_enum_repository.FPTemperatureSensorNames.P19_TEMP.name: 0.0, fp_enum_repository.FPTemperatureSensorNames.P7_TEMP.name: 0.0, @@ -72,9 +73,9 @@ 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.P46_TEMP, 'f')) sensor_list.append((fp_enum_repository.FPTemperatureSensorNames.P7_INTERNAL_TEMP, 'f')) sensor_list.append((fp_enum_repository.FPTemperatureSensorNames.P16_INTERNAL_TEMP, 'f')) - sensor_list.append((fp_enum_repository.FPTemperatureSensorNames.P46_TEMP, 'f')) i = 1 for sensor in sensor_list: @@ -152,3 +153,47 @@ override_text = str(sensor_value), logger = self.logger, can_interface = self.can_interface) + + def cmd_temperatures_filtered_value_override(self, sensor_index: int, sensor_value: float, reset: int = NO_RESET) -> int: + """ + Constructs and sends the filtered value override of a temperature sensor. + Constraints: + Must be logged into FP. + Given sensor_index must be one of the sensors listed below. + + @param sensor_index : (int) Index of the sensor + @param sensor_value: (float) Value of the sensor to override + @param reset: (int) whether to reset the override value. The default is NO_RESET + @returns 1 if successful, zero otherwise + """ + + # FP Conductivity Sensors' Temperature Override + if fp_enum_repository.FPTemperatureSensorNames.FIRST_CONDUCTIVITY_SENSOR.value <= sensor_index <= fp_enum_repository.FPTemperatureSensorNames.LAST_CONDUCTIVITY_SENSOR.value: + modified_index = sensor_index - fp_enum_repository.FPTemperatureSensorNames.FIRST_CONDUCTIVITY_SENSOR.value + BETA_IOFP_COND_SENSOR_OFFSET - 1 + msg_id = MsgIds.MSG_ID_FP_FILTERED_COND_SENSOR_TEMPERATURE_OVERRIDE_REQUEST + + # FP Flow Sensors' Temperature Override + elif fp_enum_repository.FPTemperatureSensorNames.FIRST_FLOW_SENSOR.value <= sensor_index <= fp_enum_repository.FPTemperatureSensorNames.LAST_FLOW_SENSOR.value: + modified_index = sensor_index - fp_enum_repository.FPTemperatureSensorNames.FIRST_FLOW_SENSOR.value + msg_id = MsgIds.MSG_ID_FP_FILTERED_FLOW_TEMP_OVERRIDE_REQUEST + + # FP Pressure Sensors' Temperature Override + else: + modified_index = sensor_index - fp_enum_repository.FPTemperatureSensorNames.FIRST_PRESSURE_SENSOR.value + BETA_IOFP_PRES_SENSOR_OFFSET + msg_id = MsgIds.MSG_ID_FP_PRESSURE_SENSOR_FILTER_TEMPERATURE_OVERRIDE_REQUEST + + index = integer_to_bytearray(modified_index) + rst = integer_to_bytearray(reset) + value = float_to_bytearray(sensor_value) + payload = rst + value + index + + sensor_name = fp_enum_repository.FPTemperatureSensorNames(sensor_index).name.split('_')[0] + return cmd_generic_override( + payload=payload, + reset=reset, + channel_id=DenaliChannels.dialin_to_fp_ch_id, + msg_id=msg_id, + entity_name=f'FP {sensor_name} Temperature Sensor filtered temperature', + override_text=str(sensor_value), + logger=self.logger, + can_interface=self.can_interface) \ No newline at end of file