<?xml version="1.0" encoding="UTF-8"?>
<xpl-plugin version="1.2.2" vendor="Gerry Duprey" info_url="http://www.xpl4java.org" plugin_url="http://www.xpl4java.org/cdp1802.xml">
  <device id="cdp1802-rgbled" description="RGBLED Driver" version="1.3" url="http://www.rgbled.org">
    <command name="Turn LED On" description="Turn the LED On." msg_type="cmnd" msg_schema="rgbled.basic">
      <element name="command" default="ON" />
      <element name="LED" default="0" label="LED To Turn On" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|((\d|1[0-2])-(\d|1[0-2]))|(\d|1[0-2])$</regexp>
      </element>
      <element name="BOARD" default="0" label="Board LED is on" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|\d|\d\d|1\d\d|2[0-4]\d|25[0-4]$</regexp>
      </element>
      <element name="COLOR" default="" label="Hex Color to set LED to (optional)" control_type="textbox">
        <regexp>^|([0123456789abcdefABCDEF]{6})$</regexp>
      </element>
    </command>
    <command name="Turn LED Off" description="Turn the LED Off." msg_type="cmnd" msg_schema="rgbled.basic">
      <element name="command" default="OFF" />
      <element name="LED" default="0" label="LED To Turn Off" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|((\d|1[0-2])-(\d|1[0-2]))|(\d|1[0-2])$</regexp>
      </element>
      <element name="BOARD" default="0" label="Board LED is on" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|\d|\d\d|1\d\d|2[0-4]\d|25[0-4]$</regexp>
      </element>
    </command>
    <command name="Set LED Color" description="Change color of the LED." msg_type="cmnd" msg_schema="rgbled.basic">
      <element name="command" default="SET_COLOR" />
      <element name="LED" default="0" label="LED To Change" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|((\d|1[0-2])-(\d|1[0-2]))|(\d|1[0-2])$</regexp>
      </element>
      <element name="BOARD" default="0" label="Board LED is on" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|\d|\d\d|1\d\d|2[0-4]\d|25[0-4]$</regexp>
      </element>
      <element name="COLOR" default="" label="Hex Color to set LED to" control_type="textbox">
        <regexp>^[0123456789abcdefABCDEF]{6}$</regexp>
      </element>
    </command>
    <command name="Liberate LED" description="Unslave a slaved LED." msg_type="cmnd" msg_schema="rgbled.basic">
      <element name="command" default="LIBERATE" />
      <element name="LED" default="0" label="LED To Liberate" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|((\d|1[0-2])-(\d|1[0-2]))|(\d|1[0-2])$</regexp>
      </element>
      <element name="BOARD" default="0" label="Board LED is on" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|\d|\d\d|1\d\d|2[0-4]\d|25[0-4]$</regexp>
      </element>
    </command>
    <command name="Set LED for low current" description="Set LED for low (10ma) current." msg_type="cmnd" msg_schema="rgbled.basic">
      <element name="command" default="LOW_CURRENT" />
      <element name="LED" default="0" label="LED To Change" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|((\d|1[0-2])-(\d|1[0-2]))|(\d|1[0-2])$</regexp>
      </element>
      <element name="BOARD" default="0" label="Board LED is on" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|\d|\d\d|1\d\d|2[0-4]\d|25[0-4]$</regexp>
      </element>
    </command>
    <command name="Set LED for High current" description="Set LED for High (20ma) current." msg_type="cmnd" msg_schema="rgbled.basic">
      <element name="command" default="HIGH_CURRENT" />
      <element name="LED" default="0" label="LED To Change" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|((\d|1[0-2])-(\d|1[0-2]))|(\d|1[0-2])$</regexp>
      </element>
      <element name="BOARD" default="0" label="Board LED is on" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|\d|\d\d|1\d\d|2[0-4]\d|25[0-4]$</regexp>
      </element>
    </command>
    <command name="Enable Animation for LED" description="Enable animation for LED, if setup." msg_type="cmnd" msg_schema="rgbled.basic">
      <element name="command" default="ENABLE_ANIMATION" />
      <element name="LED" default="0" label="LED To Enable" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|((\d|1[0-2])-(\d|1[0-2]))|(\d|1[0-2])$</regexp>
      </element>
      <element name="BOARD" default="0" label="Board LED is on" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|\d|\d\d|1\d\d|2[0-4]\d|25[0-4]$</regexp>
      </element>
    </command>
    <command name="Disable Animation for LED" description="Disable animation for LED, if setup." msg_type="cmnd" msg_schema="rgbled.basic">
      <element name="command" default="DISABLE_ANIMATION" />
      <element name="LED" default="0" label="LED To Disable" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|((\d|1[0-2])-(\d|1[0-2]))|(\d|1[0-2])$</regexp>
      </element>
      <element name="BOARD" default="0" label="Board LED is on" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|\d|\d\d|1\d\d|2[0-4]\d|25[0-4]$</regexp>
      </element>
    </command>
    <command name="Clear LED of animation" description="Release LEDs animation resources and disable animation." msg_type="cmnd" msg_schema="rgbled.basic">
      <element name="command" default="CLEAR_ANIMATION" />
      <element name="LED" default="0" label="LED To Clear" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|((\d|1[0-2])-(\d|1[0-2]))|(\d|1[0-2])$</regexp>
      </element>
      <element name="BOARD" default="0" label="Board LED is on" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|\d|\d\d|1\d\d|2[0-4]\d|25[0-4]$</regexp>
      </element>
    </command>
    <command name="Define Animation for LED" description="Define a new animation for LED." msg_type="cmnd" msg_schema="rgbled.basic">
      <element name="command" default="DEFINE_ANIMATION" />
      <element name="LED" default="0" label="LED To Define" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|((\d|1[0-2])-(\d|1[0-2]))|(\d|1[0-2])$</regexp>
      </element>
      <element name="BOARD" default="0" label="Board LED is on" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|\d|\d\d|1\d\d|2[0-4]\d|25[0-4]$</regexp>
      </element>
      <element name="DELAY_UNITS" default="TENTHS" label="Animation delay time units" control_type="dropdownlist">
        <option value="HUNDREDTHS" label="1/100s of a second" />
        <option value="TENTHS" label="1/10s of a second" />
        <option value="SECONDS" label="Seconds" />
      </element>
      <element name="DELAY_TIME" default="1" label="Delay time" control_type="numeric" maxval="255" minval="1" />
      <element name="COLOR_CHANGE" default="ABSOLUTE" label="Color change method" control_type="dropdownlist">
        <option value="ABSOLUTE" label="Absolute change" />
        <option value="WASH" label="Gradual change/wash" />
      </element>
      <element name="COLOR" default="" label="Hex Color to set LED to (optional)" control_type="textbox">
        <regexp>^|([0123456789abcdefABCDEF]{6})|CURRENT$</regexp>
      </element>
      <element name="COLOR" default="" label="Hex Color to set LED to (optional)" control_type="textbox" />
      <element name="COLOR" default="" label="Hex Color to set LED to (optional)" control_type="textbox" />
      <element name="COLOR" default="" label="Hex Color to set LED to (optional)" control_type="textbox" />
      <element name="COLOR" default="" label="Hex Color to set LED to (optional)" control_type="textbox" />
      <element name="COLOR" default="" label="Hex Color to set LED to (optional)" control_type="textbox" />
      <element name="COLOR" default="" label="Hex Color to set LED to (optional)" control_type="textbox" />
      <element name="COLOR" default="" label="Hex Color to set LED to (optional)" control_type="textbox" />
      <element name="COLOR" default="" label="Hex Color to set LED to (optional)" control_type="textbox" />
      <element name="COLOR" default="" label="Hex Color to set LED to (optional)" control_type="textbox" />
      <element control_type="dropdownlist" default="TRUE" label="Animation Repeats" name="animation_repeats">
        <option label="Repeats" value="TRUE" />
        <option label="One Shot" value="FALSE" />
      </element>
      <element control_type="dropdownlist" default="FALSE" label="Auto Release Colors" name="auto_release_colors">
        <option label="False" value="FALSE" />
        <option label="True" value="TRUE" />
      </element>
    </command>
    <command name="Change Animation Settings for LED" description="Alter the animation options for LED" msg_type="cmnd" msg_schema="rgbled.basic">
      <element name="command" default="CHANGE_ANIMATION" />
      <element name="LED" default="0" label="LED To Change" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|((\d|1[0-2])-(\d|1[0-2]))|(\d|1[0-2])$</regexp>
      </element>
      <element name="BOARD" default="0" label="Board LED is on" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|\d|\d\d|1\d\d|2[0-4]\d|25[0-4]$</regexp>
      </element>
      <element name="DELAY_UNITS" default="TENTHS" label="Animation delay time units" control_type="dropdownlist">
        <option value="HUNDREDTHS" label="1/100s of a second" />
        <option value="TENTHS" label="1/10s of a second" />
        <option value="SECONDS" label="Seconds" />
      </element>
      <element name="DELAY_TIME" default="1" label="Delay time" control_type="numeric" maxval="255" minval="1" />
      <element name="COLOR_CHANGE" default="ABSOLUTE" label="Color change method" control_type="dropdownlist">
        <option value="ABSOLUTE" label="Absolute change" />
        <option value="WASH" label="Gradual change/wash" />
      </element>
      <element control_type="dropdownlist" default="TRUE" label="Animation Repeats" name="animation_repeats">
        <option label="Repeating" value="TRUE" />
        <option label="One-Shot" value="FALSE" />
      </element>
      <element control_type="dropdownlist" default="FALSE" label="Auto Release Colors" name="auto_release_colors">
        <option label="False" value="FALSE" />
        <option label="True" value="TRUE" />
      </element>
    </command>
    <command name="Add an animation color to LED" description="Add an addition color to the LED" msg_type="cmnd" msg_schema="rgbled.basic">
      <element name="command" default="ADD_COLOR" />
      <element name="LED" default="0" label="Add to LED" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|((\d|1[0-2])-(\d|1[0-2]))|(\d|1[0-2])$</regexp>
      </element>
      <element name="BOARD" default="0" label="Board LED is on" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|\d|\d\d|1\d\d|2[0-4]\d|25[0-4]$</regexp>
      </element>
      <element name="COLOR" default="" label="Hex Color to set LED to (optional)" control_type="textbox">
        <regexp>^|([0123456789abcdefABCDEF]{6})|CURRENT$</regexp>
      </element>
    </command>
    <command name="Clear all LEDs on board" description="Clear all board settings" msg_type="cmnd" msg_schema="rgbled.basic">
      <element name="command" default="CLEAR_BOARD" />
      <element name="BOARD" default="0" label="Board To Clear" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|\d|\d\d|1\d\d|2[0-4]\d|25[0-4]$</regexp>
      </element>
    </command>
    <command name="Reboot Board" description="Reboot board to power-on defaults" msg_type="cmnd" msg_schema="rgbled.basic">
      <element name="command" default="REBOOT_BOARD" />
      <element name="BOARD" default="0" label="Board To Reboot" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|\d|\d\d|1\d\d|2[0-4]\d|25[0-4]$</regexp>
      </element>
    </command>
    <command name="Preserve Settings" description="Save current LED settings as power-on defaults" msg_type="cmnd" msg_schema="rgbled.basic">
      <element name="command" default="PRESERVE_BOARD" />
      <element name="BOARD" default="0" label="Board To Preserve Settings" control_type="textbox">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|\d|\d\d|1\d\d|2[0-4]\d|25[0-4]$</regexp>
      </element>
    </command>
    <command name="Change Board ID" description="Change Board ID" msg_type="cmnd" msg_schema="rgbled.basic">
      <element name="command" default="CHANGE_BOARD_ID" />
      <element name="BOARD" default="0" label="Board To Change ID" control_type="numeric" maxval="240" />
      <element name="NEW_BOARD_ID" default="0" label="New Board ID" control_type="numeric" maxval="240" />
    </command>
    <configItem name="serialport" description="Specifies a serial port, baud rate and optional delays RGBLED boards are connected to." format="" />
    <command description="Slave an LED to another." msg_schema="rgbled.basic" msg_type="cmnd" name="Slave LED to another">
      <element control_type="textbox" default="0" label="Board LED is on" name="board">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|\d|\d\d|1\d\d|2[0-4]\d|25[0-4]$</regexp>
      </element>
      <element default="SLAVE" name="command" />
      <element control_type="textbox" default="0" label="LED To Slave" name="led">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|((\d|1[0-2])-(\d|1[0-2]))|(\d|1[0-2])$</regexp>
      </element>
      <element control_type="numeric" default="0" label="Master LED For Slave" maxval="12" name="master_led">
        <option label="0" value="0" />
        <option label="1" value="1" />
        <option label="2" value="2" />
        <option label="3" value="3" />
        <option label="4" value="4" />
        <option label="5" value="5" />
        <option label="6" value="6" />
        <option label="7" value="7" />
        <option label="8" value="8" />
        <option label="9" value="9" />
        <option label="10" value="10" />
        <option label="11" value="11" />
        <option label="12" value="12" />
      </element>
    </command>
    <command description="Clear Board Group" msg_schema="rgbled.basic" msg_type="cmnd" name="Clear Board Group">
      <element default="CLEAR_BOARD_GROUP" name="command" />
      <element control_type="numeric" default="0" label="Board To Change" name="board" maxval="240" />
    </command>
    <command description="Clear LED Group" msg_schema="rgbled.basic" msg_type="cmnd" name="Clear LED Group">
      <element default="CLEAR_LED_GROUP" name="command" />
      <element default="0" label="LED to clear from group" name="led">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|((\d|1[0-2])-(\d|1[0-2]))|(\d|1[0-2])$</regexp>
      </element>
      <element default="0" label="Board LED is on" name="board">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|\d|\d\d|1\d\d|2[0-4]\d|25[0-4]$</regexp>
      </element>
    </command>
    <command description="Set Board Group" msg_schema="rgbled.basic" msg_type="cmnd" name="Set Board Group">
      <element default="SET_BOARD_GROUP" name="command" />
      <element control_type="numeric" default="0" label="Board To Change" name="board" maxval="240" />
      <element control_type="numeric" default="0" label="New Group" maxval="14" name="new_group" />
    </command>
    <command description="Set Board to Common Anode drive" msg_schema="rgbled.basic" msg_type="cmnd" name="Set Common Anode">
      <element default="SET_COMMON_ANODE" name="command" />
      <element default="0" label="Board to change to Common Anode" name="board">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|\d|\d\d|1\d\d|2[0-4]\d|25[0-4]$</regexp>
      </element>
    </command>
    <command description="Set Board to Common Anode drive" msg_schema="rgbled.basic" msg_type="cmnd" name="Set Common Cathode">
      <element default="SET_COMMON_CATHODE" name="command" />
      <element default="0" label="Board to change to Common Cathode" name="board">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|\d|\d\d|1\d\d|2[0-4]\d|25[0-4]$</regexp>
      </element>
    </command>
    <command description="Set LED Group" msg_schema="rgbled.basic" msg_type="cmnd" name="Set LED Group">
      <element default="SET_LED_GROUP" name="command" />
      <element default="0" label="LED to change group" name="led">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|((\d|1[0-2])-(\d|1[0-2]))|(\d|1[0-2])$</regexp>
      </element>
      <element default="0" label="Board LED is on" name="board">
        <regexp>^[Aa][Ll][Ll]|(G(\d|1[0-4]))|\d|\d\d|1\d\d|2[0-4]\d|25[0-4]$</regexp>
      </element>
      <element control_type="numeric" label="New LED Group" maxval="14" name="new_group" />
    </command>
  </device>
  <device id="cdp1802-xpl4java" description="xPL4Java Server Manager" version="1.3" url="http://www.xPL4Java.org">
    <configItem name="scaninterval" format="^\d{1,4}$" description="Seconds between scans for new modules" />
    <configItem name="searchpath" format="^.*$" description="Directory to scan for module jar files" />
    <command description="Request a listing of modules currently loaded" msg_schema="server.manage" msg_type="cmnd" name="List all Modules">
      <element default="list_modules" name="command" />
      <element control_type="numeric" default="10" label="Number of modules to list per message" maxval="32" minval="1" name="count" />
    </command>
    <command description="Stop, Unload and Reload a module" msg_schema="server.manage" msg_type="cmnd" name="Reload Module">
      <element default="reload_module" name="command" />
      <element label="Name of module to reload" name="module_name" />
    </command>
    <command description="Request current status of a module" msg_schema="server.manage" msg_type="cmnd" name="Request Module Status">
      <element default="module_status" name="command" />
      <element label="Name of module to requesst status (or ALL)" name="module_name" />
    </command>
    <command description="Immediatly shutdown the xPL4Java server" msg_schema="server.manage" msg_type="cmnd" name="Shutdown Server">
      <element default="shutdown_server" name="command" />
    </command>
    <command description="Start a stopped Module" msg_schema="server.manage" msg_type="cmnd" name="Start Module">
      <element default="start_module" name="command" />
      <element label="Name of the module to start" name="module_name" />
    </command>
    <command description="Stop a running module" msg_schema="server.manage" msg_type="cmnd" name="Stop Module">
      <element default="stop_module" name="command" />
      <element label="Name of module to stop" name="module_name" />
    </command>
    <command description="Stop and Unload a module" msg_schema="server.manage" msg_type="cmnd" name="Unload Module">
      <element default="unload_module" name="command" />
      <element label="Name of module to stop/unload" name="module_name" />
    </command>
    <command description="Immediaately scan all module directories for new modules" msg_schema="server.manage" msg_type="cmnd" name="Rescan Modules">
      <element default="rescan_modules" name="command" />
    </command>
    <trigger description="Describes current state of a module" msg_schema="server.module" msg_type="stat" name="Module Status Update">
      <element label="Name of the module status applies to" name="module_name" />
      <element label="Should module be auto-loaded at start" name="module_auto_load">
        <regexp>^0|1$</regexp>
      </element>
      <element label="Should module automatically start when loaded" name="module_auto_start">
        <regexp>^0|1$</regexp>
      </element>
      <element label="Name of the Java class for this module" name="module_class_name" />
      <element label="Default module device identifier" name="module_device_ident" />
      <element control_type="dropdownlist" label="Is the module endable or not" name="module_enabled">
        <option label="1" value="1" />
        <option label="0" value="0" />
      </element>
      <element control_type="dropdownlist" label="State of the module" name="module_stat">
        <option label="DISABLED" value="disabled" />
        <option label="Started" value="started" />
        <option label="Loaded" value="loaded" />
        <option label="Unloaded" value="unloaded" />
        <option label="Stopping" value="stopping" />
        <option label="Unloading" value="unloading" />
      </element>
      <element label="Version of this module" name="module_version" />
    </trigger>
    <trigger description="Describes current state of a module" msg_schema="server.module" msg_type="trig" name="Module Status Update">
      <element label="Name of the module status applies to" name="module_name" />
      <element label="Should module be auto-loaded at start" name="module_auto_load">
        <regexp>^0|1$</regexp>
      </element>
      <element label="Should module automatically start when loaded" name="module_auto_start">
        <regexp>^0|1$</regexp>
      </element>
      <element label="Name of the Java class for this module" name="module_class_name" />
      <element label="Default module device identifier" name="module_device_ident" />
      <element control_type="dropdownlist" label="Is the module endable or not" name="module_enabled">
        <option label="1" value="1" />
        <option label="0" value="0" />
      </element>
      <element control_type="dropdownlist" label="State of the module" name="module_stat">
        <option label="DISABLED" value="disabled" />
        <option label="Started" value="started" />
        <option label="Loaded" value="loaded" />
        <option label="Unloaded" value="unloaded" />
        <option label="Stopping" value="stopping" />
        <option label="Unloading" value="unloading" />
      </element>
      <element label="Version of this module" name="module_version" />
    </trigger>
    <trigger description="Server Status Report" msg_schema="server.status" msg_type="stat" name="Server Status">
      <element label="Amount of RAM in JVM Heap available" name="free_java_memory" />
      <element label="Number of modules actually loaded" name="loaded_module_count" />
      <element label="Max RAM server can use, in MBs" name="max_sys_memory" />
      <element label="Number of modules server knows about" name="module_count" />
      <element label="Number of minutes server has been running" name="server_uptime" />
      <element label="Number of modules actually started/running" name="started_module_count" />
      <element label="Amount of RAM used in the JVM Heap" name="used_java_memory" />
      <element label="Amount of RAM acually allocated, in MBs" name="used_sys_memory" />
    </trigger>
    <trigger description="Server Status Report" msg_schema="server.status" msg_type="trig" name="Server Status">
      <element label="Amount of RAM in JVM Heap available" name="free_java_memory" />
      <element label="Number of modules actually loaded" name="loaded_module_count" />
      <element label="Max RAM server can use, in MBs" name="max_sys_memory" />
      <element label="Number of modules server knows about" name="module_count" />
      <element label="Number of minutes server has been running" name="server_uptime" />
      <element label="Number of modules actually started/running" name="started_module_count" />
      <element label="Amount of RAM used in the JVM Heap" name="used_java_memory" />
      <element label="Amount of RAM acually allocated, in MBs" name="used_sys_memory" />
    </trigger>
  </device>
  <device id="cdp1802-xplnet" description="xPL4Java Network Manager" version="1.3" url="http://www.xPL4Java.org">
    <configItem name="network" format="^.*$" description="Network IP address to bind to" />
  </device>
  <device id="cdp1802-devtrack" description="xPL4Java Device Tracker/Enumerator" version="1.3" url="http://www.xPL4Java.org" />
  <device id="cdp1802-dcm" description="DCM - Device Configuration Manager" version="1.0" url="http://www.xPL4Java.org" />
  <device id="cdp1802-xpe" description="XPE - xPL Plugin Editor" version="1.0" url="http://www.xPL4Java.org" />
  <device id="cdp1802-script" description="xPL4Java Scripting Engine" version="1.0" url="http://www.xPL4Java.org">
    <configItem name="refreshinterval" format="^\d{1,4}$" description="Seconds between scan for new scripts" />
    <configItem name="scriptpath" format="^.*$" description="Path to a directory containing scripts" />
    <command description="Rescan all script directories for changes" msg_schema="script.basic" msg_type="cmnd" name="Refresh Scripts">
      <element default="refresh" name="command" />
      <element control_type="numeric" default="0" label="Force all scripts to be refreshed/reloaded" name="forcerefresh" maxval="1">
        <option label="1" value="1" />
        <option label="0" value="0" />
      </element>
    </command>
  </device>
  <device id="cdp1802-clock" description="Simple Network Clock" version="1.0" url="http://www.xPL4Java.org">
    <configItem name="reportrate" format="^\d{1,4}$" description="Seconds between sending time out" />
    <command description="Restart the clock" msg_schema="clock.basic" msg_type="cmnd" name="Start Clock">
      <element default="start" name="command" />
    </command>
    <command description="Temporarily stops the clock from sending updates" msg_schema="clock.basic" msg_type="cmnd" name="Stop The Clock">
      <element default="stop" name="command" />
    </command>
  </device>
  <device id="cdp1802-slogger" description="Simple xPL Logger" version="1.0" url="http://www.xPL4Java.org">
    <configItem name="appendtolog" format="^0|1$" description="If log file exists, append to it or overwrite it" />
    <configItem name="exclude" format="^.*$" description="Message filter of messages to exclude from log" />
    <configItem name="include" format="^.*$" description="Message filter of message to explcitly include" />
    <configItem name="logfile" format="^.+$" description="Path and filename of logfile" />
    <configItem name="logheartbeats" format="^0|1$" description="If heartbeat messages should be logged or not" />
  </device>
  <device id="cdp1802-hvision" description="Linux HomeVision Server" version="1.2" url="http://www.xPL4Java.org/xPL4Linux" />
  <device id="cdp1802-tsrv" description="Linux Statnet Server" version="1.2" url="http://www.xPL4Java.org/xPL4Linux" />
  <device id="cdp1802-xplio" version="1.0" description="Serial/Parallel port IO handler">
    <command msg_type="cmnd" name="Send String" description="Send a String to Port" msg_schema="control.io">
      <element name="device" label="Device" />
      <element name="type" default="string" />
      <element name="current" label="String to send" />
    </command>
    <command description="Send bytes to port" msg_schema="control.io" msg_type="cmnd" name="Send Bytes">
      <element label="Device" name="device" />
      <element default="byte" name="type" />
      <element label="Byte value(s) to send" name="current" />
    </command>
    <command description="Open the Port" msg_schema="control.io" msg_type="cmnd" name="Open Port">
      <element label="Device" name="device" />
      <element default="command" name="type" />
      <element label="" name="current" default="open" />
    </command>
    <command description="Close the Port" msg_schema="control.io" msg_type="cmnd" name="Close Port">
      <element label="Device" name="device" />
      <element default="command" name="type" />
      <element default="close" name="current" />
    </command>
    <trigger msg_type="trig" name="Port Opened" description="Report a port has opened" msg_schema="control.io">
      <element name="device" label="Device Opened" />
      <element name="type" label="" default="status" />
      <element name="current" default="opened" />
    </trigger>
    <trigger description="Report a port has closed" msg_schema="control.io" msg_type="trig" name="Port Closed">
      <element label="Device Closed" name="device" />
      <element default="status" name="type" />
      <element default="closed" name="current" />
    </trigger>
    <configItem name="parallelport" description="portName,portMode,autoCloseDelay" />
    <configItem name="serialport" description="portName,baud,dataBits,stopBits,parity,flowControl,autoCloseDelay" />
    <command description="Send a break" msg_schema="control.io" msg_type="cmnd" name="Send Break">
      <element label="Name of device to Send Break" name="device" />
      <element default="break" name="type" />
      <element control_type="numeric" default="100" label="Break duration, in millis" maxval="9999" minval="1" name="current" />
    </command>
    <command description="Set State of DTR line" msg_schema="control.io" msg_type="cmnd" name="Set DTR State">
      <element label="Name of Device" name="device" />
      <element default="command" name="type" />
      <element control_type="dropdownlist" label="DTR State" name="current">
        <option label="High" value="SET_DTR" />
        <option label="Low" value="CLEAR_DTR" />
      </element>
    </command>
    <command description="Set State of RTS line" msg_schema="control.io" msg_type="cmnd" name="Set RTS State">
      <element label="Name of Device" name="device" />
      <element default="command" name="type" />
      <element control_type="dropdownlist" label="RTS State" name="current">
        <option label="High" value="SET_RTS" />
        <option label="Low" value="CLEAR_RTS" />
      </element>
    </command>
  </device>
  <device id="cdp1802-upb" version="1.2" description="UPB to xPL Lighting Gateway" info_url="http://www.xPL4Java.org">
    <command description="Set Device Level" msg_schema="lighting.basic" msg_type="cmnd" name="Set Device Level">
      <element control_type="numeric" label="Device ID" maxval="250" name="device" />
      <element default="goto" name="command" />
      <element maxval="100" name="level" label="Level to set device to" control_type="numeric" />
      <element name="fade-rate" label="Rate to fade to new level" default="0" control_type="dropdownlist">
        <option value="default" label="Device Default" />
        <option value="0" label="Snap!" />
        <option value="0.8" label="0.8 seconds" />
        <option value="1.6" label="1.6 seconds" />
        <option value="3.3" label="3.3 seconds" />
        <option value="5" label="5 seconds" />
        <option value="6.6" label="6.6 seconds" />
        <option value="10" label="10 seconds" />
        <option value="20" label="20 seconds" />
        <option value="30" label="30 seconds" />
        <option value="60" label="1 minute" />
        <option value="120" label="2 minutes" />
        <option value="300" label="5 minutes" />
        <option value="600" label="10 minutes" />
        <option value="900" label="15 minutes" />
        <option value="1800" label="30 minutes" />
        <option value="3600" label="1 hour" />
      </element>
      <element control_type="numeric" default="0" label="Channel #" maxval="99" name="channel" />
    </command>
    <configItem name="serialport" description="UPB PIM Serial Port" />
    <configItem name="upexportfile" description="Path/Name of UPStart export file" />
    <command description="Turn a device off" msg_schema="lighting.basic" msg_type="cmnd" name="Turn Device Off">
      <element control_type="numeric" label="Device ID" maxval="250" name="device" />
      <element default="off" name="command" />
      <element control_type="numeric" default="0" label="Channel #" maxval="99" name="channel" />
    </command>
    <command description="Turn a device on" msg_schema="lighting.basic" msg_type="cmnd" name="Turn Device On">
      <element default="on" name="command" />
      <element control_type="numeric" default="100" label="Brightness to turn on to" maxval="100" name="level" />
      <element control_type="numeric" label="Device ID" maxval="250" name="device" />
      <element control_type="numeric" default="0" label="Channel #" maxval="99" name="channel" />
    </command>
    <command description="Send a Request for details on a Device" msg_schema="lighting.request" msg_type="cmnd" name="Request Device Info">
      <element default="devinfo" name="request" />
      <element control_type="numeric" default="1" label="Device ID" maxval="250" minval="1" name="device" />
    </command>
    <command description="Send a Request for a list of all devices" msg_schema="lighting.request" msg_type="cmnd" name="Request Device List">
      <element default="devlist" name="request" />
    </command>
    <command description="Send a Request for the current device state" msg_schema="lighting.request" msg_type="cmnd" name="Request Device State">
      <element default="devstate" name="request" />
      <element control_type="numeric" default="1" label="Device ID" maxval="250" minval="1" name="device" />
      <element control_type="numeric" default="0" label="Channel #" maxval="99" name="channel" />
    </command>
    <command description="Send a Request for network information" msg_schema="lighting.request" msg_type="cmnd" name="Request Network Info">
      <element default="netinfo" name="request" />
    </command>
    <command description="Activate A Scenes Devices" msg_schema="lighting.basic" msg_type="cmnd" name="Activate Scene">
      <element default="activate" name="command" />
      <element control_type="numeric" label="Scene ID" maxval="250" minval="1" name="scene" />
    </command>
    <command description="Send a Request for gateway info" msg_schema="lighting.request" msg_type="cmnd" name="Request Gateway Info">
      <element default="gateway" name="request" />
    </command>
    <command description="Send a Request for list of networks" msg_schema="lighting.request" msg_type="cmnd" name="Request Network List">
      <element default="netlist" name="request" />
    </command>
    <command description="Send a Request for details about a Scene" msg_schema="lighting.request" msg_type="cmnd" name="Request Scene Info">
      <element default="sceneinfo" name="request" />
      <element control_type="numeric" default="1" label="Scene ID" maxval="250" minval="1" name="scene" />
    </command>
    <command description="Send a Request for a list of scenes" msg_schema="lighting.request" msg_type="cmnd" name="Request Scene List">
      <element default="scenelist" name="request" />
    </command>
    <command description="Set Scene Devices To Level" msg_schema="lighting.basic" msg_type="cmnd" name="Set Scene Level">
      <element default="goto" name="command" />
      <element control_type="numeric" label="Level to set scenes devices to" maxval="100" name="level" />
      <element control_type="dropdownlist" default="0" label="Rate to fade to new level" name="fade-rate">
        <option label="Device Default" value="default" />
        <option label="Snap!" value="0" />
        <option label="0.8 seconds" value="0.8" />
        <option label="1.6 seconds" value="1.6" />
        <option label="3.3 seconds" value="3.3" />
        <option label="5 seconds" value="5" />
        <option label="6.6 seconds" value="6.6" />
        <option label="10 seconds" value="10" />
        <option label="20 seconds" value="20" />
        <option label="30 seconds" value="30" />
        <option label="1 minute" value="60" />
        <option label="2 minutes" value="120" />
        <option label="5 minutes" value="300" />
        <option label="10 minutes" value="600" />
        <option label="15 minutes" value="900" />
        <option label="30 minutes" value="1800" />
        <option label="1 hour" value="3600" />
      </element>
      <element control_type="numeric" label="Scene ID" maxval="250" minval="1" name="scene" />
    </command>
    <trigger description="Fired when a device state changes" msg_schema="lighting.device" msg_type="trig" name="Device Activity">
      <element label="Network Device is on" name="network" />
      <element label="Device ID" name="device" />
      <element control_type="numeric" label="Channel on Device that changed" maxval="999" name="channel" />
      <element label="Level scene devices are going to" name="level" />
      <element control_type="dropdownlist" label="State Device is in" name="state">
        <option label="On" value="on" />
        <option label="Off" value="off" />
      </element>
    </trigger>
    <trigger description="Fired when there is a Scene command" msg_schema="lighting.scene" msg_type="trig" name="Scene Activity Trigger">
      <element label="Network Scene is for" name="network" />
      <element label="Scene ID" name="scene" />
      <element control_type="dropdownlist" label="Scene Action" name="action">
        <option label="Activate" value="activate" />
        <option label="Goto" value="goto" />
      </element>
      <element label="Level scene devices are going to" name="level" />
      <element label="Fade Rate Scene Devices are going to" name="fade-rate" />
      <element label="Source ID of device initiating the scene" name="source" />
    </trigger>
  </device>
  <device id="cdp1802-sprinklr" version="1.0.0" description="Sprinkler Controller" info_url="http://www.rgbled.org">
    <command msg_type="cmnd" name="Clear Queue" description="Clears contents of queue" msg_schema="sprinklr.basic">
      <element name="command" default="clear-queue" />
      <element maxval="7" name="queue-id" label="Queue to Clear" control_type="numeric" default="0" />
    </command>
    <command msg_type="cmnd" name="Queue New Request" description="Queue a new Water Request" msg_schema="sprinklr.basic">
      <element name="command" default="queue-request" />
      <element maxval="7" name="queue-id" label="Queue to add request to" control_type="numeric" default="0" />
      <element maxval="26" name="valve-id" label="Valve to Request" control_type="numeric" />
      <element minval="1" maxval="255" name="run-minutes" label="Length of request, in minutes" control_type="numeric" default="5" />
      <element name="request-index" label="Insert Request @" />
    </command>
    <command msg_type="cmnd" name="Hold Queue" description="Put Queue on hold" msg_schema="sprinklr.basic">
      <element name="command" default="hold-queue" />
      <element maxval="7" name="queue-id" label="Queue to put on hold" control_type="numeric" default="0" />
    </command>
    <command msg_type="cmnd" name="Release Queue" description="Release Queue From Hold" msg_schema="sprinklr.basic">
      <element default="release-queue" name="command" />
      <element control_type="numeric" label="Queue ID to release" maxval="7" name="queue-id" default="0" />
    </command>
    <command msg_type="cmnd" name="Delete a request" description="Delete request from queue" msg_schema="sprinklr.basic">
      <element name="command" default="delete-request" />
      <element maxval="7" name="queue-id" label="Queue to delete request from" control_type="numeric" default="0" />
      <element maxval="47" name="request-index" label="Request to delete from queue" control_type="numeric" />
    </command>
    <command msg_type="cmnd" name="Change Request Time" description="Change time for a request" msg_schema="sprinklr.basic">
      <element name="command" default="change-request" />
      <element maxval="7" name="queue-id" label="Queue to change request in" control_type="numeric" default="0" />
      <element maxval="47" name="request-index" label="Request to change" control_type="numeric" />
      <element control_type="numeric" label="New # of minutes for request" maxval="255" minval="1" name="run-minutes" />
    </command>
    <command msg_type="cmnd" name="Move Request" description="Move Request position in queue" msg_schema="sprinklr.basic">
      <element name="command" default="move-request" />
      <element maxval="7" name="queue-id" label="Queue to move request in" default="0" control_type="numeric" />
      <element maxval="47" name="request-index" label="Request # to move" control_type="numeric" />
      <element maxval="47" name="new-request-index" label="Where in queue to move to" control_type="numeric" />
    </command>
    <configItem name="serial-port" description="Name of Serial Port controller is connected to" />
    <configItem name="sprinkler-config" description="Config file, created by jSprinkler, with valve names" />
    <command description="Get state of the pump" msg_schema="sprinklr.request" msg_type="cmnd" name="Get Pump Info">
      <element default="pumpinfo" name="request" />
    </command>
    <command description="Get info on a Queue" msg_schema="sprinklr.request" msg_type="cmnd" name="Get Queue Info">
      <element default="queinfo" name="request" />
      <element control_type="numeric" default="0" label="Queue to get info on" maxval="7" name="queue-id" />
    </command>
    <command description="Get info on a queued request" msg_schema="sprinklr.request" msg_type="cmnd" name="Get Request Info">
      <element default="rqstinfo" name="request" />
      <element control_type="numeric" default="0" label="Queue of request to get" maxval="7" name="queue-id" />
      <element control_type="numeric" label="Request # to get info on" maxval="47" name="request-index" />
    </command>
    <command description="Request the Sprinkler Gateway Info" msg_schema="sprinklr.request" msg_type="cmnd" name="Get Sprinkler Gateway Info">
      <element default="gateinfo" name="request" />
    </command>
    <command description="Get State of a valve" msg_schema="sprinklr.request" msg_type="cmnd" name="Get Valve Info">
      <element default="valvinfo" name="request" />
      <element control_type="numeric" label="Valve to get info on" maxval="26" name="valve-id" />
    </command>
  </device>
  <device id="cdp1802-maxbotix" version="1.1.0" description="Maxbotix Sensor Front End Controller Gateway" info_url="http://www.rgbled.org">
    <command msg_type="cmnd" name="Poll Sensor" description="Request current sensor reading" msg_schema="maxbotix.basic">
      <element name="command" default="poll" />
      <element maxval="12" name="sensor-id" label="Sensor to Poll" default="0" control_type="numeric" />
    </command>
    <command msg_type="cmnd" name="Reboot Controller" description="Reboot the Controller" msg_schema="maxbotix.basic">
      <element name="command" default="reboot" />
    </command>
    <command msg_type="cmnd" name="Disable Sensor" description="Disable a sensor" msg_schema="maxbotix.basic">
      <element maxval="12" name="sensor-id" label="Sensor #" default="0" control_type="numeric" />
      <element name="command" default="configure" />
      <element default="disabled" name="sensor-mode" />
    </command>
    <command description="Configure Sensor as Polled" msg_schema="maxbotix.basic" msg_type="cmnd" name="Configure Polled Sensor">
      <element control_type="numeric" default="0" label="Sensor #" maxval="12" name="sensor-id" />
      <element default="configure" name="command" />
      <element default="polled" name="sensor-mode" />
      <element control_type="dropdownlist" default="false" label="Anti Jitter Filter" name="anti-jitter-filter">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element label="Sensor Name/Label" name="sensor-name" />
    </command>
    <command description="Configure Sensor as Triggered" msg_schema="maxbotix.basic" msg_type="cmnd" name="Configure Triggered Sensor">
      <element control_type="numeric" default="0" label="Sensor #" maxval="12" name="sensor-id" />
      <element default="configure" name="command" />
      <element minval="1" maxval="255" name="report-threshold" label="Threshold (in inches) to report changes" default="1" control_type="numeric" />
      <element default="triggered" name="sensor-mode" />
      <element control_type="dropdownlist" default="false" label="Anti Jitter Filter" name="anti-jitter-filter">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element control_type="dropdownlist" default="true" label="Report Distance Changes Automatically" name="send-value-change-reports">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element label="Sensor Name/Label" name="sensor-name" />
    </command>
    <command description="Configure Sensor as Periodic" msg_schema="maxbotix.basic" msg_type="cmnd" name="Configure Periodic Sensor">
      <element control_type="numeric" default="0" label="Sensor #" maxval="12" name="sensor-id" />
      <element default="configure" name="command" />
      <element control_type="numeric" default="1" label="Time between reports, in seconds" maxval="255" minval="1" name="report-period" />
      <element default="periodic" name="sensor-mode" />
      <element control_type="dropdownlist" default="false" label="Anti Jitter Filter" name="anti-jitter-filter">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element control_type="dropdownlist" default="true" label="Send Periodic Reports" name="send-value-change-reports">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element label="Sensor Name/Label" name="sensor-name" />
    </command>
    <configItem name="serial-port" description="Serial port controller is attached to" />
    <configItem name="sensor-config" description="File sensor configuration data is stored in" />
    <command description="Configure Sensor for Inclusive Range" msg_schema="maxbotix.basic" msg_type="cmnd" name="Configure Inclusive Range Sensor">
      <element control_type="numeric" default="0" label="Sensor #" maxval="12" name="sensor-id" />
      <element default="configure" name="command" />
      <element control_type="numeric" default="255" label="High side, in inches, of range" maxval="255" minval="1" name="range-high" />
      <element default="true" label="Report Distance Changes Automatically" name="send-value-change-reports" control_type="dropdownlist">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element control_type="dropdownlist" default="true" label="Report Range Changes Automatically" name="send-range-change-reports">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element control_type="dropdownlist" default="false" label="Send Simplified Range Change Reports" name="send-simple-range-change-reports">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element control_type="numeric" default="1" label="Low side, in inches, of range" maxval="255" minval="1" name="range-low" />
      <element default="inclusive_range" name="sensor-mode" />
      <element control_type="dropdownlist" default="false" label="Anti Jitter Filter" name="anti-jitter-filter">
        <option label="False" value="false" />
        <option label="True" value="true" />
      </element>
      <element label="Sensor Name/Label" name="sensor-name" />
    </command>
    <command description="Request Maxbotix Gateway info" msg_schema="maxbotix.request" msg_type="cmnd" name="Request Gateway Info">
      <element default="gateinfo" name="request" />
    </command>
    <command description="Request Current Sensors Configuration be sent" msg_schema="sensor.request" msg_type="cmnd" name="Request Sensor Config">
      <element control_type="numeric" default="0" label="Sensor #" maxval="12" name="device" />
      <element default="current" name="request" />
      <element default="config" name="type" />
    </command>
    <command description="Request Current Sensor value be sent" msg_schema="sensor.request" msg_type="cmnd" name="Request Sensor Value">
      <element control_type="numeric" default="0" label="Sensor #" maxval="12" name="device" />
      <element default="current" name="request" />
      <element default="distance" name="type" />
    </command>
    <trigger description="Gateway Rebooted" msg_schema="maxbotix.gateway" msg_type="trig" name="Gateway Rebooted">
      <element default="reboot" name="action" />
    </trigger>
    <trigger description="Sensor Distance Update" msg_schema="sensor.basic" msg_type="trig" name="Sensor Distance Update">
      <element control_type="numeric" label="Sensor #" maxval="12" name="device" />
      <element default="distance" name="type" />
      <element label="Current Distance" name="current" control_type="numeric" maxval="255" />
      <element label="Sensor Name (if any)" name="sensor-name" />
    </trigger>
    <trigger description="Sensor Range Update" msg_schema="sensor.basic" msg_type="trig" name="Sensor Range Update">
      <element control_type="numeric" label="Sensor #" maxval="12" name="device" />
      <element default="range" name="type" />
      <element control_type="dropdownlist" label="Sensor Object Range State" name="current">
        <option label="In" value="in" />
        <option label="Out" value="out" />
      </element>
      <element label="Range entered/exited via" name="range-via" />
      <element label="Sensor Name (if any)" name="sensor-name" />
    </trigger>
    <trigger description="Maxbotix Controller Gateway Info" msg_schema="maxbotix.gateinfo" msg_type="stat" name="Gateway Info">
      <element label="Version of this controllers firmware" name="controller-version" />
      <element control_type="numeric" label="# of sensors possible for controller" maxval="255" minval="1" name="sensor-count" />
      <element label="List of valid sensor IDs" name="sensor-id-list" />
    </trigger>
    <trigger description="Sensor Configuration" msg_schema="maxbotix.senscnfg" msg_type="stat" name="Sensor Configuration">
      <element control_type="numeric" label="Sensor #" maxval="12" name="sensor-id" />
      <element label="Name of sensor (if any)" name="sensor-name" />
      <element control_type="numeric" label="# of second for reports (when perioidic)" maxval="255" minval="1" name="report-period" />
      <element control_type="numeric" label="Reporting change threashold (for triggered)" maxval="255" minval="1" name="report-threshold" />
      <element control_type="numeric" label="Low Range for reporting (for range sensors)" maxval="255" minval="1" name="range-low" />
      <element control_type="numeric" label="High Range for reporting (for range sensors)" maxval="255" minval="1" name="range-high" />
      <element control_type="dropdownlist" label="Does sensor send Value Change reports?" name="send-value-change-reports">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element control_type="dropdownlist" label="Does sensor send Range Change reports?" name="send-range-change-reports">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element control_type="dropdownlist" label="Does sensor send simplfied range change reports?" name="send-simple-range-change-reports">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element control_type="dropdownlist" label="Sensor Mode" name="sensor-mode">
        <option label="Disabled" value="disabled" />
        <option label="Polled" value="polled" />
        <option label="Periodic" value="periodic" />
        <option label="Triggered" value="triggered" />
        <option label="Inclusive Range" value="inclusive_range" />
        <option label="Exclusive Range" value="exclusive_range" />
        <option label="Manual Output" value="manual_output" />
        <option label="Pulsed Output" value="pulse_output" />
        <option label="Ranged Output" value="range_output" />
        <option label="Digital Input" value="input" />
      </element>
      <element control_type="dropdownlist" label="Is Sensors Anti Jitter Filter Enabled" name="anti-jitter-filter">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element control_type="dropdownlist" label="Is Input Debouncing Enabled?" name="debounce-input">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element control_type="dropdownlist" label="Digital Output Initial/Idle state" name="output-idle">
        <option label="TriState" value="tristate" />
        <option label="Low" value="low" />
        <option label="High" value="high" />
      </element>
      <element control_type="dropdownlist" label="Digital Output Active State" name="output-active">
        <option label="TriState" value="tristate" />
        <option label="Low" value="low" />
        <option label="High" value="high" />
      </element>
      <element control_type="numeric" label="Output Related to Sensor #" maxval="12" name="output-def" />
    </trigger>
    <trigger description="Sensor Configuration Changed" msg_schema="maxbotix.senscnfg" msg_type="trig" name="Sensor Configuration Changed">
      <element control_type="numeric" label="Sensor #" maxval="12" name="sensor-id" />
      <element label="Name of sensor (if any)" name="sensor-name" />
      <element control_type="numeric" label="# of second for reports (when perioidic)" maxval="255" minval="1" name="report-period" />
      <element control_type="numeric" label="Reporting change threashold (for triggered)" maxval="255" minval="1" name="report-threshold" />
      <element control_type="numeric" label="Low Range for reporting (for range sensors)" maxval="255" minval="1" name="range-low" />
      <element control_type="numeric" label="High Range for reporting (for range sensors)" maxval="255" minval="1" name="range-high" />
      <element control_type="dropdownlist" label="Does sensor send Value Change reports?" name="send-value-change-reports">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element control_type="dropdownlist" label="Does sensor send Range Change reports?" name="send-range-change-reports">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element control_type="dropdownlist" label="Does sensor send simplfied range change reports?" name="send-simple-range-change-reports">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element control_type="dropdownlist" label="Sensor Mode" name="sensor-mode">
        <option label="Disabled" value="disabled" />
        <option label="Polled" value="polled" />
        <option label="Periodic" value="periodic" />
        <option label="Triggered" value="triggered" />
        <option label="Inclusive Range" value="inclusive_range" />
        <option label="Exclusive Range" value="exclusive_range" />
        <option label="Manual Output" value="manual_output" />
        <option label="Pulsed Output" value="pulse_output" />
        <option label="Ranged Output" value="range_output" />
        <option label="Digital Input" value="input" />
      </element>
      <element control_type="dropdownlist" label="Is Sensors Anti Jitter Filter Enabled" name="anti-jitter-filter">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element control_type="dropdownlist" label="Is Input Debouncing Enabled?" name="debounce-input">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element control_type="dropdownlist" label="Digital Output Initial/Idle state" name="output-idle">
        <option label="TriState" value="tristate" />
        <option label="Low" value="low" />
        <option label="High" value="high" />
      </element>
      <element control_type="dropdownlist" label="Digital Output Active State" name="output-active">
        <option label="TriState" value="tristate" />
        <option label="Low" value="low" />
        <option label="High" value="high" />
      </element>
      <element control_type="numeric" label="Output Related to Sensor #" maxval="12" name="output-def" />
    </trigger>
    <trigger description="Sensor Distance Measurement" msg_schema="sensor.basic" msg_type="stat" name="Sensor Distance">
      <element control_type="numeric" label="Sensor #" maxval="12" name="device" />
      <element default="distance" name="type" />
      <element label="Current Distance Reading" name="current" control_type="numeric" maxval="255" />
      <element label="Sensor Name (if any)" name="sensor-name" />
    </trigger>
    <command description="Configure Sensor as Digital Input" msg_schema="maxbotix.basic" msg_type="cmnd" name="Configure Digital Input">
      <element control_type="numeric" default="0" label="Sensor #" maxval="12" name="sensor-id" />
      <element default="configure" name="command" />
      <element control_type="dropdownlist" default="false" label="Enable Input Debouncing" name="debounce-input">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element default="input" name="sensor-mode" />
      <element control_type="dropdownlist" default="true" label="Report Input State Changes Automatically" name="send-value-change-reports">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element label="Sensor Name/Label" name="sensor-name" />
    </command>
    <command description="Configure Sensor for Exclusive Range" msg_schema="maxbotix.basic" msg_type="cmnd" name="Configure Exclusive Range Sensor">
      <element control_type="numeric" default="0" label="Sensor #" maxval="12" name="sensor-id" />
      <element default="configure" name="command" />
      <element control_type="numeric" default="255" label="High side, in inches, of excluded range" maxval="255" minval="1" name="range-high" />
      <element control_type="dropdownlist" default="true" label="Report Distance Changes Automatically" name="send-value-change-reports">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element control_type="dropdownlist" default="true" label="Report Range Changes Automatically" name="send-range-change-reports">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element control_type="dropdownlist" default="false" label="Send Simplified Range Change Reports" name="send-simple-range-change-reports">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element control_type="numeric" default="1" label="Low side, in inches, of excluded range" maxval="255" minval="1" name="range-low" />
      <element default="exclusive_range" name="sensor-mode" />
      <element control_type="dropdownlist" default="false" label="Anti Jitter Filter" name="anti-jitter-filter">
        <option label="True" value="true" />
        <option label="False" value="false" />
      </element>
      <element label="Sensor Name/Label" name="sensor-name" />
    </command>
    <command description="Configure Sensor as Manual Output" msg_schema="maxbotix.basic" msg_type="cmnd" name="Configure Manual Output">
      <element control_type="numeric" default="0" label="Sensor #" maxval="12" name="sensor-id" />
      <element default="configure" name="command" />
      <element default="manual_output" name="sensor-mode" />
      <element control_type="dropdownlist" default="tristate" label="Initial Output State" name="output-idle">
        <option label="TriState" value="tristate" />
        <option label="Low" value="low" />
        <option label="High" value="high" />
      </element>
      <element label="Sensor Name/Label" name="sensor-name" />
    </command>
    <command description="Configure Sensor as a Pulsed Output" msg_schema="maxbotix.basic" msg_type="cmnd" name="Configure Pulsed Output">
      <element control_type="numeric" default="0" label="Sensor #" maxval="12" name="sensor-id" />
      <element default="configure" name="command" />
      <element default="pulse_output" name="sensor-mode" />
      <element control_type="dropdownlist" default="tristate" label="Initial/Idle Output State" name="output-idle">
        <option label="TriState" value="tristate" />
        <option label="Low" value="low" />
        <option label="High" value="high" />
      </element>
      <element control_type="dropdownlist" default="high" label="Pulse Output State" name="output-active">
        <option label="TriState" value="tristate" />
        <option label="Low" value="low" />
        <option label="High" value="high" />
      </element>
      <element control_type="numeric" default="0" label="Linked to Reference Sensor #" maxval="12" name="output-ref" />
      <element default="" label="Sensor Name/Label" name="sensor-name" />
    </command>
    <command description="Configure Sensor as Range controlled Output" msg_schema="maxbotix.basic" msg_type="cmnd" name="Configure Ranged Output">
      <element control_type="numeric" default="0" label="Sensor #" maxval="12" name="sensor-id" />
      <element default="configure" name="command" />
      <element default="range_output" name="sensor-mode" />
      <element control_type="dropdownlist" default="tristate" label="Out of Range State" name="output-idle">
        <option label="TriState" value="tristate" />
        <option label="Low" value="low" />
        <option label="High" value="high" />
      </element>
      <element control_type="dropdownlist" default="high" label="In-Range State" name="output-active">
        <option label="TriState" value="tristate" />
        <option label="Low" value="low" />
        <option label="High" value="high" />
      </element>
      <element control_type="numeric" default="0" label="Linked to Reference Sensor #" maxval="12" name="output-ref" />
      <element label="Sensor Name/Label" name="sensor-name" />
    </command>
    <command description="Request current Digital Input state" msg_schema="sensor.request" msg_type="cmnd" name="Request Input State">
      <element control_type="numeric" default="0" label="Sensor #" maxval="12" name="device" />
      <element default="current" name="request" />
      <element default="input" name="type" />
    </command>
    <command description="Set Manual Output State" msg_schema="maxbotix.basic" msg_type="cmnd" name="Set Output State">
      <element default="set_output" name="command" />
      <element control_type="numeric" default="0" label="Sensor/Output to Change" maxval="12" name="sensor-id" />
      <element control_type="dropdownlist" default="tristate" label="Output State" name="output-active">
        <option label="TriState" value="tristate" />
        <option label="Low" value="low" />
        <option label="High" value="high" />
      </element>
    </command>
    <trigger description="Digital Input State Update" msg_schema="sensor.basic" msg_type="trig" name="Digital Input Update">
      <element control_type="numeric" label="Sensor #" maxval="12" name="device" />
      <element default="input" name="type" />
      <element control_type="dropdownlist" label="Current Input State" name="current">
        <option label="Low" value="low" />
        <option label="High" value="high" />
      </element>
      <element label="Sensor Name (if any)" name="sensor-name" />
    </trigger>
    <trigger description="State of Digital Input" msg_schema="sensor.basic" msg_type="stat" name="Digital Input State">
      <element control_type="numeric" label="Sensor #" maxval="12" name="device" />
      <element default="input" name="type" />
      <element control_type="dropdownlist" label="Input State" name="current">
        <option label="Low" value="low" />
        <option label="High" value="high" />
      </element>
      <element label="Sensor Name (if any)" name="sensor-name" />
    </trigger>
  </device>
  <device id="cdp1802-twitter" version="1.0.0" description="Twitter Interface" info_url="http://www.xPL4Java.org">
    <configItem name="twaccount" description="Twitter Account Name" />
    <configItem name="twpassword" description="Twitter Account Password" />
    <command description="Send a Twitter Message" msg_schema="sendmsg.twitter" msg_type="cmnd" name="Send Twitter">
      <element label="Message" name="body" />
      <element default="0" label="Account" name="to" />
    </command>
  </device>
</xpl-plugin>

