Index: leahi_dialin/common/alarm_defs.py =================================================================== diff -u -re9dfb2412b14f3d28824cb3e37c364b8194bb24e -r26cc08213fa34b2b2ec781dfb0768d8df1575abf --- leahi_dialin/common/alarm_defs.py (.../alarm_defs.py) (revision e9dfb2412b14f3d28824cb3e37c364b8194bb24e) +++ leahi_dialin/common/alarm_defs.py (.../alarm_defs.py) (revision 26cc08213fa34b2b2ec781dfb0768d8df1575abf) @@ -8,7 +8,7 @@ # @file alarm_defs.py # # @author (last) Enum Updater Script -# @date (last) 11-Aug-2026 +# @date (last) 19-Aug-2026 # @author (original) Zoltan Miskolci # @date (original) 31-Jul-2026 # @@ -219,30 +219,30 @@ ALARM_ID_DD_CPU_RAM_ERROR = 193 # DD CPU RAM error ALARM_ID_TD_INTEGRITY_POST_TEST_FAILED = 194 # TD integrity post test fault ALARM_ID_DD_INTEGRITY_POST_TEST_FAILED = 195 # TD integrity post test fault - ALARM_ID_TD_EMPTY_SALINE_BAG = 196 # TD empty saline bag alarm + ALARM_ID_TD_SALINE_BAG_VOLUME_LOW_ALARM = 196 # TD saline bag volume low alarm ALARM_ID_DD_D92_PUMP_RPM_OUT_OF_RANGE = 197 # DD D92 pump rpm out of range ALARM_ID_TD_PRIME_COMPLETED_MEDIUM = 198 # TD prime completed medium priority alarm ALARM_ID_TD_REPEATED_AIR_TRAP_LOWER_EVENTS = 199 # TD repeated air trap lower events ALARM_ID_TD_TUBE_SET_MISMATCH = 200 # TD tubeset mismatch alarm - ALARM_ID_RESERVED_201 = 201 # Reserved for ALARM_ID_DD_ACID_CONCENTRATE_CONDUCTIVITY_HIGH - ALARM_ID_RESERVED_202 = 202 # Reserved for ALARM_ID_DD_BICARBONATE_CONDUCTIVITY_LOW - ALARM_ID_RESERVED_203 = 203 # Reserved for ALARM_ID_DD_BICARBONATE_CONDUCTIVITY_HIGH - ALARM_ID_RESERVED_204 = 204 # Reserved for ALARM_ID_TD_SAFETY_SHUTDOWN_POST_TEST_FAILED - ALARM_ID_RESERVED_205 = 205 # Reserved for ALARM_ID_TD_UI_POST_TIMEOUT - ALARM_ID_RESERVED_206 = 206 # Reserved for ALARM_ID_TD_UI_COMPATIBILITY_ERROR - ALARM_ID_RESERVED_207 = 207 # Reserved for ALARM_ID_TD_BATTERY_PACK_ERROR_DETECTED - ALARM_ID_RESERVED_208 = 208 # Reserved for ALARM_ID_TD_BATTERY_COMM_FAULT - ALARM_ID_RESERVED_209 = 209 # Reserved for ALARM_ID_TD_BATTERY_CHARGER_ERROR_DETECTED - ALARM_ID_RESERVED_210 = 210 # Reserved for ALARM_ID_DD_TURN_OFF_INLET_WATER_VALVES - ALARM_ID_RESERVED_211 = 211 # Reserved for ALARM_ID_DD_CHEM_DISINFECT_FLUSH_FLUSH_SAMPLE - ALARM_ID_RESERVED_212 = 212 # Reserved for ALARM_ID_DD_RO_PERMEATE_SAMPLE_REMOVE_DIA_CAP - ALARM_ID_RESERVED_213 = 213 # Reserved for ALARM_ID_TD_BP_SYSTOLIC_LOW - ALARM_ID_RESERVED_214 = 214 # Reserved for ALARM_ID_TD_BP_SYSTOLIC_LOW_TOO_MANY - ALARM_ID_RESERVED_215 = 215 # Reserved for ALARM_ID_TD_BP_SYSTOLIC_HIGH - ALARM_ID_RESERVED_216 = 216 # Reserved for ALARM_ID_TD_BP_HEART_RATE_LOW - ALARM_ID_RESERVED_217 = 217 # Reserved for ALARM_ID_TD_BP_HEART_RATE_HIGH - ALARM_ID_RESERVED_218 = 218 # Reserved for ALARM_ID_TD_BP_MODULE_ERROR - ALARM_ID_RESERVED_219 = 219 # Reserved for ALARM_ID_TD_UI_POST_TEST_FAILED + ALARM_ID_TD_PRE_TX_HEPARIN_LOAD_SYRINGE = 201 # TD Pre-Treatment Load Heparin Syringe + ALARM_ID_FW_RESERVED_202 = 202 # FW reserved for use + ALARM_ID_FW_RESERVED_203 = 203 # FW reserved for use + ALARM_ID_FW_RESERVED_204 = 204 # FW reserved for use + ALARM_ID_TD_UI_POST_TIMEOUT = 205 # TD UI POST failed + ALARM_ID_TD_UI_COMPATIBILITY_ERROR = 206 # TD and UI software builds are not compatible + ALARM_ID_TD_SAFETY_SHUTDOWN_POST_TEST_FAILED = 207 # TD POST Safety Shutdown failure + ALARM_ID_FW_RESERVED_208 = 208 # FW reserved for use + ALARM_ID_FW_RESERVED_209 = 209 # FW reserved for use + ALARM_ID_FW_RESERVED_210 = 210 # FW reserved for use + ALARM_ID_FW_RESERVED_211 = 211 # FW reserved for use + ALARM_ID_FW_RESERVED_212 = 212 # FW reserved for use + ALARM_ID_TD_BP_SYSTOLIC_LOW = 213 # TD blood pressure systolic low + ALARM_ID_TD_BP_SYSTOLIC_LOW_TOO_MANY = 214 # TD blood pressure systolic high + ALARM_ID_TD_BP_SYSTOLIC_HIGH = 215 # TD blood pressure systolic high + ALARM_ID_TD_BP_HEART_RATE_LOW = 216 # TD blood pressure heart rate low + ALARM_ID_TD_BP_HEART_RATE_HIGH = 217 # TD blood pressure heart rate high + ALARM_ID_TD_BP_MODULE_ERROR = 218 # TD blood pressure module error + ALARM_ID_FW_RESERVED_219 = 219 # FW reserved for use ALARM_ID_DD_NVM_INVALID_SYSTEM_RECORD_CRC = 220 # DD invalid NVM System record ALARM_ID_DD_NVM_INVALID_SERVICE_RECORD_CRC = 221 # DD invalid NVM Service record ALARM_ID_DD_NVM_INVALID_CALIBRATION_RECORD_CRC = 222 # DD invalid NVM calibration record @@ -258,12 +258,12 @@ ALARM_ID_DD_NVM_INVALID_CAL_BICARB_CONCENTRATE = 232 # DD invalid bicarbonate concentrate calibration record ALARM_ID_DD_NVM_INVALID_CAL_ACCEL_SENSOR = 233 # DD invalid accelerometer sensor calibration record ALARM_ID_DD_NVM_INVALID_CAL_BLOOD_LEAK_SENSOR = 234 # DD invalid blood leak sensor calibration record - ALARM_ID_DD_NVM_INVALID_CAL_CONDUCTIVITY_SENSOR = 235 # DD invalid conductivity sensor calibration record - ALARM_ID_DD_NVM_INVALID_INSTIT_BASIC_RECORD_CRC = 236 # DD invalid basic institutional record - ALARM_ID_DD_NVM_INVALID_INSTIT_ADVANCED_RECORD_CRC = 237 # DD invalid advanced institutional record - ALARM_ID_DD_NVM_INVALID_INSTIT_ADDITIONAL_RECORD_CRC = 238 # DD invalid additional institutional record - ALARM_ID_FP_NVM_INVALID_SERVICE_RECORD_CRC = 239 # FP invalid serivice record - ALARM_ID_FP_NVM_INVALID_USAGE_RECORD_CRC = 240 # FP invalid usage record + ALARM_ID_TD_RECIRC_TIMEOUT_WARNING = 235 # TD recirculate timeout warning + ALARM_ID_TD_RECIRC_TIMEOUT = 236 # TD recirculate timeout + ALARM_ID_FW_RESERVED_237 = 237 # FW reserved for use + ALARM_ID_FW_RESERVED_238 = 238 # FW reserved for use + ALARM_ID_FW_RESERVED_239 = 239 # FW reserved for use + ALARM_ID_FW_RESERVED_240 = 240 # FW reserved for use ALARM_ID_FW_RESERVED_241 = 241 # FW reserved for use ALARM_ID_FW_RESERVED_242 = 242 # FW reserved for use ALARM_ID_FW_RESERVED_243 = 243 # FW reserved for use Index: leahi_dialin/common/msg_defs.py =================================================================== diff -u -re9dfb2412b14f3d28824cb3e37c364b8194bb24e -r26cc08213fa34b2b2ec781dfb0768d8df1575abf --- leahi_dialin/common/msg_defs.py (.../msg_defs.py) (revision e9dfb2412b14f3d28824cb3e37c364b8194bb24e) +++ leahi_dialin/common/msg_defs.py (.../msg_defs.py) (revision 26cc08213fa34b2b2ec781dfb0768d8df1575abf) @@ -8,7 +8,7 @@ # @file msg_defs.py # # @author (last) Enum Updater Script -# @date (last) 11-Aug-2026 +# @date (last) 19-Aug-2026 # @author (original) Zoltan Miskolci # @date (original) 31-Jul-2026 # @@ -88,8 +88,12 @@ REQUEST_REJECT_REASON_NVM_JOB_QUEUE_BUSY = 62 # NVM Job queue is busy sending other records. REQUEST_REJECT_REASON_NVM_INVALID_CRC = 63 # NVM received CRC of the record is invalid REQUEST_REJECT_REASON_NVM_INVALID_OPERATION_MODE = 64 # NVM Operation Mode is not Service mode. - REQUEST_REJECT_REASON_INDEX_OUT_OF_RANGE = 65 # Index is out of range - NUM_OF_REQUEST_REJECT_REASONS = 66 # Number of settings change reject codes + REQUEST_REJECT_REASON_FP_BUSY = 65 # Treatment cannot initiate if FP is busy + REQUEST_REJECT_REASON_FP_SERVICE_IS_DUE = 66 # FP service is due + REQUEST_REJECT_REASON_DD_TEMPERATURE_OUT_OF_RANGE = 67 # DD temperature too high + REQUEST_REJECT_REASON_DD_BUSY = 68 # Treatment cannot initiate if DD is busy + REQUEST_REJECT_REASON_REQUEST_ALREADY_PENDING = 69 # Reject if a treatment start request is already pending. + NUM_OF_REQUEST_REJECT_REASONS = 70 # Number of settings change reject codes RequestRejectReasons._str_list = { } Index: leahi_dialin/common/msg_ids.py =================================================================== diff -u -r0762e3a03157e5f3428387a6914a13ed38d3ddca -r26cc08213fa34b2b2ec781dfb0768d8df1575abf --- leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision 0762e3a03157e5f3428387a6914a13ed38d3ddca) +++ leahi_dialin/common/msg_ids.py (.../msg_ids.py) (revision 26cc08213fa34b2b2ec781dfb0768d8df1575abf) @@ -8,7 +8,7 @@ # @file msg_ids.py # # @author (last) Enum Updater Script -# @date (last) 11-Aug-2026 +# @date (last) 19-Aug-2026 # @author (original) Zoltan Miskolci # @date (original) 31-Jul-2026 # @@ -184,8 +184,8 @@ MSG_ID_TD_ISOLATED_UF_VOLUME_GOAL_CHANGE_RESPONSE = 0x9E # TD isolated UF volume goal change response MSG_ID_UI_ISOLATED_UF_CONFIRM_REQUEST = 0x9F # UI isolated UF confirm request MSG_ID_TD_ISOLATED_UF_CONFIRM_RESPONSE = 0xA0 # TD isolated UF confirm response - MSG_ID_UI_ADJUST_START_TREATMENT_REQUEST = 0xA1 # UI adjust start treatment request - MSG_ID_TD_ADJUST_START_TREATMENT_RESPONSE = 0xA2 # TD adjust start treatment response + MSG_ID_UI_START_TREATMENT_REQUEST = 0xA1 # UI start treatment request + MSG_ID_TD_START_TREATMENT_RESPONSE = 0xA2 # TD start treatment response MSG_ID_UI_WATER_SAMPLE_RESULT_REQUEST = 0xA3 # UI water sample result request MSG_ID_UI_PRESSURE_LIMIT_WIDEN_REQUEST = 0xA4 # UI pressure limit widen request. MSG_ID_TD_PRESSURE_LIMIT_WIDEN_RESPONSE = 0xA5 # TD pressure limit widen response. @@ -206,30 +206,29 @@ MSG_ID_FFU_SIGNAL_DD_UPDATE_AVAILABLE = 0xB4 # FFU signal DD update is available. MSG_ID_TD_UI_GENERIC_CONFIRMATION_REQUEST = 0xB5 # TD request for generic UI confirmation. MSG_ID_UI_GENERIC_CONFIRMATION_RESULT_RESPONSE = 0xB6 # UI generic confirmation result to TD. - MSG_ID_AVAILABLE_B7 = 0xB7 # Msg ID not used - available for use. + MSG_ID_TD_PRE_TREATMENT_STATES_DATA = 0xB7 # TD Pre-Treatment states broadcast data.. MSG_ID_UI_VITALS_ADJUSTMENT_REQUEST = 0xB8 # UI vitals adjustment request MSG_ID_TD_VITALS_ADJUSTMENT_RESPONSE = 0xB9 # TD vitals adjustment response - MSG_ID_TD_PRIME_PROGRESS_DATA = 0xC7 + MSG_ID_TD_PRIME_PROGRESS_DATA = 0xC7 # MSG_ID_UI_SETUP_TUBING_SET_CONNECTIONS_CONFIRM_REQUEST = 0xD6 # UI setup connection confirmation request MSG_ID_TD_SETUP_TUBING_SET_CONNECTIONS_CONFIRM_RESPONSE = 0xD7 # TD setup connection confirmation response - MSG_ID_TD_POST_FINAL_TEST_RESULT = 0xD8 - MSG_ID_TD_POST_SINGLE_TEST_RESULT = 0xD9 - MSG_ID_TD_UI_CANCEL_REQUEST = 0xDA + MSG_ID_TD_POST_FINAL_TEST_RESULT = 0xD8 # TD POST final test result + MSG_ID_TD_POST_SINGLE_TEST_RESULT = 0xD9 # TD POST single test result + MSG_ID_TD_UI_CANCEL_REQUEST = 0xDA # MSG_ID_DD_SUBSTITUTION_PUMP_DATA = 0xDB # DD substitution pump broadcast data. MSG_ID_DD_CONDUCTIVITY_SENSOR_RESISTANCE_DATA = 0xDC # DD conductivity resistance data broadcast. MSG_ID_FP_FILTER_FLUSH_DATA = 0xDD # FP Filter Flush broadcast data MSG_ID_FP_PERMEATE_FLUSH_DATA = 0xDE # FP Permeate Flush broadcast data - MSG_ID_UI_RO_WATER_MODE_REQUEST = 0xEB - MSG_ID_DD_RO_WATER_MODE_RESPONSE = 0xEC - MSG_ID_UI_ADJUST_RO_WATER_MODE_REQUEST = 0xED - MSG_ID_DD_ADJUST_RO_WATER_MODE_RESPONSE = 0xEE - TBD_EF = 0xEF - MSG_ID_DD_PISTON_PUMP_CONTROL_DATA = 0xF0 + MSG_ID_UI_RO_WATER_MODE_REQUEST = 0xEB # + MSG_ID_DD_RO_WATER_MODE_RESPONSE = 0xEC # + MSG_ID_UI_ADJUST_RO_WATER_MODE_REQUEST = 0xED # + MSG_ID_DD_ADJUST_RO_WATER_MODE_RESPONSE = 0xEE # + TBD_EF = 0xEF # + MSG_ID_DD_PISTON_PUMP_CONTROL_DATA = 0xF0 # - MSG_ID_UI_DD_NVM_GET_SYSTEM_RECORD_REQUEST = 0x100 # DD NVM Get System Record Request MSG_ID_DD_UI_NVM_GET_SYSTEM_RECORD_RESPONSE = 0x101 # DD NVM Get System Record Response MSG_ID_UI_DD_NVM_SET_SYSTEM_RECORD_REQUEST = 0x102 # DD NVM Set System Record Request @@ -396,7 +395,7 @@ MSG_ID_TD_BATTERY_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8064 # TD battery publish interval override. MSG_ID_TD_RINSEBACK_VOLUME_OVERRIDE = 0x8065 # TD rinseback volume override MSG_ID_TD_RINSEBACK_PUBLISH_INTERVAL_OVERRIDE_REQUEST = 0x8066 # TD rinseback publish interval broadcast override. - + MSG_ID_TD_AIR_PUMP_RPM_OVERRIDE_REQUEST = 0x8067 # TD Override request for Air Pump RPM MSG_ID_TD_BATTERY_I2C_STATUS_OVERRIDE_REQUEST = 0x8068 # TD battery I2C status override. MSG_ID_TD_TRAINING_TEST_OVERRIDE_REQUEST = 0x8999 # TD training test override request Index: leahi_dialin/utils/enum_updater.py =================================================================== diff -u -r5f16af73fb80a76c6dc767661f11a8f3508770a1 -r26cc08213fa34b2b2ec781dfb0768d8df1575abf --- leahi_dialin/utils/enum_updater.py (.../enum_updater.py) (revision 5f16af73fb80a76c6dc767661f11a8f3508770a1) +++ leahi_dialin/utils/enum_updater.py (.../enum_updater.py) (revision 26cc08213fa34b2b2ec781dfb0768d8df1575abf) @@ -151,9 +151,11 @@ inside_enum = False continue - match = re.match(r"\s*(\w+)\s*=\s*([0-9A-Fa-fx]+)\s*#\s*(.*)", line ) + match = re.match(r"\s*(\w+)\s*=\s*([0-9A-Fa-fx]+)\s*(#\s*(.*))*", line ) if match: - member, value, comment = match.groups() + member, value, full_comment, comment = match.groups() + if comment is None: + comment = '' result[enum_name].append( { "member": member, "value": int(value, 0), "comment": comment,