Setting things up.
Example: Three DMX lights at address 1,5,9
DMX lights are "Par38A"
DIP switches light 1: dip 1 and 10 on
light 2: dip 1, 3 and 10 on
light 3: dip 1, 4, and 10 on

each light has blue, green, red, and dimmer/stobe channels
Wiring diagram between RS-485 port and 3-pin DIN connector
on the DB9/10-pin connector, pins 1 and 6 are the X+/X- pins, pin 5 is ground
on the DIN, pin 1 is ground, pin 2 is X-, pin 3 is X+
termination between X+ and X- may be required at end of the chain
Running dmxctl demo
if xuart being used, run xuartctl first!
dmxctl --device /dev/<485 port> --demo


EXPLANATION OF DMXCTL OPTIONS

-l | --listen  (seconds)
captures DMX packets for the specified length of time, 
then prints out the events required to reproduce the 
DMX stream in the format used by the --replay option.  
After the specified number of seconds the events are 
printed on standard output.

-r | --replay  (file)
reads events from the specified file and plays them 
over DMX

-a | --autosend
automatically sends DMX packets continuously, even if 
no events are changing the DMX state.  the default is 
to only send a DMX packet when an event occurs.

-c | --channels  (num_channels)
send the specified number of DMX channels.  The default 
is the maximum of 512.  Some devices may not correctly 
receive events if fewer than 512 channels are sent.

-s | --server  (port)
daemonize and run as a server on the specified port.  
If not specified, the default port is 7033.  in server 
mode, the daemon listens to a TCP stream on the 
specified port and looks for 8-byte commands.  These 
commands are encoded in little-endian as a 32-bit 
value containing the number of hundredths of a second 
after start for the event to occur, a 16-bit value 
containing the channel number, an 8-bit value 
containing the value for the channel at that time, 
and an 8-bit command byte:
        u32 tick;
        u16 channel;
        u8 value;
        u8 command;
The following commands are recognized:
        0 = queue event
        1 = ignore tick value, assign value immediately
        2 = run all queued events at their specified times
The server will return a one-byte value for each 
command which will increment sequentially for each 
command processed, and will roll over when it 
reaches 256. When command 2 is run, this value will 
not be returned until all queued events have been 
played.

-d | --device  <host:>port | device_file
the --client option is required if --server is not used.  
Either a DMX server must be specified, or a local device 
file connect to (e.g.) an XUART.

-i | --client  <host:>port | device_file
the --client option is required if --server is not used.  
Either a DMX server must be specified, or a local device 
file connect to (e.g.) an XUART.

-m | --demo
Play a demo DMX sequence to flash three DMX lights as 
described above

