########################################################################### # # Copyright (c) 2021-2024 Diality Inc. - All Rights Reserved. # # THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN # WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. # # @file generic_defs.py # # @author (last) Zoltan Miskolci # @date (last) 04-May-2026 # @author (last) Zoltan Miskolci # @date (last) 01-May-2026 # ############################################################################ from enum import unique from ..utils.enums import DialinEnum @unique class DataTypes(DialinEnum): NONE = (0, ' Integer S32 = (2, ' Integer F32 = (3, ' Float BOOL = (4, ' Integer # After this point the Data Types are extra ones used only in Dialin U08 = (5, ' Integer U16 = (6, ' Integer S16 = (7, ' Integer BOOL_U08 = (8, ' Integer NUM_OF_DATA_TYPES = (9, None, 0) # Number of Data Types - None def __new__(cls, value, unpack_fmt, unpack_size): obj = object.__new__(cls) obj._value_ = value # keeps .value as int obj.unpack_fmt = unpack_fmt # attach extra attribute obj.unpack_size = unpack_size # attach extra attribute return obj def unpack_attrib(self) -> str: return self.unpack_fmt def size(self) -> int: return self.unpack_size DataTypes._str_list = { # Official Name : Accepted strings 'NONE': [], 'U32': [], 'S32': [], 'F32': [], 'BOOL': ['boolean'], 'U08': ['u8'], 'U16': [], 'S16': [], 'BOOL_U08': [], 'NUM_OF_DATA_TYPES': [], } @unique class AlarmLampPatterns(DialinEnum): OFF = 0 OK = 1 FAULT = 2 HIGH = 3 MEDIUM = 4 LOW = 5 MANUAL = 6 NUM_OF_ALARM_LAMP_PATTERNS = 7 AlarmLampPatterns._str_list = { 'OFF':[], 'OK':[], 'FAULT':[], 'HIGH':[], 'MEDIUM':[], 'LOW':[], 'MANUAL':[], 'NUM_OF_ALARM_LAMP_PATTERNS':[] } @unique class AlarmPriorities(DialinEnum): NONE = 0 LOW = 1 MEDIUM = 2 HIGH = 3 NUM_OF_ALARM_PRIORITIES = 4 AlarmPriorities._str_list = { 'NONE': [], 'LOW': [], 'MEDIUM': [], 'HIGH': [], 'NUM_OF_ALARM_PRIORITIES': [] } @unique class AlarmProperties(DialinEnum): PRIORITY = 0 # RANK = 1 # SOURCE = 2 # SYSTEM_FAULT = 3 # DD_FAULT = 4 # STOPS = 5 # CLEAR_IMMEDIATELY = 6 # NO_CLEAR = 7 # NO_RESUME = 8 # NO_RINSEBACK = 9 # NO_END_TREATMENT = 10 # NOT_IN_RINSEBACK = 11 # NOT_IN_POST_TREATMENT = 12 # NO_BLOOD_RECIRC = 13 # NO_DIAL_RECIRC = 14 # AUTO_RESUME = 15 # CLEAR_ALARM_ONLY = 16 # TREATMENT_LOG = 17 # NUM_OF_ALARM_PROPERTIES = 18 # AlarmProperties._str_list = { 'PRIORITY': [], 'RANK': [], 'SOURCE': [], 'SYSTEM_FAULT': [], 'DD_FAULT': [], 'STOPS': [], 'CLEAR_IMMEDIATELY': [], 'NO_CLEAR': [], 'NO_RESUME': [], 'NO_RINSEBACK': [], 'NO_END_TREATMENT': [], 'NOT_IN_RINSEBACK': [], 'NOT_IN_POST_TREATMENT': [], 'NO_BLOOD_RECIRC': [], 'NO_DIAL_RECIRC': [], 'AUTO_RESUME': [], 'CLEAR_ALARM_ONLY': [], 'TREATMENT_LOG': [], 'NUM_OF_ALARM_PROPERTIES ': [] } @unique class AlarmResponseButtons(DialinEnum): RESUME = 0 RINSEBACK = 1 END_TREATMENT = 2 NUM_OF_TD_ALARM_RESPONSE_BUTTONS = 3 AlarmResponseButtons._str_list = { 'RESUME': [], 'RINSEBACK': [], 'END_TREATMENT': [], 'NUM_OF_TD_ALARM_RESPONSE_BUTTONS': [] }