Scripting for VIOSO applications

Many processes in VIOSO are highly automatable to enable advanced calibrations, transformations, and recalibration scenarios.

1. Common

1.1. Script file

A script file is an ANSI text file in XML format with the root section <VIOSO>.

<?xml version="1.0"?>
<VIOSO>
  <File version="1.0.0" />
</VIOSO>

1.2. Elements

There are two types of elements:

1.2.1. <task> Element

A <task> section defines a certain action. Every <task> section must have one action attribute, which defines the task to be executed. Depending on the certain task there are usually other attributes required (see 2.).

1.2.2. <define> Element

A <define> section is used to summarize parameters that are required for certain actions. Parameters can also be defined directly in the <task> section. <define> sections are used to improve a script's readability and enable the reuse of the same parameters in several <task> sections. Every <define> section requires the following attributes:

1.2.3. Example

The following simple script file copies the "Calib.sps" file from the data folder to "D:\Backup\Calib.sps":

<?xml version="1.0"?>
<VIOSO>
  <File version="1.0.0" />
  <task action="transfer" type="file" use="Backup" />
  <define name="Backup" type="Transfer" >
    <from file="Calib.sps" />
    <to file="D:\Backup\Calib.sps" />
  </define>
</VIOSO>

The following script file does exactly the same, except that the necessary parameters for the transfer action are specified directly in the <task> section:

<?xml version="1.0"?>
<VIOSO>
  <File version="1.0.0" />
  <task action="transfer" type="file" >
    <from file="Calib.sps" />
    <to file="D:\Backup\Calib.sps" />
  </task>
</VIOSO>

1.3. Variables

In some places, attribute values can be defined by variables. E.g. to use script parameters or ingest other ini-files. In this Scripting context, variables are noted this way:

$[source]$[name]$
  • [source]: identifier of the source of the variable

  • [name]: name of the variable

1.3.1. Source: script variables

Script variables are parameters that are specified directly with the name of the script file to be executed. Script variables are only valid for the script to be executed and are passed to the script engine as a parameter string. The parameter string has the following structure:

[name]=[value]{,[type]};[name]=[value]{,[type]}; ...
  • [name]: name of the script variable

  • [value]: value of the script variable

  • [typ]: optional variable type. If no [typ] is specified, [value] is interpreted as a string. Available variable types:

    • i => value is an integer number

    • f => value is a float number

    • d => value is a float number with double precision

    • s => value is a string of characters

During script runtime, script variables can be retrieved by calling ENV (see below).

1.3.2. Source: additional ini-file

This variable source can be used for the integration of project-specific configuration files and generally for the integration of selector parameter lists (see 4.1.). The content of additional ini-files is persistently available. Once loaded, all subsequent scripts can access the content.

1.3.3. Example

This sample script loads the ini-file "List.ini", interprets it as a selector parameter list, and publishes the content of the ini-file under the name Calibs.

<?xml version="1.0"?>
<VIOSO>
  <task action="load" name="Calibs" type="file" subtype="paramlist" use="spsL" />
  <define name="spsL" type="Common" >
    <param file="List.ini" />
  </define>
</VIOSO>

Example for a "List.ini" file:

<?xml version="1.0"?>
<VIOSO>
  <list>
    <element selector="el1" value="c1.sps" />
    <element selector="el2" value="c2.sps" />
  </list>
</VIOSO>

If now the following script is called with the parameter string: use = el1;...

<?xml version="1.0"?>
<VIOSO>
  <task action="load" name="sps" type="file" subtype="sps" use="sps.Load" />
  <define name="sps.Load" type="Common" >
    <param sel="$ENV$use$" list="Calibs" />
  </define>
</VIOSO>

...the file "c1.sps" is loaded.

2. Actions

2.1. Condition

Specifies a conditional task (see 3.27.). Required attribute: name

Optional attribute: use

2.2. Configure

Used to configure a known entity. Required attributes: name, state

Optional attributes: use

2.3. Connect

Opens a connection to the specified client. Required attributes: core

2.4. Control

Indicates that certain tasks on a client should be monitored (controlled). Required attributes: type, subtype, core

2.5. Create

Creates a specific entity. Required attributes: type, subtype

Optional attributes: core, use, name

2.6. Destroy

Terminates/Destroys a certain entity. Required attributes: name or type, subtype

or

2.7. DestroyAll

Terminates/Destroys all entities of a certain type. Required attributes: type, subtype See 2.6.

2.8. Disconnect

Closes the connection to a certain client. Required attribute: core

2.9. Execute

Executes the specified command. Required attributes: type, subtype

Optional attributes: use, name

2.10. IPC

Configures and populates the inter-process communication interface. Required attribute: type

Optional attribute: use

2.11. Load

Loads a specific file, configuration, etc. Required attributes: type, subtype, name

Optional attribute: use

2.12. Manipulate

Tasks to edit/manipulate files like calibration files, etc. Required attributes: type(, subtype)

Optional attribute: use

2.13. Playlist

Configures/Manipulates the playlist of a presenter entity. Required attribute: name

Optional attribute: use

2.14. Refresh

Updates an output, value, etc. Required attributes: name or type, subtype

or

2.15. RefreshAll

Updates the output of an entity class. Required attributes: type, subtype See 2.14.

2.16. Render

Processes the output of a renderer Required attributes: name

2.17. Save

Stores calibrations, configurations, etc. Required attributes: type, subtype

Optional attribute: use

2.18. Send

Sends information over the network Required attributes: type, subtype

Optional attribute: use

2.19. Start

Starts a behaviour, etc. Required attributes: name or type, subtype

or

2.20. StartAll

Starts all existing behaviours of a certain type. Required attributes: type, subtype See 2.19.

2.21. Stop

Stops a running behaviour, etc. Required attributes: name or type, subtype

or

2.22. StopAll

Stops all running tasks of a certain type. Required attributes: type, subtype See 2.21.

2.23. Transfer

Action to transfer information, files, etc Required attribute: type

Optional attribute: use

2.24.Wait

General action to wait for certain events. Required attributes: name, state

Optional attribute: core, use

3. Parameter Block

3.1. action="Configure" state="BaseMethod"

Type of the separate parameter block: 3DModel Available sections:

  • all attributes in the <param> section are optional except for file and tMethod

  <define name="3D.BaseParam" type="3DModel" >
    <param file="SC_MT_1.sps"           tMethod="static model"
           model="externModel"          externAssigns="$ARVA$Assigns$"
           bUseModelCntSpace="1"        bUseDisplMap="1"
           bGenP2WMap="1"               bFillSmallMeshHoles="1"
           bSplitLargeMeshes="1"        bPostProcessBlending="1"
           bAutoObserverConversion="1"  bUseCurrPrjMask="0"
           bFillSmall3DMeshHoles="1"    bNoBlending="0"
           qSmallHoleContourMax="80"
           qSmallHoleSearchSz="1"       smallHoleAngle="10"
    />
  </define>

3.2. action="Configure" state="DeviceSel"

Type of the separate parameter block: SC_DevSel Available sections:

  • multiple <display> sections can be specified

  • apart from tCalib, all attributes in the <param> section are optional

  <define name="C1.DevSel" type="SC_DevSel" >
  <camera tDevice="camera" name="Logitech QuickCam Pro 9000" />
  <display tDevice="sd"    name="D2 SyncMaster (SAM04EA)" />
  <param tCalib="flat"         tArrangement="grid"
         tCamSpaceConvert="none"
         calibName="Test"
         contentRatio="16:9"   geometricScanSize="2.0"
         bHQBlending="0"       bContourBlending="1"
         bAdditionalLNS="0"
         bOutsideCamView="1"   bFillAbsentBubbles="1"
         bFixLinePattern="1"
         bExtLoD0="0"bRegulariseLNS="0"
         bCalcDisplayPose="0"  bAutoCntSpaceConvert="0"
         bSavePartialCalib="0" bSetDisplayMask="0"
         bAWBCamera="0"        bVignetteFilter="0"
         bAutoInvisibleBlendingCrop="0"
         qVisiblePrjRegionExtend="30"
         bUseMonoCamera="0"    bUseHWBlend="0"
         bForceNewScan="0"
    />
  </define>

3.3. action="Configure" state="ConvertConfig"

Type of the separate parameter block: CalibCommerce Available sections:

  • several <display> sections can be specified

  • apart from tConvert, all attributes in the <param> section are optional

  • several parameters from 3.4. can be used here as well

  <define name="Convert" type="CalibCommerce" >
    <display tDevice="dc" name="DC_Final" />
    <param tConvert="pseudo 3D sphere" bNoDefaultParam="1" />
    <param0 X="-180.0" Y="180.0" Z="0.0" W="90.0" />
    <!-- X => min uY => max uZ => min vW => max v | all in degree -->
    <param1 X="1000.0" Y="0.0" Z="0.0" W="0.0" />
    <!-- X => radiusY => radius2Z => unusedW => unused -->
  </define>

  <define name="Convert" type="CalibCommerce" >
    <display tDevice="dc" name="DC_Final" />
    <param tConvert="pseudo 3D plane" bNoDefaultParam="1" />
    <param0 X="1600.0" Y="0.0" Z="900.0" W="0.0" />
    <!-- X => widthY => …Z => heightW => … -->
    <param1 X="1000.0" Y="0.0" Z="0.0" W="0.0" />
    <!-- X => distanceY => unusedZ => unusedW => unused -->
  </define>

  <define name="Convert" type="CalibCommerce" >
    <display tDevice="dc" name="DC_Final" />
    <param tConvert="pseudo 3D equirectangular" bNoDefaultParam="1" />
    <param0 X="-180.0" Y="180.0" Z="-60.0" W="60.0" />
    <!-- X => min uY => max uZ => min vW => max v | all in degree -->
    <param1 X="1000.0" Y="0.0" Z="0.0" W="0.0" />
    <!-- X => radiusY => radius2Z => unusedW => unused -->
  </define>

  <define name="Convert" type="CalibCommerce" >
    <display tDevice="dc" name="DC_Final" />
    <param tConvert="pseudo 3D cylinder" bNoDefaultParam="1" />
    <param1 X="1000.0" Y="0.0" Z="0.0" W="0.0" />
    <!-- X => radiusY => radius2Z => unusedW => unused -->
  </define>

  <define name="Convert" type="CalibCommerce" >
    <display tDevice="dc" name="DC_Final" />
    <param tConvert="add vc to P2C"
           bNoDefaultParam="0"     bPostProcess="1"
    />
  </define>

  <define name="Convert" type="CalibCommerce" >
    <display tDevice="dc" name="DC_Final" />
    <param tConvert="custom content space conversion"
           customContentSpace="Model Name"
           bNoDefaultParam="0" bPostProcess="0"
    />
  </define>

  <define name="Convert" type="CalibCommerce" >
    <display tDevice="dc" name="DC_Final" />
    <param tConvert="observer conversion"
           customContentSpace="Pose Name"
           bNoDefaultParam="1" bPostProcess="0"
    />
    <param0 X="1.0" Y="0.0" Z="1.0" W="0.0" />
    <!-- X => scale XY => offset XZ => scale YW => offset Y -->
  </define>

  <define name="Convert" type="CalibCommerce" >
    <display tDevice="sd" name="Display 1" />
    <display tDevice="sd" name="Display 2" />
    <param tConvert="exclude compound display" bNoDefaultParam="0" />
  </define>

  <define name="Convert" type="CalibCommerce" >
    <display tDevice="dc" name="DC_Final" />
    <param tConvert="camera content space translation"
           customContentSpace="Model Name"
           bNoDefaultParam="0" />
  </define>

  <define name="Convert" type="CalibCommerce" >
    <display tDevice="dc" name="DC_1" />
    <display tDevice="dc" name="DC_2" />
    <param tConvert="merge calibration" />
  </define>

  <define name="Convert" type="CalibCommerce" >
    <display tDevice="dc" name="DC_Final" />
    <param tConvert="auto frustum"
           bNoDefaultParam="1"
    />
    <eyePoint X="100.0" Y="100.0" Z="100.0" />
    <param0 X="0.0" Y="0.0" Z="0.0" W="1.777" />
    <!-- X => unusedY => unusedZ => unusedW => prefered ratio -->
  </define>

  <define name="Convert" type="CalibCommerce" >
    <display tDevice="dc" name="DC_Final" />
    <param tConvert="clone calibration" />
  </define>

  <define name="Convert" type="CalibCommerce" >
    <display tDevice="dc" name="DC_Final" />
    <param tConvert="remove P2C outlier"
           bNoDefaultParam="1"
    />
    <param1 X="8.0" Y="0" Z="0.0" W="0.0" />
    <!-- X => filter sizeY => methodZ => unusedW => unused -->
  </define>

  <define name="Convert" type="CalibCommerce" >
    <display tDevice="dc" name="DC_Final" />
    <param tConvert="smooth P2C"
           bNoDefaultParam="1"
    />
    <param1 X="8.0" Y="0" Z="0.0" W="0.0" />
    <!-- X => filter sizeY => methodZ => unusedW => unused -->
  </define>

  <define name="Convert" type="CalibCommerce" >
    <display tDevice="dc" name="DC_Final" />
    <param tConvert="smooth P2C"
           bNoDefaultParam="1"
    />
    <param1 X="8.0" Y="0" Z="0.0" W="0.0" />
    <!-- X => filter sizeY => methodZ => unusedW => unused -->
  </define>

  <define name="Convert" type="CalibCommerce" >
    <display tDevice="dc" name="DC_Final" />
    <param tConvert="PrjSpace overlap" />
  </define>

  <define name="Convert" type="CalibCommerce" >
    <display tDevice="dc" name="DC_Final" />
    <param tConvert="Crop Display Geometry"
           bNoDefaultParam="1"
           path="c:\Mask.png"
    />
  </define>

  <define name="Convert" type="CalibCommerce" >
    <display tDevice="dc" name="DC_Final" />
    <param tConvert="Crop Display Geometry with Projector Mask" />
  </define>

  <define name="Convert" type="CalibCommerce" >
    <display tDevice="dc" name="DC_Final" />
    <param tConvert="delete calibration" />
  </define>

3.4. action="Configure" state="ExportConfig"

Type of the separate parameter block: CalibCommerce Available sections:

  • several <display> sections can be specified

  • apart from tConvert, all attributes in the <param> section are optional

  <define name="Export" type="CalibCommerce" >
    <display tDevice="sd" name="D2 SyncMaster (SAM04EA)" />
    <param tConvert="vwf"
           path="C:\Export"        name="Script_Test.vwf"
           bNoVC="0"               bNoGeom="0"
           bNoBlend="0"            bNoMask="0"
           bNoBlack="0"
           bSplitDisplays="0"      bExactFileName="1"
           bScaleSplitDisplays="0" b3D="0"
           bToMaster="1"           bVirtualContentRect="0"
           bBlankUnused="0"        bExtendedDefFile="0"
           bNoDefaultParam="0"     bPostProcess="1"
           gammaBlend="0.0"

    />
    <grid row="21" col="21" />
  </define>

3.5. action="Configure" state="Validate"

Type of the separate parameter block: RenderPipe Available sections:

  <define name="RP1.config" type="RenderPipe" >
    <param extern="$ARVA$Assign$View1$" />
  </define>

or

  <define name="RP1.config" type="RenderPipe" >
    <source tDevice="file" file="E:\test.bmp" />
    <target tDevice="sd"name="D1(CMN1343)" ip="192.168.100.5" />
    <param bUseVC="1" bUseGeomCorr="1" bUseColorCorr="0"
           bAABorderSmooth="0"
           bUseEdgeBlend="1"
           bAutoSave="0" bCompleteInit="0" bAugmentedElements="0"
    />
  </define>

3.6. action="Configure" state="StartOption"

Type of the separate parameter block: RenderPipe Available sections:

  <define name="RP1.start" type="RenderPipe" >
    <param bUseContentCache="1" />
  </define>

3.7. action="Configure" state="all"

3.7.1. action="Renderer" subtype="dx9"

Type of separate parameter block: common Available sections:

  <define name="Renderer.Config" type="Common" >
    <param file="Test.mrd" />
  </define>

3.8. action="Create" type="Behaviour"

Type of the separate parameter block: BehaviourCreate Usually, this parameter block is not required. Available sections:

  <define name="C1.Start" type="BehaviourCreate" >
    <param interactLevel="many" 
    />
  </define> 

3.9. action="Create" type="Behaviour" subtype="SingleClientCalib"

Type of the separate parameter block: BehaviourCreate Available sections:

  • several <display> section can be defined

  <define name="C1.Start" type="BehaviourCreate" >
    <param interactLevel="many, noInterResult" 
    />
    <display tDevice="sd" name="D1 NEC LCD1760NX (NEC6604)" />
  </define>

3.10. action="Create" type="CntSpace" subtype="3DModel"

Type of the separate parameter block: CntSpace Available sections:

  <define name="model param" type="CntSpace" >
    <param modelFile="D:\model.obj"
           matrixFile="D:\model.matx" matrixNode="Pose/Matrix4x4"
           cullMode="none"
           cntSpaceW="3072"           cntSpaceH="3072"
           bVolatileModel="1"         bSuppressRootTrans="1"
           bTransposeTransMat="1"
    />
  </define>

3.11. action="Create" type="file" subtype="bmp"

Type of the separate parameter block: CreateImage Available sections:

  <define name="CntFile" type="CreateImage" >
    <param tImage="RGBA" width="800" height="600" />
    <background red="255" green="255" blue="0" alpha="255" />
    <target file="Cnt.bmp" />
  </define>

3.12. action="Execute" type="Timer" subtype="Sleep"

Type of the separate parameter block: Common Available sections:

  <define name="StdWait" type="Common" >
    <param duration="2000" />
  </define> 

3.13. action="Execute" type="App"

Type of the separate parameter block: App

Applicable for subtype:start, restart, shutdown

Available sections:

  <define name="CloseApp" type="App" >
    <param name="notepad.exe" bWaitUntilFinished="1" />
  </define>

  <define name="Restart" type="App" >
    <param tmSleep="3000" param='/H' />
  </define>

3.14. action="Execute" type="OS"

Type of the separate parameter block: OS Applicable for subtype:restart, shutdown Available sections:

  <define name="Restart" type="OS" >
    <param tmShowInfo="10" info="System restart" bForceAppClose="1" />
  </define>

3.15. action="Load", "Save" type="file" subtype="sps"

Type of the separate parameter block: Common Available sections:

If the "Calib.sps" file exists, then it will only be loaded if the display compound with the name "screen0" does not exist.

  <define name="sps" type="Common" >
    <param file="Calib.sps" bMustNotExist="1" />
    <conditions bAll="0" >
      <condition tCondition="calibnotexist" tDevice="dc" name="screen0" />
    </conditions>
  </define>

or

3.16. action="Load", "Save" type="file" subtype="vc"

Type of the separate parameter block: Common Available sections:

  <define name="sps" type="Common" >
    <param file="Calib.sps" />
    <display tDevice="dc" name="Compound 187" />
  </define>

3.17. action="Load", "Save" type="file" subtype="playlist"

Type of the separate parameter block: Common !The name attribute of the task specifies the presenter line for which the playlist should be loaded/saved! Available sections:

  <define name="Playlist" type="Common" >
    <param file="LastPlaylist.xml" />
  </define>

3.18. action="Save" type="file" subtype="calibuserdata"

Type of the separate parameter block: Common Available sections:

  <define name="userdata" type="Common" >
    <param file="CalibData.dat" />
    <display tDevice="dc" name="Final" />
  </define>

3.19. action="Load" type="file" subtype="calibuserdata"

Type of the separate parameter block: Common (The information in the source file is assigned via the name of the calibration.) Available sections:

  <define name="userdata" type="Common" >
    <param file="CalibData.dat" bMustNotExist="1" />
  </define>

3.20. action="Transfer" type="file"

Type of separate parameter block: Transfer Available sections:

  <define name="Backup" type="Transfer" >
    <from file="SH_Compounds.sps" />
    <to file="E:\Backup\SH_Compounds.sps" />
  </define>

3.21. action="Transfer" type="Export"

Type of separate parameter block: Transfer Available sections:

  <define name="Backup" type="Transfer" >
    <source tSource="ProjectDesign"
            idString="8E113541-5698-488A-9FDF-5888F088AB22" />
    <local bAll="1" bBackup="1" path="e:\test" fileFmt="_Startup_$ip$"
           backupSuffix="bkp" />
    <remote core="" bAll="0" bBackup="1" path="e:\test_remote"
            fileFmt="_Startup_$ip$" backupSuffix="bkp" tmOut="5000" />
  </define>

Transfers the export files of an export task related to a specified project design. Saves all export files for all PCs locally in the "E:\test" folder and saves all files to be overwritten beforehand by appending the "bkp" extension. Furthermore, the specific export files for the remote PCs involved are stored on these in the folder "E:\test_remote" and saved previous files there as well.

3.22. action="Playlist"

Type of separate parameter block: Transfer The list of specified <itemchange> sections is processed from top to bottom. Available sections:

  <define name="RP.PL" type="Playlist" >
    <itemchange tOp="delete" item="all" />
    <itemchange tOp="add"item="file" param="Cnt.bmp" flag="singleplay"/>
  </define>

Deletes all items from the playlist. Then adds the file "Cnt.bmp" (located in the standard content folder) with "single play" properties to the playlist.

  <define name="RP.PL" type="Playlist" >
    <itemchange tOp="delete" item="6" />
  </define>

Deletes the item at playlist position 6.

3.23. action="Render"

Type of the separate parameter block: RenderTarget Available sections:

  <define name="Renderer.Target" type="RenderTarget" >
    <param tTarget="file" file="Output.bmp" />
  </define>

3.24. action="Manipulate" type="Calibration" subtype="Blending"

Type of the separate parameter block: BlendParam Available sections:

  <define name="SetBlend"type="BlendParam" >
    <display tDevice="dc" name="DC_Final" />
    <param tMethod="standard"
           plateau="50" gradient="8" gamma="0" gammaPrj="22"
    />
  </define>

3.25. action="Manipulate" type="Calibration" subtype="CalibChange"

Type of the separate parameter block: CalibChange The list of specified <change> sections is processed from top to bottom. Available sections:

  <define name="ChangeTest"type="CalibChange" >
    <display tDevice="dc" name="DC_Final" />
    <param bUseVC="1" bUseGeomCorr="1" bUseColorCorr="0"
           bAABorderSmooth="0"
           bUseEdgeBlend="1"
           bAutoSave="0" bCompleteInit="0"
    />
    <change tManipulate="power value" tDevice="sd" name="Display 1"
            red="1.0" green="0.0" blue="0.0" />
    <change tManipulate="power value" tDevice="sd" name="Display 2"
            red="0.0" green="1.0" blue="0.0" />
    <change tManipulate="set mask" maskFile="DisplayMask.bmp" />
  </define>

This define-section enables VC, geometric correction, and edge blending. Also, surface color correction, edge antialiasing, edge blur, autosave, and full initialization on startup are disabled for the "DC_Final" display compound. In addition, the performance parameters for display "Display 1" are set to all red and for display "Display 2" they are set to all green. Finally, the "DisplayMask.bmp" file is set as a mask for all displays combined in the "DC_Final" display compound.

3.26. action="Manipulate" type="Calibration" subtype="Mask"

Type of the separate parameter block: MaskParam Available sections:

  <define name="SetMask" type="MaskParam" >
    <display tDevice="sd" name="D1 PROJECTOR (DPC7401)" />
    <param scaleRed="100" scaleGreen="100" scaleBlue="100"
           scaleInverseRed="0" scaleInverseGreen="0" scaleInverseBlue="0"
           blackPt="0" gamma="0"
           bContentAligned="0"
           bAdjustColor="1" bUseInverseColor="0" bUseAlternativeGamma="0"
           bClampColor="1" maskFile="mask.bmp"
    />
  </define>

3.27. action="Manipulate" type="Calibration" subtype="Blacklevel"

Type of the separate parameter block: BlacklevelParam BlacklevelParam is used to manipulate the black-level correction texture, which is used to uplift pixels to match the overlap of black. outColor = MAX( uplift, ( color + uplift * maintainBlack ) * ( 1 - maintainBlack * maintainWhite ) ) Available sections:

  <define name="SetBlacklevel" type="BlacklevelParam" >
    <display tDevice="dc" name="DC_Final" />
    <param value="20" maintainDark="0" maintainBright="0"
    />
  </define>

3.28. action="Manipulate" type="Projectmanager"

Type of the separate parameter block: ProjectManager Multiple operations can be specified successively. Available sections:

  <define name="Start_Designer" type="ProjectManager" >
    <operation tOperation="start design"/>
  </define>

Starts the project designer.

  <define name="Start_Designer"type="ProjectManager" >
    <operation tOperation="start activate" bQueued="1" />
  </define>

Explicitly starts the "activate" step. If the project manager is executing an operation, the operation will be executed right after.

3.29. action="Manipulate" type="NativeWB"

Type of the separate parameter block: NativeWB Multiple operations can be specified successively. The operations will be applied on displays, that were exported and addressed by <source> formerly. Available sections:

  <define name="SetWarp"type="NativeWB" >
    <source tSource="GUI" />
    <operation tOperation="apply" tDevice="dc" name="screen0"
               tDestination="local" tmOutAccess="10000" tmWait="3000">
      <standard fFeature="warp,blend" qTesselate="50"
                corrOverlapX="0" corrOverlapY="0"/>
      <param strOSDispID="\\.\DISPLAY2" hwDisplayID="2147881095"
             fFeature="warp,blend" qTesselate="100"
             corrOverlapX="0" corrOverlapY="0"/>
    </operation>
</define>

Sets the warp/blend feature for all local displays addressed in display compound "screen0", exported by the user via UI. A tessellation width of 100 pixels is used for displays with the OS display ID "\\.\DISPLAY2". For all others, a tessellation width of 50 pixels.

  <define name="ClearAll"type="NativeWB" >
    <source tSource="GUI" />
    <operation tOperation="Clear Overlap" tDevice="dc" name="screen0"
               tDestination="local" tmOutAccess="10000" tmWait="3000">
      <standard fFeature=""/>
    </operation>
    <operation tOperation="Clear" tDevice="dc" name="screen0"
               tDestination="local" tmOutAccess="10000" tmWait="3000">
      <standard fFeature="warp, blend"/>
    </operation>
</define>

Deletes the warp/blend feature and the set overlap of all local displays addressed in display compound "screen0", exported by the user via UI.

3.30. action="Manipulate" type="GUI"

Type of the separate parameter block: GUI Available sections:

  <define name="Enable_Activate" type="GUI" >
    <element tSector="presentation" tIdent="type" id="activate button"
             behaviour="RP0"/>
    <param tRequest="enable window" bEnable="1" fSemantic="active"/>
</define>

Activates the "Activate" button of presenter line "RP0" (by activating the "active" state)

  <define name="Enable_Playlist"type="GUI" >
    <element tSector="presentation" tIdent="type" id="playlist button"
             behaviour="RP0"/>
    <param tRequest="enable window" bEnable="1" fSemantic="active, inactive"/>
</define>

Activates the "Playlist" button of presenter line "RP0" (by activating the "active" and "inactive" state, so the state of the presenter line decides whether the button is active)

  <define name="Disable_Playlist"type="GUI" >
    <element tSector="presentation" tIdent="type" id="playlist button"
             behaviour="RP0"/>
    <param tRequest="enable window" bEnable="0" fSemantic="active, inactive"/>
</define>

Deactivates the "Playlist" button of presenter line "RP0" (by deactivating the "active" and "inactive" state, so the button is always inactive, regardless of the state of the presenter line)

  <define name="Disable_Playlist"type="GUI" >
  <element tSector="main" tIdent="type" id="wait dialog"/>
  <param tRequest="create client window"/>
</define>

Creates a waiting dialog (dialog with progress bar)

3.31. action="Send" type="TCP" subtype="Command"

Type of the separate parameter block: NetCommand Available sections:

  <define name="test" type="NetCommand" >
    <target core="192.168.2.20" iPort="8080" />
    <param command="control.htm?present=1" tmOut="4000" />
  </define>

Sends a simple (String) command.

  <define name="test" type="NetCommand" >
    <target core="192.168.2.20" iPort="8080" />
    <param command="GET /control.htm?present=1 HTTP/1.1%0D%0A%0D%0A"
           tmOut="4000" />
  </define>
or
  <define name="test" type="NetCommand" >
    <target core="192.168.2.20" iPort="8080" />
    <param command="/control.htm?present=1" tmOut="4000" tFormat="HTTP_GET" />
  </define>

Sends the same command as an HTTP request.

3.32. action="Send" type="TCP" subtype="File"

Type of the separate parameter block: NetCommand Available sections:

  <define name="test" type="NetCommand" >
    <target core="192.168.2.20" iPort="8080" />
    <param source="datei.png" target="new.png" tFile="content" tmOut="4000" />
  </define>

3.33. action="IPC" type="Common"

Type of the separate parameter block: Common Multiple <perform> sections can be specified. Available sections:

  <define name="test" type="Common" >
    <perform tAction="finish" tTask="guided" iError="1" />
  </define>

3.34. action="Condition"

Type of the separate parameter block: Condition Multiple <option> sections can be specified. Available sections:

  <define name="ConditionData" type="condition" >

    <maker tMaker="GUI" />

    <param tCondition="user confirm" desc="blabla" />

    <option tOption="yes" tAction="continue" />
    <option tOption="no" tAction="abort" />
  </define>

This define block specifies that the user must decide whether the currently running script should be resumed or aborted via the GUI.

  <define name="ConditionData" type="condition" >

    <maker tMaker="core" />

    <param tCondition="task condition" desc="" />

    <option tOption="yes" tAction="abort" extCmd="informUser" />
    <option tOption="no" tAction="continue" />
    <option tOption="error" tAction="abort" extCmd="informUser" />

    <conditions bAll="0" >
      <condition tCondition="calibnotexist" tDevice="dc" name="screen0" />
    </conditions>
  </define>

This define block specifies that the script will only resume being processed if the display compound named "screen0" exists. If the specified calibration does not exist or an error occurred, the user will be informed that the script will not be executed further.

  <define name="ConditionData" type="condition" >

    <maker tMaker="network" />

    <param tCondition="task condition" desc="" />

    <option tOption="yes" tAction="continue" />
    <option tOption="no" tAction="abort" extCmd="informUser" />
    <option tOption="error" tAction="abort" extCmd="informUser" />

    <conditions bAll="0" >
      <condition tCondition="picturall_calibration_start"
                 tSource="send_command">
        <target core="192.168.2.20" iPort="80" />
      </condition>
    </conditions>

  </define>

This define block specifies that the script will only resume being processed if the specified Picturall server has been switched to VIOSO calibration mode. The network command required for this is sent directly when the condition is evaluated. If the Picturall server could not be switched to VIOSO calibration mode, the user will be informed.

3.35. action="Wait"

Type of the separate parameter block: Condition Multiple <option> sections can be specified (see 3.34.). Currently available for state="finished".

  <task action="wait" name="Export0" state="finished" use="Export0Finished" />
  <define name="Export0Finished" type="condition" >
    <option tOption="error" tAction="abort" extCmd="informUser" />
  </define>
or
  <task action="wait" name="Export0" state="finished" >
    <option tOption="error" tAction="abort" extCmd="informUser" />
  </task>

This define block specifies that script processing should be aborted and the user informed if the specified behavior (Export0) ended in error.

4. additional configuration files

4.1.selector-parameter list

With a selector parameter list, a list of parameters can be defined, which can be selected/called upon via a selector. A parameter is defined by a <element> section, summarized by a higher-level <list> section.

Example:

<?xml version="1.0"?>
<VIOSO>
  <list>
    <element selector="2.5" seltype="float" value="c1.sps" valtype="string" />
    <element selector="3" seltype="float" value="c2.sps" valtype="string" />
  </list>
</VIOSO>

The selector parameter list contains two entries. Each parameter defines a string (filename here) and can be selected using a floating point number.

Last updated