...
Combining a file of device names, or aidalist with a unix pipe, you can get a number of values at a time. For instance, get the Twiss parameters from the online model, of all the devices in a file. Say your devices were listed in a file (eg checkDevices27Oct2008.txt_Aida_NO), then you can get their values like this:
Code Block |
---|
[tersk02]:u/cd/greg> cat checkDevices27Oct2008.txt_Aida_NO | xargs -I {} -t aidaget "{}//twiss" -DMODE=5
|
...
You can use output of aidalist directly to get values of a number of devices.
Combine aidalist with caget:
Code Block |
---|
[softegr@lcls-builder script]$ aidalist BPMS:LI27:%:X1 | xargs -I{} caget {}
BPMS:LI27:201:X1 -0.210293
BPMS:LI27:301:X1 0.0417948
BPMS:LI27:401:X1 0.246912
BPMS:LI27:501:X1 -0.252207
BPMS:LI27:601:X1 -0.699057
BPMS:LI27:701:X1 0.00149554
BPMS:LI27:801:X1 0.161638
BPMS:LI27:901:X1 -0.086897
|
...
An AIDA data provider that supports setting values will accept either a single scalar or vector value, or a list of named scalar or vector values. The EPICS channel access data provider is of the former sort, and the SLC Magnet server is of the latter.
NB: Presently, only the EPICS Channel Access and SLC Magnet data providers support write operations.
An example of setting a scalar EPICS process variable:
...