Using the Python libraries
From OpenDMX.net
Contents |
[edit] 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.
[edit] 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
[edit] 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)
[edit] 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)
