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_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-P_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
Map BPM Arrays
[ { "name":"BPBEL101", "s":2.531, "i":0 }, { "name":"BPBEL102", "s":6.205, "i":1 }, { "name":"BPBEL103", "s":8.808, "i":2 }, { "name":"BPBEL104", "s":9.803, "i":3 }, { "name":"BPBEL105", "s":12.135, "i":4 }, { "name":"BPBEL106", "s":13.920, "i":5 }, { "name":"BPBEL107", "s":16.293, "i":6 }, { "name":"BPBEL108", "s":17.184, "i":7 }, { "name":"BPBEL109", "s":21.095, "i":8 }, { "name":"BPBEL110", "s":24.308, "i":9 }, { "name":"BPBEL111", "s":24.885, "i":10 }, { "name":"BPBI1001", "s":25.455, "i":12 }, { "name":"BPBI1002", "s":25.926, "i":16 }, { "name":"BPBES199", "s":27.503, "i":18 }, { "name":"BPBES100", "s":30.283, "i":19 }, { "name":"BPBES101", "s":33.761, "i":20 }, { "name":"BPBES102", "s":34.919, "i":21 }, { "name":"BPBES103", "s":37.258, "i":22 }, { "name":"BPBES104", "s":39.043, "i":23 }, { "name":"BPBES105", "s":41.375, "i":24 }, { "name":"BPBES106", "s":42.370, "i":25 }, { "name":"BPBES107", "s":44.912, "i":26 }, { "name":"BPBES108", "s":48.140, "i":27 }, { "name":"BPBES201", "s":49.041, "i":32 }, { "name":"BPBES202", "s":49.997, "i":33 }, { "name":"BPBES203", "s":52.677, "i":34 }, { "name":"BPBES204", "s":55.219, "i":35 }, { "name":"BPBES205", "s":56.214, "i":36 }, { "name":"BPBES206", "s":58.546, "i":37 }, { "name":"BPBES207", "s":60.331, "i":38 }, { "name":"BPBES208", "s":63.455, "i":39 }, { "name":"BPBES209", "s":65.658, "i":40 }, { "name":"BPBES210", "s":69.515, "i":41 }, { "name":"BPBEL299", "s":74.283, "i":49 }, { "name":"BPBEL200", "s":78.185, "i":50 }, { "name":"BPBEL201", "s":79.361, "i":51 }, { "name":"BPBEL202", "s":80.703, "i":52 }, { "name":"BPBEL203", "s":83.668, "i":53 }, { "name":"BPBEL204", "s":85.453, "i":54 }, { "name":"BPBEL205", "s":87.786, "i":55 }, { "name":"BPBEL206", "s":88.781, "i":56 }, { "name":"BPBEL207", "s":91.338, "i":57 }, { "name":"BPBEL208", "s":94.561, "i":58 }, { "name":"BPBEL209", "s":96.228, "i":59 } ]