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

Compare with Current View Page History

« Previous Version 44 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_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-P_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 

Map BPM Arrays

ELECTRON ORBIT
[
   {
      "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
   }
]


  • No labels