DISE Parser Modifiers

From DISE KnowledgeBase

Jump to: navigation, search

Contents

Overview

ParserModifiers.png

Below you will find desciptions of all modifiers available in DISE Parser. Most modifiers will take input (from the parent modifier) and based on its settings process and output the result, for its child modifiers to use. Some will just yield output and some will just take input (this will be indicated in its entry below). There are also modifiers that do certain commands based on XML tags that has been added to the input earlier. When this happens, the modifier will have as a side effect to process the "command" tags and its result is the input data with the tags stripped out.

General

Command modifier

Will process the input data looking for some supported command tags. The command modifier can be used to:

  • Copy files
  • Download files
  • Remove files
  • Delay (wait) for a number of seconds.
  • Replace <br> tags in the input.

Input tags

CopyFile / Copy

Copy a file from one location to another
Parameters
src
Filename of the source file
dst
Filename of the destination file
srcprefix
Will prefix the source file
dstprefix
Will prefix the destination file
overwrite
Skip copying if the file already exists. (0 for false and 1 for true.)

Lightbulb.png Note: If the file content of the source file is the same as in the destination file, then the file will not be replaced.

Example.png Example:

<CopyFile srcprefix="C:\Data\" src="file1.jpg" dstprefix="C:\Content\" 
          dst="newsimage1.jpg" overwrite="0">

DownloadFile / Download

Download a file from an URL
Parameters
src
URL of the source
dst
Filename of the destination file
srcprefix
Will prefix the source URL
dstprefix
Will prefix the destination file

Lightbulb.png Note: If the content of the source URL is the same as in the destination file, then the file will not be replaced.

Example.png Example:

<Download srcprefix="http://news.source.com/getnewsimage.php?newsid=" 
              src="1" dstprefix="C:\Content\" dst="newsimage1.jpg">

RemoveFile / Remove / Delete

Remove a specified file
Parameters
target
Filename of the file to remove

Example.png Example:

<Delete target="C:\Data\oldimage.jpg">

Delay

Wait for a number of seconds
Parameters
ms
Number of milliseconds to wait

Example.png Example:

<Delay ms=500>

List

List files in folder
Parameters
target
The directory to list files in.

Example.png Example:

<List/>

Move

Move file from one directory to another
Parameters
src
Filename of the source file
dst
Filename of the destination file
srcprefix
Will prefix the source file
dstprefix
Will prefix the destination file
overwrite
Whether to overwrite existing files (0 for false and 1 for true)

Example.png Example:

<Move src="C:\DISEContent\Content\Flickr\Image1.jpg" dst="C:\DISEContent\Content\Header.jpg" overwrite="1"/>

Exists

Evaluates to true if file exists
Parameters
target
The file to check.

Example.png Example:

<Exists target="C:\DISEContent\Data\Facebook\feed.txt"><udp-multicast action="send" data="facebook-feed"/></Exists>

CreateFolder

Creates a new folder
Parameters
target
The path and name of the new folder.

Example.png Example:

<CreateFolder target="D:\Images\Flickr"/>

Output

The input text without the processed tags.

Settings

Commandsettings.png

Replace <br /> tags with

Specify if <br /> tags in the input data should be replaced and what it should be replaced with.

Execute file modifier

Run a executable file or batch script with or without parameters.

Input tags

None.

Output

If Output process text is checked in the settings, the text produced by the executable is outputted, else unchanged.

Settings

DPFileExecuteModifier.png

Filename

The file to execute

Parameters

The parameters to pass to the executable file

Check exit code

If the exit code is checked then the modifer will fail of the exit code is not a success.

Output process text

Will catch the output (stdout) and use as the output of this modifier

Output process errors

Will catch the errors (stderr) and use as the output of this modifier

Log process text

Will catch the output (stdout) and display it in the parser log

Log process errors

Will catch the errors (stderr) and display it in the parser log

File read/write modifier

Use a text file for input or output. Support for UTF-8 and most code pages.

Input tags

ChangeOutputFile

Change the file used as output, enables writing to several different files with one modifier. Also enables you to set the output file dynamically.
Parameters:
dst
The output filename to use for all text after this command.

Example.png Example:

<ChangeOutputFile dst="New_output_file.txt">

Output

File write: None. File read: The contents of the file.

Settings

FileReadWriteSerttings.png

Mode

Select if the modifier should read from or write to the specified file.

Filename

Filename to use.

Code page

Code page used for writing the text, if you have unicode text you will need to use UTF-8 or the code page used in your region to be able to save the text correctly.

Only update if content is different

Will check if the content is different before writing the file, prevents file date and time being updated without any content changes.

Remove whitespace from beginning/end of text

Will remove whitespace (space, tab, row break) from the beginning and end of the text (both when on read and write).

Monitor input file for changes

Will only read the file if a change is detected. This only works if this modifier is used as the first node in a tree. If no change is detected it will not continue processing the rest of the modifiers in the tree.

Keyboard modifier

Listens to keyboard events, allowing DISE Parser to react to user-triggered events, similar to DISE Keyboard Control.

Input tags

None.

Output

Example.png Example:

<Keyboard>
  <Key Code="49">stop</Key>
</Keyboard>

Settings

DISEKeyboardControl2KeyboardSettings.png

Key list

List of key listeners and their associated messages.

Add/Edit

Add/edit a key listener by opening the Edit key dialog.

Remove

Remove the selected key listener.
Edit key dialog

DISEKeyboardControl2EditKey.png

Key

Focus the press key field and press the key to use.

Key code

Manually enter the key code.

Select

Select from a drop-down list of keys made available by Windows.

Associated data

What network message to send on key presses.

ODBC modifier

Fetch data from a database or other ODBC source. Should work with all ODBC compatible data sources, but has been tested successfully with:

Lightbulb.png Note: Make sure you have the ODBC drivers installed on the machine for the source you are attempting to connect to.

Lightbulb.png Note: If you are using 64-bit windows, since DISE Parser is a 32-bit application you will need to run the 32-bit ODBC administration to setup a DSN, located at C:\Windows\SysWOW64\odbcad32.exe.

Lightbulb.png Note: Running DISE Parser as a service requires the DSN be setup as a System DSN, not User DSN.

Input tags

None.

Output

Example.png Example:

<ODBC>
  <Row>
    <Column1>Data of column 1</Column1>
    <Column2>Data of column 2</Column2>
    ...
  </Row>
  ...
</ODBC>

Settings

ODBCsettings.png

Connection string

The DSN string used to do the connection, click on Edit to change the setup of the connection or to create a new one.

Excrypt connection string

Some DSN strings might contain password and other sensitive data, checking this option will encrypt the string when saving to disk and it will not be visible in the ODBC settings dialog. Remember however that the string will be decrypted when you click Edit and the setup dialog might display your password depending on database type.

Statement

The SQL query to send to the database.

Use name of column in output

If checked the output will contain the names of the columns instead of Column1,Column2,etc.

Script modifier

Use the Windows Script Host to execute scripts.

Can execute VBScript (Visual Basic Script) or Java Script natively, but addons for Perl, Python, PHP and many other languages exist. Supports both input and output data from the scripts, that means that you can put all the data processing in a simple Java Script.

A script to enable fetching of data from SOAP is included in the installation, read more in the SOAP Example.

Input tags

None.

Output

The result of the script run (see How to write a script below).

Settings

ScriptSettings.png

Filename

The file containing the script to execute.

How to write a script

Here is a very simple script showing the use of the different functions that exists in the script modifier host. The script will cancel if there are no data in the input, and otherwise it will add two XML tags that then can be handled in modifiers that exist later in the tree.

The #pragma in the beginning is also important, as it will setup what scripting language that the file contains.

The script modifer host (DPModifier) contains the following functions:

Log(string logString)

Log the following text to the parser output.

string GetInput()

Get the input for this modifier

SetOutput(string outputText)

Set the output for this modifier

CancelProcessing()

Will cancel processing of modifiers in this tree when the script returns, anything set by the SetOuput function will not be used.

Sleep(int ms)

Sleep for the specified amount of milliseconds.


Example.png Example:

#pragma language JScript
 
function DoSomething()
{
  var input;
  var output;
 
  input = DPModifier.GetInput();
  if (input=="")
  {
    DPModifier.Log("Script: No input"); 
    DPModifier.CancelProcessing();
  }
  else
  {
    output = "<udp-multicast action=\"send\" data=\"";
    output += input;
    output += "\">";
    output += "<delay ms=\"5000\">";
    DPModifier.SetOutput(output);
}
 
DoSomething();

It is also possible to include other script files using #include "file.js" anywhere in the file (included files need to be in the same scripting language as the main one).

Serial port (RS232) modifier

Receive data from the serial (RS232) port. The serial port will be monitored and if used as the root modifier in a tree it will not allow further processing unless data has been received. This means that you can set the run interval of the modifier tree to a low value and then get a very quick response time.

Input tags

None.

Output

Example.png Example:

<Serial Text="This is your modem speaking">

Example.png Example:

<Serial Hex="5468697320697320796f7572206d6f64656d20737065616b696e67">

Settings

DPSerialModifier.png

Serial port and settings

The serial port and its configuration to use to communicate.

Receive data

Read data from the serial port. The run interval of the modifier determines how often the serial port will be scanned for data.

Only open port (for use in script)

Do not read data immediately but instead lets you contact the serial port in child script modifiers.

Get data in Hex format

Specifies that the return data will use hex output instead of normal string data, this is useful if the data contains binary information.

Get data in XML format

Specifies that the return data will be wrapped in an XML tag.

Set RTS state on init

Set the RTS (Request To Send) pin on the RS232 port when starting the modifier.

Set DTR state on init

Set the DTR (Data Terminal Ready) pin on the RS232 port when starting the modifier.

Text process modifier

Remove XML tags and invalid characters, sort your data and process entities.

Input tags

None.

Output

The input data with the conversions and changes specified in the settings.

Settings

TextProcess.png

Entities

Specify how entities should be dealt with
Make entities XML compatible
Convert all incorrectly specified "&" characters to "&". This will ignore all characters inside a CDATA area
Process entities
Reverse the process above, convert all entities to unicode characters.

Remove XML Tags

Will remove all XML tags in the input data.

Remove invalid characters

Will remove all characters in the input data that has the value between (and including) 14 and 31. These characters are normally not visible and are used as control characters, seems that some apple text editors can add these characters.

Remove duplicate lines.

Will remove all duplicate lines, and just leave one copy.

Sort lines

All lines in the input will be sorted in the way specified.

Case sensitive

Specify if sort and duplicate removal will be case sensitive.

Parse macros

Will detect and convert text macros in the input.

Text modifier

Lets you directly specify a chunk of text to send to the next modifier.

Input tags

None.

Output

The specified text.

Settings

TextSettings.png

Parse macros

Will detect and convert text macros in the text.

Insert macro

Lets you insert a text macro in the text.

XSL modifier

Uses XSL (eXtensible Stylesheet Language) to process XML data into XML or text output.

Info.png Read more: XSLT Tutorial

Scripts for parsing ODBC modifier database output (example here), RSS Feeds (example here), yr.no weather and serial port data are included with the installation.

It is possible to do a lot of things from an XSL script, for example run Java- or VBscript. See the RSS xsl for an example of this.

Input tags

None.

Output

The input data, transformed according to the specified XSL file.

Settings

XSL settings.png

Filename

Filename of the XSL script

Hardware sensors

AOpen modifier

Uses the AOpen Hardware Monitor to collect data from the hardware, only works for AOpen motherboards with Hardware Monitor support.

Input tags

None.

Output

Example.png Example:

<AOpen>
  <FanSpeed1 Unit="RPM">4350</FanSpeed1>
  <FanSpeed2 Unit="RPM">2032</FanSpeed2>
  <FanSpeed3 Unit="RPM">550</FanSpeed3>
  <Temperature1 Unit="C">45</Temperature1>
  <Temperature2 Unit="C">49</Temperature2>
  <Temperature3 Unit="C">32</Temperature3>
</AOpen>

Settings

None.

Core temp modifier

Handles output from the Core Temp software.

Input tags

None.

Output

Example.png Example:

<CoreTemp>
  <CPUName>Mobile Intel Core 2 Duo T6600 (Penryn-3M)</CPUName>
  <CPUSpeed Unit="MHz">1196.95</CPUSpeed>
  <CPUVID Unit="v">0.92</CPUVID>
  <PhysicalCPUs>1</PhysicalCPUs>
  <CoresCPU>2</CoresCPU>
  <CPU>
    <TjMax Unit="C">90</TjMax>
    <Core>
      <Temp Unit="C">50</Temp>
      <Load Unit="%">17</Load>
    </Core>
    <Core>
      <Temp Unit="C">50</Temp>
      <Load Unit="%">18</Load>
    </Core>
  </CPU>
</CoreTemp>

Settings

None.

IBase modifier

Uses the IBase Sensor SDK (v2.33) to collect data from the hardware. The modifier only works for IBase motherboards with Hardware Monitor support. Using the IBase WDT/DIO SDK (v2.1.11) you can also get some system info and utilize the built in watch dog.

Input tags

IBase

Parameters
action
Can be stats, watchdog or sysinfo.
count
When the action is Watchdog, this is the amount of seconds/minutes needed between each watchdog call. Default is 5.

Example.png Example:

<IBase action="stats" /> 
<IBase action="watchdog" count=5 />
<IBase action="sysinfo" />

Output

Based on the input tags, the output will contain the response from the hardware sensor:

Example.png Example:

<IBase>
  <SensorChip>Winbond 83782D</SensorChip>
  <VoltageCore Unit="V">12</VoltageCore>
  <VoltageIo Unit="V">5</VoltageIo>
  <Voltage5Positive Unit="V">+5</Voltage5Positive>
  <Voltage12Positive Unit="V">+12</Voltage12Positive>
  <Voltage5Negative Unit="V">-5</Voltage5Negative>
  <Voltage12Negative Unit="V">-12</Voltage12Negative>
  <Fan1 Unit="RPM">4350</Fan1>
  <Fan2 Unit="RPM">2032</Fan2>
  <SystemTemperature Unit="C">45</SystemTemperature>
  <CpuTemperature Unit="C">57</CpuTemperature>
</IBase>

Example.png Example:

<IBase>
  <Info>Chipset information</Info>
</IBase>

Settings

None.

Network

Exchange Web Services modifier

Input tags

exchange

Parameters
action
Valid values: calendar
mailbox
What mailbox to use, may be a different one than the one used to connect with.
fromdatetime
Will only fetch calendar items after the given time and date. The format of the date is YYYY-MM-DDTHH:mm:ss.
todatetime
Will only fetch calendar items up to the given time and date.

Example.png Example:

<exchange action="calendar" mailbox="per@klocktornet.onmicrosoft.com"/>

Output

Settings

ExchangeWebServicesSettings.png

File transfer modifier

Download and upload files using several different protocols. Supported protocols:

  • FTP
  • FTPS
  • HTTP
  • HTTPS
  • SFTP
  • SCP

Input tags

FileTransfer

Parameters
alias
If the alias is set it will only be accepted with File Transfer modifiers that has that alias in the settings.
action
Can be upload, download or list.
  • Upload a file based on src and dst, where src is a local file and dst is a URI beginning with "ftp://", "http://" or similar.
  • Download a file based on src and dst, where src is a URI beginning with "ftp://", "http://" or similar and dst is a local file.
  • List files in the directory specified by src, output is in XML like below:
src
The source file or URI
dst
The destination file or URI
short
If set to "true" then only directories will be listed.

Example.png Example:

<FileTransfer action="upload" src="C:\Files\Test.mp3" dst="ftp://10.1.23.10/Test.mp3" /> 
<FileTransfer action="download" src="ftp://10.1.23.10/Test.mp3" dst="C:\Files\Test2.mp3" />
<FileTransfer action="list" src="ftp://10.1.23.10/" />

Output

Listing files will have the following XML output:

Example.png Example:

<Files>
  <Dir Name="ADirectory" Size="0" Date="2009-08-10 11:11:11">
  <File Name="TheFile.txt" Size="1234" Date="2009-10-25 13:37:47">
</Files>

Else, the output is always the input with the file transfer tags stripped out.

Settings

EditFileTransfer.png

Alias

Used with the XML tags above so that you can use more than one File Transfer modifier at the same time. So if you write "upload" here, and then set alias="upload" as a parameter on the XML tag used this modifier will do the work.

Set username/password

Specify username and password to be used, you do not have to specify anything if you are running anonymous FTP or HTTP connections.

Create missing directories

Create the directory if it does not exist.

Set timeout values

Specify time out values. In seconds.

Use file upload database

When using a file upload database, uploaded files will be checked against a database containing the file size, modification date and time and MD5 checksum. If a file exists in the database and the values in the database is the same as the file it will not be uploaded. After a file has been uploaded it will be added to the database.

HTTP get modifier

Downloads files from HTTP or HTTPS sources.

Input tags

http

Parameters:
action
What HTTP verb to use for the request (GET or POST)
url
Where to send the request
parameters
Additional parameters to send with the request. The parameters are separated with a & character.

Example.png Example:

<http action="POST" url="http://devserver/form.php" parameters="category=document&type=spreadsheet" />

Output

The result of the HTTP request.

Settings

Http Settings.png

URL

The URL to request.

Force use of the following codepage

Specifies that the request will use a certain codepage.

Info.png Read more: Code page - wikipedia.org

Use user authentication

If the web server requires user authentication by username & password, enter them here.

Use proxy

Specifies the address of a proxy server for requests, with optional username & password.

Ping (ICMP) modifier

Send an ICMP ping to a server.

Input tags

None.

Output

Unchanged.

Settings

None.

Lync modifier

Info.png Read more: Lync - microsoft.com

Input tags

Output

Settings

Network time (SNTP) modifier

Sync the computer to atomic time from a SNTP (Simple Network Time Protocol) server.

Input tags

None.

Output

Unchanged.

Settings

DPSNTPModifer.png

Time server

The SNTP server to use, see http://ntp.org/ for more servers

Timeout (ms)

The timeout in milliseconds

Send mail modifier

Send e-mails. If you specify the e-mail addresses in the settings dialog everything in the input to this modifier will be sent as an e-mail using those settings.

Otherwise you can leave those settings empty, and use an XML tag (as below) to send customized e-mails.

When specifying the e-mail in the settings dialog, it will always use "DISEParser" as the subject.

Input tags

SendMail

Parameters
to
The recipient of the e-mail sent.
from
The e-mail address to show as the sender of the e-mail.
server'
The server to send the e-mail with.
port
The port on the SMTP server.
subject
Subject of the e-mail.

Example.png Example:

<SendMail to="support@displayevolution.com" from="admin@happygoluckytoys.com" server="smtpserver.local" 
          port="25" subject="DISEParser">
Hi there,
Here is an e-mail informing about the update.
Regards, DISE Parser.
</SendMail>

Output

None.

Settings

Send Mail Settings.png

To address

The recipient of the e-mail sent.

From address

The e-mail address to show as the sender of the e-mail.

SMTP server

The server to send the e-mail with.

SMTP port

The port on the SMTP server.

Social media modifier

Authenticates with and fetches information from social media services. The modifier generally requires you to login with a valid service account.

Tutorial.png Tutorial: Social media examples

Input tags

None.

Output

A JSON or XML representation of the result set coming from the Social Media service. In order to parse data, consider using a Script modifier (for JSON) or XSL modifier (for XML).

Settings

SocialMediaSettings.png

URL

The resource in the social media service to access:
  • Facebook

Info.png Read more: Graph API - Facebook Developers

  • Twitter

Info.png Read more: Twitter Developers

  • Flickr
  • Photobucket

Service type

The social media service.

Account

The account to use to authenticate to the social media service.

TCP/UDP Socket modifier

Receives or sends data on UDP or TCP. Can be used to send data to DISE that that will control scheduling, data connections, sync, and so on.

Lightbulb.png Note: The modifier listens for connections on all active network cards.

Input tags

None.

Output

In receiving XML mode:

Example.png Example:

<UDP Received="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque arcu." ReceivedBase64="TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4g
UXVpc3F1ZSBhcmN1Lg==">

Else, in receiving mode the output will be the text data received on the socket.

Settings

DPSocketModifier.png

Host & Port

The Host and Port to connect to.

TCP / UDP

The protocol that should be used.

Send data

The data to be sent would be specified in the Send data box.
If only send mode is selected, the the modifier will listen on the specified port for incoming data and if used as the root modifier in a tree it will not allow further processing unless data has been received. This means that you can set the run interval of the modifier tree to a low value and then get a very quick response time.

Receive data

Connect to the host and wait for data to arrive, if combined with the send data option data will be sent first and then the modifier will wait for data to arrive.

Receive as XML

Received data will be presented as XML, otherwise the data will just be assigned as the output of this modifier.

Add Base64 encoded data to XML

Instead of just adding the received data as text to the XML, we can also get it as Base64 encoded data.

Keep connection open

The connection will be kept open from the first time the modifier runs until the end (or until it is disconnected). This option is recommended if we will wait for long times between receiving data.

UDP Multicast modifier

Receives or sends data on UDP Multicast. May be used to receive data from DISE players, or to control scheduling, data connections, sync, and so on.

Input tags

udp-multicast

Parameters
action
What to do (send or receive)
data
The text to send out via multicast

Example.png Example:

<udp-multicast action="send" data="hello world"/>

Output

In receiving mode:

Example.png Example:

<UdpData>
  <Message>
    <Base64Text>TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4g
UXVpc3F1ZSBhcmN1Lg==</Base64Text>
    <Text>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque arcu.</Text>
  </Message>
</UdpData>

Settings

UDPMulticastSettings.png

Multicast address & Port

The multicast IP and Port to broadcast on.

Send data

When in sending mode the modifier will send the input data using multicast udp.

Receive data

When in reviewing mode the modifier will receive data from the multicast udp and output that as XML.

Prefix data

Used when in Send mode, will send this data before the input data, can include an header or similar.

Add DISE remote control header

Will add a DISE remote control header. Ex. "20091123160052|" before the data.

Add Base64 encoded data to XML

Instead of just adding the received data as text to the XML, we can also get it as Base64 encoded data.

Only parse tags

Will only send out information enclosed in tags.

XMPP - Messaging modifier

Input tags

Output

Settings

XMPPSettings.png

Special

Buttons modifier

Renders a window with buttons for the user to click on, allowing DISE Parser to react to user-triggered events.

Input tags

None.

Output

Example.png Example:

<Buttons>
  <Button>start</Button>
</Buttons>

Settings

DISEKeyboardControl2ButtonSettings.png

Button list

List of button listeners and their associated messages.

Add/Edit

Add/edit a button listener by opening the Edit button dialog.

Remove

Remove the selected button listener.

Move up/down

Move the selected button listener up/down in the list (the top button will be rendered to the top left of the main window).
Edit button dialog

DISEKeyboardControl2EditButton.png

Caption

The button's text.

Associated data

What network message to send on button clicks.

Compression (Zip) modifier

Handles compressed files. Currently supports extracting and listing the content of ZIP files.

Input tags

Compression

Parameters
action
Can be open, extract or list
  • Open will just open the file you specify in the parameter file.
  • Extract will use the src, dst and setdate paramters.
  • List will just output a list of all files in the ZIP file into the output of the modifier
type
"zip" is currently the only supported type
file
For the open action you can specify a filename in the file parameter. Then that file will be used for all following extract tags until you pass a </Compression> tag. You can also specify a filename in each extract action and the you do not need to open or close.
src
A file or file mask of what file that should be extracted from the zip file.
dst
A file or directory where to extract file file(s) to.
setdate
To be used with extract, specify the date and time as: "YYYY-MM-DD HH:MM:SS".

Example.png Example:

<Compression action="open" type="zip" file="thezipfile.zip"> 
<Compression action="extract" type="zip" src="afile.txt" dst="T:\ZipTest\File.txt">
<Compression action="extract" type="zip" src="Subfolder/afile.txt" dst="T:\ZipTest\File.txt">
<Compression action="extract" type="zip" src="*.png" dst="T:\ZipTest\">
<Compression action="extract" type="zip" src="*" dst="T:\ZipTest\">
<Compression action="list" type="zip">
</Compression>

Example.png Example:

<Compression action="extract" type="zip" file="thezipfile.zip" src="afile.txt" dst="T:\ZipTest\File.txt">

Output

List will output the following XML:

Example.png Example:

<Files>
  <File Name="thefile.txt" Size=123 CompressedSize=12 Compression="Zip">
  <File Name="afile.txt" Size=52546 CompressedSize=3234 Compression="Zip">
</Files>

Else, the output will be the input text with the compression tags stripped out.

Settings

None.

Garmin GPS modifier

Retrieves data from a Garmin GPS Module that supports the Garmin Proprietary Format (Tested example is Garmin GPS18X USB). The version of Garmin Driver this modifier supports is version 2.3.1, according to Garmin Device Interface Specification (Drawing Number: 001-00063-00 Rev. C on May 19, 2006). To use,

  1. Install Garmin USB Drivers.
  2. Plug in a Garmin GPS Module that supports the Garmin Proprietary Format.

Tutorial.png Tutorial: Location based content (POI triggering)

Input tags

If the Distance to input points option is checked in the settings (see below) the input points are specified as XML wrapped in <Garmin> and <points> tags:

point (repeatable)

name
identifier of a certain point (will be copied to the output point node)
lat
latitude of the point
long
longitude of the point

Example.png Example:

<Garmin>
   <points>
      <point>
         <name>DISE HQ</name>
         <lat>59.383376</lat>
         <long>13.512475</long>
      </point>
   </points>
</Garmin>

Output

Output is wrapped in a <Garmin> tag. Depending on which requests have been selected in the settings, each tag in the output below corresponds to a request.

pos

Response to: Position Data
lat
The actual position, in Latitude (degrees)
long
Longitude (degrees)
alt
Altitude (meters)

Example.png Example output:

<Garmin>
   <pos>
      <lat></lat>
      <long></long>
      <alt></alt>
   </pos>
</Garmin>

points

Response to: Distance from Input
point (repeatable)
Corresponds to a point input tag.
name
The name given.
dist
The distance (meters) to the point.

Example.png Example output:

<Garmin>
   <points>
      <point>
         <name></name>
         <dist></dist>
      </point>
   </points>
</Garmin>

velo2D

Response to: Velocity Data (2D)
magn
horizontal velocity (km/h)
angle
horizontal angle due north (degrees)

Example.png Example output:

<Garmin>
   <velo2D>
      <magn></magn>
      <angle></angle>
   </velo2D>
</Garmin>

velo3Dcomp

Response to: Velocity Data (3D Components)
north
velocity due north (km/h)
east
velocity due east (km/h)
asc
ascending velocity (km/h)

Example.png Example output:

<Garmin>
   <velo3Dcomp>
      <north></north>
      <east></east>
      <asc></asc>
   </velo3Dcomp>
</Garmin>

error

Response to: Position Error
combined
Estimated Position Error (EPE), 2 sigma (meters)
horizontal
EPE in horizontal direction (meters)
vertical
EPE in vertical direction (meters)

Example.png Example output:

<Garmin>
   <error>
      <combined></combined>
      <horizontal></horizontal>
      <vertical></vertical>
   </error>
</Garmin>

posfix

Response to: Position Fix

Example.png Example output:

<Garmin>
   <posfix>3D</posfix>
</Garmin>

lastupdate

Response to: Date and Time of updating.

Example.png Example output:

<Garmin>
   <lastupdate>02/08/2012 14:10:30</lastupdate>
</Garmin>

Example.png Example aggregate output:

<Garmin>
   <pos>
      <lat>59.383376</lat>
      <long>13.512475</long>
      <alt>54</alt>
   </pos>
   <points>
      <point>
         <name>McDonalds</name>
         <dist>1508.11236</dist>
      </point>
      <point>
         <name>Burger King</name>
         <dist>2015.26885</dist>
      </point>
   </points>
   <velo2D>
      <magn>0.0000</magn>
      <angle>0.000</angle>
   </velo2D>
</Garmin>

Settings

GarminSettings.png

Outputs

Position data
Request the geoposition of the device.
Distance from input points
Request the distance to the points specified in the input tags.
Velocity data (2D)
Request the current speed and direction of the device.
Velocity data (3D components)
Request the current speed of the device in 3 dimensions.
Position error
Request the error margin of the GPS signal.
Position Fix
Method used by the GPS module to fix the position.
Date and Time of updating
Time stamp from local computer when the update was made. Format: dd/MM/yyyy hh:mm:ss

Intel AIM Suite modifier

Integrates the AIM Suite with DISE Parser. Intel AIM Suite is an Audience measurement program supporting Face recognition, and is able to distinguish the audiences’ gender and age group. The version of AIM Suite this modifier supports is version 1.0.14.0, according to socket Intel AIM Socket API documentation rev 1.2 from June 2012. To use,

  1. Install and start Intel AIM Suite.
  2. In the AIM Suite interface, go to AIM->Manage Instances
  3. In the license column, click the ... button and enter a valid license.
  4. Go to AIM > Configure AIM Suite
  5. Make sure that API Server is enabled, and the port number entered is valid (12500 by default)
  6. Please refer to official Intel website for optimal setup.

Lightbulb.png Note: According to Intel documentation, the optimal number of commands sent per second is not more than 4 commands per second, in other words, the modifier's running interval should be at least 250 milliseconds.

Input tags

Input requests to the modifier follow the schema "<AIMSuite><command>[string]</command></AIMSuite>" where the node "command" indicates actions that the modifier should do. Supported commands are listed below:

getAudienceCount

Requests the number of viewers recognized by the AIM Suite.

getAudienceDetails

Requests the count of the viewers, and details of each viewer.

getViewerEvents

Under this command mode, AIM Suite will send a new message whenever a viewer starts/stops viewing the screen, or a significant visual change occurs, such as a viewer changing directions.

getAll

Requests audience details and the processed result of the details (majority gender and majority age group) at the same time.

Example.png Example:

<AIMSuite>
   <command>getAudienceDetails</command>
</AIMSuite>

Output

Output is wrapped in a <AIMSuite> tag. Depending on which request tags have been inputted, each tag in the output below corresponds to a request. audienceCount

The number of viewers.

Example.png Example:

<AIMSuite>
   <audienceCount>2</audienceCount>
</AIMSuite>

audienceDetails

Details about each detected viewer.
AIMViewer
id
a dedicated number ID.
gender
either "male", "female", or "unknown".
age
Age group of the viewer, which is always one of the followings: "unknown", "child" ( < 16), "teenager" (13 – 19, not available at the moment), "young adult" (16 - 34), "older adult" (35 – 64), or "senior" (>= 65).
ethnicity
not implemented, always "unknown".
direction
not implemented, always 0.
viewingTime
Number of milliseconds that the viewer has been facing the camera
dimension
(all values are normalized from 0 to 65535)
x
x-coordinate from the top left
y
y-coordinate from the top left
width
height

Example.png Example:

<AIMSuite>
   <audienceDetails>
      <AIMViewer>
         <id>1</id>
         <gender>male</gender>
         <age>young adult</age>
         <ethnicity>unknown</ethnicity>
         <direction>0</direction>
         <viewingTime>1450</viewingTime>
         <dimension>
            <x>6504</x>
            <y>32224</y>
            <width>6510</width>
            <height>7708</height>
         </dimension>
      </AIMViewer>
   </audienceDetails>
</AIMSuite>

Settings

AimSuiteSettings.png

Server and Port

Connection details to the computer hosting the AIM Suite API Server.

Q-Matic modifier

Interfaces with the Customer Flow Management (queue number) systems from Q-Matic.

Input tags

None.

Output

Example.png Example:

<QMatic>
  <Message>
    <TicketNumber>007</TicketNumber>
    <CashierNumber>01</CashierNumber>
    <ServiceType>1</ServiceType> 
  </Message>
</QMatic>

This XML data can the be easily processed into text using XSL, and then we can put it into a text file or send it directly to the player using UDP Multicast. Check out the QMatic.dpmodifiers sample and the QMatic.xsl / QMaticServiceType0.xsl file for more information.

Tutorial.png Tutorial: Setting up QMatic with DISE

Settings

QMaticsettings.png

Serial port and settings

The serial port and its configuration to use to communicate with the Q-Matic hardware.

Quividi Vidi Reports modifier

This modifier is a partial integration of the Quividi VidiReports with DISE Parser. Quividi VidiReports is an Audience measurement program supporting Face recognition, and is able to distinguish the audiences' gender and age group. The version of Quividi VidiReports this modifier supports is version 5.1.2, according to VidiReports Protocol Documentation rev 1.5. To run,

  1. Install and run VidiReports under Production mode.
  2. It will tell you that no valid license is available and generate a link file.
  3. Go to the install location and open the link called "link_to_vidireports_activation".
  4. Enter the license information there.
  5. Download the file and put the file in the same location as the link file.
  6. Go to Start > Quividi > VidiReports > Production > VidiReports (configuration).
  7. Remove commenting (# character at the beginning of the line) in the line enable_socket, make make sure the value of it is 1
  8. Change value default_event_mode to 2.
  9. If you want to change the port number, find tcp_listen_port and change the value of it to a valid port number.
  10. Save and run VidiReports again.

Input tags

Input requests to the modifier follow the schema "<Quividi><command>[string]</command></Quividi>" where the node "command" indicates actions that the modifier should do. Supported commands are listed below:

NullMode

The modifier will not receive any output from VidiReports.

Status

Requests the current status of the VidiReports Application.

FinalEventsMode

Requests messages received from VidiReports under final events mode:
  1. Watcher event indicating a watcher left the field of view of the camera.
  2. OTS measurement information sent at the end of an OTS measurement interval.

PeriodicEventMode

Returns messages received from VidiReports under Periodic Event Mode:
  1. Watcher information that is currently viewing the screen, updated periodically
  2. All types of messages received from Final Events Mode, indicated above.

MotionMode

Requests high frequency periodic updates on the position and distance of current watchers, and any changes about the selected watcher.

AggregateOnlyMode

Requests aggregated measurements.

Output

Output is wrapped in a <Quividi> tag. Depending on which request tags have been inputted, each tag in the output below corresponds to a request. QuividiStatus

Response to: Status
AppVersion
Unique ID indicating the version of the VidiReports.
Status
An integer indicating the status of VidiReports (0=Idle, 1=Processing, 2=Awaiting input, 3=Input lost, 4=Error, 5=Application terminating)
StartTime
Process start time.
WatchersCount
Number of watchers currently tracked.
TotalWatchersCount
Number of watchers since the launch of application.
InputLostCount
Number of times the input was lost since launch.
InputLostTime
Cumulative input lost duration in seconds.
ClientsCount
Number of clients currently connected to the application.
LastUpTime
Time of the last SOAP upload.
LastUpStatus
Status of the last SOAP upload (0=No upload, 1=Last upload succeeded, 2=Last upload failed on a network error, 3=Last upload was refused by the server, 4=Last upload failed)
LastUpEventsCount
Number of events uploaded during the last SOAP upload.
NextUpTime
Time of the next scheduled SOAP upload try.
BoxID
Box Identifier for SOAP upload.
AuthLevel
Current client authentication level (to be defined by Quividi)
EventMode
Current client event mode (please refer to inputs for description) (0=Null, 1=Final Events, 2=Periodic Event, 3=Motion Event, 4=Aggregate Only)

Example.png Example:

<Quividi>
 
</Quividi>

WatcherEvent

Response to: FinalEventsMode or PeriodicEventMode
VidiEventWatcher
ID
Unique ID identifying the watcher.
Watching
Either "yes" or "no".
Validated
Either "yes" or "no".
Selected
Either "yes" or "no".
StartTime
Time when the program starts tracking, formatted in ISO 8601 (standard time string format)
Duration
Tracking duration in seconds
AttentionTime
Cumulated attention time (during which time the watcher is actively looking at the screen) in seconds.
Distance
Last distance in centimeters of the viewer. (might not be accurate if the camera used is not Logitech Fusion Webcam, as calibrated insystem)
NumberOfGlances
How many times during tracking the viewer has started and stopped looking at the screen.
AgeGroup
One of the following: "child", "young adult", "adult" or "senior".
Gender
Either "male", "female" or "unknown".

Example.png Example:

<Quividi>
 
</Quividi>

MotionEvent

Response to: MotionMode. Details of each watcher.
VidiMotionWatcher
ID
Unique ID identifying the watcher.
Watching
Either "yes" or "no".
Validated
Either "yes" or "no".
Selected
Either "yes" or "no".
PosX
Relative horizontal position of the tracked face. [0-65535]
PosY
Relative vertical position of the tracked face. [0-65535]
Width
Relative width of the tracked face. [0-65535]
Height
Relative height of the tracked face. [0-65535]
Distance
Last distance in centimeters of the viewer. (might not be accurate if the camera used is not Logitech Fusion Webcam, as calibrated insystem)
Gender
Either "male", "female" or "unknown".

Example.png Example:

<Quividi>
 
</Quividi>

SelectedChangedEvent

Response to: MotionMode. Details of the selected watcher. See VidiMotionWatcher above.

OTS

Response to FinalEventsMode and AggregateOnlyMode.
StartTime
Time when this message is sent.
Duration
Duration of the analysis interval duration in seconds.
Count
OTS count for the analysis interval.
Watchers
Watcher count for the analysis interval.
Status
OTS Status for the analysis interval. (0=Not OK, 1=OK, 2=Halt)

Example.png Example:

<Quividi>
 
</Quividi>

Settings

QuividiSettings.png

PC Power Management modifier

Controls the power of the Parser PC.

Input tags

PCPower

Parameters
Action
  • Reboot will reboot the system.
  • Shutdown will shutdown the system.
  • Suspend will suspend the system.
  • Hibernate will hibernate the system.
  • MonitorStandby will put all the connected monitors in standby.
  • MonitorOn will turn all the connected monitors on.
  • MonitorOff will turn all the connected monitors off.
Force All non-monitor actions can be combined with the tag force, to force the system even if some other application is blocking the reboot or shutdown.
  • true
  • false
PowerOnAt Suspend and Hibernate can be combined with the poweronat tag to let the computer wake up from sleep at a set time.
  • time to wake up at, in hh:mm:ss format

Example.png Example:

<PCPower action="reboot" force=true>

Example.png Example:

<PCPower action="suspend" poweronat="07:15:00">

Output

Unchanged.

Settings

None.

Volume modifier

Controls the volume of the PC.

Input tags

Volume

Parameters
action
Valid values: set, get, set-mute, get-mute, list
value
Only used on set, specify the wanted volume between 0.0 and 1.0
name
Audio device to use

Example.png Example:

<Volume action="set" value="0.5">

Example.png Example:

<Volume action="get">

Output

When you use the Get action the following XML will be the output:

Example.png Example:

<Volume>0.5</Volume>

Else, the output will be the input text with any volume tags stripped out.

Settings

None.

Screens

The DISE Parser supports communication with a number of different screen models.

  • Hantarex Screen
  • JVC Screen
  • KiSmart Screen
  • LG Screen
  • Mitsubishi Screen
  • Mitsubishi Projector
  • NEC Screen
  • Panasonic Screen
  • Pioneer Screen
  • ProjectionDesign Screen
  • Sanyo Screen
  • Samsung Screen
  • Samsung Screen (Serial DLL)
  • Sharp Screen
  • Sony Screen
  • ViewPia Screen

Example.png Example:

<Screen ComPort=”COM1” Power=1 />

Example.png Example:

<Screen ComPort=”COM1” Power=0 />

Most screen modifiers will require an RS232 object to be added as well, and configured to "Only open port".

NEC API

The NEC API can be used to control power and input of an NEC Screen.

It will also return the current power, input and temperature from the screen.

Example.png Example:

<Screen Power="ON" Input="xx" />

Samsung API

The Samsung API can be used to control and get information from an Samsung Screen.

The support for features are the same as with the normal Samsung Modifier, but does not need to be configured as this Modifier can talk directly with the screen on enabled PCs.

Example.png Example:

<Screen Power=0 Input="DVI" Volume="0" />

Tag Readers

Xtractor RFID reader modifier

Receives RFID data from devices using the Xtractor AxtiveX system from Hong Kong RFID Ltd.

Input tags

None.

Output

Example.png Example:

<Xtractor>
  <ActiveTags>
    <Tag>100000000000000000000002</Tag>
  </ActiveTags>
</Xtractor>

Settings

XtractorSettings.png

Baud Rate

The baud rate used for the connection.

Port number

The COM port number used for the connection.

Reader

Denotes which connected reader to use.

TagType

Denotes the type or standard the tag belongs to.

Info.png Read more: ISO15693 - Wikipedia

Info.png Read more: ISO18000 - Wikipedia

Info.png Read more: TagIT - Tagit Inc.

Info.png Read more: EPC_GEN2 - Wikipedia

Tag valid for (seconds)

For how many seconds should the tag be kept in the cache, starting from the detection of the tag.

TUIO API modifier

Retrieves data from reacTIVision, reading fiduciary marker information.

Info.png Read more: reacTIVision - sourceforge.net

Tutorial.png Tutorial: Interactivity using fiducial markers

Input tags

None.

Output

Example.png Example:

<TUIO>
  <ActiveObjects>
    <Object SymbolID="215" 
            SessionID="3" 
            X="0.927660465240478" 
            Y="0.707516849040985" 
            Angle="3.12536025047302" 
            MotionSpeed="0.0702865198254585" 
            RotationSpeed="0" 
            MotionAccel="-0.486240029335022" 
            RotationAccel="0"/>
  </ActiveObjects>
</TUIO>

Settings

None.