Versions Compared

Key

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

...

#

Title

User Story

Importance

Notes

1DEVIL204-Global write to memcached
Jira
showSummaryfalse
serverINFN Ticketing System
serverId8087fedc-8816-3706-9e66-78f987f39e0c
keyLNFDCS-132
As a developer I want GGODSta.vi and GGODDyn.vi have the "append" and "write" cases ENABLED so that I can validate real memcached write operations.Must Have
  • GGODSta.vi and GGODDyn.vi have the "append" and "write" cases DISABLED for debugging
2DEVIL204-Update DBFiles
Jira
showSummaryfalse
serverINFN Ticketing System
serverId8087fedc-8816-3706-9e66-78f987f39e0c
keyLNFDCS-133
As a developer I want updated versionof DEVILs' DBFiles  so that I can use them for loading data.Must Have
  • At this moment, DBFiles of DEVILs 364, 365, 366, 367 on /u2/dcs/db/DBFile3/ differ from those used by Apple (e.g. DEVIL365 has 24 components instead of 23). 
3DEVIL204-Program data loading
Jira
showSummaryfalse
serverINFN Ticketing System
serverId8087fedc-8816-3706-9e66-78f987f39e0c
keyLNFDCS-134
As a developer I want to count on valid orbit values (that is equal to legacy Apple data) so that I can go ahead with the program development.Must Have
4

DEVIL204-Optimize bundleORB VIs

Jira
showSummaryfalse
serverINFN Ticketing System
serverId8087fedc-8816-3706-9e66-78f987f39e0c
keyLNFDCS-135

As a developer I want a fast ORB dataset recontruction so that I can obtain a real time orbit acquisition.Must Have
  • The VIs .../0_classes/GOD/library/fetchORB[Sta|Dyn].vi and their SubVIs .../0_classes/GOD/library/bundleORB[Sta|Dyn].vi must be optimized by moving the code that parses the descriptors in the "init" frame so that it is executed only once.

Al momento la difficoltà maggiore è quella di riottenere una tabella di ordinamento tramite i VIs:
precompileORB.vi
precompileORB_IR.vi
I suddetti VIs sono stati modificati per quanto riguarda il recupero degli indirizzi ma ci sono degli errori.

GGODSta.vi

5

DEVIL204-O

Jira
serverINFN Ticketing System
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId8087fedc-8816-3706-9e66-78f987f39e0c
keyLNFDCS-122




Al momento la difficoltà maggiore è quella di riottenere una tabella di ordinamento tramite i VIs:
precompileORB.vi
precompileORB_IR.vi
I suddetti VIs sono stati modificati per quanto riguarda il recupero degli indirizzi ma ci sono degli errori.


...

GGODSta.vi

This global is This global is initialized with data from the DBSta file. The DBSta file contains dummy data (all zeros) and is only used to correctly size the arrays.
The filling of the global with actual data is done via the GODStartup.vi program using the file:

...

Open the IP connections with the four VME SIS3153 controllers and return the connection handles.
The VME access is A32, D32 and "block transfer" is enabled.
The VME mapped size is 4 MByte (that is the whole Apple DEVIL memory).
The vme_base_address is set to E0000000 (which is the DEVIL extended base address).

...

Controls

Data type

Name

Description

BoolddInLegacy data-dependency input

Indicators

Data type

Name

Description

Bool
ddIn
ddOut

Legacy data-dependency

input

Indicators

...

Data type

...

Name

...

Description

...

output.
The connector pane pattern for all initHWXXX VIs is fixed and mandatory and – for (wrong) historical reasons – it has no indicator returning the error.
The error is returned in ddOut as a boolean obtained from the status element of the output error cluster of the vme_open SubVI.

ddOut = True indicates that an error occourred in the vme_open

Details

...

Warning

The connector pane pattern for all initHWXXX VIs is fixed and mandatory and – for (wrong) historical reasons –

...

ddOut = True indicates that an error occourred in the vme_open

Details

Warning

The connector pane pattern for all initHWXXX VIs is fixed and mandatory and – for (wrong) historical reasons – does not return any errors.

Examples

---

GODStartup.vi

This is the real data loader of the GODSta.vi 

Image Removed

Controls

...

Data type

...

Name

...

Description

Indicators

...

Data type

...

Name

...

Description

Details

---

Examples

---

closeGOD.vi

Close the IP connections with the four VME SIS3153 controllers and dispose the connection handles.

Image Removed

Controls

...

Data type

...

Name

...

Description

...

Indicators

...

Data type

...

Name

...

Description

...

Details

---

Examples

---

...

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)

does not return any errors.

Examples

---

...

GODStartup.vi

This is the real data loader of the GODSta.vi 

Image Added

Controls

Data type

Name

Description




Indicators

Data type

Name

Description




Details

Configuration folder /u2/dcs/source_linux/0_classes/GOD/configuration
has been copied from vldafneafp to vldantedev038

Examples

---

...

closeGOD.vi

Close the IP connections with the four VME SIS3153 controllers and dispose the connection handles.

Image Added

Controls

Data type

Name

Description

BoolddInLegacy data-dependency input
errorClustererrorIn


Indicators

Data type

Name

Description

BoolddOutLegacy data-dependency output
errorClustererrorOut

Details

---

Examples

---

...

Turn for electronsTurn for positrons


Image Added
Image Added


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

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

Details

Image Added

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:

  • 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: at the beginning of the socket (before part X) and again in the middle of the socket (before part Y) the content of the two headers being 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.

  • 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.

Examples

---

...

GRawBuffer.vi

Image Added

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

Details

---

Examples

---

readDEVILBufferLine.vi

Image Removed

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

...

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 

...

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

...

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

Indicators

...

Data type

...

Name

...

Description

...

Details

...

Image Removed

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:

  • 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: at the beginning of the socket (before part X) and again in the middle of the socket (before part Y) the content of the two headers being 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.

  • 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

...

Examples

---

GRawBuffer.vi

Image Removed

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" 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 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 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


...

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.

Examples

---

...

errorOut

Details

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

Examples

---

...

...