HomeUX Driver Collection
Using JdsDriver

This page documents how to use JdsDriver (in JdsDriver.dll), the HomeUX-compatible driver that controls a JDS Technologies IR-XP2 "InfraRed Xpander", which transmits IR (infrared remote control) codes. JdsSimulator (in JdsSimulator.dll) is also documented here.

Page contents:

Hardware & Driver Overview

A JDS Technologies IR-XP2 "InfraRed Xpander"—abbreviated "JDS" in this documentation—is a device that transmits IR (infrared remote control) codes to 1-4 emitter ports, each of which can be connected to a number of transmission LEDs.

JdsDriver allows a HomeUX installation to control a subset of the functionality of a JDS device:

Configuring JdsDriver

JdsDriver is configured in the HomeUX configuration file. Here's the general structure (simplified):

XML
<configuration>
<HomeUXSettings>
</Device>
</HomeUXSettings>
</configuration>

"*" means "zero or more allowed".

Example:

XML
<configuration>
  ...
  <HomeUXSettings>
    ...

    <Device Name="JDS" Driver="JdsDriver.dll"
          sim:SerialPort="JdsSimulator.dll;;Test=0"
          real:SerialPort="COM11,2400,8,n,1">

      <Command Name="TiVo TiVo"          Address="1"   PlayCount="1" EmitterPorts="1,2,3,4" />
      <Command Name="TiVo TV Power"      Address="2"   PlayCount="1" EmitterPorts="1,2,3,4" />
      <Command Name="TiVo Live TV/Guide" Address="3"   PlayCount="1" EmitterPorts="1,2,3,4" />
      <Command Name="TiVo Menu"          Address="4"   PlayCount="1" EmitterPorts="1,2,3,4" />
      <Command Name="TiVo Display"       Address="5"   PlayCount="1" EmitterPorts="1,2,3,4" />
      <Command Name="TiVo Arrow Up"      Address="6"   PlayCount="1" EmitterPorts="1,2,3,4" />
      <Command Name="TiVo Arrow Down"    Address="7"   PlayCount="1" EmitterPorts="1,2,3,4" />
      <Command Name="TiVo Arrow Left"    Address="8"   PlayCount="1" EmitterPorts="1,2,3,4" />
      <Command Name="TiVo Arrow Right"   Address="9"   PlayCount="1" EmitterPorts="1,2,3,4" />

    </Device>

  ...
  </HomeUXSettings>
</configuration>
	

The following subsections describe the JdsDriver configuration file XML elements.

<Device Driver="JdsDriver.dll">

(Required, used within <HomeUXSettings>.) Specifies an instance of JdsDriver, which is used to control a JDS device.

Syntax
XML
<Device
Name="..."
Driver="JdsDriver.dll"
SerialPort="...">
</Device>

"*" means "zero or more allowed".

Attributes

Name

(String, required.) The name you assign to the device.

Driver

(String, required.) Must be "JdsDriver.dll".

SerialPort

(String, required.) A standard HomeUX serial port specification. Identifies the serial port (real or virtual) that the hardware is connected to. When connected to a real serial port, the parameters should be "port-name,2400,8,n,1" in order to correctly operate a JDS unit.

<Command>

(Zero or more, used within <Device Driver="JdsDriver.dll">.) Specifies one JDS command. When this command is played, a specified IR code is transmitted input a given number of times using the specified emitter ports.

Syntax
XML
<Command
Name="..."
Address="..."
PlayCount="..."
EmitterPorts="..."
/>
Attributes

Name

(String, required.) The name you assign to the command.

Address

(Integer, required.) The address of the IR code to transmit, from 1 to the maximum number of IR codes, inclusive.

PlayCount

(Integer, required.) The number of times to transmit the IR code when the command is played.

EmitterPorts

(Comma-separated integers, required.) The IR port(s) to transmit the IR code through; e.g. "1,2,3,4".

Using JdsDriver

JdsDriver implements the following SyncPath schema:

JdsSimulator

JdsSimulator is a HomeUX-compatible virtual serial port implementation that simulates a subset of the serial communication behavior JDS hardware. JdsSimulator performs no real-world actions—the simulation is purely for the purposes of testing a HomeUX installation without having to connect to real hardware.

To use JdsSimulator in HomeUX, set the SerialPort attribute of the <Device Driver="JdsDriver.dll"> configuration element to a string with the following format:

JdsSimulator.dll;;Test=test-number

Parameters:

You can test JdsSimulator independently of HomeUX, using the VSerial console application:

VSerial.exe -echo -dll JdsSimulator.dll;;Test=test-number

JdsSimulator implements a limited simulation—only the following hardware commands are currently supported. (See JDS hardware documentation for information about hardware commands and notifications.)

Note that the commands may appear to be hexadecimal, but in fact they're ASCII. For example, The reset command, 6C82C0CC6D, is 10 ASCII characters. Each command executes as soon as the last character is received—newlines are not used.