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.
We've launched our new site at www.openlighting.org. This wiki will remain and be updated with more technical information.
Difference between revisions of "OLA Python API"
From wiki.openlighting.org
(→Building the Python Bindings) |
(→Building the Python Bindings) |
||
Line 5: | Line 5: | ||
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 | + | There is also a forgotten data in lla/python/Makefile : you have to add -I../include to the value of DEFAULT_INCLUDES at the line 70. |
At the end of the installation, you should run ldconfig as root in order to use the python bindings. | At the end of the installation, you should run ldconfig as root in order to use the python bindings. |
Revision as of 15:38, 28 February 2008
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 forgotten data in lla/python/Makefile : you have to add -I../include to the value of DEFAULT_INCLUDES at the line 70.
At the end of the installation, you should run ldconfig as root in order to use the python bindings.
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)