One principle when developing Video System 3 was that XML is used for storing of non-volatile settings of
software components and hardware.
On C/C++ side, XML files are read/written by TinyXML XML library (currently v2.5.3 is used). TinyXML at Sourceforge.
XML files follow a welldefined syntax to provide a flat learn curve. Some constraints have been made to
simplify handling of the files. General rules have been defined here.
File Name or Pattern ([]) |
Is Used At |
brief description |
cameraports.xml |
SGP |
- for each unique image source name, orientation change setting and static scale factors
(relation between pixels and millimetres) may be encoded
- is located where SGPmain.xml-><oConfigFileBasePath> points to or, if <oConfigFileBasePath>
is not encoded in SGPmain.xml, the file is located in the working directory
- mandatory file, but file may be dummy file not containing anything else than generic settings
|
evnAgentZMQ.xml |
evnAgent |
- contains settings for evnAgent component (receives global event number and provides shared memory on
local host for SGP components)
- is always located in the same directory as the evnAgent executable
|
Input[$SGPName].xml |
Layer (Raw2Jpeg, ...) |
- used at Layer component to get to know settings of input (where to get images from)
- contains settings where (address) and how (shm or tine) to access video stream of SGP
- is located where LayerMain.xml-><oConfigFileBasePath> points to or, if <oConfigFileBasePath>
is not encoded in LayerMain.xml, the file is located in the working directory (LayerMain: Raw2JpegMain.xml)
|
ISrc[$ISrcName].xml |
SGP |
- contains settings individual to each image source
- various types exist for contents of this file (as much as there are SGP types, e.g. PCVision, ProsilicaGigE, ...)
- is located where SGPmain.xml-><oConfigFileBasePath> points to or, if <oConfigFileBasePath>
is not encoded in SGPmain.xml, the file is located in the working directory
|
SGPmain.xml |
SGP |
- index file
- provides Name of SGP component (in order to load proper SGP[$SGPname].xml file)
- may provide image source name (in order to load proper ISrc[$ISRCname].xml file)
- optionally contains name of syslist file and location of directory where
the configuration files are located
- is always located in the same directory as the executable
|
SGP[$SGPname].xml |
SGP |
- contains general settings for SGP (which are independent of the type of SGP)
- contains settings for TINE-server
- may contain settings for getting unique event number from evnAgent component running on the same host
- is located where SGPmain.xml-><oConfigFileBasePath> points to or, if <oConfigFileBasePath>
is not encoded in SGPmain.xml, the file is located in the working directory
- some sections, tags and values are identical across SGP[].xml, GS2CL[].xml and Raw2Jpeg[].xml
|
Syslist.xml |
SGP, Layer (Raw2Jpeg, ...), client-side |
- optional file
- contains full list and relations between image sources, SGP components and Layer components
("what is available, what is possible and where")
- is located where $Main.xml-><oConfigFileBasePath> points to or, if <oConfigFileBasePath>
is not encoded in $Main.xml, the file is located in the working directory ($Main: SGPmain.xml, GS2CLmain.xml or Raw2JpegMain.xml)
- without syslist, it is not possible to
- provide a list of possible Image Sources, Layers or Inputs at TINE property interface of SGPand Raw2Jpeg
- restrict inside SGP logic the image sources possible to connect to this SGP instance (to ensure performance, to map physical constraints, ...)
- restrict inside any Layer logic the input SGPs possible to connect to this Layer instance (to ensure performance, to map physical constraints, ...)
|
Raw2JpegMain.xml |
Raw2Jpeg (Layer) |
- index file
- provides Name of Raw2Jpeg component (in order to load proper Raw2Jpeg[$RAW2JPEGname].xml file)
- may provide image source name (in order to load proper Input[$SGPname].xml file)
- optionally contains name of syslist file and location of directory where
the configuration files are located
- is always located in the same directory as the executable
|
Raw2Jpeg[$Raw2JpegName].xml |
Raw2Jpeg (Layer) |
- contains general settings for Raw2Jpeg Layer component
- contains settings for TINE-server
- is located where Raw2JpegMain.xml-><oConfigFileBasePath> points to or, if <oConfigFileBasePath>
is not encoded in Raw2JpegMain.xml, the file is located in the working directory
- some sections, tags and values are identical across SGP[].xml, GS2CL[].xml and Raw2Jpeg[].xml
|
videoclnt3-config.xml |
Video Client 3 |
- contains settings for Video Client 3 (some of them are optional):
- whether and if yes, how to scan the TINE namespace for video servers
- hardcoded video server addresses
- TINE access mode, TINE timeout rate for video data
- timeouts
- currently selected video server address
- deliminter and decimal symbol for CSV files
- settings for Online DAQ of Video Client 3
- Laser shutter addresses (for GrabAndSave semiautomatic data taking)
- TINE addresses for additional properties
- Photo Cathode Circle
- etc.
- is always located in the same directory as videoclnt3.exe
|
videoclnt3-onlinedaq-config.xml |
Video Client 3 |
- contains TINE addresses for Video Client 3 Online DAQ
- Addresses of up to 15 TINE properties
- optional data type, friendly name and friendly unit name
- is referenced via videoclnt3-config.xml
- default location is at videoclnt3.exe's directory
|
There are relations between XML-files. Some of them only work together.