Versions Compared

Key

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

...

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

When true, the VI does nothing and simply passes the error out.

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

...

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 pointers are always alligned. At each strobe, each DEVIL stores a "socket" composed as:

  • part X

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

  • part Y

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

The 32 components in 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 BPMs sequence is obviously different. As a consequence, 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
DBL   ACQNum [0, 1926];
DBL   timestamp (LabVIEW Time Stamp cast to DBL).
    example: 00:00:00.000 PM
             MM/DD/YYYY

The socket header is written twice: one time at the beginning of the socket (before part X) and another time again in the middle of the socket  socket (before part Y. Format and ) the content of the two headers are identical to each otherbeing the same; 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.

...

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" into the arrays specified by DEVILIndex. Both inputs must have 32 components otherwise no one of them will be stored;
  • write X: stores "part X" only to the array buffer 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 buffer specified by DEVILIndex. The array must have 32 components otherwise it will not be stored. The "part X" array is kept unmodified.
[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


...