view light8/dmxclient.py @ 120:b75bfbcf5979

new modules: dmxclient provides a very convenient way for clients to talk to the new modules: dmxclient provides a very convenient way for clients to talk to the dmxserver; updatefreq stores event times and computes a report about how frequently they occur
author drewp
date Fri, 13 Jun 2003 14:00:36 +0000
parents 45b12307c695
children 2dfe2c0ba052
line wrap: on
line source

""" 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
_dmx=None

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

def outputlevels(levellist):
    """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:
        _dmx=xmlrpclib.Server("http://localhost:8030")

    try:
        _dmx.outputlevels(_id,levellist)
    except socket.error,e:
        print "dmx server error %r, waiting"%e
        time.sleep(1)
    except xmlrpclib.Fault,e:
        print "outputlevels had xml fault: %s" % e
        time.sleep(1)