Index: leahi_dialin/common/fp_defs.py =================================================================== diff -u -r134ce79ed68aed5a981c07fef3bca314a9fb9b8e -rbc2a677d7121d6a4ed4513d3c103552838dc8056 --- leahi_dialin/common/fp_defs.py (.../fp_defs.py) (revision 134ce79ed68aed5a981c07fef3bca314a9fb9b8e) +++ leahi_dialin/common/fp_defs.py (.../fp_defs.py) (revision bc2a677d7121d6a4ed4513d3c103552838dc8056) @@ -341,7 +341,9 @@ 'P19_TEMP' : 6, # P19 temperature from outlet conductivity sensor. 'P7_TEMP' : 7, # Temperature at p7 flow meter 'P16_TEMP' : 8, # Temperature at p16 flow meter - 'NUM_OF_TEMPERATURE_SENSORS' : 9, # Number of Temperature Sensors + 'P7_INTERNAL_TEMP' : 9, # Interal Temperature at p7 flow meter + 'P16_INTERNAL_TEMP' : 10, # Interal Temperature at p16 flow meter + 'NUM_OF_TEMPERATURE_SENSORS' : 11, # Number of Temperature Sensors } else: members = { @@ -353,7 +355,9 @@ 'P19_TEMP' : 5, # P19 temperature from outlet conductivity sensor. 'P7_TEMP' : 6, # Temperature at p7 flow meter 'P16_TEMP' : 7, # Temperature at p16 flow meter - 'NUM_OF_TEMPERATURE_SENSORS' : 8, # Number of Temperature Sensors + 'P7_INTERNAL_TEMP' : 8, # Interal Temperature at p7 flow meter + 'P16_INTERNAL_TEMP' : 9, # Interal Temperature at p16 flow meter + 'NUM_OF_TEMPERATURE_SENSORS' : 10, # Number of Temperature Sensors } # Create the enum Index: leahi_dialin/common/test_config_defs.py =================================================================== diff -u -r9c785697827d1a21021b48b57d5a14f157856ec2 -rbc2a677d7121d6a4ed4513d3c103552838dc8056 --- leahi_dialin/common/test_config_defs.py (.../test_config_defs.py) (revision 9c785697827d1a21021b48b57d5a14f157856ec2) +++ leahi_dialin/common/test_config_defs.py (.../test_config_defs.py) (revision bc2a677d7121d6a4ed4513d3c103552838dc8056) @@ -7,8 +7,8 @@ # # @file test_config_defs.py # -# @author (last) Dara Navaei -# @date (last) 16-Aug-2023 +# @author (last) Zoltan Miskolci +# @date (last) 21-Jan-2026 # @author (original) Dara Navaei # @date (original) 24-Apr-2023 # @@ -19,19 +19,15 @@ @unique -class DDTestConfigOptions(DialinEnum): - TEST_CONFIG_BETA_HW = 0 # Test configuration using Beta Hardware - TEST_CONFIG_DISABLE_BC_PRES_ALARM = 1 # Test configuration disabling BC pressure alarms - TEST_CONFIG_DISABLE_DIENER_CONC_PUMP = 2 # Test configuration disabling Diener concentrate pump +class DDFPTestConfigOptions(DialinEnum): + TEST_CONFIG_DISABLE_BC_PRES_ALARM = 0 # (DD) Test configuration disabling BC pressure alarms + TEST_CONFIG_ENABLE_BETA_1_9_HW = 1 # (DD & FP) Test configuration using Beta Hardware + TEST_CONFIG_ENABLE_DRY_BICART_FILL = 2 # Test configuration disabling Dry Bicart fill check TEST_CONFIG_ENABLE_4WIRE_RINSE_PUMP = 3 # Test configuration Enabling 4 wire rinse pump - NUM_OF_TEST_CONFIGS = 4 # Number of Test Configs + TEST_CONFIG_SKIP_PRE_GEN_FLUSH = 4 # Test configuration to skip pre-gen flush + NUM_OF_TEST_CONFIGS = 5 # Number of Test Configs @unique -class FPTestConfigOptions(DialinEnum): - TEST_CONFIG_BETA_HW = 0 # Test configuration using Beta Hardware - NUM_OF_TEST_CONFIGS = 1 # Number of Test Configs - -@unique class TDTestConfigOptions(DialinEnum): TEST_CONFIG_FIRST = 0 # First test configuration (placeholder) NUM_OF_TEST_CONFIGS = 1 # Number of Test Configs Index: leahi_dialin/fp/modules/fp_test_configs.py =================================================================== diff -u -r5c7add17cecb0528db91b9c805c95f9372dc341b -rbc2a677d7121d6a4ed4513d3c103552838dc8056 --- leahi_dialin/fp/modules/fp_test_configs.py (.../fp_test_configs.py) (revision 5c7add17cecb0528db91b9c805c95f9372dc341b) +++ leahi_dialin/fp/modules/fp_test_configs.py (.../fp_test_configs.py) (revision bc2a677d7121d6a4ed4513d3c103552838dc8056) @@ -16,6 +16,8 @@ from logging import Logger +from leahi_dialin.common.constants import NO_RESET +from leahi_dialin.common.global_vars import GlobalVariables from leahi_dialin.common.msg_defs import MsgIds, MsgFieldPositions from leahi_dialin.common.test_config_defs import DDFPTestConfigOptions from leahi_dialin.protocols.CAN import DenaliMessage, DenaliChannels @@ -60,6 +62,27 @@ return self.fp_test_configs[DDFPTestConfigOptions(config).name] + @publish(['msg_id_fp_send_test_config', 'fp_test_configs', 'fp_test_configs_response_timestamp']) + def _handler_fp_test_config_sync(self, message, timestamp=0.0): + """ + Handles published test configuration status messages. + + @param message: published FP test configurations message + @return: None + """ + payload = message['message'] + index = MsgFieldPositions.START_POS_FIELD_1 + + for config in DDFPTestConfigOptions.__members__: + config_value, index = bytearray_to_integer(payload, index, False) + if 'NUM_OF_TEST_CONFIGS' not in config: + self.fp_test_configs[config] = config_value + if DDFPTestConfigOptions.TEST_CONFIG_ENABLE_BETA_1_9_HW.name in config: + GlobalVariables().HW_BETA_1_9 = config_value == 1 + + self.fp_test_configs_response_timestamp = timestamp + + def cmd_set_test_config(self, config: int, reset: int = NO_RESET): """ Constructs and sends the FP test config @@ -146,24 +169,6 @@ self.logger.debug("Timeout!!!!") return False - @publish(['msg_id_fp_send_test_config', 'fp_test_configs', 'fp_test_configs_response_timestamp']) - def _handler_fp_test_config_sync(self, message, timestamp=0.0): - """ - Handles published test configuration status messages. - - @param message: published FP test configurations message - @return: None - """ - payload = message['message'] - index = MsgFieldPositions.START_POS_FIELD_1 - - for config in DDFPTestConfigOptions.__members__: - if 'NUM_OF_TEST_CONFIGS' not in config: - config_value, index = bytearray_to_integer(payload, index, False) - self.fp_test_configs[config] = config_value - - self.fp_test_configs_response_timestamp = timestamp - def _reset_test_configs_record(self): """ Resets the test configuration dictionary @@ -173,4 +178,4 @@ for config in DDFPTestConfigOptions.__members__: # Loop through the list of the test configuration and set the values to 0xFFFFFFFF if 'NUM_OF_TEST_CONFIGS' not in config: - self.fp_test_configs[config] = 0xFFFFFFFF \ No newline at end of file + self.fp_test_configs[config] = 0xFFFFFFFF Index: leahi_dialin/fp/modules/temperatures.py =================================================================== diff -u -r40186f183b0331f4c76c24c1e5385539ce603402 -rbc2a677d7121d6a4ed4513d3c103552838dc8056 --- leahi_dialin/fp/modules/temperatures.py (.../temperatures.py) (revision 40186f183b0331f4c76c24c1e5385539ce603402) +++ leahi_dialin/fp/modules/temperatures.py (.../temperatures.py) (revision bc2a677d7121d6a4ed4513d3c103552838dc8056) @@ -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 @@ -93,6 +95,12 @@ 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] + self.fp_temperatures[fp_enum_repository.FPTemperatureSensorNames.P7_INTERNAL_TEMP.name] = struct.unpack('f', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_10:MsgFieldPositions.END_POS_FIELD_10]))[0] + + self.fp_temperatures[fp_enum_repository.FPTemperatureSensorNames.P16_INTERNAL_TEMP.name] = struct.unpack('f', bytearray( + message['message'][MsgFieldPositions.START_POS_FIELD_11:MsgFieldPositions.END_POS_FIELD_11]))[0] + self.fp_temperature_sensors_timestamp = timestamp def cmd_temperatures_data_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: Index: leahi_dialin/td/modules/pressure_sensors.py =================================================================== diff -u -r4b63107021e34fd1968e02f9d72bbb31f38fefd7 -rbc2a677d7121d6a4ed4513d3c103552838dc8056 --- leahi_dialin/td/modules/pressure_sensors.py (.../pressure_sensors.py) (revision 4b63107021e34fd1968e02f9d72bbb31f38fefd7) +++ leahi_dialin/td/modules/pressure_sensors.py (.../pressure_sensors.py) (revision bc2a677d7121d6a4ed4513d3c103552838dc8056) @@ -18,9 +18,9 @@ from leahi_dialin.common.constants import RESET, NO_RESET from leahi_dialin.common.msg_defs import MsgIds, MsgFieldPositions -from leahi_dialin.common.td_defs import TDPressureSensorNames, TDPressureSensorAttributes +from leahi_dialin.common.td_defs import td_enum_repository from leahi_dialin.common.override_templates import cmd_generic_broadcast_interval_override, cmd_generic_override -from leahi_dialin.protocols.CAN import DenaliChannels +from leahi_dialin.protocols.CAN import DenaliMessage, DenaliChannels from leahi_dialin.utils.base import AbstractSubSystem, publish from leahi_dialin.utils.conversions import integer_to_bytearray, float_to_bytearray @@ -46,20 +46,20 @@ self._handler_pressure_sync) self.td_pressure_timestamp = 0.0 self.td_pressure_sensors = { - TDPressureSensorNames.H2_PRES.name: { - TDPressureSensorAttributes.PRES.name: 0.0, - TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name: 0.0, - TDPressureSensorAttributes.PRES_LIMIT_MIN.name: 0, - TDPressureSensorAttributes.PRES_LIMIT_MAX.name: 0 + td_enum_repository.TDPressureSensorNames.H2_PRES.name: { + td_enum_repository.TDPressureSensorAttributes.PRES.name: 0.0, + td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name: 0.0, + td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name: 0, + td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name: 0 }, - TDPressureSensorNames.H14_PRES.name: { - TDPressureSensorAttributes.PRES.name: 0.0, - TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name: 0.0, - TDPressureSensorAttributes.PRES_LIMIT_MIN.name: 0, - TDPressureSensorAttributes.PRES_LIMIT_MAX.name: 0 + td_enum_repository.TDPressureSensorNames.H14_PRES.name: { + td_enum_repository.TDPressureSensorAttributes.PRES.name: 0.0, + td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name: 0.0, + td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name: 0, + td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name: 0 }, - TDPressureSensorNames.H23_PRES.name: { - TDPressureSensorAttributes.PRES.name : 0.0 + td_enum_repository.TDPressureSensorNames.H23_PRES.name: { + td_enum_repository.TDPressureSensorAttributes.PRES.name : 0.0 } } self.pressure_limits_state = 0 @@ -113,19 +113,19 @@ baro = struct.unpack('f', bytearray( message['message'][MsgFieldPositions.START_POS_FIELD_13:MsgFieldPositions.END_POS_FIELD_13])) - self.td_pressure_sensors[TDPressureSensorNames.H2_PRES.name][TDPressureSensorAttributes.PRES.name] = art[0] - self.td_pressure_sensors[TDPressureSensorNames.H14_PRES.name][TDPressureSensorAttributes.PRES.name] = ven[0] + self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES.name] = art[0] + self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES.name] = ven[0] self.pressure_limits_state = pls[0] - self.td_pressure_sensors[TDPressureSensorNames.H2_PRES.name][TDPressureSensorAttributes.PRES_LIMIT_MIN.name] = apl[0] - self.td_pressure_sensors[TDPressureSensorNames.H2_PRES.name][TDPressureSensorAttributes.PRES_LIMIT_MAX.name] = apu[0] - self.td_pressure_sensors[TDPressureSensorNames.H14_PRES.name][TDPressureSensorAttributes.PRES_LIMIT_MIN.name] = vpl[0] - self.td_pressure_sensors[TDPressureSensorNames.H14_PRES.name][TDPressureSensorAttributes.PRES_LIMIT_MAX.name] = vpu[0] - self.td_pressure_sensors[TDPressureSensorNames.H2_PRES.name][TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name] = lfa[0] - self.td_pressure_sensors[TDPressureSensorNames.H14_PRES.name][TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name] = lfv[0] + self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name] = apl[0] + self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name] = apu[0] + self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MIN.name] = vpl[0] + self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES_LIMIT_MAX.name] = vpu[0] + self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H2_PRES.name][td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name] = lfa[0] + self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H14_PRES.name][td_enum_repository.TDPressureSensorAttributes.LONG_FILTERED_PRESSURE.name] = lfv[0] self.tmp_pressure = tps[0] self.tmp_min_limit = tmin[0] self.tmp_max_limit = tmax[0] - self.td_pressure_sensors[TDPressureSensorNames.H23_PRES.name][TDPressureSensorAttributes.PRES.name] = baro[0] + self.td_pressure_sensors[td_enum_repository.TDPressureSensorNames.H23_PRES.name][td_enum_repository.TDPressureSensorAttributes.PRES.name] = baro[0] self.td_pressure_timestamp = timestamp @@ -142,7 +142,7 @@ @return: 1 if successful, zero otherwise """ - sensor_name = TDPressureSensorNames(sensor).name.split('_')[0] + sensor_name = td_enum_repository.TDPressureSensorNames(sensor).name.split('_')[0] rst = integer_to_bytearray(reset) sen = integer_to_bytearray(sensor)