X-keys XC-DMX512T Data Report | Main Page
General Information
The X-keys XC-DMX512T-RJ45 is a device that can transmit user provided data into the DMX512 communication protocol or read DMX data from DMX controllers depending on the configuration. By default the XC-DMX512T is configured for transmission. An RJ-45 connector is provided for outputting and standard daisy chaining of the DMX signal. Using the P.I. Engineering SDK samples users can create a software solution to driving their DMX peripherals. In addition the XC-DMX512T-R45 has 8 digital inputs (4 ports with a left and right on each) to allow for switches to be connected, 4 digital input pins located on header J7, and 4 digital output pins located on header J8.
VID
|
05f3h
|
---|---|
XC-DMX512T-RJ45
|
04C9h or 1225
|
Consumer Usage Page
|
1
|
Usage Page
|
000Ch or 12
|
PID #1 Endpoints: Consumer Usage Page Input and Output (Hid Usage Page 12,
Hid Usage 1), Keyboard (Hid Usage Page 1, Hid Usage 6).
The XC-DMX512T is an Android enabled device. This means the device can be enumerated, read, and written to on Android OS that support host USB, generally 3.1 or higher.
IAB-DMX512T is a standard USB HID device and is supported by P.I. Engineering's Macroworks 3.1, X-keys Basic Setup, X-keys Setup for Mac, and our many SDKs.
X-keys XC-DMX512T Input Report
Report Length: 37 bytes
1a. General Incoming Data for XC-DMX512T-RJ45 Switch Data
This data is returned when new data is detected such as button presses or unit id change. This report can be manually stimulated by sending an output report: Generate Data which is very useful for obtaining the initial state of the device immediately after enumeration.
Byte 1*
|
Byte 2
|
Byte 3
|
Byte 4
|
Byte 5
|
Byte 6
|
Bytes 7-32
|
Bytes 33-36
|
Byte 37
|
Constant | Unit ID | Data Type | Jacks 1-4 | Digital Inputs | NumLck, CapsLck, ScrLck | Reserved | Time Stamp | Reserved |
0
|
<data>
|
DT
|
D1
|
D2
|
DS
|
value
|
Time
|
value
|
DT: Data Type value of 0 or 2 indicates the following data is a
General Incoming Data report, 2 if generated by the output report: Generate
Data. Data Type value of 214 (0xd6) indicates a Descriptor Data Report,
see below. Data Type value of 224 (0xE0) indicates a Custom Data Report,
see below.
D1: If using a splitter to read both L and R then for all
bits 0 for switch open, 1 for switch closed. If plugging in a mono switch
to the jack then the corresponding R will always be closed for that jack.
Bit 1=1R, bit 2=1L, bit 3=2R, bit 4=2L, bit 5=3R, bit 6=3L, bit 7=4R, bit
8=4L.
D2: Bit 1=Digital Input 1, bit 2=Digital Input 2, bit 3=Digital
Input 3, bit 4=Digital Input 4, bits 5-8=NA
DS: Bit 1=NumLock, bit 2=CapsLock, bit 3=ScrLock.
Time: If enabled using Enable Time Stamp output report gives a time
in ms starting from when the device was plugged into a port in 4 bytes where
byte 33 is the MSB and byte 36 is the LSB.
2. Descriptor Data
This data is returned after an output report: Request for Descriptor is sent.
Byte 1*
|
Byte 2
|
Byte 3
|
Byte 4
|
Byte 5
|
Byte 6
|
Byte 7
|
Byte 8
|
Byte 9
|
Byte 10
|
Byte 11
|
Byte 12
|
Byte 13
|
Byte 14
|
Byte 15
|
Byte 16
|
Byte 17
|
Byte 18
|
Byte 19
|
Byte 20
|
Bytes 21-37
|
Constant | Unit ID | Data Type | Mode | Key mapstart | Layer2 Offset | Constant | Constant | Max Columns | Max Rows | LED States | Version | PID Low | PID Hi | Key mapstart hi | Max Address lo | Max Address hi | Digital Output States | DMX Mode | Default DMX Mode | Reserved |
0
|
<data>
|
214
|
0
|
128
|
128
|
255
|
255
|
2
|
8
|
LEDs
|
<data>
|
PIDL
|
PIDH
|
0
|
value
|
value
|
DO
|
DMX1
|
DMX2
|
value
|
LEDs: Current on/off states of the 2 indicator LEDs . Bits 1 ,2
3, 4, 5=na, bit 7=Green LED, and bit 8=Red LED.
PIDL: LSB of the Product Identification number or PID.
PIDH: MSB of the Product Identification number or PID.
DO: Current on/off states of the 4 digital outputs. Bit 1=Digital
Output 1, bit 2=Digital Output 2, bit 3=Digital Output 3, and bit 4=Digital
Output 4, bits 5, 6, 7, 8=na.
DMX1: Current DMX mode of the device, 0=transmit, 1=receive, factory
default is transmit. This mode can be changed by sending a Set Mode output
report.
DMX2: Default DMX mode, ie DMX mode when device is plugged in, 0=transmit,
1=receive, factory default is transmit. The default mode can be changed
by sending a Save Mode output report.
3. Custom Data
This data is returned after an output report: Generate Custom Data is sent.
Byte 1*
|
Byte 2
|
Byte 3
|
Byte 4
|
Byte 5
|
Byte 6
|
Byte 7
|
Byte 37
|
Constant | Unit ID | Data Type | Count of custom bytes to follow | Custom byte 1 | Custom byte 2 | Custom byte 3... | Reserved |
0
|
<data>
|
224
|
Count
|
B1
|
B2
|
B3...
|
value
|
Count: Number of custom bytes to follow, maximum value 32.
B1: 1st custom byte.
B2: 2nd custom byte.
B3: 3rd custom byte and so on for as many bytes as specified in Count.
4. Check Dongle Key
This is received immediately following a Check Dongle Key output report is sent. The four values R0-R3 are required to continue the check. See Dongle Implementation for further details.
Byte 1*
|
Byte 2
|
Byte 3
|
Byte 4
|
Byte 5
|
Byte 6
|
Byte 7
|
Bytes 8 to 37
|
Constant | Unit ID | Data Type | 1st byte returned from hash | 2nd byte returned from hash | 3rd byte returned from hash | 4th byte returned from hash | Reserved |
0
|
<data>
|
193
|
R0
|
R1
|
R2
|
R3
|
value
|
R0: Value need for comparison to check for correct dongle key.
R1: Value need for comparison to check for correct dongle key.
R2: Value need for comparison to check for correct dongle key.
R3: Value need for comparison to check for correct dongle key.
5. DMX Write Length
This data is returned after an output report: Get DMX Write Length is sent.
Byte 1*
|
Byte 2
|
Byte 3
|
Byte 4
|
Byte 5
|
Bytes 6 to 37
|
Constant | Unit ID | Data Type | DMX Length LSB | DMX Length MSB | Reserved |
0
|
<data>
|
163
|
LenLo
|
LenHi
|
value
|
LenLo: Least significant byte of the DMX Length=256*LenHi+LenLo.
LenHi: Most significant byte of the DMX Length=256*LenHi+LenLo.
6. DMX Read Length
This data is returned after an output report: Get DMX Read Length is sent.
Byte 1*
|
Byte 2
|
Byte 3
|
Byte 4
|
Byte 5
|
Bytes 6 to 37
|
Constant | Unit ID | Data Type | DMX Length LSB | DMX Length MSB | Reserved |
0
|
<data>
|
146
|
LenLo
|
LenHi
|
value
|
LenLo: Least significant byte of the DMX Length=256*LenHi+LenLo.
LenHi: Most significant byte of the DMX Length=256*LenHi+LenLo.
7. Read DMX Data Manually
This data is returned after an output report: Read DMX Data Manually is sent. After sending the output report with the desired start address, 20 bytes with their current values are returned. In this documentation "address" has the same meaning as "slot".
Byte 1*
|
Byte 2
|
Byte 3
|
Byte 4
|
Byte 5
|
Byte 6
|
Bytes 7-27
|
Bytes 28-32
|
Bytes 33-36
|
Byte 37
|
Constant | Unit ID | Data Type | Start Address LSB | Start Address MSB | Number of Addresses | Value for Start Address to Start Address + Count -1 | Reserved | Time Stamp | Reserved |
0
|
<data>
|
165
|
AddLo
|
AddHi
|
Count
|
CurVals
|
value
|
Time
|
value
|
Count: The number of values (bytes) to follow. This is 20 unless
the Start Address is greater than 491, then Count will be 512-Start Address.
AddLo: Least significant byte of the Start Address=256*AddHi+AddLo.
This is the same address entered in the Read DMX Data Manually command.
AddHi: Most significant byte of the Start Address=256*AddHi+AddLo.
CurVals: Starting at Byte 7, the value of the Start Address, value
of Start Address+1, etc. A total of 20 addresses are read per input report.
For example, if Start Address = 300 and Count = 20, values for addresses
300 to 319 are contained in Bytes 7-27.
Time: If enabled using Enable Time Stamp output report gives a time
in ms starting from when the device was plugged into a port in 4 bytes where
byte 33 is the MSB and byte 36 is the LSB.
8. Read DMX Data by Notification
This data is returned when new DMX data is detected within the user defined range of addresses. User must enable DMX notification and desired address ranges by sending the output report: Enable Read DMX Data by Notification. If more than one address changes then multiple reports will be sent. The Time Stamp will be the same if the values changed at the same time. In this documentation "address" has the same meaning as "slot".
Byte 1*
|
Byte 2
|
Byte 3
|
Byte 4
|
Byte 5
|
Byte 6
|
Byte 7
|
Bytes 8-32
|
Bytes 33-36
|
Byte 37
|
Constant | Unit ID | Data Type | Address LSB | Address MSB | Number of Addresses | Value for Address | Reserved | Time Stamp | Reserved |
0
|
<data>
|
147
|
AddLo
|
AddHi
|
Count
|
CurVal
|
value
|
Time
|
value
|
Count: The number of values (bytes) to follow. In this case Count
will always be 1. Only 1 address and corresponding value is reported per
input report.
AddLo: Least significant byte of the Address with the changed data,
Address=256*AddHi+AddLo.
AddHi: Most significant byte of the Address with the changed data,
Address=256*AddHi+AddLo.
CurVal: The changed data for the Address.
Time: If enabled using Enable Time Stamp output report gives a time
in ms starting from when the device was plugged into a port in 4 bytes where
byte 33 is the MSB and byte 36 is the LSB.
*This first byte may be omitted on some non-PC operating systems. On
these systems the read and write lengths will be 1 byte smaller.
X-keys XC-DMX512T Output Report
The following types of output reports are shown in the summary below. Please be aware that several of these commands result in writing to the device's eeprom which has a limit to the number of writes allowed before it is "burnt out". The manufacturer's specification is 50,000 eeprom writes. Because of this we recommend the commands designated with e be executed rarely and not within timing loops. Note, the first byte listed in this documentation is 0 and represents the report ID. This is not present on some non-PC operating systems. So when sending an output report on Android for example, eliminate this byte.
Report
|
Format
|
Description
|
---|---|---|
1
|
0, 179, Index, State, 0... | Set LEDs and Digital Outputs |
2
|
0, 189, UnitID, 0... | Set Unit IDe |
3
|
0, 214, 0... | Get Descriptor |
4
|
0, 177, 0... | Generate Data |
5
|
0, 224, Count, B1, B2, B3..., 0... | Generate Custom Data |
6
|
0, 195, Version LSB, Version MSB, 0... | Set Version Numbere |
7
|
0, 238, 0... | Reboot Device |
8
|
0, 201, Modifier, 0, HC1, HC2, HC3, HC4, HC5, HC6, 0... | Keyboard Reflector |
9
|
0, 192, K0, K1, K2, K3, 0... | Set Dongle Keye |
10
|
0, 193, N0, N1, N2, N3, 0... | Check Dongle Key |
11
|
0, 161, Add LSB, Add MSB, Span, B1, B2,... | Load DMX Write Buffer |
12
|
0, 162, Length LSB, Length MSB, 0... | Set DMX Write Length |
13
|
0, 163, 0... | Get DMX Write Length |
14
|
0, 164, 0... | Clear DMX Write Buffer |
15
|
0, 169, Mode, 0... | Set Mode (transmit or receive) |
16
|
0, 172, Mode, 0... | Save Modee |
17
|
0, 171, 0... | Set and Clear for DMX for Read |
18
|
0, 165, StartAddLo, StartAddrHi, 0... | Read DMX Data Manually |
19
|
0, 147, Enable, StartAddLo, StartAddrHi, EndAddLo, EndAddHi, 0... | Enable Read DMX Data by Notification |
20
|
0, 146, 0... | Get DMX Read Length |
eCommand writes to EEPROM, do not
perform this command excessively, do not exceed 50,000 writes to EEPROM.
Endpoint: Vendor Defined Usage Page.
Report Length: 36 bytes.
1. Set LED
Send this output report to control the green or red indicator LED or the four digital outputs.
Byte 1*
|
Byte 2
|
Byte 3
|
Byte 4
|
Bytes 5-36
|
Constant | Command | LED Index | LED State | Constant |
0
|
179
|
Index
|
State
|
0
|
Index: 1 = Digital Output 1, 2 = Digital Output 2, 3 = Digital Output
3, 4 = Digital Output 4, 6 = Green LED, 7 = Red LED.
State: 0 = off, 1 = on, 2= flash.
2. Set Unit ID
Send this output report to set the Unit ID of the device. This is useful if connecting more than one of the same device to the a computer.
Byte 1*
|
Byte 2
|
Byte 3
|
Bytes 4-36
|
Constant | Command | Unit ID (0-255) | Constant |
0
|
189
|
value
|
0
|
3. Get Descriptor
After sending this output report a Descriptor Data input report will be generated.
Byte 1*
|
Byte 2
|
Bytes 3-36
|
Constant | Command | Constant |
0
|
214
|
0
|
4. Generate Data
After sending this output report a General Incoming Data input report will be generated with bit 2 of PS set. This is useful in determining the initial state of the device before any data has changed.
Byte 1*
|
Byte 2
|
Bytes 3-36
|
Constant | Command | Constant |
0
|
177
|
0
|
5. Generate Custom Data
After sending this output report a Custom Data input report will be generated with Byte 3 set to 224 and the count and custom bytes following.
Byte 1*
|
Byte 2
|
Byte 3
|
Byte 4
|
Byte 5
|
Byte 6...
|
Bytes (Count+4) to 36
|
Constant | Command | Count of custom bytes to follow | Custom byte 1 | Custom byte 2 | Custom byte 3... | Constant |
0
|
224
|
Count
|
B1
|
B2
|
B3...
|
0
|
Count: Number of custom bytes to follow.
B1: 1st custom byte.
B2: 2nd custom byte.
B3: 3rd custom byte and so on for as many bytes as specified in Count.
6. Set Version Number
Send this output report to set the Version of the device. This is not the firmware version given in the descriptor but a 2 byte number (0-65535) available on enumeration. Version = (256*Version MSB) + Version LSB. The value is "remembered" so if it is changed, using this report, the device must be rebooted. The device can be rebooted by replugging it or by sending the output report : Reboot Device.
Byte 1*
|
Byte 2
|
Byte 3
|
Byte 4
|
Bytes 5-36
|
Constant | Command | Version LSB (0-255) | Version MSB (0-255) | Constant |
0
|
195
|
value
|
value
|
0
|
7. Reboot Device
Send this output report to reboot the device without having to unplug it. After sending this report the device must be re-enumerated.
Byte 1*
|
Byte 2
|
Bytes 3-36
|
Constant | Command | Constant |
0
|
238
|
0
|
8. Keyboard Reflector
Sends native keyboard messages.
Byte 1*
|
Byte 2
|
Byte 3
|
Byte 4
|
Byte 5
|
Byte 6
|
Byte 7
|
Byte 8
|
Byte 9
|
Byte 10
|
Bytes 11-36
|
Constant | Command | Modifier | Constant | Hid Code 1 | Hid Code 2 | Hid Code 3 | Hid Code 4 | Hid Code 5 | Hid Code 6 | Constant |
0
|
201
|
Modifier
|
0
|
HC1
|
HC2
|
HC3
|
HC4
|
HC5
|
HC6
|
0
|
Modifier: Bit 1=Left Ctrl, bit 2=Left Shift, bit 3=Left Alt, bit
4=Left Gui, bit 5=Right Ctrl, bit 6=Right Shift, bit 7=Right Alt, bit 8=Right
Gui.
HC1=Hid Code for 1st key down, or 0 to release previous key press
in this byte position.
HC2=Hid Code for 2nd key down, or 0 to release previous key press
in this byte position.
HC3=Hid Code for 3rd key down, or 0 to release previous key press
in this byte position.
HC4=Hid Code for 4th key down, or 0 to release previous key press
in this byte position.
HC5=Hid Code for 5th key down, or 0 to release previous key press
in this byte position.
HC6=Hid Code for 6th key down, or 0 to release previous key press
in this byte position.
9. Set Dongle Key
Sets the user entered key. Remember these numbers as they are required to check for the key. This is intented to be done once by the developer prior to sale. See Dongle Implemenation for more details.
Byte 1*
|
Byte 2
|
Byte 3
|
Byte 4
|
Byte 5
|
Byte 6
|
Bytes 7-36
|
Constant | Command | 1st byte of key | 2nd byte of key | 3rd byte of key | 4th byte of key | Constant |
0
|
192
|
K0
|
K1
|
K2
|
K3
|
0
|
K0: 1st byte of user determined dongle key, any number 1-254.
K1: 2nd byte of user determined dongle key, any number 1-254.
K2: 3rd byte of user determined dongle key, any number 1-254.
K3: 4th byte of user determined dongle key, any number 1-254.
10. Check Dongle Key
Checks the key that was entered in Set Dongle Key. This is intented to be done by the developer within their own software to determine if the connected X-keys device is the one they sold to the customer. 4 random bytes along with the actual key are entered into the DongleCheck2() hash function of the Piehid32.dll/PieHid32Net.dll which returns 4 bytes. Then after sending this output report a Check Dongle Key input report will be received containing the same 4 bytes returned from the hash if the key matches. See Dongle Implemenation for more details.
Byte 1*
|
Byte 2
|
Byte 3
|
Byte 4
|
Byte 5
|
Byte 6
|
Bytes 7-36
|
Constant | Command | Random number | Random number | Random number | Random number | Constant |
0
|
192
|
N0
|
N1
|
N2
|
N3
|
0
|
K0: 1st byte of a random number that was used in the hash, any number
1-254.
K1: 2nd byte of a random number that was used in the hash, any number
1-254.
K2: 3rd byte of a random number that was used in the hash, any number
1-254.
K3: 4th byte of a random number that was used in the hash, any number
1-254.
11. Load DMX Write Buffer
The DMX Write Buffer is an array of up to 512 bytes which is continously transmitted by the XC-DMX512T as long as the DMX Write Length (last address to transmit + 1) is greater than 0. This output report is used to load values into the array in user defined chunks. When the XC-DMX512T is plugged in the values in this array and the DMX Write Length are 0. When this output report is sent it checks the current DMX Write Length and if it is too small, increases it automatically to Start Address+ByteCount then it transmits the buffer from address 1 to the DMX Write Length. If the Start Address+ByteCount is greather than 512, it sets DMX Write Length to 512, truncating the bytes over 512. This output report will never decrease the DMX Write Length so if devices on upper addresses are removed or no longer needed and the user wishes to shorten the DMX Write Length, the output report Set DMX Write Length can be used to manually set it. In this documentation "address" has the same meaning as "slot".
Byte 1*
|
Byte 2
|
Byte 3
|
Byte 4
|
Byte 5
|
Byte 6
|
Byte 7
|
Byte 8...
|
Bytes x to 36
|
Constant | Command | Start Address LSB | Start Address MSB | Number of Addresses to Load | DMX value for Start Address | DMX value for Start Address+1 | DMX value for Start Address+2... | DMX value or Constant |
0
|
161
|
AddLo
|
AddHi
|
ByteCount
|
B1
|
B2
|
B3...
|
value or 0
|
AddLo: The least significant byte of the Start Address which is
the address to begin loading the DMX Write Buffer.
AddHi: The most significant byte of the Start Address which is the
address to begin loading the DMX Write Buffer.
ByteCount: Number of addresses to load, maximum value is 31 as output
report length is 36.
B1: DMX value for address Start Address, 0-255.
B2: DMX value for address (Start Address + 1), 0-255.
B3: DMX value for address (Start Address + 2), 0-255 and so on for
as many bytes as specified in the Span. If less than 31 address to load
then fill remaining bytes with 0.
Example:
Below is the DMX Write Buffer on startup or hotplug of the XC-DMX512T, all addresses 0 to 511 are set to 0. The DMX Write Length is 0. Nothing transmitted.
Address
|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19... |
Value
|
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0... |
Next a Load DMX Write Buffer output report is sent with Start Address = 3, ByteCount = 3, and 255 for values corresponding to addresses 3, 4, and 5 (0, 161, 3, 0, 3, 255, 255, 255, 0...) which results in the DMX Write Buffer shown below and DMX Write Length = Start Address + ByteCount = 6. Continuous tranmission of 6 bytes corresponding to addresses 0 to 5. Only the 3 addresses were modified, all other addresses remain untouched.
Address
|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19... |
Value
|
0 | 0 | 0 | 255 | 255 | 255 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0... |
Next a Load DMX Write Buffer output report is sent with Start Address = 12, ByteCount = 4, and 255 for values corresponding to addresses 12, 13, 14, 15 (0, 161, 12, 0, 4, 255, 255, 255, 255, 0..) which results in the DMX WriteBuffer shown below. Since the current DMX Write Length of 6 is less than the new Start Address + ByteCount = 16, it is set to 16 and continuous transmission of 16 bytes corresponding addresses 0 to 15.
Address
|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19... |
Value
|
0 | 0 | 0 | 255 | 255 | 255 | 0 | 0 | 0 | 0 | 0 | 0 | 255 | 255 | 255 | 255 | 0 | 0 | 0 | 0... |
Finally a Load DMX Write Buffer output report is sent with Start Address=8, ByteCount=2, and values 128 for values corresponding to addresses 8 and 9 (0, 161, 8, 0, 2, 128, 128, 0...) which results in the DMX Write Buffer shown below. Since the current DMX Write Length of 16 is greater than this Start Address + ByteCount = 10, it remains at 16. Continuous transmission of 16 bytes corresponding addresses 0 to 15.
Address
|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19... |
Value
|
0 | 0 | 0 | 255 | 255 | 255 | 0 | 0 | 128 | 128 | 0 | 0 | 255 | 255 | 255 | 255 | 0 | 0 | 0 | 0... |
12. Set DMX WriteLength
Normally the DMX Write Length is automatically determined as the DMX Write Buffer is loaded up using the Load Write DMX Buffer output report. However a user may wish to manually set the DMX Write Length. One reason for this may be if devices on the were previously set up on upper addresses are removed or no longer needed and there is no reason to be transmitting out the larger DMX Write Buffer. The smaller the DMX Write Length is the faster the transmission. Setting the DMX Write Length to 0 will stop transmission. A DMX Write Length of 0 will also result in the next Load Write DMX Buffer output report to automatically set the DMX Write Length.
Byte 1*
|
Byte 2
|
Byte 3
|
Byte 4
|
Bytes 5-36
|
Constant | Command | DMX Write Length LSB | DMX Write Length MSB | Constant |
0
|
162
|
LenLo
|
LenHi
|
0
|
LenLo: The least significant byte of the DMX Write Length (0-512).
LenHi: The most significant byte of the DMX Write Length (0-512).
13. Get DMX Write Length
Use this to get the DMX Write Length. After sending this output a DMX Write Length input report will be generated.
Byte 1*
|
Byte 2
|
Bytes 3-36
|
Constant | Command | Constant |
0
|
163
|
0
|
14. Clear DMX Write Buffer
Send this output report to clear the DMX Write Buffer.
Byte 1*
|
Byte 2
|
Bytes 3-36
|
Constant | Command | Constant |
0
|
164
|
0
|
15. Set Mode
Send this output report to set the XC-DMX512T to either transmit mode (factory default) or receive mode. Sending this output report will not save the mode to the eeprom, ie on reboot of the XC-DMX512T it will be in the mode that was saved to the eeprom. To change the mode saved in the eeprom send the Save Mode output report.
Byte 1*
|
Byte 2
|
Byte 3
|
Bytes 4-36
|
Constant | Command | Desired Mode | Constant |
0
|
169
|
Mode
|
0
|
Mode: Enter 0 for transmit (write DMX) and 1 for receive (read DMX).
16. Save Mode
Send this output report to save the desired mode to the eeprom so that when the device is rebooted it will automatically be in the desired mode. Sending this output report does not change the mode the device is currently in. To change the mode the device is currently in, send the Set Mode output report.
Byte 1*
|
Byte 2
|
Byte 3
|
Bytes 4-36
|
Constant | Command | Desired Startup Mode | Constant |
0
|
172
|
Mode
|
0
|
Mode: Enter 0 for transmit (write DMX) and 1 for receive (read DMX).
17. Set and Clear DMX Buffer for Read
Send this output report to both set the mode to receive and to clear the DMX buffer. If the device was previously set up for receive using the Configure Mode output report, sending this output report is not necessary. If the device was previously setup to boot up in receive mode using the Save Mode output report and the device was rebooted, sending this output report is not necessary, the DMX buffer will be cleared automatically on start up.
Byte 1*
|
Byte 2
|
Bytes 3-36
|
Constant | Command | Constant |
0
|
171
|
0
|
18. Read DMX Data Manually
Send the output report to read the DMX values of 20 addresses beginning at the entered Start Address. After sending this output report, a Read DMX Data Manually input report will be generated with the desired data. In this documentation "address" has the same meaning as "slot".
Byte 1*
|
Byte 2
|
Byte 3
|
Byte 4
|
Bytes 5-36
|
Constant | Command | Start Address LSB | Start Address MSB | Constant |
0
|
165
|
AddLo
|
AddHi
|
0
|
AddLo: The least significant byte of the desired Start Address.
AddHi: The most significant byte of the desired Start Address.
For example, if want values of DMX addresses from 300 to 319, Start Address
= 0x012C (300 decimal) so AddHi = 0x01 (1 decimal) and AddLo = 0x2C (44
decimal).
19. Enable Read DMX Data by Notification
Send this output report to enable notification when changes in DMX values occur in the desired address range of Start Address to End Address. If a DMX value changes within the range, including Start Address and End Address, then a Read DMX Data by Notification input report will be generated for that address. If multiple changes occurred then multiple input reports will be sent and the Time Stamp on the input report tells whether the changes occurred at the same time or different times. In this documentation "address" has the same meaning as "slot".
Byte 1*
|
Byte 2
|
Byte 3
|
Byte 4
|
Byte 5
|
Byte 6
|
Bytes 5-36
|
Constant | Command | Start Address LSB | Start Address MSB | End Address LSB | End Address MSB | Constant |
0
|
165
|
StartAddLo
|
StartAddHi
|
EndAddLo
|
EndAddHi
|
0
|
StartAddLo: The least significant byte of the desired Start Address.
StartAddHi: The most significant byte of the desired Start Address.
EndAddLo: The least significant byte of the desired End Address.
EndAddHi: The most significant byte of the desired End Address.
20. Get DMX Read Length
Send this output report to request the DMX read length of the connected device being read from. After sending a DMX Read Length input report will be generated.
Byte 1*
|
Byte 2
|
Bytes 3-36
|
Constant | Command | Constant |
0
|
146
|
0
|
*This first byte may be omitted on some non-PC operating systems. On these systems the read and write lengths will be 1 byte smaller.