The ULMTriggerGUI state is "directly connected", or tightly synchronized, to the state of the ULM it is associated with. For that reason, it is only safe to manipulate the GUI elements while a run is not active. To protect against modifying the settings during a run, the ULMTriggerGUI will lock when a BEGIN_RUN item is observed in the ring buffer it is monitoring and only unlock when an END_RUN item is observed.
A consequence of the GUI being tightly synchronized is that the GUI will display the state of the ULM at all times after the start up and an "Update from Module" has been pressed. It will only display a different state than the ULM 1) before you press "Update from Module" after starting it and 2) after you press "Read from File".
One of the important features of the ULMTriggerGUI is the ability to save and restore the state of the GUI to a file. This file is then used to configure the ULM at the start of runs in the S800 DAQ. To write the state of the GUI to a file, you simply need to press the "Save to File". If the --configfile option has not been set, a file browser for you to choose the location to save the file. This will only occur the first time and the selection will be used in all future occurrences. If you provided the --configfile option, then the file you provided will be used and no browser will pop up.
There is some red text next to the "Save to File" button that says "Save to make Active!". This is a bit of a red herring and should be understood properly. Because the GUI is tightly synchronized to the ULM, any change to the GUI actively changes the state of the ULM. However, the S800 DAQ uses the configuration file generated by this GUI to configure the device at the start of the run. So when a run begins in the S800DAQ, the ULM is configured based on the settings of the GUI the last time "Save to File" was pressed. Of course, this is all dependent upon configuration of the ULM being done in a manner similar to the S800DAQ and also that the "Save to File" writes to the same file as the configuration procedures reads from. As I said in the beginning, this GUI is designed in a manner that is S800 centric. To boil this down, "Save to make Active!" should be read as "Save to make Active during run if you use the file to configure your ULM at the start of each run!"