Gas Composition Preset Interface
- gas compositions presets should have this Format:
the only difference to the old value dtype is the addition of a preset name
{"name": "my_awesome_process_gas", "gas_list":["N2", "H2", "CO", "O2"], "composition":[20, 20, 30, 30], "total_flow":100 }
- The main value Parameter is an Enum with maybe ten Enum members, instead of the gas composition struct. It represents the currently selected gas composition.
{
"UNDEFINED": 0,
"PRESET_1": 1,
"PRESET_2": 2,
...
}
- there should be Parameter, that holds a dictionary containing the mapping of an Enum member to a concrete gas composition. The datatype, might also be an array. In any case it will be possible to see which preset is representing which Gas Composition.
{
"PRESET1": {"name": "my_awesome_process_gas", "gas_list":["N2", "H2", "CO", "O2"], "composition":[20, 20, 30, 30], "total_flow":100 },
"PRESET2": {"name": "my_super_process_gas" , "gas_list":["N2", "H2", "CO", "O2"], "composition":[70, 0, 0, 30], "total_flow"500 },
"PRESET3": None
....
}
-
an additional command, that allows setting the gas composition of a Preset at runtime:
set_preset(preset, gas_composition)
-
returns an error if you try to change the currently loaded preset
-
does not accept presets, that contain gases that are not available
-
also checks limits on total flows and rejects compositions that would violate MFC limits
--> presets that were added using set_preset() should not lead to errors, unless the gas operation module is in an incompatible mode
-