Changeset - 238eede02bf9
[Not reviewed]
default
0 1 0
drewp - 21 years ago 2004-06-16 13:01:18

supports using twisted/deferreds for the xmlrpc connection
1 file changed with 23 insertions and 10 deletions:
0 comments (0 inline, 0 general)
light8/dmxclient.py
Show inline comments
 
@@ -5,11 +5,12 @@ 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
 
_dmx=None
 

	
 
_id="%s-%s" % (sys.argv[0].replace('.py','').replace('./',''),os.getpid())
 

	
 
def outputlevels(levellist):
 
def outputlevels(levellist,twisted=0):
 
    """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.
 
@@ -21,16 +22,28 @@ def outputlevels(levellist):
 

	
 
    if _dmx is None:
 
        host = os.getenv('DMXHOST', 'localhost')
 
        _dmx=xmlrpclib.Server("http://%s:8030" % host)
 
        url = "http://%s:8030" % host
 
        if not twisted:
 
            _dmx=xmlrpclib.Server(url)
 
        else:
 
            _dmx = Proxy(url)
 

	
 
    try:
 
        _dmx.outputlevels(_id,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)
 
    if not twisted:
 
        try:
 
            _dmx.outputlevels(_id,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
 
            time.sleep(1)
 
        d = _dmx.callRemote('outputlevels',_id,levellist)
 
        d.addErrback(err)
 

	
 
    
 
dummy = os.getenv('DMXDUMMY')
 
if dummy:
0 comments (0 inline, 0 general)