Changeset - 62e9761a5f13
[Not reviewed]
default
0 1 0
David McClosky - 20 years ago 2005-06-16 23:49:53
dmcc@bigasterisk.com
dmxclient has better clientids, cleanups
- clientids include hostname, strip path prefixes
- twisted is imported on demand
1 file changed with 13 insertions and 13 deletions:
0 comments (0 inline, 0 general)
light9/dmxclient.py
Show inline comments
 
@@ -4,12 +4,13 @@ dmxclient.outputlevels(..)
 

	
 
client id is formed from sys.argv[0] and the PID.  """
 

	
 
import xmlrpclib,os,sys,socket,time
 
from twisted.web.xmlrpc import Proxy
 
import xmlrpclib, os, sys, socket, time
 
from light9 import networking
 
_dmx=None
 

	
 
_id="%s-%s" % (sys.argv[0].replace('.py','').replace('./',''),os.getpid())
 
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
 
@@ -19,35 +20,34 @@ def outputlevels(levellist,twisted=0,cli
 
    if the server is not found, outputlevels will block for a
 
    second."""
 

	
 
    global _dmx,_id
 
    global _dmx, _id
 

	
 
    if _dmx is None:
 
        url = networking.dmxServerUrl()
 
        if not twisted:
 
            _dmx=xmlrpclib.Server(url)
 
            _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:
 
            print "dmx server error %s, waiting"%e
 
            _dmx.outputlevels(clientid, levellist)
 
        except socket.error, e:
 
            print "dmx server error %s, waiting" % e
 
            time.sleep(1)
 
        except xmlrpclib.Fault,e:
 
            print "outputlevels had xml fault: %s" % e
 
            time.sleep(1)
 
    else:
 
        def err(error):
 
            print "dmx server error",error
 
            print "dmx server error", error
 
            time.sleep(1)
 
        d = _dmx.callRemote('outputlevels',clientid,levellist)
 
        d = _dmx.callRemote('outputlevels', clientid, levellist)
 
        d.addErrback(err)
 

	
 
    
 
dummy = os.getenv('DMXDUMMY')
 
if dummy:
 
    print "dmxclient: DMX is in dummy mode."
 
    def bogus(*args,**kw):
 
    def outputlevels(*args, **kw):
 
        pass
 
    outputlevels = bogus
0 comments (0 inline, 0 general)