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.
@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