Presentation is loading. Please wait.

Presentation is loading. Please wait.

LBTO Reflective Memory August 17, 2006 Chris Biddick 1 cjb.

Similar presentations


Presentation on theme: "LBTO Reflective Memory August 17, 2006 Chris Biddick 1 cjb."— Presentation transcript:

1 LBTO Reflective Memory August 17, 2006 Chris Biddick 1 cjb

2 Introduction Mechanism for maintaining all TCS state and status Local shared memory segment Network demon to update all systems Part of the Data Dictionary Reflective memory is composed of XML definitions Binary definitions (ddsconfig) Several pieces of CommonSW Network Reference document: 481s504481s504 2 cjb

3 Reflective memory definitions Path in CVS: LBTO/TCS/usr/commonsw/DDArchive/ReflectiveMemory/ Every subsystem has a directory Files are hierarchical in the file system PSF/PSFside/PrimaryMirror/modes.xml psf.side[n].primaryMirror.modes Arrays allowed at all levels Variable types: BIT, CHAR, UCHAR, SHORT, USHORT, INT, UINT LONG, ULONG, FLOAT, DOUBLE, STRING Subdirectory name 3 cjb

4 XML files Meta Dictionary Entry Defines level of hierarchy Points to subdirectory Determines element name Reflective Memory Dictionary Entry Defines actual variables 4 cjb

5 Meta Dictionary Entry example side PSF/side PSF PSFside 2 5 cjb

6 Reflective Memory Dictionary Entry example modes PSF/PSFside/PrimaryMirror/modes Number of bending modes used PSF INT 1 N/A 0 160 1 0 ASTRONOMER ALL None right now 0 cjb ASTRONOMER Modified the danger lower limit 2004-11-12 11:01:20 6 cjb

7 DDEditorGUI Display/create/modify definitions Populates FullQualifiedName, Owner, and all UpdateInfo fields Directory options Add folder Add file Delete Rename Move Copy 7 cjb

8 DDEditorGUI (cont) File options Delete Rename Move Copy Edit by double clicking on fields To create a new level of hierarchy Make subdirectory Make file whose type is the subdirectory 8 cjb

9 Binary reflective memory definitions Install reflective memory (and other) definitions cd LBTO/TCS/usr sudo make install Run ddsconfig sudo ddsconfig -refmem Makes files: /usr/local/bin/.binRefMemDictionary /usr/local/lib/libLBTGshmVar.so /usr/local/include/LBT/GshmVar.h /usr/local/etc/OffsetTable.conf 9 cjb

10 Reflective memory access Two ways: Gtype objects Use variable names directly No notification if errors SetValueInterface objects Each reference a function call Status return for errors May read/write a buffer 10 cjb

11 Gtype access Some operators overloaded, use cast if unsure; see 481s504481s504 Can get metadata Examples: psf.side[side].primaryMirror.modes = 6; int modes = psf.side[side].primaryMirror.modes; int muplim = psf.side[side].primaryMirror.modes.get_upperlimit(); 11 cjb

12 SetValueInterface access Create SetValueInterface object #include SetValueInterface svi; int modes,err; Write err = svi.write(&psf.side[side].primaryMirror.modes,modes); err = svi.write(“psf.side[side].primaryMirror.modes”,modes); Read err = svi.read(&psf.side[side].primaryMirror.modes,&modes); err = svi.read(“psf.side[side].primaryMirror.modes”,&modes); 12 cjb

13 SetValueInterface access (cont) Check for errors if(svi.isError(err) && err != VALUEOUTOFBOUNDS) { //error } Metadata string muplim = svi.getUpperLimit(“psf.side[side].primaryMirror.modes”); int muplim = svi.getUpperLimit(&psf.side[side].primaryMirror.modes); See 481s504 for details481s504 13 cjb


Download ppt "LBTO Reflective Memory August 17, 2006 Chris Biddick 1 cjb."

Similar presentations


Ads by Google