Files
@ 124f4647179f
Branch filter:
Location: light9/light9/dmxclient.py - annotation
124f4647179f
1.7 KiB
text/x-python
new-curve dialog could never get focus on my laptop
Ignore-this: 654aaebc59dc701ae3f7b28d5c653293
Ignore-this: 654aaebc59dc701ae3f7b28d5c653293
1a84c5e83d3e 1a84c5e83d3e 1a84c5e83d3e 1a84c5e83d3e 1a84c5e83d3e 1a84c5e83d3e 6d8f0c088a26 f41004d5a507 3a418fe9e5b1 6d8f0c088a26 1a84c5e83d3e 62e9761a5f13 62e9761a5f13 62e9761a5f13 1a84c5e83d3e 3a418fe9e5b1 1a84c5e83d3e 1a84c5e83d3e 1a84c5e83d3e 1a84c5e83d3e 1a84c5e83d3e 1a84c5e83d3e 1a84c5e83d3e 62e9761a5f13 1a84c5e83d3e 1a84c5e83d3e 46d319974176 1a84c5e83d3e 62e9761a5f13 1a84c5e83d3e 62e9761a5f13 1a84c5e83d3e 1a84c5e83d3e 1a84c5e83d3e 1a84c5e83d3e 62e9761a5f13 62e9761a5f13 6d8f0c088a26 1a84c5e83d3e 1a84c5e83d3e 6d8f0c088a26 1a84c5e83d3e 1a84c5e83d3e 1a84c5e83d3e ae359590eb8a ae359590eb8a 1a84c5e83d3e 62e9761a5f13 1a84c5e83d3e 1a84c5e83d3e 1a84c5e83d3e 1a84c5e83d3e 1a84c5e83d3e 62e9761a5f13 1a84c5e83d3e | """ module for clients to use for easy talking to the dmx
server. sending levels is now a simple call to
dmxclient.outputlevels(..)
client id is formed from sys.argv[0] and the PID. """
import xmlrpclib, os, sys, socket, time, logging
from light9 import networking
_dmx=None
log = logging.getLogger('dmxclient')
procname = os.path.basename(sys.argv[0])
procname = procname.replace('.py', '')
_id = "%s-%s-%s" % (procname, socket.gethostname(), os.getpid())
def outputlevels(levellist,twisted=0,clientid=_id):
"""present a list of dmx channel levels, each scaled from
0..1. list can be any length- it will apply to the first len() dmx
channels.
if the server is not found, outputlevels will block for a
second."""
global _dmx, _id
if _dmx is None:
url = networking.dmxServer.url
if not twisted:
_dmx = xmlrpclib.Server(url)
else:
from twisted.web.xmlrpc import Proxy
_dmx = Proxy(url)
if not twisted:
try:
_dmx.outputlevels(clientid, levellist)
except socket.error, e:
log.error("dmx server error %s, waiting" % e)
time.sleep(1)
except xmlrpclib.Fault,e:
log.error("outputlevels had xml fault: %s" % e)
time.sleep(1)
else:
def err(error):
log.error("dmx server error talking to %s: %s",
networking.dmxServer.url, error.getErrorMessage())
time.sleep(1)
d = _dmx.callRemote('outputlevels', clientid, levellist)
d.addErrback(err)
dummy = os.getenv('DMXDUMMY')
if dummy:
print "dmxclient: DMX is in dummy mode."
def outputlevels(*args, **kw):
pass
|