...
Turn for electrons | Turn 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
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 |
---|---|---|
boolean | init | T = initialize, F = regular run init = F: reads the socket "socketNumber" from the VME memory of the DEVIL "DEVILIndex" and returns the two parts |
I32 | DEVILIndex | Index in the range [0, 1, 2, 3] corresponding to: INDEX 0, 1, 2, 3 |
I32 | socketNumber | Pointer to the acquisition buffer in the range [0, 1926] |
[DBL] | part X | Array 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 | Array 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. |
errorCluster | errorIn |
Indicators
Data type | Name | Description |
---|---|---|
[DBL] | part X | Array of 32 DBL: see corresponding control description above. The array is returned both for read and write operations. |
[DBL] | part X | Array of 32 DBL: see corresponding control description above. The array is returned both for read and write operations. |
errorCluster | errorOut |
Details
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:
|
DBL Acquisition number [0, 1926]
DBL timestamp
[DBL] 32 values of the BPM X signals from the Bergoz modules read from that DEVIL;
|
DBL Acquisition number [0, 1926]
[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.
ACQNum [0, 1926]; The socket header is written twice: one time at the beginning of the socket before part X |
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 |
---|---|---|
I32 | DEVILIndex | Index in the range [0, 1, 2, 3] corresponding to: INDEX 0, 1, 2, 3 |
enum | mode | [init, read, write X and Y, write X, write Y] (read)
|
|
Indicators
...
Data type
...
Name
...
Description
...
|
...
Details
This VI stores and returns the last socket acquired from the 4 DEVILs. It doesn't perform any reordering.
Examples
---
readDEVILBufferLine.vi
Controls
Data type
Name
Description
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"
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
[DBL] | part X | Array 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 |
X | Array 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. | |
errorCluster | errorIn |
Indicators
Data type | Name | Description |
---|---|---|
[DBL] | part X | See corresponding control description above. The X array is returned both for read and write operations. |
[DBL] | part X | See corresponding control description above. The Y array is returned both for read and write operations. |
errorCluster | errorOut |
Details
This VI stores and returns the last socket acquired from the 4 DEVILs. It doesn't perform any reordering.
...