Overview Image Sources Components XML Config Slow Control Image File Formats API Source Repository VSv2 Conference Submissions Contact

AVINE Video System

XML Configuration files

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.

Table of Contents

 

Brief Explanation of XML Configuration Files

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

 

Commented Configuration File Examples

Example Filename Filename pattern Documented File Contents is used at
evnAgentZMQ.cfg.xml   evnAgentZMQ.cfg.xml evnAgent
cameraports.xml   cameraports.xml SGP
Input[FG1S.Jai].xml
Input[FG1S.Prosilica]
Input[FG2S.Ebus].xml
Input[$SGPName].xml Input[SGP_PRSGE1].xml Raw2Jpeg
ISrc[VC2 (JAIP).xml
ISrc[Disp1.Scr1].xml
ISrc[High1.Scr1 (Bin2x2)].xml
ISrc[$ISrcName].xml General Settings ISrc[AnimCamera].xml
Animation Playback from Disk ISrc[CameraName].xml
Directshow ISrc[CameraName].xml
Ebus ISrc[ebus-example].xml
JAI SDK ISrc[CameraName].xml
ProsilicaGigE ISrc[CameraName].xml
SGP
PITZsyslist.xml   syslist.xml SGP
Raw2Jpeg
Raw2JpegMain.xml   Raw2JpegMain.xml Raw2Jpeg
Raw2Jpeg[FG1L.R2J].xml Raw2Jpeg[$Raw2JpegName].xml Raw2Jpeg[R2J03].xml Raw2Jpeg
SGPmain.xml   SGPmain.xml SGP
SGP[FG1S.Jai].xml
SGP[FG4S.Prosilica].xml
SGP[FG6S.Ebus].xml
SGP[$SGPName].xml General Settings: SGP[SGP_IMMO20 (SGP Fake)].xml SGP
videoclnt3-config.xml   videoclnt3-config.xml Video Client 3
videoclnt3-onlinedaq-config.xml   videoclnt3-onlinedaq-config.xml Video Client 3

 

Intra XML-File Relations

There are relations between XML-files. Some of them only work together.

hard relations (without maintaining the hard relations the set of configuration files is not working correctly)
  • SGPmain.xml: <SGPName>$value</SGPName>
    • a file SGP[$value].xml will be loaded and thus must exist

  • Raw2JpegMain.xml: <Raw2JpegName>$value</Raw2JpegName>
    • a file Raw2Jpeg[$value].xml will be loaded and thus must exist
soft relations (without maintaining the soft relations the set of configuration files is in general working, but not as designed: functionality may be limited)
  • syslist.xml
    • <ImageSource>/<NameID>$valueName=$valueID</NameID>
      • a file ISrc[$valueName].xml must exist
        • it's <ImageSource> tag's value must match $valueName=$valueID
        • it's <InputSettings>/<Type> tag's value must match syslist.xml's <ImageSource>/<SGPType> value
    • <SGP>/<Name>$value</Name>
      • a file SGP[$value].xml must exist
    • <SGP>/<Type>$value</Type>
      • $value must match the type (PCVision, ProsilicaGigE, ...) of the SGP binary
    • <Raw2Jpeg>/<Name>$value</Name>
      • a file Raw2Jpeg[$value].xml must exist
    • <Raw2Jpegs>/<Raw2Jpeg>/<oSGPName>$value</oSGPName>
      • a file Input[$value].xml must exist

  • cameraports.xml
    • <ImageSource>$valueName=$valueID</ImageSource>
      • a file ISrc[$valueName].xml should exist


Last modified: Sept 28, 2023