Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Turn for electronsTurn for positrons



Figure 1-a: The sequence [0,1,2,3] is sorted according to the direction of the electrons beam: starting from rack 063 (DEVIL364 > 365 > 366 > 367)

Figure 1-b: The sequence [1,0,3,2] is sorted according to the direction of the positrons beam:, starting from rack 071 (DEVIL365 > 364 > 367 > 366)






Details

---

Examples

---

readDEVILBufferLine.vi

Image Added

This VI reads and returns the last data acquired from the 4 DEVILs. It doesn't perform any data reordering.

Controls

Data type

Name

Description

booleaninit

T = initialize, F = regular run
init = T: some constant values are loaded into the VI shift registers.

init = F: reads the socket "socketNumber" from the VME memory of the DEVIL "DEVILIndex" and returns the two parts 

I32DEVILIndex

Index in the range [0, 1, 2, 3] corresponding to:

INDEX   0,   1,   2,   3
DEVIL 364, 365, 366, 367
RACK  63,  71, 70,  66
I32socketNumberPointer to the acquisition buffer in the range [0, 1926]
[DBL]part XArray of 32 DBL components containing the raw values of the X signals coming from both electron and positron BPMs. The components are in the same order of the values in the DEVIL memory locations.
[DBL]part YArray of 32 DBL components containing the raw values of the Y signals coming from both electron and positron BPMs. The components are in the same order of the values in the DEVIL memory locations.
errorClustererrorIn


Indicators

Data type

Name

Description

[DBL]part XArray of 32 DBL: see corresponding control description above. The array is returned both for read and write operations.
[DBL]part XArray of 32 DBL: see corresponding control description above. The array is returned both for read and write operations.
errorClustererrorOut

Details

Image Modified

Each one of the 4 DEVILs has a circular buffer of 1927 lines named "sockets". Write operations of the four circular buffers are synchronized via a common stobe so that the four write

pointes

pointers are always alligned.

At each strobe, each DEVIL stores a "socket" composed as:

  • part X

   DBL Acquisition number [0, 1926]
   DBL timestamp
   

[DBL] 32 values of the BPM X signals from the Bergoz modules read from that DEVIL;

  • part Y

   DBL Acquisition number [0, 1926]
   DBL timestamp
   

[DBL] 32 values of the BPM Y signals from the Bergoz modules read from that DEVIL.

The 32 components in

the

part X and Y are ordered according to the cabling and do not necessarily follow the sequence of the BPMs along the vacuum chamber. Moreover the 32 values refer to both e- and e+ rings for which the

BPM

BPMs sequence is obviously different. As a consequence,

the

part X and Y must be considered as raw containers and their content must be further processed in order to reconstruct the real orbit.

  • Header

ACQNum [0, 1926];
timestamp.

The socket header is written twice: one time at the beginning of the socket before part X

is equal to ACQNum of part Y

timestamp of part X is equal to timestamp of part Y (timestamp is not used anywhere and has been left in the socket only for backward compatibility)

Details

---

and another time in the middle of the socket  before part Y. Format and content of the two headers are identical to each other; this is due to historical reasons and – although it is a waste of memory space – it was left in order not to compromise the functioning of other pieces of code that access the same memory area.

Examples

---

GRawBuffer.vi

This VI is a functional global that stores, holds and returns the last X and Y parts acquired from the 4 DEVILs.

Controls

Data type

Name

Description

I32DEVILIndex

Index in the range [0, 1, 2, 3] corresponding to:

INDEX   0,   1,   2,   3
DEVIL 364, 365, 366, 367
RACK  63,  71, 70,  66
enummode

[init, read, write X and Y, write X, write Y] (read)

  • init: the internal shift register are initialized (all zeros);
  • read: returns "part X" and "part Y" from the arrays specified by "DEVILIndex";
  • write X and Y: stores simultaneously"part X" and "part Y"
to
  • into the arrays specified by DEVILIndex
[DBL]part XArray of 32 DBL components containing the raw values of the X signals coming from both electron and positron BPMs. The components are in the same order of the values in the DEVIL memory locations.[DBL]part XArray of 32 DBL components containing the raw values of the Y signals coming from both electron and positron BPMs. The components are in the same order of the values in the DEVIL memory locations.errorClustererrorIn

Indicators

...

Data type

...

Name

...

Description

...

  • . Both inputs must have 32 components otherwise no one of them will be stored;
  • write X: stores "part X" to the array specified by DEVILIndex. The array must have 32 components otherwise it will not be stored. The "part Y" array is kept unmodified;
  • write Y: stores "part Y" to the array specified by DEVILIndex. The array must have 32 components otherwise it will not be stored. The "part X" array is kept unmodified.

...

Details

This VI stores and returns the last socket acquired from the 4 DEVILs. It doesn't perform any reordering.

Examples

---

readDEVILBufferLine.vi

Image Removed

Controls

Data type

Name

Description

booleaninit

T = initialize, F = regular run
init = T: some constant values are loaded into the VI shift registers.

init = F: reads the socket "socketNumber" from the VME memory of the DEVIL "DEVILIndex"

I32DEVILIndex

Index in the range [0, 1, 2, 3] corresponding to:

INDEX   0,   1,   2,   3
DEVIL 364, 365, 366, 367
RACK  63,  71, 70,  66
I32socketNumberPointer to the acquisition buffer in the range [0, 1926]
[DBL]part XArray of 32 DBL components containing the raw values of the X signals coming from both electron and positron BPMs. The components are in the same order of the values in the DEVIL memory locations.
[DBL]part
Y
XArray of 32 DBL components containing the raw values of the Y signals coming from both electron and positron BPMs. The components are in the same order of the values in the DEVIL memory locations.
errorClustererrorIn


Indicators

Data type

Name

Description

[DBL]part XSee corresponding control description above. The X array is returned both for read and write operations.
[DBL]part XSee corresponding control description above. The Y array is returned both for read and write operations.
errorClustererrorOut

Details

This VI stores and returns the last socket acquired from the 4 DEVILs. It doesn't perform any reordering.

...