Index: leahi_dialin/fp/modules/conductivity_sensors.py =================================================================== diff -u -rf03c9a32180573f2430105ad69eb91d9f597a96b -r34b64ff2d8a64f4b7b60b80bb7cf4c36845e5943 --- leahi_dialin/fp/modules/conductivity_sensors.py (.../conductivity_sensors.py) (revision f03c9a32180573f2430105ad69eb91d9f597a96b) +++ leahi_dialin/fp/modules/conductivity_sensors.py (.../conductivity_sensors.py) (revision 34b64ff2d8a64f4b7b60b80bb7cf4c36845e5943) @@ -8,18 +8,20 @@ # @file conductivity_sensors.py # # @author (last) Zoltan Miskolci -# @date (last) 09-Jan-2026 +# @date (last) 05-May-2026 # @author (original) Quang Nguyen # @date (original) 20-Jul-2020 # ############################################################################ -import struct +# Module imports from logging import Logger +# Project imports from leahi_dialin.common.constants import NO_RESET from leahi_dialin.common import fp_enum_repository from leahi_dialin.common.fp_defs import BETA_IOFP_COND_SENSOR_OFFSET +from leahi_dialin.common.generic_defs import DataTypes from leahi_dialin.common.msg_defs import MsgIds, MsgFieldPositions from leahi_dialin.common.override_templates import cmd_generic_broadcast_interval_override, cmd_generic_override from leahi_dialin.protocols.CAN import DenaliCanMessenger, DenaliChannels @@ -43,11 +45,13 @@ self.logger = logger if self.can_interface is not None: - channel_id = DenaliChannels.fp_sync_broadcast_ch_id - self.can_interface.register_receiving_publication_function(channel_id, MsgIds.MSG_ID_FP_CONDUCTIVITY_DATA.value, - self._handler_conductivity_sensors_sync) - self.can_interface.register_receiving_publication_function(channel_id, MsgIds.MSG_ID_FP_RO_REJECTION_RATIO_DATA.value, - self._handler_ro_rejection_ratio_sync) + self.can_interface.register_receiving_publication_function(channel_id = DenaliChannels.fp_sync_broadcast_ch_id, + message_id = MsgIds.MSG_ID_FP_CONDUCTIVITY_DATA.value, + function = self._handler_conductivity_sensors_sync) + + self.can_interface.register_receiving_publication_function(channel_id = DenaliChannels.fp_sync_broadcast_ch_id, + message_id = MsgIds.MSG_ID_FP_RO_REJECTION_RATIO_DATA.value, + function = self._handler_ro_rejection_ratio_sync) self.fp_conductivity_timestamp = 0.0 #: The timestamp of the last Conductivity data message self.ro_rejection_ratio_timestamp = 0.0 #: The timestamp of the last RO Rejection Ratio data message @@ -77,11 +81,13 @@ @param message: published conductivity sensor data message @return: None """ - self.fp_conductivity[fp_enum_repository.FPConductivitySensorNames.P9_COND.name] = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] - self.fp_conductivity[fp_enum_repository.FPConductivitySensorNames.P18_COND.name] = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] + sensor_list =[] + sensor_list.append((fp_enum_repository.FPConductivitySensorNames.P9_COND.name, DataTypes.F32)) + sensor_list.append((fp_enum_repository.FPConductivitySensorNames.P18_COND.name, DataTypes.F32)) + self.process_into_dict(dict_to_update = self.fp_conductivity, + decoder_list = sensor_list, + message = message) self.fp_conductivity_timestamp = timestamp @@ -94,17 +100,16 @@ @param message: Published RO Rejection Ratio data message @return: None """ - self.ro_rejection_ratio[fp_enum_repository.FPRORejectionRatioNames.RAW_RO_REJECTION_RATIO.name] = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] - self.ro_rejection_ratio[fp_enum_repository.FPRORejectionRatioNames.RAW_RO_REJECTION_RATIO_TANK_FILL.name] = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] - self.ro_rejection_ratio[fp_enum_repository.FPRORejectionRatioNames.AVG_RO_REJECTION_RATIO.name] = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_3:MsgFieldPositions.END_POS_FIELD_3]))[0] - self.ro_rejection_ratio[fp_enum_repository.FPRORejectionRatioNames.AVG_RO_REJECTION_RATIO_TANK_FILL.name] = struct.unpack('f', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4]))[0] - self.ro_rejection_ratio[fp_enum_repository.FPRORejectionRatioNames.GEN_PERMEATE_STATE.name] = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5]))[0] + sensor_list =[] + sensor_list.append((fp_enum_repository.FPRORejectionRatioNames.RAW_RO_REJECTION_RATIO.name, DataTypes.F32)) + sensor_list.append((fp_enum_repository.FPRORejectionRatioNames.RAW_RO_REJECTION_RATIO_TANK_FILL.name, DataTypes.F32)) + sensor_list.append((fp_enum_repository.FPRORejectionRatioNames.AVG_RO_REJECTION_RATIO.name, DataTypes.F32)) + sensor_list.append((fp_enum_repository.FPRORejectionRatioNames.AVG_RO_REJECTION_RATIO_TANK_FILL.name, DataTypes.F32)) + sensor_list.append((fp_enum_repository.FPRORejectionRatioNames.GEN_PERMEATE_STATE.name, DataTypes.U32)) + self.process_into_dict(dict_to_update = self.ro_rejection_ratio, + decoder_list = sensor_list, + message = message) self.ro_rejection_ratio_timestamp = timestamp