Overview
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.)
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:
<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
Note: If the content of the source URL is the same as in the destination file, then the file will not be replaced.
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:
<Delete target="C:\Data\oldimage.jpg">
Delay
- Wait for a number of seconds
- Parameters
- ms
- Number of milliseconds to wait
Example:
List
- List files in folder
- Parameters
- target
- The directory to list files in.
Example:
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:
<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:
<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:
<CreateFolder target="D:\Images\Flickr"/>
Output
The input text without the processed tags.
Settings
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
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:
<ChangeOutputFile dst="New_output_file.txt">
Output
File write: None. File read: The contents of the file.
Settings
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:
<Keyboard>
<Key Code="49">stop</Key>
</Keyboard>
Settings
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
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:
Note: Make sure you have the ODBC drivers installed on the machine for the source you are attempting to connect to.
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.
Note: Running DISE Parser as a service requires the DSN be setup as a System DSN, not User DSN.
Input tags
None.
Output
Example:
<ODBC>
<Row>
<Column1>Data of column 1</Column1>
<Column2>Data of column 2</Column2>
...
</Row>
...
</ODBC>
Settings
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
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:
#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:
<Serial Text="This is your modem speaking">
Example:
<Serial Hex="5468697320697320796f7572206d6f64656d20737065616b696e67">
Settings
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
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
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.
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
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:
<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:
<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:
<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:
<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:
<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:
<exchange action="calendar" mailbox="per@klocktornet.onmicrosoft.com"/>
Output
Settings
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:
<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:
<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
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:
<http action="POST" url="http://devserver/form.php" parameters="category=document&type=spreadsheet" />
Output
The result of the HTTP request.
Settings
URL
- The URL to request.
Force use of the following codepage
- Specifies that the request will use a certain codepage.
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
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
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:
<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
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: 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
URL
- The resource in the social media service to access:
Read more: Graph API - Facebook Developers
-
Read more: Twitter Developers
-
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.
Note: The modifier listens for connections on all active network cards.
Input tags
None.
Output
In receiving XML mode:
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
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:
<udp-multicast action="send" data="hello world"/>
Output
In receiving mode:
Example:
<UdpData>
<Message>
<Base64Text>TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4g
UXVpc3F1ZSBhcmN1Lg==</Base64Text>
<Text>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque arcu.</Text>
</Message>
</UdpData>
Settings
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
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:
<Buttons>
<Button>start</Button>
</Buttons>
Settings
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
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:
<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:
<Compression action="extract" type="zip" file="thezipfile.zip" src="afile.txt" dst="T:\ZipTest\File.txt">
Output
List will output the following XML:
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,
- Install Garmin USB Drivers.
- Plug in a Garmin GPS Module that supports the Garmin Proprietary Format.
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:
<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 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 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 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 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 output:
<Garmin>
<error>
<combined></combined>
<horizontal></horizontal>
<vertical></vertical>
</error>
</Garmin>
posfix
- Response to: Position Fix
Example output:
<Garmin>
<posfix>3D</posfix>
</Garmin>
lastupdate
- Response to: Date and Time of updating.
Example output:
<Garmin>
<lastupdate>02/08/2012 14:10:30</lastupdate>
</Garmin>
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
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,
- Install and start Intel AIM Suite.
- In the AIM Suite interface, go to AIM->Manage Instances
- In the license column, click the ... button and enter a valid license.
- Go to AIM > Configure AIM Suite
- Make sure that API Server is enabled, and the port number entered is valid (12500 by default)
- Please refer to official Intel website for optimal setup.
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:
<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:
<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:
<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
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:
<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: Setting up QMatic with DISE
Settings
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,
- Install and run VidiReports under Production mode.
- It will tell you that no valid license is available and generate a link file.
- Go to the install location and open the link called "link_to_vidireports_activation".
- Enter the license information there.
- Download the file and put the file in the same location as the link file.
- Go to Start > Quividi > VidiReports > Production > VidiReports (configuration).
- Remove commenting (# character at the beginning of the line) in the line enable_socket, make make sure the value of it is 1
- Change value default_event_mode to 2.
- If you want to change the port number, find tcp_listen_port and change the value of it to a valid port number.
- 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:
- Watcher event indicating a watcher left the field of view of the camera.
- OTS measurement information sent at the end of an OTS measurement interval.
PeriodicEventMode
- Returns messages received from VidiReports under Periodic Event Mode:
- Watcher information that is currently viewing the screen, updated periodically
- 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:
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:
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:
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:
Settings
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.
- 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:
<PCPower action="reboot" force=true>
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:
<Volume action="set" value="0.5">
Example:
Output
When you use the Get action the following XML will be the output:
Example:
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:
<Screen ComPort=”COM1” Power=1 />
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:
<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:
<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:
<Xtractor>
<ActiveTags>
<Tag>100000000000000000000002</Tag>
</ActiveTags>
</Xtractor>
Settings
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.
Read more: ISO15693 - Wikipedia
Read more: ISO18000 - Wikipedia
Read more: TagIT - Tagit Inc.
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.
Read more: reacTIVision - sourceforge.net
Tutorial: Interactivity using fiducial markers
Input tags
None.
Output
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.