# Cavendish skin uses APIs deprecated in 1.42; keep those warnings out of the error log $wgDeprecationReleaseLimit = "1.41"; $wgEnableSidebarCache = true; $wgParserCacheType = CACHE_DB; OLA Python API: Difference between revisions - wiki.openlighting.org
Personal tools
The Open Lighting Project has moved!

We've launched our new site at www.openlighting.org. This wiki will remain and be updated with more technical information.

OLA Python API: Difference between revisions

From wiki.openlighting.org

Jump to: navigation, search
Doudou (talk | contribs)
Line 4: Line 4:


Note that you have to install Swig in order to build the python bindings (sudo apt-get install swig)
Note that you have to install Swig in order to build the python bindings (sudo apt-get install swig)
There is also a forbidden data in lla/python/Makefile : you have to add -I../include to the value of DEFAULT_INCLUDES at the line 70.


== Interesting Classes ==
== Interesting Classes ==

Revision as of 20:52, 28 December 2007

Building the Python Bindings

See Building LLA but run ./configure --enable-python-libs

Note that you have to install Swig in order to build the python bindings (sudo apt-get install swig)

There is also a forbidden data in lla/python/Makefile : you have to add -I../include to the value of DEFAULT_INCLUDES at the line 70.

Interesting Classes

LlaClient
the main connection class
dmxBuffer
represents a list of DMX channel values
LlaClientObserver
base class to handle events
LlaPlugin
represents a Plugin
LlaDevice
represents a Device

Sending DMX

A simple example to send DMX:

from lla import *
import sys

con = LlaClient()
if con.start():
  sys.exit()

universe = 0

# create a dmxBuffer for the channel values
DMX_LEN = 512
dmx = dmxBuffer(DMX_LEN)
for i in range(0, DMX_LEN):
  dmx[i] = i

con.send_dmx(universe, dmx, DMX_LEN)

Receiving DMX

Receiving is slightly harder, we need to setup an Observer object to handle the events:

THIS ISN'T WORKING YET [simonn]

from lla import *
import sys

class Observer(LlaClientObserver):
  """ Handle the events """
  def new_dmx(self, uni, length, data):
    """ Called with new dmx buffer """
    return 0


# create a new LlaClient
con = LlaClient()

# create an observer object and register
ob = Observer()
con.set_observer(ob)

if con.start():
  sys.exit()

con.register_uni(1, LlaClient.REGISTER)

while True:
  con.fd_action(1)