pychemstation.utils.table_types

  1from __future__ import annotations
  2
  3from dataclasses import dataclass
  4from enum import Enum
  5from typing import TypeVar
  6
  7
  8class TableOperation(Enum):
  9    """
 10    MACROS related to editing and reading tables in Chemstation.
 11    """
 12
 13    def __str__(self):
 14        return "%s" % self.value
 15
 16    DELETE_TABLE = 'DelTab {register}, "{table_name}"'
 17    CREATE_TABLE = 'NewTab {register}, "{table_name}"'
 18    NEW_ROW = 'InsTabRow {register}, "{table_name}"'
 19    NEW_ROW_SPECIFIC = 'InsTabRow {register}, "{table_name}"'
 20    MOVE_ROW = 'MoveTabRow {register}, "{table_name}", {from_row}, {to_row}'
 21    DELETE_ROW = 'DelTabRow {register}, "{table_name}", {row}'
 22    EDIT_ROW_VAL = 'SetTabVal "{register}", "{table_name}", {row}, "{col_name}", {val}'
 23    EDIT_ROW_TEXT = (
 24        'SetTabText "{register}", "{table_name}", {row}, "{col_name}", "{val}"'
 25    )
 26    GET_ROW_VAL = 'TabVal("{register}", "{table_name}", {row}, "{col_name}")'
 27    GET_ROW_TEXT = 'TabText$("{register}", "{table_name}", {row}, "{col_name}")'
 28    GET_NUM_ROWS = 'Rows = TabHdrVal({register}, "{table_name}", "{col_name}")'
 29    GET_OBJ_HDR_VAL = 'ObjHdrVal("{register}", "{register_flag}")'
 30    GET_OBJ_HDR_TEXT = 'ObjHdrText$("{register}", "{register_flag}")'
 31    UPDATE_OBJ_HDR_VAL = 'SetObjHdrVal "{register}", "{register_flag}", {val}'
 32    UPDATE_OBJ_HDR_TEXT = 'SetObjHdrText "{register}", "{register_flag}", "{val}"'
 33    NEW_COL_TEXT = 'NewColText {register}, "{table_name}", "{col_name}", "{val}"'
 34    NEW_COL_VAL = 'NewColVal {register}, "{table_name}", "{col_name}", {val}'
 35
 36
 37class RegisterFlag(Enum):
 38    """
 39    Flags for accessing Chemstation parameters.
 40    """
 41
 42    def __str__(self):
 43        return "%s" % self.value
 44
 45    # sample info
 46    VIAL_NUMBER = "VialNumber"
 47
 48    # for table
 49    NUM_ROWS = "NumberOfRows"
 50
 51    # for Method
 52    SOLVENT_A_COMPOSITION = "PumpChannel_CompositionPercentage"
 53    SOLVENT_B_COMPOSITION = "PumpChannel2_CompositionPercentage"
 54    SOLVENT_C_COMPOSITION = "PumpChannel3_CompositionPercentage"
 55    SOLVENT_D_COMPOSITION = "PumpChannel4_CompositionPercentage"
 56    FLOW = "Flow"
 57    MAX_TIME = "StopTime_Time"
 58    POST_TIME = "PostTime_Time"
 59    COLUMN_OVEN_TEMP1 = "TemperatureControl_Temperature"
 60    COLUMN_OVEN_TEMP2 = "TemperatureControl2_Temperature"
 61    STOPTIME_MODE = "StopTime_Mode"
 62    POSTIME_MODE = "PostTime_Mode"
 63    TIME = "Time"
 64    TIMETABLE_SOLVENT_B_COMPOSITION = "SolventCompositionPumpChannel2_Percentage"
 65    TIMETABLE_FLOW = "FlowFlow"
 66
 67    # for Method Timetable
 68    SOLVENT_COMPOSITION = "SolventComposition"
 69    PRESSURE = "Pressure"
 70    EXTERNAL_CONTACT = "ExternalContact"
 71    FUNCTION = "Function"
 72
 73    # for Sequence
 74    VIAL_LOCATION = "Vial"
 75    NAME = "SampleName"
 76    METHOD = "Method"
 77    INJ_VOL = "InjVolume"
 78    INJ_SOR = "InjectionSource"
 79    NUM_INJ = "InjVial"
 80    SAMPLE_TYPE = "SampleType"
 81    DATA_FILE = "DataFileName"
 82
 83    # for Injector Table
 84    ## Draw
 85    DRAW_SOURCE = "DrawSource"
 86    DRAW_VOLUME = "DrawVolume_Mode"
 87    DRAW_SPEED = "DrawSpeed_Mode"
 88    DRAW_OFFSET = "DrawOffset_Mode"
 89    DRAW_VOLUME_VALUE = "DrawVolume_Value"
 90    DRAW_LOCATION = "DrawLocation"
 91    DRAW_LOCATION_TRAY = "DrawLocationPlus_Tray"
 92    DRAW_LOCATION_UNIT = "DrawLocationPlus_Unit"
 93    DRAW_LOCATION_ROW = "DrawLocationPlus_Row"
 94    DRAW_LOCATION_COLUMN = "DrawLocationPlus_Column"
 95    ## Inject
 96    ## Wait
 97    ## Remote
 98    REMOTE = "RemoteLine"
 99    REMOTE_DUR = "RemoteDuration"
100    # Injection Volume
101    INJECTION_VOLUME = "Injection_Volume"
102
103    ## For Pump
104    ### Volume Status
105    BOTTLE_A1_ABSOLUTE_FILLING = "BottleFilling_CurrentAbsolute"
106    BOTTLE_A1_PERCENT_FILLING = "BottleFilling_CurrentPercent"
107    BOTTLE_A1_MAX = "BottleFilling_MaximumAbsolute"
108
109    BOTTLE_A2_ABSOLUTE_FILLING = "BottleFilling2_CurrentAbsolute"
110    BOTTLE_A2_PERCENT_FILLING = "BottleFilling2_CurrentPercent"
111    BOTTLE_A2_MAX = "BottleFilling2_MaximumAbsolute"
112
113    BOTTLE_B1_ABSOLUTE_FILLING = "BottleFilling3_CurrentAbsolute"
114    BOTTLE_B1_PERCENT_FILLING = "BottleFilling3_CurrentPercent"
115    BOTTLE_B1_MAX = "BottleFilling3_MaximumAbsolute"
116
117    BOTTLE_B2_ABSOLUTE_FILLING = "BottleFilling4_CurrentAbsolute"
118    BOTTLE_B2_PERCENT_FILLING = "BottleFilling4_CurrentPercent"
119    BOTTLE_B2_MAX = "BottleFilling4_MaximumAbsolute"
120
121    WASTE_BOTTLE_ABSOLUTE = "WasteBottleFilling_CurrentAbsolute"
122    WASTE_BOTTLE_PERCENT = "WasteBottleFilling_CurrentPercent"
123    WASTE_BOTTLE_MAX = "WasteBottleFilling_MaximumPercent"
124
125    ### Switching Solvent Bottles
126    PUMPCHANNEL_USED = "PumpChannel_IsUsed"
127    PUMPCHANNEL_SELECTION = "PumpChannel_SolventSelectionValvePosition"
128    BOTTLE_A1_USER_NAME = "PumpChannel_Position1_UserName"
129    BOTTLE_A2_USER_NAME = "PumpChannel_Position2_UserName"
130    PUMPCHANNEL2_USED = "PumpChannel_IsUsed"
131    PUMPCHANNEL2_SELECTION = "PumpChannel2_SolventSelectionValvePosition"
132    BOTTLE_B1_USER_NAME = "PumpChannel2_Position1_UserName"
133    BOTTLE_B2_USER_NAME = "PumpChannel2_Position2_UserName"
134
135    # For Column
136    AVAIL_COLUMN_DISPLAY_VALUES = "ColumnSwitchingValve_PositionDisplayValues"
137    AVAIL_COLUMN_POSITIONS = "ColumnSwitchingValve_PositionValues"
138    COLUMN_POSITION = "ColumnSwitchingValve_Position"
139
140    # For DAD
141    SIGNAL_A = "Signal_Wavelength"
142    SIGNAL_B = "Signal2_Wavelength"
143    SIGNAL_C = "Signal3_Wavelength"
144    SIGNAL_D = "Signal4_Wavelength"
145    SIGNAL_E = "Signal5_Wavelength"
146    SIGNAL_A_USED = "Signal_IsUsed"
147    SIGNAL_B_USED = "Signal2_IsUsed"
148    SIGNAL_C_USED = "Signal3_IsUsed"
149    SIGNAL_D_USED = "Signal4_IsUsed"
150    SIGNAL_E_USED = "Signal5_IsUsed"
151
152
153@dataclass
154class Table:
155    """
156    Class for storing the keys needed to access certain register tables.
157    """
158
159    register: str
160    name: str
161
162
163@dataclass
164class Device:
165    """
166    Class for storing the keys needed to access certain devices
167    """
168
169    register: str
170
171
172T = TypeVar("T")
class TableOperation(enum.Enum):
 9class TableOperation(Enum):
10    """
11    MACROS related to editing and reading tables in Chemstation.
12    """
13
14    def __str__(self):
15        return "%s" % self.value
16
17    DELETE_TABLE = 'DelTab {register}, "{table_name}"'
18    CREATE_TABLE = 'NewTab {register}, "{table_name}"'
19    NEW_ROW = 'InsTabRow {register}, "{table_name}"'
20    NEW_ROW_SPECIFIC = 'InsTabRow {register}, "{table_name}"'
21    MOVE_ROW = 'MoveTabRow {register}, "{table_name}", {from_row}, {to_row}'
22    DELETE_ROW = 'DelTabRow {register}, "{table_name}", {row}'
23    EDIT_ROW_VAL = 'SetTabVal "{register}", "{table_name}", {row}, "{col_name}", {val}'
24    EDIT_ROW_TEXT = (
25        'SetTabText "{register}", "{table_name}", {row}, "{col_name}", "{val}"'
26    )
27    GET_ROW_VAL = 'TabVal("{register}", "{table_name}", {row}, "{col_name}")'
28    GET_ROW_TEXT = 'TabText$("{register}", "{table_name}", {row}, "{col_name}")'
29    GET_NUM_ROWS = 'Rows = TabHdrVal({register}, "{table_name}", "{col_name}")'
30    GET_OBJ_HDR_VAL = 'ObjHdrVal("{register}", "{register_flag}")'
31    GET_OBJ_HDR_TEXT = 'ObjHdrText$("{register}", "{register_flag}")'
32    UPDATE_OBJ_HDR_VAL = 'SetObjHdrVal "{register}", "{register_flag}", {val}'
33    UPDATE_OBJ_HDR_TEXT = 'SetObjHdrText "{register}", "{register_flag}", "{val}"'
34    NEW_COL_TEXT = 'NewColText {register}, "{table_name}", "{col_name}", "{val}"'
35    NEW_COL_VAL = 'NewColVal {register}, "{table_name}", "{col_name}", {val}'

MACROS related to editing and reading tables in Chemstation.

DELETE_TABLE = <TableOperation.DELETE_TABLE: 'DelTab {register}, "{table_name}"'>
CREATE_TABLE = <TableOperation.CREATE_TABLE: 'NewTab {register}, "{table_name}"'>
NEW_ROW = <TableOperation.NEW_ROW: 'InsTabRow {register}, "{table_name}"'>
NEW_ROW_SPECIFIC = <TableOperation.NEW_ROW: 'InsTabRow {register}, "{table_name}"'>
MOVE_ROW = <TableOperation.MOVE_ROW: 'MoveTabRow {register}, "{table_name}", {from_row}, {to_row}'>
DELETE_ROW = <TableOperation.DELETE_ROW: 'DelTabRow {register}, "{table_name}", {row}'>
EDIT_ROW_VAL = <TableOperation.EDIT_ROW_VAL: 'SetTabVal "{register}", "{table_name}", {row}, "{col_name}", {val}'>
EDIT_ROW_TEXT = <TableOperation.EDIT_ROW_TEXT: 'SetTabText "{register}", "{table_name}", {row}, "{col_name}", "{val}"'>
GET_ROW_VAL = <TableOperation.GET_ROW_VAL: 'TabVal("{register}", "{table_name}", {row}, "{col_name}")'>
GET_ROW_TEXT = <TableOperation.GET_ROW_TEXT: 'TabText$("{register}", "{table_name}", {row}, "{col_name}")'>
GET_NUM_ROWS = <TableOperation.GET_NUM_ROWS: 'Rows = TabHdrVal({register}, "{table_name}", "{col_name}")'>
GET_OBJ_HDR_VAL = <TableOperation.GET_OBJ_HDR_VAL: 'ObjHdrVal("{register}", "{register_flag}")'>
GET_OBJ_HDR_TEXT = <TableOperation.GET_OBJ_HDR_TEXT: 'ObjHdrText$("{register}", "{register_flag}")'>
UPDATE_OBJ_HDR_VAL = <TableOperation.UPDATE_OBJ_HDR_VAL: 'SetObjHdrVal "{register}", "{register_flag}", {val}'>
UPDATE_OBJ_HDR_TEXT = <TableOperation.UPDATE_OBJ_HDR_TEXT: 'SetObjHdrText "{register}", "{register_flag}", "{val}"'>
NEW_COL_TEXT = <TableOperation.NEW_COL_TEXT: 'NewColText {register}, "{table_name}", "{col_name}", "{val}"'>
NEW_COL_VAL = <TableOperation.NEW_COL_VAL: 'NewColVal {register}, "{table_name}", "{col_name}", {val}'>
class RegisterFlag(enum.Enum):
 38class RegisterFlag(Enum):
 39    """
 40    Flags for accessing Chemstation parameters.
 41    """
 42
 43    def __str__(self):
 44        return "%s" % self.value
 45
 46    # sample info
 47    VIAL_NUMBER = "VialNumber"
 48
 49    # for table
 50    NUM_ROWS = "NumberOfRows"
 51
 52    # for Method
 53    SOLVENT_A_COMPOSITION = "PumpChannel_CompositionPercentage"
 54    SOLVENT_B_COMPOSITION = "PumpChannel2_CompositionPercentage"
 55    SOLVENT_C_COMPOSITION = "PumpChannel3_CompositionPercentage"
 56    SOLVENT_D_COMPOSITION = "PumpChannel4_CompositionPercentage"
 57    FLOW = "Flow"
 58    MAX_TIME = "StopTime_Time"
 59    POST_TIME = "PostTime_Time"
 60    COLUMN_OVEN_TEMP1 = "TemperatureControl_Temperature"
 61    COLUMN_OVEN_TEMP2 = "TemperatureControl2_Temperature"
 62    STOPTIME_MODE = "StopTime_Mode"
 63    POSTIME_MODE = "PostTime_Mode"
 64    TIME = "Time"
 65    TIMETABLE_SOLVENT_B_COMPOSITION = "SolventCompositionPumpChannel2_Percentage"
 66    TIMETABLE_FLOW = "FlowFlow"
 67
 68    # for Method Timetable
 69    SOLVENT_COMPOSITION = "SolventComposition"
 70    PRESSURE = "Pressure"
 71    EXTERNAL_CONTACT = "ExternalContact"
 72    FUNCTION = "Function"
 73
 74    # for Sequence
 75    VIAL_LOCATION = "Vial"
 76    NAME = "SampleName"
 77    METHOD = "Method"
 78    INJ_VOL = "InjVolume"
 79    INJ_SOR = "InjectionSource"
 80    NUM_INJ = "InjVial"
 81    SAMPLE_TYPE = "SampleType"
 82    DATA_FILE = "DataFileName"
 83
 84    # for Injector Table
 85    ## Draw
 86    DRAW_SOURCE = "DrawSource"
 87    DRAW_VOLUME = "DrawVolume_Mode"
 88    DRAW_SPEED = "DrawSpeed_Mode"
 89    DRAW_OFFSET = "DrawOffset_Mode"
 90    DRAW_VOLUME_VALUE = "DrawVolume_Value"
 91    DRAW_LOCATION = "DrawLocation"
 92    DRAW_LOCATION_TRAY = "DrawLocationPlus_Tray"
 93    DRAW_LOCATION_UNIT = "DrawLocationPlus_Unit"
 94    DRAW_LOCATION_ROW = "DrawLocationPlus_Row"
 95    DRAW_LOCATION_COLUMN = "DrawLocationPlus_Column"
 96    ## Inject
 97    ## Wait
 98    ## Remote
 99    REMOTE = "RemoteLine"
100    REMOTE_DUR = "RemoteDuration"
101    # Injection Volume
102    INJECTION_VOLUME = "Injection_Volume"
103
104    ## For Pump
105    ### Volume Status
106    BOTTLE_A1_ABSOLUTE_FILLING = "BottleFilling_CurrentAbsolute"
107    BOTTLE_A1_PERCENT_FILLING = "BottleFilling_CurrentPercent"
108    BOTTLE_A1_MAX = "BottleFilling_MaximumAbsolute"
109
110    BOTTLE_A2_ABSOLUTE_FILLING = "BottleFilling2_CurrentAbsolute"
111    BOTTLE_A2_PERCENT_FILLING = "BottleFilling2_CurrentPercent"
112    BOTTLE_A2_MAX = "BottleFilling2_MaximumAbsolute"
113
114    BOTTLE_B1_ABSOLUTE_FILLING = "BottleFilling3_CurrentAbsolute"
115    BOTTLE_B1_PERCENT_FILLING = "BottleFilling3_CurrentPercent"
116    BOTTLE_B1_MAX = "BottleFilling3_MaximumAbsolute"
117
118    BOTTLE_B2_ABSOLUTE_FILLING = "BottleFilling4_CurrentAbsolute"
119    BOTTLE_B2_PERCENT_FILLING = "BottleFilling4_CurrentPercent"
120    BOTTLE_B2_MAX = "BottleFilling4_MaximumAbsolute"
121
122    WASTE_BOTTLE_ABSOLUTE = "WasteBottleFilling_CurrentAbsolute"
123    WASTE_BOTTLE_PERCENT = "WasteBottleFilling_CurrentPercent"
124    WASTE_BOTTLE_MAX = "WasteBottleFilling_MaximumPercent"
125
126    ### Switching Solvent Bottles
127    PUMPCHANNEL_USED = "PumpChannel_IsUsed"
128    PUMPCHANNEL_SELECTION = "PumpChannel_SolventSelectionValvePosition"
129    BOTTLE_A1_USER_NAME = "PumpChannel_Position1_UserName"
130    BOTTLE_A2_USER_NAME = "PumpChannel_Position2_UserName"
131    PUMPCHANNEL2_USED = "PumpChannel_IsUsed"
132    PUMPCHANNEL2_SELECTION = "PumpChannel2_SolventSelectionValvePosition"
133    BOTTLE_B1_USER_NAME = "PumpChannel2_Position1_UserName"
134    BOTTLE_B2_USER_NAME = "PumpChannel2_Position2_UserName"
135
136    # For Column
137    AVAIL_COLUMN_DISPLAY_VALUES = "ColumnSwitchingValve_PositionDisplayValues"
138    AVAIL_COLUMN_POSITIONS = "ColumnSwitchingValve_PositionValues"
139    COLUMN_POSITION = "ColumnSwitchingValve_Position"
140
141    # For DAD
142    SIGNAL_A = "Signal_Wavelength"
143    SIGNAL_B = "Signal2_Wavelength"
144    SIGNAL_C = "Signal3_Wavelength"
145    SIGNAL_D = "Signal4_Wavelength"
146    SIGNAL_E = "Signal5_Wavelength"
147    SIGNAL_A_USED = "Signal_IsUsed"
148    SIGNAL_B_USED = "Signal2_IsUsed"
149    SIGNAL_C_USED = "Signal3_IsUsed"
150    SIGNAL_D_USED = "Signal4_IsUsed"
151    SIGNAL_E_USED = "Signal5_IsUsed"

Flags for accessing Chemstation parameters.

VIAL_NUMBER = <RegisterFlag.VIAL_NUMBER: 'VialNumber'>
NUM_ROWS = <RegisterFlag.NUM_ROWS: 'NumberOfRows'>
SOLVENT_A_COMPOSITION = <RegisterFlag.SOLVENT_A_COMPOSITION: 'PumpChannel_CompositionPercentage'>
SOLVENT_B_COMPOSITION = <RegisterFlag.SOLVENT_B_COMPOSITION: 'PumpChannel2_CompositionPercentage'>
SOLVENT_C_COMPOSITION = <RegisterFlag.SOLVENT_C_COMPOSITION: 'PumpChannel3_CompositionPercentage'>
SOLVENT_D_COMPOSITION = <RegisterFlag.SOLVENT_D_COMPOSITION: 'PumpChannel4_CompositionPercentage'>
FLOW = <RegisterFlag.FLOW: 'Flow'>
MAX_TIME = <RegisterFlag.MAX_TIME: 'StopTime_Time'>
POST_TIME = <RegisterFlag.POST_TIME: 'PostTime_Time'>
COLUMN_OVEN_TEMP1 = <RegisterFlag.COLUMN_OVEN_TEMP1: 'TemperatureControl_Temperature'>
COLUMN_OVEN_TEMP2 = <RegisterFlag.COLUMN_OVEN_TEMP2: 'TemperatureControl2_Temperature'>
STOPTIME_MODE = <RegisterFlag.STOPTIME_MODE: 'StopTime_Mode'>
POSTIME_MODE = <RegisterFlag.POSTIME_MODE: 'PostTime_Mode'>
TIME = <RegisterFlag.TIME: 'Time'>
TIMETABLE_SOLVENT_B_COMPOSITION = <RegisterFlag.TIMETABLE_SOLVENT_B_COMPOSITION: 'SolventCompositionPumpChannel2_Percentage'>
TIMETABLE_FLOW = <RegisterFlag.TIMETABLE_FLOW: 'FlowFlow'>
SOLVENT_COMPOSITION = <RegisterFlag.SOLVENT_COMPOSITION: 'SolventComposition'>
PRESSURE = <RegisterFlag.PRESSURE: 'Pressure'>
EXTERNAL_CONTACT = <RegisterFlag.EXTERNAL_CONTACT: 'ExternalContact'>
FUNCTION = <RegisterFlag.FUNCTION: 'Function'>
VIAL_LOCATION = <RegisterFlag.VIAL_LOCATION: 'Vial'>
NAME = <RegisterFlag.NAME: 'SampleName'>
METHOD = <RegisterFlag.METHOD: 'Method'>
INJ_VOL = <RegisterFlag.INJ_VOL: 'InjVolume'>
INJ_SOR = <RegisterFlag.INJ_SOR: 'InjectionSource'>
NUM_INJ = <RegisterFlag.NUM_INJ: 'InjVial'>
SAMPLE_TYPE = <RegisterFlag.SAMPLE_TYPE: 'SampleType'>
DATA_FILE = <RegisterFlag.DATA_FILE: 'DataFileName'>
DRAW_SOURCE = <RegisterFlag.DRAW_SOURCE: 'DrawSource'>
DRAW_VOLUME = <RegisterFlag.DRAW_VOLUME: 'DrawVolume_Mode'>
DRAW_SPEED = <RegisterFlag.DRAW_SPEED: 'DrawSpeed_Mode'>
DRAW_OFFSET = <RegisterFlag.DRAW_OFFSET: 'DrawOffset_Mode'>
DRAW_VOLUME_VALUE = <RegisterFlag.DRAW_VOLUME_VALUE: 'DrawVolume_Value'>
DRAW_LOCATION = <RegisterFlag.DRAW_LOCATION: 'DrawLocation'>
DRAW_LOCATION_TRAY = <RegisterFlag.DRAW_LOCATION_TRAY: 'DrawLocationPlus_Tray'>
DRAW_LOCATION_UNIT = <RegisterFlag.DRAW_LOCATION_UNIT: 'DrawLocationPlus_Unit'>
DRAW_LOCATION_ROW = <RegisterFlag.DRAW_LOCATION_ROW: 'DrawLocationPlus_Row'>
DRAW_LOCATION_COLUMN = <RegisterFlag.DRAW_LOCATION_COLUMN: 'DrawLocationPlus_Column'>
REMOTE = <RegisterFlag.REMOTE: 'RemoteLine'>
REMOTE_DUR = <RegisterFlag.REMOTE_DUR: 'RemoteDuration'>
INJECTION_VOLUME = <RegisterFlag.INJECTION_VOLUME: 'Injection_Volume'>
BOTTLE_A1_ABSOLUTE_FILLING = <RegisterFlag.BOTTLE_A1_ABSOLUTE_FILLING: 'BottleFilling_CurrentAbsolute'>
BOTTLE_A1_PERCENT_FILLING = <RegisterFlag.BOTTLE_A1_PERCENT_FILLING: 'BottleFilling_CurrentPercent'>
BOTTLE_A1_MAX = <RegisterFlag.BOTTLE_A1_MAX: 'BottleFilling_MaximumAbsolute'>
BOTTLE_A2_ABSOLUTE_FILLING = <RegisterFlag.BOTTLE_A2_ABSOLUTE_FILLING: 'BottleFilling2_CurrentAbsolute'>
BOTTLE_A2_PERCENT_FILLING = <RegisterFlag.BOTTLE_A2_PERCENT_FILLING: 'BottleFilling2_CurrentPercent'>
BOTTLE_A2_MAX = <RegisterFlag.BOTTLE_A2_MAX: 'BottleFilling2_MaximumAbsolute'>
BOTTLE_B1_ABSOLUTE_FILLING = <RegisterFlag.BOTTLE_B1_ABSOLUTE_FILLING: 'BottleFilling3_CurrentAbsolute'>
BOTTLE_B1_PERCENT_FILLING = <RegisterFlag.BOTTLE_B1_PERCENT_FILLING: 'BottleFilling3_CurrentPercent'>
BOTTLE_B1_MAX = <RegisterFlag.BOTTLE_B1_MAX: 'BottleFilling3_MaximumAbsolute'>
BOTTLE_B2_ABSOLUTE_FILLING = <RegisterFlag.BOTTLE_B2_ABSOLUTE_FILLING: 'BottleFilling4_CurrentAbsolute'>
BOTTLE_B2_PERCENT_FILLING = <RegisterFlag.BOTTLE_B2_PERCENT_FILLING: 'BottleFilling4_CurrentPercent'>
BOTTLE_B2_MAX = <RegisterFlag.BOTTLE_B2_MAX: 'BottleFilling4_MaximumAbsolute'>
WASTE_BOTTLE_ABSOLUTE = <RegisterFlag.WASTE_BOTTLE_ABSOLUTE: 'WasteBottleFilling_CurrentAbsolute'>
WASTE_BOTTLE_PERCENT = <RegisterFlag.WASTE_BOTTLE_PERCENT: 'WasteBottleFilling_CurrentPercent'>
WASTE_BOTTLE_MAX = <RegisterFlag.WASTE_BOTTLE_MAX: 'WasteBottleFilling_MaximumPercent'>
PUMPCHANNEL_USED = <RegisterFlag.PUMPCHANNEL_USED: 'PumpChannel_IsUsed'>
PUMPCHANNEL_SELECTION = <RegisterFlag.PUMPCHANNEL_SELECTION: 'PumpChannel_SolventSelectionValvePosition'>
BOTTLE_A1_USER_NAME = <RegisterFlag.BOTTLE_A1_USER_NAME: 'PumpChannel_Position1_UserName'>
BOTTLE_A2_USER_NAME = <RegisterFlag.BOTTLE_A2_USER_NAME: 'PumpChannel_Position2_UserName'>
PUMPCHANNEL2_USED = <RegisterFlag.PUMPCHANNEL_USED: 'PumpChannel_IsUsed'>
PUMPCHANNEL2_SELECTION = <RegisterFlag.PUMPCHANNEL2_SELECTION: 'PumpChannel2_SolventSelectionValvePosition'>
BOTTLE_B1_USER_NAME = <RegisterFlag.BOTTLE_B1_USER_NAME: 'PumpChannel2_Position1_UserName'>
BOTTLE_B2_USER_NAME = <RegisterFlag.BOTTLE_B2_USER_NAME: 'PumpChannel2_Position2_UserName'>
AVAIL_COLUMN_DISPLAY_VALUES = <RegisterFlag.AVAIL_COLUMN_DISPLAY_VALUES: 'ColumnSwitchingValve_PositionDisplayValues'>
AVAIL_COLUMN_POSITIONS = <RegisterFlag.AVAIL_COLUMN_POSITIONS: 'ColumnSwitchingValve_PositionValues'>
COLUMN_POSITION = <RegisterFlag.COLUMN_POSITION: 'ColumnSwitchingValve_Position'>
SIGNAL_A = <RegisterFlag.SIGNAL_A: 'Signal_Wavelength'>
SIGNAL_B = <RegisterFlag.SIGNAL_B: 'Signal2_Wavelength'>
SIGNAL_C = <RegisterFlag.SIGNAL_C: 'Signal3_Wavelength'>
SIGNAL_D = <RegisterFlag.SIGNAL_D: 'Signal4_Wavelength'>
SIGNAL_E = <RegisterFlag.SIGNAL_E: 'Signal5_Wavelength'>
SIGNAL_A_USED = <RegisterFlag.SIGNAL_A_USED: 'Signal_IsUsed'>
SIGNAL_B_USED = <RegisterFlag.SIGNAL_B_USED: 'Signal2_IsUsed'>
SIGNAL_C_USED = <RegisterFlag.SIGNAL_C_USED: 'Signal3_IsUsed'>
SIGNAL_D_USED = <RegisterFlag.SIGNAL_D_USED: 'Signal4_IsUsed'>
SIGNAL_E_USED = <RegisterFlag.SIGNAL_E_USED: 'Signal5_IsUsed'>
@dataclass
class Table:
154@dataclass
155class Table:
156    """
157    Class for storing the keys needed to access certain register tables.
158    """
159
160    register: str
161    name: str

Class for storing the keys needed to access certain register tables.

Table(register: str, name: str)
register: str
name: str
@dataclass
class Device:
164@dataclass
165class Device:
166    """
167    Class for storing the keys needed to access certain devices
168    """
169
170    register: str

Class for storing the keys needed to access certain devices

Device(register: str)
register: str