Description
The DAFNE orbit is acquired by 4 front-end legacy Apple DEVILs (364, 365, 366, 367) and post processed by the DEVIL704.
The system elements created by the 4 front-end DEVILs are:
ORBRAK063 (364)
ORBRAK071 (365)
ORBRAK070 (366)
ORBRAK066 (367)
and the system element created by the DEVIL704 is:
GOD**002
The DEVIL704, besides the two conventional GOD**002_STA and GOD**002_DYN forks, builds also some live buffers of data (containing the actual real-time X and Y orbit projections) accessible in memcached.
Source
[DEVIL364, 365, 366, 367] > [DEVIL704]
Keys
Key name | Source | Write freq. [Hz] | Data size [byte] | Throughput | Fomat | Notes |
---|---|---|---|---|---|---|
GOD**002_STA | DEVIL704 | - | 2624 | - | LV cluster flattened to str | |
GOD**002_DYN | DEVIL704 | 5.5 | 46 | 0.25 | LV cluster flattened to str | |
ORB-E_INFO | DEVIL704 | - | ~2500 ~2500 | - | Json document | Static description of the orbit with name, abscissa and index of each element.
|
ORBE*NOD_BUF It will be ORB-E-MEAN_BUF | DEVIL704 | 5.5 | 1024 | 5.5 | LV 2D-array flattened to str (see description below) | Electrons: average(N) of the orbit (hor + ver) The N number is set by the operators via the orbit control window and can vary continuously. If you want to deal with an orbit averaged over a fixed number of samples, use the "ORB-E-USER_BUF" key instead. |
ORBP*NOD_BUF It will be ORB-E-MEAN_BUF | DEVIL704 | 5.5 | 1024 | 5.5 | LV 2D-array flattened to str | Positrons: average(N) of the orbit (hor + ver) The N number is set by the operators via the orbit control window and can vary continuously. If you want to deal with an orbit averaged over a fixed number of samples, use the "ORB-E-USER_BUF" key instead. |
ORB-E-STDDEV_BUF | DEVIL704 | 5.5 | 1024 | 5.5 | LV 2D-array flattened to str | Electrons: Std. Dev. of the orbit (hor + ver) 2 rows of 64 DBL (row 0: hor, row 1: ver) [flattened to str] 64-components array with standard deviation calculated on the last N samples. |
ORB-P-STDDEV_BUF | DEVIL704 | 5.5 | 1024 | 5.5 | LV 2D-array flattened to str | Positrons: Std. Dev. of the orbit (hor + ver) 2 rows of 64 DBL (row 0: hor, row 1: ver) [flattened to str] 64-components array with standard deviation calculated on the last N samples. |
ORB-E-USER_BUF | DEVIL704 | 5.5 | ~700 | 3.9 | LV 2D-array flattened to str | Electrons: average(8) of the orbit for users (hor + ver) 2 rows of 64 DBL (row 0: hor, row 1: ver) [flattened to str] 64-components array with moving average calculated on the last 8 samples. |
ORB-P-USER_BUF | DEVIL704 | 5.5 | ~700 | 3.9 | LV 2D-array flattened to str | Positrons: average(8) of the orbit for users (hor + ver) 2 rows of 64 DBL (row 0: hor, row 1: ver) [flattened to str] 64-components array with moving average calculated on the last 8 samples. |
kbyte/s | Mbit/s |
---|---|
~30 | ~0.23 |
Keys usage
Example of LabVIEW code to use at level 1 to unflatten and extract from the 2D-array the two projections of the orbit:
When using languages different from LabVIEW, the "unflatten from string" operator is not available; in these cases, you have to decode the 2D-array.
The 2D-array is written in memcached as two I32 numbers – that report the number of rows and the number o columns of the 2D-array – followed by a series of DBL numbers (ordered row by row). The following example, reports the representation of a 2-rows, 3-cols array with the values: row 0 = [0,1,2], row 1 = [10,11,12]
|< #rows >|< #cols >| a00 | a01 | a02 | a10 | a11 | a12 | | first row | last row | |---------|---------|-------------------|-------------------|-------------------|-------------------|-------------------|-------------------| 0000 0002 0000 0003 0000 0000 0000 0000 3FF0 0000 0000 0000 4000 0000 0000 0000 4024 0000 0000 0000 4026 0000 0000 0000 4028 0000 0000 0000