Index: leahi_dialin/common/fp_defs.py =================================================================== diff -u -r57aed15d5b38f236deaea49daba706ce352162d2 -r9c1ee405a484654486ee23393f0b8e6b33a17154 --- leahi_dialin/common/fp_defs.py (.../fp_defs.py) (revision 57aed15d5b38f236deaea49daba706ce352162d2) +++ leahi_dialin/common/fp_defs.py (.../fp_defs.py) (revision 9c1ee405a484654486ee23393f0b8e6b33a17154) @@ -16,17 +16,17 @@ from enum import unique -from .dd_defs import DDConductivitySensorNames, DDPressureSensorNames, DDValveNames -from ..utils.base import DialinEnum +from .dd_defs import DDConductivitySensorNames, DDPressureSensorNames, DDValveNames, DDLevelSensorNames +from ..utils.enums import DialinEnum - # ================================================== Constants ================================================== BETA_IOFP_COND_SENSOR_OFFSET = DDConductivitySensorNames.NUM_OF_CONDUCTIVITY_SENSORS.value # Offset to translate Dialin FPTemperaturesNames to DD firmware DD Conductivity Sensors enum BETA_IOFP_PRES_SENSOR_OFFSET = DDPressureSensorNames.NUM_OF_PRESSURE_SENSORS.value # Offset to translate Dialin FPTemperaturesNames to DD firmware DD Pressure Sensors enum BETA_IOFP_VALVE_OFFSET = DDValveNames.NUM_OF_DD_VALVES.value # Offset to translate Dialin FPValveNames to DD firmware DD_Valves +BETA_IOFP_LEVEL_OFFSET = DDLevelSensorNames.NUM_OF_LEVELS.value # offset to translate Dialin FPLevelSensorNames to DD firmware DDLevelSensorNames -# ================================================== Enum Creators: Operations ================================================== +# ================================================== Enum Creators: Operations Lvl 1 ================================================== @unique class FPOpModes(DialinEnum): MODE_FAUL = 0 # Fault mode @@ -55,6 +55,8 @@ } +# ================================================== Enum Creators: Operations Lvl 2 ================================================== +# FPOpModes.MODE_FAUL sub states @unique class FPFaultStates(DialinEnum): FP_FAULT_STATE_START = 0 # FP Fault Start State @@ -71,6 +73,7 @@ } +# FPOpModes.MODE_SERV sub states @unique class FPServiceStates(DialinEnum): NUM_OF_FP_SERV_STATES = 0 # Number of FP service states @@ -81,6 +84,7 @@ } +# FPOpModes.MODE_INIT sub states @unique class FPPostStates(DialinEnum): FP_POST_STATE_START = 0 # Start initialize & POST mode state @@ -111,6 +115,7 @@ } +# FPOpModes.MODE_STAN sub states @unique class FPStandbyStates(DialinEnum): FP_STANDBY_MODE_STATE_IDLE = 0 # Idle standby mode state @@ -123,6 +128,7 @@ } +# FPOpModes.MODE_PRE_GENP sub states @unique class FPPreGenPermeateStates(DialinEnum): FP_PRE_GENP_INLET_PRES_CHECK = 0 # FP Pre Gen Permeate Inlet Pressure Check State @@ -145,6 +151,7 @@ } +# FPOpModes.MODE_DPGP sub states @unique class FPPreGenPDefStates(DialinEnum): FP_PRE_GENP_DEF_FLUSH = 0 # Pre Gen Permeate Defeatured Flush state @@ -161,6 +168,7 @@ } +# FPOpModes.MODE_GENP sub states @unique class FPGenPermeateStates(DialinEnum): FP_GENP_TANK_FILL_STATE = 0 # Gen Permeate Tank Fill low state @@ -175,6 +183,7 @@ } +# FPOpModes.MODE_DEGP sub states @unique class FPGenPermeateDefStates(DialinEnum): FP_GENP_DEF_SUPPLY_WATER = 0 # Gen Permeate Defeatured Supply Water statee @@ -189,6 +198,7 @@ } +# FPOpModes.MODE_NLEG sub states @unique class FPNotLegalStates(DialinEnum): NUM_OF_NOT_LEGAL_STATES = 0 # Number of Not Legal states @@ -199,7 +209,102 @@ } +# ================================================== Enum Creators: Operations Lvl 3 ================================================== +# FPFaultStates. sub states +@unique +class FPFaultNVDataStates(DialinEnum): + FP_NVDATA_STATE_START = 0 # FP Non-Volatile Data Management start state + FP_NVDATA_STATE_RUN_NV_POSTS = 1 # FP Non-Volatile Data Management run RTC and NV data management posts + FP_NVDATA_STATE_COMPLETE = 2 # FP Non-Volatile Data Management Complete + NUM_OF_FP_NVDATA_STATES = 3 # Number of fault mode NV Data management states +FPFaultNVDataStates._str_list = { + # Official Name : Accepted strings + 'FP_NVDATA_STATE_START': ['start'], + 'FP_NVDATA_STATE_RUN_NV_POSTS': ['running', 'run nv posts'], + 'FP_NVDATA_STATE_COMPLETE': ['complete', 'done'], + 'NUM_OF_FP_INIT_NVDATA_STATES': [], +} + + +# FPPreGenPermeateStates.FP_PRE_GENP_INLET_PRES_CHECK sub states +@unique +class FPInletPresCheckStates(DialinEnum): + INLET_PRES_CHECK_IN_PROGRESS = 0 # Inlet Pressure Check in progress state + INLET_PRES_CHECK_PAUSED = 1 # Inlet Pressure Check paused state + NUM_OF_INLET_PRES_CHECK_STATES = 2 # Number of Inlet Pressure Check states + +FPInletPresCheckStates._str_list = { + # Official Name : Accepted strings + 'INLET_PRES_CHECK_IN_PROGRESS': ['start', 'in progress', 'running'], + 'INLET_PRES_CHECK_PAUSED': ['paused'], + 'NUM_OF_INLET_PRES_CHECK_STATES': [], +} + + +# FPPreGenPermeateStates.FP_PRE_GENP_FILTER_FLUSH sub states +@unique +class FPFilterFlushStates(DialinEnum): + FILTER_FLUSH_IN_PROGRESS = 0 # Filter Flush in progress state + FILTER_FLUSH_PAUSED = 1 # Filter Flush paused state + NUM_OF_FILTER_FLUSH_STATES = 2 # Number of filter flush states + +FPFilterFlushStates._str_list = { + # Official Name : Accepted strings + 'FILTER_FLUSH_IN_PROGRESS': ['start', 'in progress', 'running'], + 'FILTER_FLUSH_PAUSED': ['paused'], + 'NUM_OF_FILTER_FLUSH_STATES': [], +} + + +# FPPreGenPermeateStates.FP_PRE_GENP_PERMEATE_FLUSH sub states +@unique +class FPPermeateFlushStates(DialinEnum): + PERM_FLUSH_IN_PROGRESS = 0 # Permeate Flush in progress state + PERM_FLUSH_PAUSED = 1 # Permeate Flush paused state + NUM_OF_PERM_FLUSH_STATES = 2 # Number of permeate flush states + +FPPermeateFlushStates._str_list = { + # Official Name : Accepted strings + 'PERM_FLUSH_IN_PROGRESS': ['start', 'in progress', 'running'], + 'PERM_FLUSH_PAUSED': ['paused'], + 'NUM_OF_PERM_FLUSH_STATES': [], +} + + +# FPPreGenPermeateStates.FP_PRE_GENP_CONCENTRATE_FLUSH sub states +@unique +class FPConcentrateFlushStates(DialinEnum): + CONC_FLUSH_IN_PROGRESS = 0 # Concentrate Flush in progress state + CONC_FLUSH_PAUSED = 1 # Concentrate Flush paused state + NUM_OF_CONC_FLUSH_STATES = 2 # Number of Concentrate flush states + +FPConcentrateFlushStates._str_list = { + # Official Name : Accepted strings + 'CONC_FLUSH_IN_PROGRESS': ['start', 'in progress', 'running'], + 'CONC_FLUSH_PAUSED': ['paused'], + 'NUM_OF_CONC_FLUSH_STATES': [], +} + + +# FPPreGenPDefStates.FP_PRE_GENP_DEF_FLUSH sub states +@unique +class FPDefFlushStates(DialinEnum): + FILTER_FLUSH_DEF_DYNAMIC_PRESSURE_CHECK = 0 # Filter Flush in dynamic pressure state + FILTER_FLUSH_DEF_STATIC_PRESSURE_CHECK = 1 # Filter flush in sttaic pressure check + FILTER_FLUSH_DEF_PAUSED = 2 # Filter Flush paused state + NUM_OF_FILTER_FLUSH_DEF_STATES = 3 # Number of filter flush states + +FPDefFlushStates._str_list = { + # Official Name : Accepted strings + 'FILTER_FLUSH_DEF_DYNAMIC_PRESSURE_CHECK': ['dynamic', 'dynamic pressure check'], + 'FILTER_FLUSH_DEF_STATIC_PRESSURE_CHECK': ['static', 'static pressure check'], + 'FILTER_FLUSH_DEF_PAUSED': ['paused'], + 'NUM_OF_PERM_FLUSH_STATES': [], +} + + + # ================================================== Enum Creators: Events ================================================== @unique class FPEventList(DialinEnum): @@ -213,7 +318,9 @@ FP_EVENT_PRE_GEN_DEF_CHANGE = 7 # FP defeatured pre gen state change FP_EVENT_GENP_DEF_CHANGE = 8 # FP defeatured gen permeate state change FP_EVENT_FAULT_ALARM_TRIGGER = 9 # FP event for alarms that would trigger - NUM_OF_FP_EVENT_IDS = 10 # Number of FP events + FP_EVENT_P25_LEVL_CHANGE = 10 # FP floater level change event + FP_EVENT_OPERATION_STATUS = 11 # FP operation status event + NUM_OF_FP_EVENT_IDS = 12 # Number of FP events FPEventList._str_list = { # Official Name : Accepted strings @@ -227,31 +334,12 @@ 'FP_EVENT_PRE_GEN_DEF_CHANGE': ['defeatured pre-generate permeate change', 'def pre-genp change'], 'FP_EVENT_GENP_DEF_CHANGE': ['defeatured generate permeate change', 'def genp change'], 'FP_EVENT_FAULT_ALARM_TRIGGER': ['alarm', 'alarm trigger', 'fault alarm trigger'], + 'FP_EVENT_OPERATION_STATUS': ['operation status', 'status', 'op status', 'operation status change', 'status change', 'op status change'], 'NUM_OF_FP_EVENT_IDS': [], } -@unique -class FPEventDataTypes(DialinEnum): - EVENT_DATA_TYPE_NONE = 0 # No Event Data Type - EVENT_DATA_TYPE_U32 = 1 # Unsigned 32bit Event Data Type - EVENT_DATA_TYPE_S32 = 2 # Signed 32bit Event Data Type - EVENT_DATA_TYPE_F32 = 3 # Float 32bit Event Data Type - EVENT_DATA_TYPE_BOOL = 4 # Boolean Event Data Type - NUM_OF_EVENT_DATA_TYPES = 5 # Number of Event Data Types -FPEventDataTypes._str_list = { - # Official Name : Accepted strings - 'EVENT_DATA_TYPE_NONE': ['none'], - 'EVENT_DATA_TYPE_U32': ['u32'], - 'EVENT_DATA_TYPE_S32': ['s32'], - 'EVENT_DATA_TYPE_F32': ['f32'], - 'EVENT_DATA_TYPE_BOOL': ['bool', 'boolean'], - 'NUM_OF_EVENT_DATA_TYPES': [], -} - - - # ================================================== Enum Creators: Names ================================================== @unique class FPBoostPumpNames(DialinEnum): @@ -444,6 +532,24 @@ # ================================================== Enum Creators: Support ================================================== @unique +class FPBoostPumpStates(DialinEnum): + PUMP_OFF_STATE = 0 # Pump Offline State + PUMP_CONTROL_TO_TARGET_FLOW_STATE = 1 # Boost pump control to target flow state + PUMP_CONTROL_TO_TARGET_PRESSURE_STATE = 2 # Boost pump control to max pressure state. + PUMP_OPEN_LOOP_STATE = 3 # Boost pump open loop state. + NUM_OF_BOOST_PUMP_STATES = 4 # Number of Boost pump states + +FPBoostPumpStates._str_list = { + # Official Name : Accepted strings + 'PUMP_OFF_STATE': ['closed', 'off', 'inactive', 'offline'], + 'PUMP_CONTROL_TO_TARGET_FLOW_STATE': ['flow', 'target to flow', 'to flow'], + 'PUMP_CONTROL_TO_TARGET_PRESSURE_STATE': ['pressure', 'target to pressure', 'to pressure', 'pres'], + 'PUMP_OPEN_LOOP_STATE': ['open', 'open loop', 'on'], + 'NUM_OF_BOOST_PUMP_STATES': [], +} + + +@unique class FPFloaterLevels(DialinEnum): LEVEL_STATE_EMPTY = 0 # Empty level for the FP Floater Level Sensors LEVEL_STATE_LOW = 1 # Low level for the FP Floater Level Sensors @@ -492,16 +598,38 @@ @unique -class FPPumpStates(DialinEnum): - PUMP_OFF_STATE = 0 # Pump Offline State - PUMP_ON_STATE = 1 # Pump Online State - NUM_OF_PUMP_STATES = 2 # Number of pump states +class FPRecoveryOptions(DialinEnum): + NO_RECOVERY = 0 # NO recoverye + LOW_RECOVERY = 1 # LOW recovery + MEDIUM_RECOVERY = 2 # MEDIUM recovery + HIGH_RECOVERY = 3 # HIGH recovery + NUM_OF_RECOVER_OPTIONS = 4 # Number of recovery options -FPPumpStates._str_list = { +FPRecoveryOptions._str_list = { # Official Name : Accepted strings + 'NO_RECOVERY': ['no', 'no ro'], + 'LOW_RECOVERY': ['low', 'low ro'], + 'MEDIUM_RECOVERY': ['med', 'med ro', 'medium', 'medium ro'], + 'HIGH_RECOVERY': ['high', 'high ro'], + 'NUM_OF_RECOVER_OPTIONS': [], +} + + +@unique +class FPROPumpStates(DialinEnum): + PUMP_OFF_STATE = 0 # Pump Offline State + PUMP_CONTROL_TO_TARGET_FLOW_STATE = 1 # RO pump control to target flow state + PUMP_CONTROL_TO_TARGET_PRESSURE_STATE = 2 # RO pump control to max pressure state. + PUMP_OPEN_LOOP_STATE = 3 # RO pump open loop state. + NUM_OF_RO_PUMP_STATES = 4 # Number of RO pump states + +FPROPumpStates._str_list = { + # Official Name : Accepted strings 'PUMP_OFF_STATE': ['closed', 'off', 'inactive', 'offline'], - 'PUMP_ON_STATE': ['open', 'on', 'active', 'online'], - 'NUM_OF_PUMP_STATES': [], + 'PUMP_CONTROL_TO_TARGET_FLOW_STATE': ['flow', 'target to flow', 'to flow'], + 'PUMP_CONTROL_TO_TARGET_PRESSURE_STATE': ['pressure', 'target to pressure', 'to pressure', 'pres'], + 'PUMP_OPEN_LOOP_STATE': ['open', 'open loop', 'on'], + 'NUM_OF_RO_PUMP_STATES': [], }