Index: leahi_dialin/common/td_defs.py =================================================================== diff -u -r43f69b19f03145572d88f5f3c0cc739503c6d647 -rbe799e12803dba3054ff893b68f8b79a9dde440b --- leahi_dialin/common/td_defs.py (.../td_defs.py) (revision 43f69b19f03145572d88f5f3c0cc739503c6d647) +++ leahi_dialin/common/td_defs.py (.../td_defs.py) (revision be799e12803dba3054ff893b68f8b79a9dde440b) @@ -14,9 +14,13 @@ # ############################################################################ +# Module import from enum import unique -from ..utils.enums import DialinEnum +# Project import +from leahi_dialin.common.dd_defs import DDInstitutionalRecordBasicFields +from leahi_dialin.common.generic_defs import DataTypes, RecordsBaseEnum +from leahi_dialin.utils.enums import DialinEnum # ================================================== Enum Creators: Operations Lvl 1 ================================================== @@ -1330,3 +1334,121 @@ 'HEPATITIS_B_NEGATIVE': ['negative'], 'NUM_OF_HEPATITIS_B_STATUS': [], } + + +# ================================================== Enum Creators: Record Sub Fields ================================================== + + + +# ================================================== Enum Creators: Record Fields ================================================== +@unique +class TDSystemRecordFields(RecordsBaseEnum): + TOP_LEVEL_PN = (0, DataTypes.U08, 10) # Top level part number + TOP_LEVEL_SN = (1, DataTypes.U08, 20) # Top level serial number + MFG_LOCATION = (2, DataTypes.U08) # Manufacturing Location + MFG_DATE = (3, DataTypes.U32) # Manufacturing Date + NUM_OF_SYSTEM_RECORD_FIELDS = (4, DataTypes.NONE) # Number of System Record Fields + +TDSystemRecordFields._str_list = { + # Official Name : Accepted strings + 'TOP_LEVEL_PN': ['pn', 'part number'], + 'TOP_LEVEL_SN': ['sn', 'serial number'], + 'MFG_LOCATION': ['location', 'manufacturing location'], + 'MFG_DATE': ['date', 'manufacturing date'], + 'NUM_OF_SYSTEM_RECORD_FIELDS': [], +} + + +@unique +class TDServiceRecordFields(RecordsBaseEnum): + SERVICE_LOC = (0, DataTypes.U08) # DD service location + LAST_SERVICE_EPOCH_DATE = (1, DataTypes.U32) # DD last service date in epoch + SERVICE_INTERVAL_SECONDS = (2, DataTypes.U32) # DD service interval in seconds + LAST_RESET_TIME_EPOCH = (3, DataTypes.U32) # Last time the record was reset in epoch + NUM_OF_SERVICE_RECORD_FIELDS = (4, DataTypes.NONE) # Number of Service Record Fields + +TDServiceRecordFields._str_list = { + # Official Name : Accepted strings + 'SERVICE_LOC': [], + 'LAST_SERVICE_EPOCH_DATE': [], + 'SERVICE_INTERVAL_SECONDS': [], + 'LAST_RESET_TIME_EPOCH': [], + 'NUM_OF_SERVICE_RECORD_FIELDS': [], +} + + +def get_calibration_record_fields() -> RecordsBaseEnum: + # Creating the enum members list + i = 0 + members = {} + members[f'NUM_OF_CALIBRATION_RECORD_FIELDS'] = (i, DataTypes.NONE) + + # Enum creation + TDCalibrationRecordFields = RecordsBaseEnum('TDCalibrationRecordFields', members,) + + # Setting the _str_list values for the enum + TDCalibrationRecordFields._str_list = {} + for member in members: + TDCalibrationRecordFields._str_list[member] = [] + + return TDCalibrationRecordFields + + +@unique +class TDInstitutionalRecordBasicFields(RecordsBaseEnum): + CALIBRATION_TIME = (0, DataTypes.U32) # Calibration time in epoch. + NUM_OF_INSTITUTIONAL_RECORD_BASIC_FIELDS = (1, DataTypes.NONE) # Number of Institutional Record Basic Fields + +TDInstitutionalRecordBasicFields._str_list = { + # Official Name : Accepted strings + 'CALIBRATION_TIME': [], + 'NUM_OF_INSTITUTIONAL_RECORD_BASIC_FIELDS': [], +} + + +@unique +class TDInstitutionalRecordAdvancedFields(RecordsBaseEnum): + CALIBRATION_TIME = (0, DataTypes.U32) # Calibration time in epoch. + NUM_OF_INSTITUTIONAL_RECORD_ADVANCED_FIELDS = (1, DataTypes.NONE) # Number of Institutional Record Advanced Fields + +TDInstitutionalRecordAdvancedFields._str_list = { + # Official Name : Accepted strings + 'CALIBRATION_TIME': [], + 'NUM_OF_INSTITUTIONAL_RECORD_ADVANCED_FIELDS': [], +} + + +@unique +class TDInstitutionalRecordAdditionalFields(RecordsBaseEnum): + CALIBRATION_TIME = (0, DataTypes.U32) # Calibration time in epoch. + NUM_OF_INSTITUTIONAL_RECORD_ADDITIONAL_FIELDS = (1, DataTypes.NONE) # Number of Institutional Record Additional Fields + +TDInstitutionalRecordAdditionalFields._str_list = { + # Official Name : Accepted strings + 'CALIBRATION_TIME': [], + 'NUM_OF_INSTITUTIONAL_RECORD_ADDITIONAL_FIELDS': [], +} + + +@unique +class TDUsageInformationRecordFields(RecordsBaseEnum): + RO_WATER_GEN_TOTAL_L = (0, DataTypes.F32) # Total RO water generated in liters. (Cannot be reset) + RO_WATER_GEN_SINCE_LAST_SERVICE_L = (1, DataTypes.F32) # RO water generated since last treatment in liters + LAST_BASIC_FLUSH_COMPLETE_DATE_EPOCH = (2, DataTypes.U32) # Last basic flush complete date in epoch. + LAST_HEAT_DISINFECT_COMPLETE_DATE_EPOCH = (3, DataTypes.U32) # Last heat disinfect complete date in epoch. + LAST_HEAT_ACTIVE_COOL_COMPLETE_DATE_EPOCH = (4, DataTypes.U32) # Last heat disinfect active cool complete date in epoch. + LAST_FILTER_FLUSH_COMPLETE_DATE_EPOCH = (5, DataTypes.U32) # Last filter flush complete date in epoch. + LAST_RESET_TIME_EPOCH = (6, DataTypes.U32) # Last time the record was reset in epoch. + NUM_OF_USAGE_INFO_RECORD_FIELDS = (7, DataTypes.NONE) # Number of Usage Information Record Fields + +TDUsageInformationRecordFields._str_list = { + # Official Name : Accepted strings + 'RO_WATER_GEN_TOTAL_L': [], + 'RO_WATER_GEN_SINCE_LAST_SERVICE_L': [], + 'LAST_BASIC_FLUSH_COMPLETE_DATE_EPOCH': [], + 'LAST_HEAT_DISINFECT_COMPLETE_DATE_EPOCH': [], + 'LAST_HEAT_ACTIVE_COOL_COMPLETE_DATE_EPOCH': [], + 'LAST_FILTER_FLUSH_COMPLETE_DATE_EPOCH': [], + 'LAST_RESET_TIME_EPOCH': [], + 'NUM_OF_USAGE_INFO_RECORD_FIELDS': [], +}