comparison bin/dmxserver @ 1220:d5e99fee786d

twisted uses zmq (not xmlrpc) to send levels to dmxserver Ignore-this: 78d627e1ff8c8e83b50ae099d373b8c1
author Drew Perttula <drewp@bigasterisk.com>
date Mon, 08 Jun 2015 06:53:12 +0000
parents ba47676dde49
children a5a44077c54c
comparison
equal deleted inserted replaced
1219:b15a2d8ef1ab 1220:d5e99fee786d
32 from light9.io import ParportDMX, UsbDMX 32 from light9.io import ParportDMX, UsbDMX
33 33
34 from light9.updatefreq import Updatefreq 34 from light9.updatefreq import Updatefreq
35 from light9 import networking 35 from light9 import networking
36 36
37 from txzmq import ZmqEndpoint, ZmqFactory, ZmqPullConnection, ZmqRequestTimeoutError
38 import json
39
40 def startZmq(port, outputlevels):
41 zf = ZmqFactory()
42 e = ZmqEndpoint('bind', 'tcp://*:%s' % port)
43 s = ZmqPullConnection(zf, e)
44 def onPull(message):
45 msg = json.loads(message[0])
46 outputlevels(msg['clientid'], msg['levellist'])
47 s.onPull = onPull
37 48
38 class ReceiverApplication(object): 49 class ReceiverApplication(object):
39 """ 50 """
40 receive UDP OSC messages. address is /dmx/1 for dmx channel 1, 51 receive UDP OSC messages. address is /dmx/1 for dmx channel 1,
41 arguments are 0-1 floats for that channel and any number of 52 arguments are 0-1 floats for that channel and any number of
246 port = networking.dmxServer.port 257 port = networking.dmxServer.port
247 print "starting xmlrpc server on port %s" % port 258 print "starting xmlrpc server on port %s" % port
248 xmlrpcServe = XMLRPCServe(options) 259 xmlrpcServe = XMLRPCServe(options)
249 reactor.listenTCP(port,server.Site(xmlrpcServe)) 260 reactor.listenTCP(port,server.Site(xmlrpcServe))
250 261
262 startZmq(networking.dmxServerZmq.port, xmlrpcServe.xmlrpc_outputlevels)
263
251 oscApp = ReceiverApplication(9051, xmlrpcServe) 264 oscApp = ReceiverApplication(9051, xmlrpcServe)
252 265
253 reactor.run() 266 reactor.run()
254 267