You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 42 Next »

Document status

IN PROGRESS

Document owner
DesignerAlessandro Stecchi
DevelopersAlessandro Stecchi
QAAlessandro Stecchi

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 nameSource

Write freq. [Hz]

Data size [byte]

Throughput
[kbyte/s]

FomatNotes
GOD**002_STADEVIL704-2624-LV cluster flattened to str


GOD**002_DYN

DEVIL7045.5460.25LV cluster flattened to str

ORB-E_INFO
ORB-P_INFO

DEVIL704-~2500
~2500
-

Json document

Static description of the orbit with name, abscissa and index of each element.

  • name: name of the BPM [8-characters srting];
  • s: curvilinear abscissa (along the ring) [m];
  • i: index of element in the 64-DBL arrays. An example of the Json document is:
[
   {
      "name":"BPBEL101",
      "s":2.531,
      "i":0
   },
  {
    "name":"BPBEL102",
    "s":6.205,
    "i":1
  },

... etc ...

  {
    "name":"BPBEL209",
    “s":96.228,
    "i":59
  }
]

ORBE*NOD_BUF
It will be ORB-E-MEAN_BUF
DEVIL7045.510245.5LV 2D-array flattened to str (see description below)

Electrons: average(N) of the orbit (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 N samples.

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
DEVIL7045.510245.5LV 2D-array flattened to str

Positrons: average(N) of the orbit (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 N samples.

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_BUFDEVIL7045.510245.5LV 2D-array flattened to strElectrons: 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

DEVIL7045.510245.5LV 2D-array flattened to strPositrons: 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

DEVIL7045.5~7003.9LV 2D-array flattened to strElectrons: 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_BUFDEVIL7045.5~7003.9LV 2D-array flattened to strPositrons: 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/sMbit/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]

Example of 2D array (3 columns, 2 rows)
|< #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 
  • No labels