Index: leahi_dialin/fp/modules/temperatures.py =================================================================== diff -u -r26c5804aa5c0468c7bdf90371091860ed208ab72 -rc4cebdd93b7cafef3d4155c911d724be78d085a8 --- leahi_dialin/fp/modules/temperatures.py (.../temperatures.py) (revision 26c5804aa5c0468c7bdf90371091860ed208ab72) +++ leahi_dialin/fp/modules/temperatures.py (.../temperatures.py) (revision c4cebdd93b7cafef3d4155c911d724be78d085a8) @@ -119,7 +119,10 @@ @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 + rst = integer_to_bytearray(reset) + value = float_to_bytearray(sensor_value) + + # 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 msg_id = MsgIds.MSG_ID_FP_CONDUCTIVITY_TEMP_OVERRIDE_REQUEST @@ -149,3 +152,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