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

Compare with Current View Page History

« Previous Version 34 Next »

Document status

FINAL

Document owner
DesignerAlessandro Stecchi
DevelopersAlessandro Stecchi
QAAlessandro Stecchi

Description

The DAFNE orbit is acquired by 4 front-end DEVILs (364, 365, 366, 367) and post processed by the DEVIL204.
The basic elements created by the 4 front-end DEVILs are:

  • ORBRAK063 (364)
  • ORBRAK071 (365)
  • ORBRAK070 (366)
  • ORBRAK066 (367)

and the final element created by the DEVIL204 is:

  • GOD**001

The DEVIL204, besides the two conventional GOD**001_STA and GOD**001_DYN forks, builds also a circular buffer of data (containing the actual real-time X and Y orbit projections) accessible in the VME address space. To have this data also available on non-VME processors, a dedicated proxy constantly reads the GOD**001_STA and GOD**001_DYN forks, as well as the circular buffer from VME, and transfers them to memcached.

Source

[DEVIL364, 365, 366, 367] > [DEVIL204] > [Orbit_Proxy]

Requirements

Key nameSource

Write freq. [Hz]

Data size [byte]

Throughput
[kbyte/s]

FomatNotes
GOD**002_STADEVIL704-2624-typeDef

LV cluster [flattened to str]

GOD**002_DYN

DEVIL7045.5460.25typeDefLV cluster [flattened to str]

ORB-E_INFO
ORB-P_INFO

DEVIL704-~2500
~2500
-

Json document

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

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

...

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

ORBE*NOD_BUF
It will be ORB-E-MEAN_BUF
DEVIL7045.510245.5
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.

ORBP*NOD_BUF
It will be ORB-E-MEAN_BUF
DEVIL7045.510245.5

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.

ORB-E-STDDEV_BUFDEVIL7045.510245.5
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

DEVIL7045.510245.5
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

DEVIL7045.5~7003.9
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_BUFDEVIL7045.5~7003.9
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/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 other languages, 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 2D 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