Index: leahi_dialin/common/dd_defs.py =================================================================== diff -u -rc78812412148e14aaf2ab5d003dc140feda5a68c -rafb299e7aca45969aed5075bc951b97058ddb2b6 --- leahi_dialin/common/dd_defs.py (.../dd_defs.py) (revision c78812412148e14aaf2ab5d003dc140feda5a68c) +++ leahi_dialin/common/dd_defs.py (.../dd_defs.py) (revision afb299e7aca45969aed5075bc951b97058ddb2b6) @@ -353,12 +353,21 @@ def _create_dd_level_sensor_names(self): - members = { - 'D6_LEVEL': 0, # floater switch low, medium and high status - 'D63_LEVEL': 1, # bicarb level low or high status - 'D46_LEVEL': 2, # Spent dialysate air separation chamber level low or high status - 'NUM_OF_LEVELS': 3, # Number of Level Sensors - } + if GlobalVariables().HW_BETA_1_9 == True: + members = { + 'D6_LEVEL': 0, # floater switch low, medium and high status + 'D63_LEVEL': 1, # bicarb level low or high status + 'D46_LEVEL': 2, # Spent dialysate air separation chamber level low or high status + 'D98_LEVEL': 3, # D98 Conductivity Level Sensor + 'NUM_OF_LEVELS': 4, # Number of Level Sensors + } + else: + members = { + 'D6_LEVEL': 0, # floater switch low, medium and high status + 'D63_LEVEL': 1, # bicarb level low or high status + 'D46_LEVEL': 2, # Spent dialysate air separation chamber level low or high status + 'NUM_OF_LEVELS': 3, # Number of Level Sensors + } return unique(DialinEnum('DDLevelSensorNames', members)) @@ -402,13 +411,13 @@ 'D78_TEMP': 1, # Heat exchanger Outlet temperature sensor 'D4_TEMP': 2, # Hydraulics primary heater temperature sensor 'D50_TEMP': 3, # Trimmer heater temperature sensor - 'D99_TEMP': 4, # D98(D99) Conductivity sensor temperature value + 'D99_TEMP': 4, # D98(D99) Conductivity sensor temperature value 'BRD_TEMP': 5, # Barometric temperature sensor 'D16_TEMP': 6, # D16(D17) Conductivity sensor temperature value 'D28_TEMP': 7, # D28(D27) Conductivity sensor temperature value 'D30_TEMP': 8, # D30(D29) Conductivity sensor temperature value 'D44_TEMP': 9, # D44(D43) Conductivity sensor temperature value - 'D75_TEMP': 20, # D75(D74) Conductivity sensor temperature value + 'D75_TEMP': 10, # D75(D74) Conductivity sensor temperature value 'D4_AVG_TEMP': 11, # D4 Filtered value 'D50_AVG_TEMP': 12, # D50 Filtered value 'D99_AVG_TEMP': 13, # D99 Filtered value Index: leahi_dialin/dd/modules/levels.py =================================================================== diff -u -r71975b0c600fd9bd4b2a43cc707e6b0a2012f8b0 -rafb299e7aca45969aed5075bc951b97058ddb2b6 --- leahi_dialin/dd/modules/levels.py (.../levels.py) (revision 71975b0c600fd9bd4b2a43cc707e6b0a2012f8b0) +++ leahi_dialin/dd/modules/levels.py (.../levels.py) (revision afb299e7aca45969aed5075bc951b97058ddb2b6) @@ -20,6 +20,7 @@ from leahi_dialin.common.constants import NO_RESET from leahi_dialin.common.msg_defs import MsgIds, MsgFieldPositions from leahi_dialin.common.dd_defs import dd_enum_repository +from leahi_dialin.common.global_vars import GlobalVariables from leahi_dialin.common.override_templates import cmd_generic_broadcast_interval_override from leahi_dialin.protocols.CAN import DenaliMessage, DenaliChannels from leahi_dialin.utils.base import AbstractSubSystem, publish @@ -51,9 +52,10 @@ self.dd_level_sensors = { dd_enum_repository.DDLevelSensorNames.D6_LEVEL.name: 0, dd_enum_repository.DDLevelSensorNames.D63_LEVEL.name: 0, - dd_enum_repository.DDLevelSensorEnum.D98_LEVEL.name: 0, dd_enum_repository.DDLevelSensorNames.D46_LEVEL.name: 0 } + if GlobalVariables().HW_BETA_1_9: + self.dd_level_sensors[dd_enum_repository.DDLevelSensorNames.D98_LEVEL.name] = 0.0 self.dd_bicarb_level = 0 self.dd_levels_timestamp = 0 @@ -66,17 +68,25 @@ @param message: published levels data message @returns none """ - self.dd_level_sensors[dd_enum_repository.DDLevelSensorNames.D6_LEVEL.name] = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_1:MsgFieldPositions.END_POS_FIELD_1]))[0] - self.dd_level_sensors[dd_enum_repository.DDLevelSensorNames.D63_LEVEL.name] = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_2:MsgFieldPositions.END_POS_FIELD_2]))[0] - self.dd_level_sensors[dd_enum_repository.DDLevelSensorNames.D98_LEVEL.name] = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_3:MsgFieldPositions.END_POS_FIELD_3]))[0] - self.dd_bicarb_level = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_4:MsgFieldPositions.END_POS_FIELD_4]))[0] - self.dd_level_sensors[dd_enum_repository.DDLevelSensorEnum.D46_LEVEL.name] = struct.unpack('i', bytearray( - message['message'][MsgFieldPositions.START_POS_FIELD_5:MsgFieldPositions.END_POS_FIELD_5]))[0] + sensor_list =[] + sensor_list.append((dd_enum_repository.DDLevelSensorNames.D6_LEVEL, 'i')) + sensor_list.append((dd_enum_repository.DDLevelSensorNames.D63_LEVEL, 'i')) + if GlobalVariables().HW_BETA_1_9: + if dd_enum_repository.DDLevelSensorNames.D98_LEVEL.name not in self.dd_level_sensors: + self.dd_level_sensors[dd_enum_repository.DDTemperatureSensorNames.D98_LEVEL.name] = 0.0 + sensor_list.append((dd_enum_repository.DDTemperatureSensorNames.D99_TEMP, 'i')) + sensor_list.append((dd_enum_repository.DDLevelSensorNames.D46_LEVEL, 'i')) + 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}') + if i == 4: + self.dd_bicarb_level = struct.unpack('i', bytearray(message['message'][start_pos:end_pos]))[0] + else: + self.dd_level_sensors[sensor[0].name] = struct.unpack(sensor[1], bytearray(message['message'][start_pos:end_pos]))[0] + i += 1 + self.dd_levels_timestamp = timestamp def cmd_levels_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: Index: leahi_dialin/dd/modules/temperature_sensors.py =================================================================== diff -u -r71975b0c600fd9bd4b2a43cc707e6b0a2012f8b0 -rafb299e7aca45969aed5075bc951b97058ddb2b6 --- leahi_dialin/dd/modules/temperature_sensors.py (.../temperature_sensors.py) (revision 71975b0c600fd9bd4b2a43cc707e6b0a2012f8b0) +++ leahi_dialin/dd/modules/temperature_sensors.py (.../temperature_sensors.py) (revision afb299e7aca45969aed5075bc951b97058ddb2b6) @@ -114,7 +114,7 @@ for sensor in sensor_list: start_pos = eval(f'MsgFieldPositions.START_POS_FIELD_{i}') end_pos = eval(f'MsgFieldPositions.END_POS_FIELD_{i}') - self.dd_temperatures[sensor[0].name] = struct.unpack(sensor[1],bytearray(message['message'][start_pos:end_pos]))[0] + self.dd_temperatures[sensor[0].name] = struct.unpack(sensor[1], bytearray(message['message'][start_pos:end_pos]))[0] i += 1 self.dd_temperatures_timestamp = timestamp