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:
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:
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.
(Required, used within <HomeUXSettings>.) Specifies an instance of JdsDriver, which is used to control a JDS device.
XML |
<Device
Name="..."
Driver="JdsDriver.dll"
SerialPort="...">
</Device>
|
"*" means "zero or more allowed".
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.
(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.
XML |
<Command
Name="..."
Address="..."
PlayCount="..."
EmitterPorts="..."
/>
|
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".
JdsDriver implements the following SyncPath schema:
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:
test-number specifies test behavior. This is for development use only; use 0 to specify normal behavior. The default is 0.
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.
Reset: Syntax:
Resets the simulated hardware.
Play IR code: Syntax (14 ASCII characters, each of which is an uppercase hexadecimal digit, with no spaces):
(memory) is "F5" for the lower memory bank (first 250 IR code), "F7" for the upper memory bank (second 250 IR codes); (address) is the IR code address (1 to 250, inclusive, specified as a 2-digit uppercase hexadecimal number); (play-count) is the number of times to transmit the IR code, specified as a 2-digit uppercase hexadecimal number); (emitter-ports) indicates the emitter ports to use, specified as a 2-digit uppercase hexadecimal number, where the low-order bit is the first port, the next bit is the next port, etc.