Index: leahi_dialin/common/dd_defs_proxy.py =================================================================== diff -u -re324174eeb74c1630c6e913e7dfb65246924cd1f -ra9a280f1f678c984654c15a827da1bcd4ce0663c --- leahi_dialin/common/dd_defs_proxy.py (.../dd_defs_proxy.py) (revision e324174eeb74c1630c6e913e7dfb65246924cd1f) +++ leahi_dialin/common/dd_defs_proxy.py (.../dd_defs_proxy.py) (revision a9a280f1f678c984654c15a827da1bcd4ce0663c) @@ -80,7 +80,7 @@ RecordTypes = generic_defs.RecordTypes SystemRecordFields = generic_defs.SystemRecordFields ServiceRecordFields = generic_defs.ServiceRecordFields - CalibrationRecordFields = generic_defs.CalibrationRecordFields + CalibrationRecordFields = generic_defs.get_calibration_record_fields() InstitutionalRecordFields = generic_defs.InstitutionalRecordFields UsageInformationRecordFields = generic_defs.UsageInformationRecordFields Index: leahi_dialin/common/generic_defs.py =================================================================== diff -u -rdc54799269b0b49b3559756076afca3bd0bf4bc0 -ra9a280f1f678c984654c15a827da1bcd4ce0663c --- leahi_dialin/common/generic_defs.py (.../generic_defs.py) (revision dc54799269b0b49b3559756076afca3bd0bf4bc0) +++ leahi_dialin/common/generic_defs.py (.../generic_defs.py) (revision a9a280f1f678c984654c15a827da1bcd4ce0663c) @@ -231,81 +231,55 @@ } -@unique -class CalibrationRecordFields(RecordsBaseEnum): - def __new__(cls): - obj = object.__new__(cls) - i = 0 - for pres_sensor in DDPressureSensorNames: - for field_name in CalibRecordSensorFields: - obj._name_ = f'PRES__{pres_sensor.name}__{field_name.name}' - obj._value_ = i - obj.unpack_type = field_name.datatype() - obj.multichar_length = 1 - i += 1 - for temp_sensor in DDTemperatureSensorNames: - for field_name in CalibRecordSensorFields: - obj._name_ = f'TEMP__{temp_sensor.name}__{field_name.name}' - obj._value_ = i - obj.unpack_type = field_name.datatype() - obj.multichar_length = 1 - i += 1 - for conc_pump in DDConcentratePumpNames: - for field_name in CalibRecordSensorFields: - obj._name_ = f'CONC__{conc_pump.name}__{field_name.name}' - obj._value_ = i - obj.unpack_type = field_name.datatype() - obj.multichar_length = 1 - i += 1 - for dial_pump in DDDialysatePumpNames: - # Custom request for D12 to include Target Speed - if dial_pump is DDDialysatePumpNames.D12_PUMP: - obj._name_ = f'DIAL__{dial_pump.name}__TARGET_SPEED' - obj._value_ = i - obj.unpack_type = field_name.datatype() - obj.multichar_length = 1 - i += 1 - for field_name in CalibRecordSensorFields: - obj._name_ = f'DIAL__{dial_pump.name}__{field_name.name}' - obj._value_ = i - obj.unpack_type = field_name.datatype() - obj.multichar_length = 1 - i += 1 - for acid in AcidTypes: - for field_name in CalibRecordConcentrateFields: - obj._name_ = f'ACID__{acid.name}__{field_name.name}' - obj._value_ = i - obj.unpack_type = field_name.datatype() - obj.multichar_length = 1 - i += 1 - for bicarb in BicarbTypes: - for field_name in CalibRecordConcentrateFields: - obj._name_ = f'BICARB__{bicarb.name}__{field_name.name}' - obj._value_ = i - obj.unpack_type = field_name.datatype() - obj.multichar_length = 1 - i += 1 - # Accelerometer - for field_name in CalibRecordAccelerometerFields: - obj._name_ = f'ACCEL__{field_name.name}' - obj._value_ = i - obj.unpack_type = field_name.datatype() - obj.multichar_length = 1 +def get_calibration_record_fields() -> RecordsBaseEnum: + # Creating the enum members list + i = 0 + members = {} + for pres_sensor in DDPressureSensorNames: + for field_name in CalibRecordSensorFields: + members[f'PRES__{pres_sensor.name}__{field_name.name}'] = (i, field_name.datatype()) i += 1 - # Blood Leak sensor - for field_name in CalibRecordBloodLeakFields: - obj._name_ = f'BLOOD_LEAK__{field_name.name}' - obj._value_ = i - obj.unpack_type = field_name.datatype() - obj.multichar_length = 1 + for temp_sensor in DDTemperatureSensorNames: + for field_name in CalibRecordSensorFields: + members[f'TEMP__{temp_sensor.name}__{field_name.name}'] = (i, field_name.datatype()) i += 1 - obj._name_ = 'NUM_OF_CALIBRATION_RECORD_FIELDS' - obj._value_ = i - obj.unpack_type = DataTypes.NONE - obj.multichar_length = 1 - return obj + for conc_pump in DDConcentratePumpNames: + for field_name in CalibRecordSensorFields: + members[f'CONC__{conc_pump.name}__{field_name.name}'] = (i, field_name.datatype()) + i += 1 + for dial_pump in DDDialysatePumpNames: + members[f'DIAL__{dial_pump.name}__{field_name.name}__TARGET_SPEED'] = (i, DataTypes.F32) + i += 1 + for field_name in CalibRecordSensorFields: + members[f'DIAL__{dial_pump.name}__{field_name.name}'] = (i, field_name.datatype()) + i += 1 + for acid in AcidTypes: + for field_name in CalibRecordConcentrateFields: + members[f'ACID__{acid.name}__{field_name.name}'] = (i, field_name.datatype()) + i += 1 + for bicarb in BicarbTypes: + for field_name in CalibRecordConcentrateFields: + members[f'BICARB__{bicarb.name}__{field_name.name}'] = (i, field_name.datatype()) + i += 1 + for field_name in CalibRecordAccelerometerFields: + members[f'ACCEL__{bicarb.name}__{field_name.name}'] = (i, field_name.datatype()) + i += 1 + for field_name in CalibRecordBloodLeakFields: + members[f'BLOOD_LEAK__{bicarb.name}__{field_name.name}'] = (i, field_name.datatype()) + i += 1 + members[f'NUM_OF_CALIBRATION_RECORD_FIELDS'] = (i, DataTypes.NONE) + + # Enum creation + CalibrationRecordFields = RecordsBaseEnum('CalibrationRecordFields', members,) + # Setting the _str_list values for the enum + CalibrationRecordFields._str_list = {} + for member in members: + CalibrationRecordFields._str_list[member] = [] + + return CalibrationRecordFields + @unique class InstitutionalRecordFields(RecordsBaseEnum): MIN_DIALYSATE_SYSTEM_FLOW_MLPM = (0, DataTypes.U32) # Min dialysate flow in mL/min Index: leahi_dialin/common/td_defs_proxy.py =================================================================== diff -u -r1f7b5ac840adf6740b023706fcb73691c33a9be7 -ra9a280f1f678c984654c15a827da1bcd4ce0663c --- leahi_dialin/common/td_defs_proxy.py (.../td_defs_proxy.py) (revision 1f7b5ac840adf6740b023706fcb73691c33a9be7) +++ leahi_dialin/common/td_defs_proxy.py (.../td_defs_proxy.py) (revision a9a280f1f678c984654c15a827da1bcd4ce0663c) @@ -99,7 +99,7 @@ RecordTypes = generic_defs.RecordTypes SystemRecordFields = generic_defs.SystemRecordFields ServiceRecordFields = generic_defs.ServiceRecordFields - CalibrationRecordFields = generic_defs.CalibrationRecordFields + CalibrationRecordFields = generic_defs.get_calibration_record_fields() InstitutionalRecordFields = generic_defs.InstitutionalRecordFields UsageInformationRecordFields = generic_defs.UsageInformationRecordFields Index: leahi_dialin/dd/modules/records.py =================================================================== diff -u -r9a7c9855e0dc86bb73adea21679b8820d56d83f0 -ra9a280f1f678c984654c15a827da1bcd4ce0663c --- leahi_dialin/dd/modules/records.py (.../records.py) (revision 9a7c9855e0dc86bb73adea21679b8820d56d83f0) +++ leahi_dialin/dd/modules/records.py (.../records.py) (revision a9a280f1f678c984654c15a827da1bcd4ce0663c) @@ -211,7 +211,7 @@ record_list = [] record_list.append((member.name, member.datatype)) - record_list.append((dd_enum_repository.InstitutionalRecordFields.CALIBRATION_TIME.name, dd_enum_repository.InstitutionalRecordFields.CALIBRATION_TIME)) + record_list.append((dd_enum_repository.InstitutionalRecordFields.CALIBRATION_TIME.name, dd_enum_repository.InstitutionalRecordFields.datatype)) self.process_into_dict(dict_to_update = self.service_records, decoder_list = record_list, @@ -460,8 +460,6 @@ can_interface = self.can_interface) - def get_calibration_record_list(self): - def cmd_set_calibration_records(self, calibration_records: dict) -> int: """ Constructs and sends a command for setting the Calibration Records.