<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.openlighting.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=65.57.245.11</id>
		<title>wiki.openlighting.org - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.openlighting.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=65.57.245.11"/>
		<link rel="alternate" type="text/html" href="https://wiki.openlighting.org/index.php/Special:Contributions/65.57.245.11"/>
		<updated>2026-09-18T10:20:35Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.29.1</generator>

	<entry>
		<id>https://wiki.openlighting.org/index.php?title=OLA_developer_info&amp;diff=2558</id>
		<title>OLA developer info</title>
		<link rel="alternate" type="text/html" href="https://wiki.openlighting.org/index.php?title=OLA_developer_info&amp;diff=2558"/>
				<updated>2008-11-13T20:57:54Z</updated>
		
		<summary type="html">&lt;p&gt;65.57.245.11: /* The tool app &amp;quot;lla-usbpro&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Or [[LLA]] code documentation''&lt;br /&gt;
Link to the [[LLA | LLA main page]].&lt;br /&gt;
&lt;br /&gt;
== Drivers and platforms ==&lt;br /&gt;
LLA compiles on Linux and Mac and probably also Windows, but not all drivers work everywhere (yet). Here the status can be listed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Supported Devices/Protocols:&amp;lt;/b&amp;gt;&lt;br /&gt;
{| border=1&lt;br /&gt;
! '''Driver'''!! Linux !! '''Mac OS X''' !! '''Windows'''&lt;br /&gt;
|-&lt;br /&gt;
|| [[:Category:ArtNet|ArtNet]]   || Linux=Yes || ?? || ?? &lt;br /&gt;
|-&lt;br /&gt;
|| [[:Category:ShowNet|ShowNet]] || Linux=Yes || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
|| [[:Category:ESP Net|ESP Net]] || Linux=Yes || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
|| [[:Category:Sandnet|Sandnet]] || Linux=Yes || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
|| [[DMX USB Pro]] || Linux=Yes || ?? || No&lt;br /&gt;
|-&lt;br /&gt;
|| [[Open DMX USB]] 1) || Linux=Yes || ?? || No&lt;br /&gt;
|-&lt;br /&gt;
|| [[DMX 4 Linux]] || Linux=Yes || ?? || No&lt;br /&gt;
|-&lt;br /&gt;
|| [[StageProfi]] || Linux=Yes || ?? || No&lt;br /&gt;
|-&lt;br /&gt;
|| [[:Category:Pathport|Pathport]]  || Linux=in testing || ?? || No&lt;br /&gt;
|-&lt;br /&gt;
|| [[E1.31]] / [[ACN]] || Linux=development started || ?? || No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note 1): Support through the [http://www.erwinrol.com/index.php?opensource/dmxusb.php Linux kernel module from Erwin Rol], as detailed in [[LLA, OpenDMX USB and Q Light Controller Tutorial]].&lt;br /&gt;
&lt;br /&gt;
Unsupported USB devices:&lt;br /&gt;
* [[Peperoni Light| Peperoni]] [[Rodin1]] (but this is supported directly by [[QLC]])&lt;br /&gt;
* [[Peperoni Light|Peperoni]] [[USBDMX21]]&lt;br /&gt;
* [[Anyma uDMX]]&lt;br /&gt;
* [[USB DMX]] from usbdmx.com&lt;br /&gt;
* [[Sandsys]] [[UMX2]]&lt;br /&gt;
* [[Sandsys]] [[UMX4]]&lt;br /&gt;
* [[Velleman K8062]] (no developer info available?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Plugin system ===&lt;br /&gt;
* What is the structure of the plugins?&lt;br /&gt;
&lt;br /&gt;
I'll use plugin to refer to the entire module (Plugin, Devices &amp;amp; Ports), and Plugin to refer to the class that inherits from Plugin.&lt;br /&gt;
 &lt;br /&gt;
Plugins create and register Devices, which each consist of 0 or more Ports. A Plugin generally does a bit of work when it starts, then leaves all work to the individual Devices and Ports.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is the lifecycle of a Plugin object:&lt;br /&gt;
 The create() function is called with a pointer to a PluginAdaptor, this returns a new instance of the Plugin.&lt;br /&gt;
   Obviously the constructor is called - use this to init variables but any real work should be done later.&lt;br /&gt;
 Plugin.start() is called, which calls start_hook()&lt;br /&gt;
   Within start_hook, the Plugin should create Devices and register them by calling plugin_adaptor-&amp;gt;register_device(device).&lt;br /&gt;
 ...&lt;br /&gt;
 At any time we may call get_id(), get_name(), get_desc() on the Plugin.&lt;br /&gt;
 ...&lt;br /&gt;
 Plugin-&amp;gt;stop() is called, which calls stop_hook(). &lt;br /&gt;
   The Plugin should unregister any devices created in start_hook()&lt;br /&gt;
 The destroy() function is called. This should delete the Plugin created in create().&lt;br /&gt;
&lt;br /&gt;
* So how do devices / ports work?&lt;br /&gt;
&lt;br /&gt;
Devices have one or more ports (accessible by port_count() and get_port(i)).&lt;br /&gt;
Ports are where the action happens. They need to provide the following methods:&lt;br /&gt;
  read(uint8_t *, unsigned int)&lt;br /&gt;
  write(uint8_t *, unsigned int)&lt;br /&gt;
&lt;br /&gt;
Universes will then use these methods to read/write data from a port. Write is self explanatory, a call to read is triggered by port-&amp;gt;dmx_changed(). These calls need to be non-blocking, blocking here will delay the main processing loop. To satisfy this, most ports use this sequence of events:&lt;br /&gt;
&lt;br /&gt;
 - register a file descriptor for reading&lt;br /&gt;
 // some time later&lt;br /&gt;
 - receive notification that there is new data&lt;br /&gt;
 - read the data and copy it to a buffer&lt;br /&gt;
 - call dmx_changed() to notify the Universe we have new data&lt;br /&gt;
 - then Universe then calls read()&lt;br /&gt;
&lt;br /&gt;
Often more than one port will use the same file descriptor which is owned by the Device. This means the device is responsible for reading the data and dispatching to the right port. See below for an example.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Here's an example of how dmx data is received from the UsbPro Device.&lt;br /&gt;
&lt;br /&gt;
The UsbProDevice will have been registered using plugin_adaptor-&amp;gt;register_fd(). When input becomes available the following sequence happens:&lt;br /&gt;
  device-&amp;gt;action() // signals the device that new data is available&lt;br /&gt;
    widget-&amp;gt;recv() // tells the widget to read more data&lt;br /&gt;
      widget-&amp;gt;do_recv() // reads the data from the fd&lt;br /&gt;
        widget-&amp;gt;handle_cos() // handles the change-of-state message from the widget&lt;br /&gt;
          device-&amp;gt;new_dmx() // signal the device that new dmx data has arrived &lt;br /&gt;
           port-&amp;gt;dmx_changed() // signal the port that new dmx data has arrived&lt;br /&gt;
             // if this port is bound to a universe, the universe will then call&lt;br /&gt;
             port-&amp;gt;read()&lt;br /&gt;
               device-&amp;gt;get_dmx()&lt;br /&gt;
                widget-&amp;gt;get_dmx()&lt;br /&gt;
&lt;br /&gt;
Of course, the plugin authors are free to implement this however they like.&lt;br /&gt;
&lt;br /&gt;
* I have difficulties to track the flow of data from it is fetched from the USB Pro until it is printed to the console by the app lla_usbpro. Some diagrams over the structure  and data flow diagrams, or text that gives a good overview would be nice&lt;br /&gt;
&lt;br /&gt;
Config messages are handled a little differently for two reasons:&lt;br /&gt;
 * The configure() method in a plugin has to return a response immediately. We don't want to block because we'll delay all lla processing. The new RPC subsystem removes this limitation.&lt;br /&gt;
 * Sending a PARAMETER_REQUEST to the widget doesn't generate a response immediately (in fact it may not generate one at all).&lt;br /&gt;
&lt;br /&gt;
To work around this, we send a parameter_request when we start the device, and then anytime we set parameters. In the meantime we store the parameters in the widget object and return those. The sequence looks like:&lt;br /&gt;
&lt;br /&gt;
  device-&amp;gt;configure()&lt;br /&gt;
    device-&amp;gt;config_get_params()&lt;br /&gt;
      widget-&amp;gt;get_parms()&lt;br /&gt;
&lt;br /&gt;
* What is the interface between the LLA core and LLA plugins?&lt;br /&gt;
&lt;br /&gt;
  See above and the files plugin.h, device.h and port.h. The create() call will be passed a PluginAdaptor object which can then be used to register/unregister file descriptors, loop functions, timeouts and devices.&lt;br /&gt;
&lt;br /&gt;
* What is the interface between the LLA core and other apps/clients to LLA like QLC?&lt;br /&gt;
&lt;br /&gt;
  All clients should use the LlaClient library. This needs better documentation.&lt;br /&gt;
&lt;br /&gt;
* What is it with the hidden web server?&lt;br /&gt;
&lt;br /&gt;
  That's coming in the next version. It's not checked in yet.&lt;br /&gt;
&lt;br /&gt;
* How is functionality split between the usbpro plugin and the example program?&lt;br /&gt;
&lt;br /&gt;
The example program constructs configuration request messages and sends them (using LlaClient) to the Lla Core. The core routes this message to the plugin, which then returns a response message. This response is passed back to the client.&lt;br /&gt;
&lt;br /&gt;
* When llad is started it loads all available plugins. ''Always?''&lt;br /&gt;
&lt;br /&gt;
== Ideas for easy configuration ==&lt;br /&gt;
For some users, it will be useful to have a &amp;quot;auto-connect&amp;quot; feature. When a attached device is discovered (either when LLA i started or when a new device is attached), the user could be asked if the available ports (input as well as output) should be patched to the lowest available universes.&lt;br /&gt;
&lt;br /&gt;
* Enable auto-connect ( OFF|connect whatever comes first|connect by stored patch layout)&lt;br /&gt;
* Save a given combination of devices (just by type or with unique ID's from serial numbers, USB device ID's etc)&lt;br /&gt;
&lt;br /&gt;
Which devices cannot be autodetected?&lt;br /&gt;
&lt;br /&gt;
== Ideas for QLC integration ==&lt;br /&gt;
''Here is room for YOUR writing :-)''&lt;br /&gt;
&lt;br /&gt;
== About devince config messages ==&lt;br /&gt;
&lt;br /&gt;
We need a way to tune settings on a port/device that the LLA Core doesn't know about. To enable this, the LlaClient provides a method dev_config(unsigned int dev, LlaDevConfigMsg *msg)&lt;br /&gt;
&lt;br /&gt;
The LlaDevConfigMsg is an interface which declares one method: pack(uint8_t buffer, unsigned int length).&lt;br /&gt;
On the device side, we declare a method configure(uint8_t *request, int length)&lt;br /&gt;
&lt;br /&gt;
So to use this:&lt;br /&gt;
&lt;br /&gt;
On the client&lt;br /&gt;
&lt;br /&gt;
  MyObserver::dev_config(unsigned int dev, uin8_t *res, unsigned int length) {&lt;br /&gt;
    MyLlaDevConfigMsg msg = parse_message(data, length);&lt;br /&gt;
    // do something with the result&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  int main() {&lt;br /&gt;
    // all the setup code&lt;br /&gt;
  &lt;br /&gt;
    MyObserver observer;&lt;br /&gt;
    // the observer gets the dev_config() callback&lt;br /&gt;
    lla_client-&amp;gt;set_observer(&amp;amp;observer);&lt;br /&gt;
  &lt;br /&gt;
    MyLlaDevConfigMsg msg;&lt;br /&gt;
    // set some fields&lt;br /&gt;
    msg.foo = 1&lt;br /&gt;
    lla_client-&amp;gt;dev_config(device_id, &amp;amp;msg); //calls pack() on the message&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
In the device:&lt;br /&gt;
&lt;br /&gt;
  MyDevice::configure(data, length) {&lt;br /&gt;
    MyLlaDevConfigMsg msg = parse_message(data, length);&lt;br /&gt;
    // do something with the message&lt;br /&gt;
  &lt;br /&gt;
    MyLlaDevConfigMsg *response = new MyLlaDevConfigMsg();&lt;br /&gt;
    // response is deleted by the lla core&lt;br /&gt;
    return response;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== The tool app &amp;quot;lla-usbpro&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
The purpose is to set and get the settings that reside in the ''USB Pro'' box.&lt;br /&gt;
&lt;br /&gt;
The communication with ''USB Pro's'' seems to go via the LLA core, and lla-usbpro registers as a LLA client, and uses some event handlers.&lt;br /&gt;
&lt;br /&gt;
As defined in the device spec. (PDF from Enttec):&lt;br /&gt;
&lt;br /&gt;
label=3 response&lt;br /&gt;
*1. data byte= Firmware version LSB. Valid range is 0 to 255.&lt;br /&gt;
*2. data byte=Firmware version MSB. Valid range is 0 to 255.&lt;br /&gt;
*3. data byte=DMX output break time in 10.67 microsecond units. range=[9-127] (96.03 - 1355.09 micro seconds)&lt;br /&gt;
*4. data byte=DMX output Mark After Break time in 10.67 microsecond units. range=[1-127] (10.67 - 1355.09 micro seconds)&lt;br /&gt;
*5. data byte=DMX output rate in packets per second. range=[1-40]&lt;br /&gt;
*x. data byte= some user configuration of the requested size&lt;br /&gt;
&lt;br /&gt;
The serial number is is decoded (from 4 bit Binary Coded Decimal) in lla-usbpro, not the plugin.&lt;/div&gt;</summary>
		<author><name>65.57.245.11</name></author>	</entry>

	<entry>
		<id>https://wiki.openlighting.org/index.php?title=OLA_developer_info&amp;diff=2544</id>
		<title>OLA developer info</title>
		<link rel="alternate" type="text/html" href="https://wiki.openlighting.org/index.php?title=OLA_developer_info&amp;diff=2544"/>
				<updated>2008-11-13T17:21:18Z</updated>
		
		<summary type="html">&lt;p&gt;65.57.245.11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Or [[LLA]] code documentation''&lt;br /&gt;
Link to the [[LLA | LLA main page]].&lt;br /&gt;
&lt;br /&gt;
== Drivers and platforms ==&lt;br /&gt;
LLA compiles on Linux and Mac and probably also Windows, but not all drivers work everywhere (yet). Here the status can be listed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Supported Devices/Protocols:&amp;lt;/b&amp;gt;&lt;br /&gt;
{| border=1&lt;br /&gt;
! '''Driver'''!! Linux !! '''Mac OS X''' !! '''Windows'''&lt;br /&gt;
|-&lt;br /&gt;
|| [[:Category:ArtNet|ArtNet]]   || Linux=Yes || ?? || ?? &lt;br /&gt;
|-&lt;br /&gt;
|| [[:Category:ShowNet|ShowNet]] || Linux=Yes || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
|| [[:Category:ESP Net|ESP Net]] || Linux=Yes || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
|| [[:Category:Sandnet|Sandnet]] || Linux=Yes || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
|| [[DMX USB Pro]] || Linux=Yes || ?? || No&lt;br /&gt;
|-&lt;br /&gt;
|| [[Open DMX USB]] 1) || Linux=Yes || ?? || No&lt;br /&gt;
|-&lt;br /&gt;
|| [[DMX 4 Linux]] || Linux=Yes || ?? || No&lt;br /&gt;
|-&lt;br /&gt;
|| [[StageProfi]] || Linux=Yes || ?? || No&lt;br /&gt;
|-&lt;br /&gt;
|| [[:Category:Pathport|Pathport]]  || Linux=in testing || ?? || No&lt;br /&gt;
|-&lt;br /&gt;
|| [[E1.31]] / [[ACN]] || Linux=development started || ?? || No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note 1): Support through the [http://www.erwinrol.com/index.php?opensource/dmxusb.php Linux kernel module from Erwin Rol], as detailed in [[LLA, OpenDMX USB and Q Light Controller Tutorial]].&lt;br /&gt;
&lt;br /&gt;
Unsupported USB devices:&lt;br /&gt;
* [[Peperoni Light| Peperoni]] [[Rodin1]] (but this is supported directly by [[QLC]])&lt;br /&gt;
* [[Peperoni Light|Peperoni]] [[USBDMX21]]&lt;br /&gt;
* [[Anyma uDMX]&lt;br /&gt;
* [[USB DMX]]&lt;br /&gt;
* [[Sandsys]] [[UMX2]]&lt;br /&gt;
* [[Sandsys]] [[UMX4]]&lt;br /&gt;
* [[Velleman K8062]] (no developer info available?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suggestions for content:&lt;br /&gt;
* What is the structure of the plugins?&lt;br /&gt;
&lt;br /&gt;
This is the general lifecycle of a plugin:&lt;br /&gt;
 The create() function is called with a pointer to a PluginAdaptor, this returns a new instance of the Plugin.&lt;br /&gt;
   Obviously the constructor is called - use this to init variables but any real work should be done later.&lt;br /&gt;
 plugin-&amp;gt;start() is called, which calls start_hook()&lt;br /&gt;
   Within start_hook, the plugin should create devices and register them by calling plugin_adaptor-&amp;gt;register_device(device).&lt;br /&gt;
 At any time we may call get_id(), get_name(), get_desc() on the plugin.&lt;br /&gt;
 plugin-&amp;gt;stop() is called, which calls stop_hook(). &lt;br /&gt;
   The plugin should unregister any devices created in start_hook()&lt;br /&gt;
 The destroy() function is called. This should delete the plugin created in create().&lt;br /&gt;
&lt;br /&gt;
* So how do devices / ports work?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* I have difficulties to track the flow of data from it is fetched from the USB Pro until it is printed to the console by the app lla_usbpro. Some diagrams over the structure  and data flow diagrams, or text that gives a good overview would be nice&lt;br /&gt;
* What is the interface between the LLA core and LLA plugins?&lt;br /&gt;
  See above and the files plugin.h, device.h and port.h. Within plugins, you'll have access to a PluginAdaptor which can register/unregister file descriptors, loop functions, timeouts and devices.&lt;br /&gt;
&lt;br /&gt;
* What is the interface between the LLA core and other apps/clients to LLA like QLC?&lt;br /&gt;
&lt;br /&gt;
* What is it with the hidden web server?&lt;br /&gt;
  That's coming in the next version. It's not checked in yet.&lt;br /&gt;
&lt;br /&gt;
How is functionality split between the usbpro plugin and the example program?&lt;br /&gt;
&lt;br /&gt;
== Ideas for easy configuration ==&lt;br /&gt;
For some users, it will be useful to have a &amp;quot;auto-connect&amp;quot; feature. When a attached device is discovered (either when LLA i started or when a new device is attached), the user could be asked if the available ports (input as well as output) should be patched to the lowest available universes.&lt;br /&gt;
&lt;br /&gt;
* Enable auto-connect ( OFF|connect whatever comes first|connect by stored patch layout)&lt;br /&gt;
* Save a given combination of devices (just by type or with unique ID's from serial numbers, USB device ID's etc)&lt;br /&gt;
&lt;br /&gt;
Which devices cannot be autodetected?&lt;br /&gt;
&lt;br /&gt;
== Ideas for QLC integration ==&lt;br /&gt;
''Here is room for YOUR writing :-)''&lt;br /&gt;
&lt;br /&gt;
== LLA plugin for the &amp;quot;USB Pro&amp;quot; ==&lt;br /&gt;
label=3 response&lt;br /&gt;
*1. data byte= Firmware version LSB. Valid range is 0 to 255.&lt;br /&gt;
*2. data byte=Firmware version MSB. Valid range is 0 to 255.&lt;br /&gt;
*3. data byte=DMX output break time in 10.67 microsecond units. range=[9-127] (96.03 - 1355.09 micro seconds)&lt;br /&gt;
*4. data byte=DMX output Mark After Break time in 10.67 microsecond units. range=[1-127] (10.67 - 1355.09 micro seconds)&lt;br /&gt;
*5. data byte=DMX output rate in packets per second. range=[1-40]&lt;br /&gt;
*x. data byte= some user configuration of the requested size&lt;/div&gt;</summary>
		<author><name>65.57.245.11</name></author>	</entry>

	<entry>
		<id>https://wiki.openlighting.org/index.php?title=OLA_developer_info&amp;diff=2543</id>
		<title>OLA developer info</title>
		<link rel="alternate" type="text/html" href="https://wiki.openlighting.org/index.php?title=OLA_developer_info&amp;diff=2543"/>
				<updated>2008-11-13T17:05:24Z</updated>
		
		<summary type="html">&lt;p&gt;65.57.245.11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Or [[LLA]] code documentation''&lt;br /&gt;
Link to the [[LLA | LLA main page]].&lt;br /&gt;
&lt;br /&gt;
== Drivers and platforms ==&lt;br /&gt;
LLA compiles on Linux and Mac and probably also Windows, but not all drivers work everywhere (yet). Here the status can be listed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Supported Devices/Protocols:&amp;lt;/b&amp;gt;&lt;br /&gt;
{| border=1&lt;br /&gt;
! '''Driver'''!! Linux !! '''Mac OS X''' !! '''Windows'''&lt;br /&gt;
|-&lt;br /&gt;
|| [[:Category:ArtNet|ArtNet]]   || Linux=Yes || ?? || ?? &lt;br /&gt;
|-&lt;br /&gt;
|| [[:Category:ShowNet|ShowNet]] || Linux=Yes || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
|| [[:Category:ESP Net|ESP Net]] || Linux=Yes || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
|| [[:Category:Sandnet|Sandnet]] || Linux=Yes || ?? || ??&lt;br /&gt;
|-&lt;br /&gt;
|| [[DMX USB Pro]] || Linux=Yes || ?? || No&lt;br /&gt;
|-&lt;br /&gt;
|| [[Open DMX USB]] 1) || Linux=Yes || ?? || No&lt;br /&gt;
|-&lt;br /&gt;
|| [[DMX 4 Linux]] || Linux=Yes || ?? || No&lt;br /&gt;
|-&lt;br /&gt;
|| [[StageProfi]] || Linux=Yes || ?? || No&lt;br /&gt;
|-&lt;br /&gt;
|| [[:Category:Pathport|Pathport]]  || Linux=in testing || ?? || No&lt;br /&gt;
|-&lt;br /&gt;
|| [[E1.31]] / [[ACN]] || Linux=development started || ?? || No&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note 1): Support through the [http://www.erwinrol.com/index.php?opensource/dmxusb.php Linux kernel module from Erwin Rol], as detailed in [[LLA, OpenDMX USB and Q Light Controller Tutorial]].&lt;br /&gt;
&lt;br /&gt;
Unsupported USB devices:&lt;br /&gt;
* [[Peperoni Light| Peperoni]] [[Rodin1]] (but this is supported directly by [[QLC]])&lt;br /&gt;
* [[Peperoni Light|Peperoni]] [[USBDMX21]]&lt;br /&gt;
* [[Anyma uDMX]&lt;br /&gt;
* [[USB DMX]]&lt;br /&gt;
* [[Sandsys]] [[UMX2]]&lt;br /&gt;
* [[Sandsys]] [[UMX4]]&lt;br /&gt;
* [[Velleman K8062]] (no developer info available?)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Suggestions for content:&lt;br /&gt;
* What is the structure of the plugins?&lt;br /&gt;
&lt;br /&gt;
This is the general lifecycle of a plugin:&lt;br /&gt;
 The create() function is called with a pointer to a PluginAdaptor, this returns a new instance of the Plugin.&lt;br /&gt;
   Obviously the constructor is called - use this to init variables but any real work should be done later.&lt;br /&gt;
 plugin-&amp;gt;start() is called, which calls start_hook()&lt;br /&gt;
   Within start_hook, the plugin should create devices and register them by calling plugin_adaptor-&amp;gt;register_device(device).&lt;br /&gt;
 At any time we may call get_id(), get_name(), get_desc() on the plugin.&lt;br /&gt;
 plugin-&amp;gt;stop() is called, which calls stop_hook(). &lt;br /&gt;
   The plugin should unregister any devices created in start_hook()&lt;br /&gt;
 The destroy() function is called. This should delete the plugin created in create().&lt;br /&gt;
&lt;br /&gt;
* So how do devices / ports work?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* I have difficulties to track the flow of data from it is fetched from the USB Pro until it is printed to the console by the app lla_usbpro. Some diagrams over the structure  and data flow diagrams, or text that gives a good overview would be nice&lt;br /&gt;
* What is the interface between the LLA core and LLA plugins?&lt;br /&gt;
* What is the interface between the LLA core and other apps/clients to LLA like QLC?&lt;br /&gt;
* What is it with the hidden web server?&lt;br /&gt;
How is functionality split between the usbpro plugin and the example program?&lt;br /&gt;
&lt;br /&gt;
== Ideas for easy configuration ==&lt;br /&gt;
For some users, it will be useful to have a &amp;quot;auto-connect&amp;quot; feature. When a attached device is discovered (either when LLA i started or when a new device is attached), the user could be asked if the available ports (input as well as output) should be patched to the lowest available universes.&lt;br /&gt;
&lt;br /&gt;
* Enable auto-connect ( OFF|connect whatever comes first|connect by stored patch layout)&lt;br /&gt;
* Save a given combination of devices (just by type or with unique ID's from serial numbers, USB device ID's etc)&lt;br /&gt;
&lt;br /&gt;
Which devices cannot be autodetected?&lt;br /&gt;
&lt;br /&gt;
== Ideas for QLC integration ==&lt;br /&gt;
''Here is room for YOUR writing :-)''&lt;br /&gt;
&lt;br /&gt;
== LLA plugin for the &amp;quot;USB Pro&amp;quot; ==&lt;br /&gt;
label=3 response&lt;br /&gt;
*1. data byte= Firmware version LSB. Valid range is 0 to 255.&lt;br /&gt;
*2. data byte=Firmware version MSB. Valid range is 0 to 255.&lt;br /&gt;
*3. data byte=DMX output break time in 10.67 microsecond units. range=[9-127] (96.03 - 1355.09 micro seconds)&lt;br /&gt;
*4. data byte=DMX output Mark After Break time in 10.67 microsecond units. range=[1-127] (10.67 - 1355.09 micro seconds)&lt;br /&gt;
*5. data byte=DMX output rate in packets per second. range=[1-40]&lt;br /&gt;
*x. data byte= some user configuration of the requested size&lt;/div&gt;</summary>
		<author><name>65.57.245.11</name></author>	</entry>

	<entry>
		<id>https://wiki.openlighting.org/index.php?title=Open_Lighting_Architecture&amp;diff=2454</id>
		<title>Open Lighting Architecture</title>
		<link rel="alternate" type="text/html" href="https://wiki.openlighting.org/index.php?title=Open_Lighting_Architecture&amp;diff=2454"/>
				<updated>2008-01-15T22:47:26Z</updated>
		
		<summary type="html">&lt;p&gt;65.57.245.11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Link: http://www.nomis52.net/?section=projects&amp;amp;sect2=lla&amp;amp;page=llaintro &amp;lt;br&amp;gt;&lt;br /&gt;
{{Features|free=yes|tx=yes|rx=yes|linux=yes}}&lt;br /&gt;
[[Image:Llad_home.png|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
LLA allows DMX sent using various DMX over IP protocols to be converted from one format to another. This enables devices from different manufacturers to talk to each another (for example a [[Strand_Lighting|Strand]] Console can send DMX to an [[Enttec]] [[DmxEtherGate MKII|EtherGate]]).&lt;br /&gt;
&lt;br /&gt;
LLA Live is a stand-alone bootable cd containing software from the Linux Lighting Architecture project.&lt;br /&gt;
&lt;br /&gt;
When combined with a physical DMX interface such as the [[DMX USB Pro]], LLA Live can send and receive data from traditional wired DMX networks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Supported Devices/Protocols:&amp;lt;/b&amp;gt;&lt;br /&gt;
* [[:Category:ArtNet|ArtNet]]&lt;br /&gt;
* [[:Category:ShowNet|ShowNet]]&lt;br /&gt;
* [[:Category:ESP Net|ESP Net]]&lt;br /&gt;
* [[:Category:Sandnet|Sandnet]]&lt;br /&gt;
* [[DMX USB Pro]]&lt;br /&gt;
* [[Open DMX USB]] (through the [http://www.erwinrol.com/index.php?opensource/dmxusb.php Linux kernel module from Erwin Rol], as detailed in [[LLA, OpenDMX USB and Q Light Controller Tutorial]])&lt;br /&gt;
* [[DMX 4 Linux]]&lt;br /&gt;
* [[StageProfi]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Under development:&amp;lt;/b&amp;gt;&lt;br /&gt;
* [[:Category:Pathport|Pathport]] (in testing)&lt;br /&gt;
* [[E1.31]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Documentation:&amp;lt;/b&amp;gt;&lt;br /&gt;
* [[Using LLA]] - A basic introduction&lt;br /&gt;
* [[Building LLA]] - How to get it compiled&lt;br /&gt;
* [[Using the Python libraries]]&lt;br /&gt;
* [[LLA Tips &amp;amp; Tricks]]&lt;br /&gt;
* [[LLA Sandnet Tutorial]] - Setup Horizon using Sandnet and LLA&lt;br /&gt;
* [[LLA and Q Light Controller Ubuntu Tutorial]] - Setup LLA on Ubuntu/Debian-type distro with QLC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Availability:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sources (via git)&lt;br /&gt;
&lt;br /&gt;
 http://www.nomis52.net/git/lla&lt;br /&gt;
 http://www.nomis52.net/git/lla-examples&lt;br /&gt;
&lt;br /&gt;
Debian Packages:&lt;br /&gt;
&lt;br /&gt;
 http://www.nomis52.net/data/debian&lt;br /&gt;
&lt;br /&gt;
RPMS:&lt;br /&gt;
&lt;br /&gt;
 http://rpms.netmindz.net/&lt;br /&gt;
&lt;br /&gt;
Live CD (iso):&lt;br /&gt;
&lt;br /&gt;
 [https://sourceforge.net/project/showfiles.php?group_id=126566&amp;amp;package_id=192352 Sourceforge]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a project underway to build packages for OpenWrt. See http://lists.culturebase.org/cgi-bin/mailman/listinfo/lla-openwrt for more details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ArtNet]]&lt;br /&gt;
[[Category:ESP Net]]&lt;br /&gt;
[[Category:Sandnet]]&lt;br /&gt;
[[Category:ShowNet]]&lt;br /&gt;
[[Category:Utilities]]&lt;/div&gt;</summary>
		<author><name>65.57.245.11</name></author>	</entry>

	<entry>
		<id>https://wiki.openlighting.org/index.php?title=Manolator&amp;diff=2399</id>
		<title>Manolator</title>
		<link rel="alternate" type="text/html" href="https://wiki.openlighting.org/index.php?title=Manolator&amp;diff=2399"/>
				<updated>2007-12-22T01:15:58Z</updated>
		
		<summary type="html">&lt;p&gt;65.57.245.11: Replacing page with 'Link: http://www.freedmx.com/&amp;lt;br&amp;gt;
{{Features|win=yes|tx=yes}}
right


The Manolator is a free DMX interface which provides up to 256 DMX channels. 



[...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Link: http://www.freedmx.com/&amp;lt;br&amp;gt;&lt;br /&gt;
{{Features|win=yes|tx=yes}}&lt;br /&gt;
[[Image:Manolator.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Manolator is a free DMX interface which provides up to 256 DMX channels. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Parallel Port]]&lt;/div&gt;</summary>
		<author><name>65.57.245.11</name></author>	</entry>

	<entry>
		<id>https://wiki.openlighting.org/index.php?title=Martin&amp;diff=2398</id>
		<title>Martin</title>
		<link rel="alternate" type="text/html" href="https://wiki.openlighting.org/index.php?title=Martin&amp;diff=2398"/>
				<updated>2007-12-22T01:14:54Z</updated>
		
		<summary type="html">&lt;p&gt;65.57.245.11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Link: http://www.martin.com&lt;br /&gt;
[[Image:Martin.jpg|right]]&lt;br /&gt;
A recognised leader in the entertainment technology field, Martin has a reputation for delivering innovative and reliable products.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;width:300px; border: 1px solid #0000ff; padding: 3px; background: #cef2e0; align:center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Contact Information:&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Olof Palmes AllÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ© 18&lt;br /&gt;
DK-8200 ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂrhus N&lt;br /&gt;
Denmark&lt;br /&gt;
&lt;br /&gt;
Tel. +45 87 40 00 00&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Products by Martin:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Martin Light Jockey]]&lt;br /&gt;
* [[Ether2DMX]]&lt;br /&gt;
* [[Optosplitter]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Companies]]&lt;/div&gt;</summary>
		<author><name>65.57.245.11</name></author>	</entry>

	<entry>
		<id>https://wiki.openlighting.org/index.php?title=Category:Companies&amp;diff=2397</id>
		<title>Category:Companies</title>
		<link rel="alternate" type="text/html" href="https://wiki.openlighting.org/index.php?title=Category:Companies&amp;diff=2397"/>
				<updated>2007-12-22T01:13:17Z</updated>
		
		<summary type="html">&lt;p&gt;65.57.245.11: Replacing page with 'Manufacturers only.  Please do not list resellers.'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Manufacturers only.  Please do not list resellers.&lt;/div&gt;</summary>
		<author><name>65.57.245.11</name></author>	</entry>

	<entry>
		<id>https://wiki.openlighting.org/index.php?title=Martin_Light_Jockey&amp;diff=2211</id>
		<title>Martin Light Jockey</title>
		<link rel="alternate" type="text/html" href="https://wiki.openlighting.org/index.php?title=Martin_Light_Jockey&amp;diff=2211"/>
				<updated>2007-10-16T02:32:17Z</updated>
		
		<summary type="html">&lt;p&gt;65.57.245.11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Link: http://www.martin.com/product/product.asp?product=lightjockey&amp;lt;br&amp;gt;&lt;br /&gt;
Made by: [[Martin]]&amp;lt;br&amp;gt;&lt;br /&gt;
{{Features|win=yes|tx=yes|midi=yes}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Martin LJ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Controllers]]&lt;/div&gt;</summary>
		<author><name>65.57.245.11</name></author>	</entry>

	<entry>
		<id>https://wiki.openlighting.org/index.php?title=Products&amp;diff=2210</id>
		<title>Products</title>
		<link rel="alternate" type="text/html" href="https://wiki.openlighting.org/index.php?title=Products&amp;diff=2210"/>
				<updated>2007-10-16T02:31:47Z</updated>
		
		<summary type="html">&lt;p&gt;65.57.245.11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
The products are categorized by their '''type''', their '''use''' etc.&lt;br /&gt;
&lt;br /&gt;
== Accessories ==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Adapters | Adapters]]&lt;br /&gt;
* [[:Category:Clothing | Clothing]]&lt;br /&gt;
* [[:Category:Splitters &amp;amp; Mergers | Splitters &amp;amp; Mergers]]&lt;br /&gt;
* [[:Category:Testers | Testers]]&lt;br /&gt;
&lt;br /&gt;
== Computer Interfaces ==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Parallel Port| Parallel port interface]]&lt;br /&gt;
* [[:Category:Serial| Serial port interface]]&lt;br /&gt;
* [[:Category:USB | USB interface]]&lt;br /&gt;
&lt;br /&gt;
== Consoles ==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Consoles |Consoles ]]&lt;br /&gt;
&lt;br /&gt;
== Ethernet Interfaces ==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:ArtNet| ArtNet]]&lt;br /&gt;
* [[:Category:ESP Net|ESP Net]]&lt;br /&gt;
* [[:Category:Other | Other types]]&lt;br /&gt;
* [[:Category:Pathport | Pathport]]&lt;br /&gt;
* [[:Category:Sandnet|Sandnet]]&lt;br /&gt;
* [[:Category:ShowNet|ShowNet]]&lt;br /&gt;
&lt;br /&gt;
== Software  ==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Controllers|Controllers]]&lt;br /&gt;
* [[:Category:Drivers / Libraries|Drivers / Libraries]]&lt;br /&gt;
* [[:Category:Utilities|Utilities]]&lt;br /&gt;
* [[:Category:Video / Visualisation|Video / Visualisation]]&lt;/div&gt;</summary>
		<author><name>65.57.245.11</name></author>	</entry>

	<entry>
		<id>https://wiki.openlighting.org/index.php?title=OLA_Python_API&amp;diff=2195</id>
		<title>OLA Python API</title>
		<link rel="alternate" type="text/html" href="https://wiki.openlighting.org/index.php?title=OLA_Python_API&amp;diff=2195"/>
				<updated>2007-10-12T01:02:30Z</updated>
		
		<summary type="html">&lt;p&gt;65.57.245.11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;document this [simonn]&lt;/div&gt;</summary>
		<author><name>65.57.245.11</name></author>	</entry>

	<entry>
		<id>https://wiki.openlighting.org/index.php?title=Open_Lighting_Architecture&amp;diff=2194</id>
		<title>Open Lighting Architecture</title>
		<link rel="alternate" type="text/html" href="https://wiki.openlighting.org/index.php?title=Open_Lighting_Architecture&amp;diff=2194"/>
				<updated>2007-10-12T01:01:23Z</updated>
		
		<summary type="html">&lt;p&gt;65.57.245.11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Link: http://www.nomis52.net/?section=projects&amp;amp;sect2=lla&amp;amp;page=llaintro &amp;lt;br&amp;gt;&lt;br /&gt;
{{Features|free=yes|tx=yes|rx=yes|linux=yes}}&lt;br /&gt;
[[Image:Llad_home.png|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
LLA Live is a stand-alone bootable cd containing software from the Linux Lighting Architecture project.&lt;br /&gt;
&lt;br /&gt;
LLA allows DMX sent using various DMX over IP protocols to be converted from one format to another. This enables devices from different manufacturers to talk to each another (for example a [[Strand_Lighting|Strand]] Console can send DMX to an [[Enttec]] [[DmxEtherGate MKII|EtherGate]]).&lt;br /&gt;
&lt;br /&gt;
When combined with a physical DMX interface such as the [[DMX USB Pro]], LLA Live can send and receive data from traditional wired DMX networks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Supported Devices/Protocols:&amp;lt;/b&amp;gt;&lt;br /&gt;
* [[:Category:ArtNet|ArtNet]]&lt;br /&gt;
* [[:Category:ShowNet|ShowNet]]&lt;br /&gt;
* [[:Category:ESP Net|ESP Net]]&lt;br /&gt;
* [[:Category:Sandnet|Sandnet]]&lt;br /&gt;
* [[DMX USB Pro]]&lt;br /&gt;
* [[Open DMX USB]] (through the [http://www.erwinrol.com/index.php?opensource/dmxusb.php Linux kernel module from Erwin Rol], as detailed in [[LLA, OpenDMX USB and Q Light Controller Tutorial]])&lt;br /&gt;
* [[DMX 4 Linux]]&lt;br /&gt;
* [[StageProfi]] (in testing)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Under development:&amp;lt;/b&amp;gt;&lt;br /&gt;
* [[:Category:Pathport|Pathport]] (in testing)&lt;br /&gt;
* [[E1.31]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Documentation:&amp;lt;/b&amp;gt;&lt;br /&gt;
* [[Using LLA]] - A basic introduction&lt;br /&gt;
* [[Building LLA]] - How to get it compiled&lt;br /&gt;
* [[Using the Python libraries]]&lt;br /&gt;
* [[LLA Sandnet Tutorial]] - Setup Horizon using Sandnet and LLA&lt;br /&gt;
* [[LLA and Q Light Controller Ubuntu Tutorial]] - Setup LLA on Ubuntu/Debian-type distro with QLC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Availability:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sources (via git)&lt;br /&gt;
&lt;br /&gt;
 http://www.nomis52.net/git/lla&lt;br /&gt;
 http://www.nomis52.net/git/lla-examples&lt;br /&gt;
&lt;br /&gt;
Debian Packages:&lt;br /&gt;
&lt;br /&gt;
 http://www.nomis52.net/data/debian&lt;br /&gt;
&lt;br /&gt;
RPMS:&lt;br /&gt;
&lt;br /&gt;
 http://rpms.netmindz.net/&lt;br /&gt;
&lt;br /&gt;
Live CD (iso):&lt;br /&gt;
&lt;br /&gt;
 [https://sourceforge.net/project/showfiles.php?group_id=126566&amp;amp;package_id=192352 Sourceforge]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a project underway to build packages for OpenWrt. See http://lists.culturebase.org/cgi-bin/mailman/listinfo/lla-openwrt for more details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ArtNet]]&lt;br /&gt;
[[Category:ESP Net]]&lt;br /&gt;
[[Category:Sandnet]]&lt;br /&gt;
[[Category:ShowNet]]&lt;br /&gt;
[[Category:Utilities]]&lt;/div&gt;</summary>
		<author><name>65.57.245.11</name></author>	</entry>

	<entry>
		<id>https://wiki.openlighting.org/index.php?title=Drivers_and_software&amp;diff=1886</id>
		<title>Drivers and software</title>
		<link rel="alternate" type="text/html" href="https://wiki.openlighting.org/index.php?title=Drivers_and_software&amp;diff=1886"/>
				<updated>2007-01-10T02:01:39Z</updated>
		
		<summary type="html">&lt;p&gt;65.57.245.11: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There is a number of ways to get a controller application to send DMX data to a hardware interface (that can send the data out on your DMX wire).&lt;br /&gt;
&lt;br /&gt;
Sometime the driver is split up into:&lt;br /&gt;
* Hardware driver for sending raw data to and from the hardware&lt;br /&gt;
* Protocol driver for translating the codes from the controller app to codes the hardware can understand (both ways)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Linux there exists a system for hardware drivers, which is a kernel driver with a common interface to the controller software that is independent of which hardware you choose to use. This is called DMX4Linux.&lt;br /&gt;
&lt;br /&gt;
For various reasons there is as many separate drivers as there is in DMX4Linux.&lt;br /&gt;
&lt;br /&gt;
Most USB interfaces works as a &amp;quot;virtual com port&amp;quot;, which means that there is a real com port in the hardware, and a driver makes a com interface available i the operating system. Most USB com ports are supported 'out of the box' on both Windows and Linux (nice!), so most USB-to-DMX interfaces just need a protocol driver (easy to make and use)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Windows it seems that (almost) all controller apps have their own drivers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Remember that it is possible to send DMX data over a network to an other computer or an Ethernet-to-DMX hardware interface&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If your are looking for a interface to buy, then start with finding your favorite controller app, and find out which drivers and thereby which hardware is supported.&lt;/div&gt;</summary>
		<author><name>65.57.245.11</name></author>	</entry>

	</feed>