| Lines 3-7 were replaced by lines 3-6 | 
| - [SEA] is getting outdated sooner or later, and is based on SICS, that is why the transition from SICS to NICOS is a good trigger | 
| - to go also for a new sample environment framework Frappy. Frappy is a Python Framework developed by Enrico Faulhaber (MLZ) and Markus | 
| - Zolliker (PSI), for creating servers to access mobile equipment like | 
| - sample environment, using [SECoP|https://github.com/SampleEnvironment/SECoP] as communication | 
| - protocol towards the experiment control software. | 
| + [SEA|Sea] is getting outdated sooner or later, and is based on SICS, that is why the transition from SICS to NICOS is a good trigger | 
| + to go also for a new sample environment framework Frappy. Frappy is a Python Framework developed at MLZ and PSI, | 
| + for creating servers to access mobile equipment like sample environment, | 
| + using [SECoP|https://github.com/SampleEnvironment/SECoP] as communication protocol towards the experiment control software. | 
| Line 9 was replaced by line 8 | 
| - For a transition period [SEA] is still used for all devices not yet migrated to Frappy. Today (spring 2021) still most | 
| + For a transition period [SEA|Sea] is still used for all devices not yet migrated to Frappy. Today (spring 2025) still a lot | 
| Line 12 was replaced by line 11 | 
| - !! Frappy | 
| + !! Accessing Sample Environment at SINQ from NICOS | 
| At line 13 added 1 line. | 
| + By default a setup 'frappy' is loaded providing the following commands:\\ | 
| At line 14 added 9 lines. | 
| + {{{ | 
| + frappy('<main cfg>')                     # change main SE configuration (e.g. cryostat) | 
| + frappy('<main cfg>', '<stick cfg>')      # change main and sample-stick configuration | 
| + frappy(stick='<stick cfg>')              # change stick only | 
| + frappy('')                               # remove main SE apparatus including stick | 
| + frappy.show()                            # show the current SE configuration | 
| + frappy(addons=...)                       # similar to above, for additional equipment not covered by main/stick | 
| + frappy_list()                            # list available configurations | 
| + }}} | 
| At line 15 added 1 line. | 
| + ''note: use {{AddSetup('frappy')}} if the setup is not yet loaded'' | 
| Line 17 was replaced by lines 27-28 | 
| - !! Setup at SINQ | 
| + There is some automatic detection of devices in SEA. You might get a message in NICOS | 
| + to accept the detected devices. To confirm, execute simply {{frappy()}} | 
| At line 19 added 1 line. | 
| + !! Frequently Asked Questions | 
| At line 20 added 1 line. | 
| + ! Are values of sample environment devices automatically stored in the data file? | 
| At line 21 added 2 lines. | 
| + When the SE configuration is changed, automatically the following aliases are created, | 
| + if the corresponding object is available: | 
| At line 22 added 3 lines. | 
| + * __T__: the moveable main temperature, change before a scan: {{maw(T, 295)}}, use in a scan: {{scan(T, ...)}} | 
| + * __Ts__: the sample temperature, potentially readonly | 
| + * __B__: the magnetic field, moveable | 
| Line 24 was replaced by lines 42-43 | 
| - | 
| + The aliases above (except T) are automatically put into the envrionment list, and should be saved in the data file. | 
| + When the sample temperature is controlled, T and Ts point to the same real device. | 
| At line 25 added 52 lines. | 
| + You might add additional devices to be stored with the {{AddEnvironment}} command. | 
| + | 
| + | 
| + ! There is nothing displayed on the SEA client, what is going wrong here? | 
| + | 
| + It might be that the SEA server is not yet running. Controlling the SEA and Frappy servers: | 
| + {{{ | 
| + sea start         # start the SEA and graph servers | 
| + sea restart       # restart above | 
| + sea list          # show running SEA and Frappy servers | 
| + sea help          # list available sea subcommands | 
| + }}} | 
| + | 
| + ! The sample environment device I want to use is not available | 
| + | 
| + Please use the command {{frappy_list()}} in NICOS to see a list of available configurations. | 
| + Creating the configuration files for Frappy is still under work. The devices to be used on above mentioned | 
| + instruments according to the schedule are created first. Please contact [Markus Zolliker], if you want to use | 
| + a device not yet on the list. | 
| + | 
| + ! How to Restart a Frappy server(s) | 
| + | 
| + If a sample environment device is not working properly, for example due to communication | 
| + problems, it might be helpful to restart the frappy server(s): | 
| + {{{ | 
| + frappy('restart')    # stop and start main and stick frappy servers | 
| + }}} | 
| + | 
| + If the problem is related to a device on the stick or addons, you can restart them individually with {{frappy(stick=...)}} or {{frappy(addons=...)}}. | 
| + | 
| + ! How do I configure to use the sample stick rotation instead of the sample table for omega? | 
| + | 
| + With vertical field cryomagnets, typically the stick rotation should be used instead of the | 
| + standard sample table for omega. In this case (configured on TASP, EIGER, CAMEA, ZEBRA and DMC), | 
| + the frappy_main setups should contain a device __se_om__ for the stick rotation. This is | 
| + automatically assigned to the device used for omega. | 
| + | 
| + ||Instrument || name of omega  || name of sample table | 
| + |TASP  | a3 | a3_st | 
| + |EIGER | a3 | a3_raw | 
| + |ZEBRA | om | om_raw | 
| + |DMC   | a3 | a3s | 
| + |CAMEA | a3 | som | 
| + | 
| + On horizontal field magnets, the stick rotation is called __om_stickrot__, and is | 
| + not automatically assigned to omega. In both cases, an alias __dom__ is assigned to | 
| + either __se_om__ or __se_stickrot__, whatever is present. | 
| + | 
| + To change this behaviour, it is possible to assign another device to the alias, e.g. | 
| + | 
| + {{om.alias = se_stickrot}} | 
| + |