Mercurial > code > home > repos > light9
comparison light8/dmxclient.py @ 0:45b12307c695
Initial revision
author | drewp |
---|---|
date | Wed, 03 Jul 2002 09:37:57 +0000 |
parents | |
children | b75bfbcf5979 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:45b12307c695 |
---|---|
1 """ module for clients to use for easy talking to the dmx | |
2 server. sending levels is now a simple call to | |
3 dmxclient.outputlevels(..) | |
4 | |
5 client id is formed from sys.argv[0] and the PID. """ | |
6 | |
7 import xmlrpclib,os,sys,socket,time | |
8 from twisted.web.xmlrpc import Proxy | |
9 _dmx=None | |
10 | |
11 _id="%s-%s" % (sys.argv[0].replace('.py','').replace('./',''),os.getpid()) | |
12 | |
13 def outputlevels(levellist,twisted=0): | |
14 """present a list of dmx channel levels, each scaled from | |
15 0..1. list can be any length- it will apply to the first len() dmx | |
16 channels. | |
17 | |
18 if the server is not found, outputlevels will block for a | |
19 second.""" | |
20 | |
21 global _dmx,_id | |
22 | |
23 if _dmx is None: | |
24 host = os.getenv('DMXHOST', 'localhost') | |
25 url = "http://%s:8030" % host | |
26 if not twisted: | |
27 _dmx=xmlrpclib.Server(url) | |
28 else: | |
29 _dmx = Proxy(url) | |
30 | |
31 if not twisted: | |
32 try: | |
33 _dmx.outputlevels(_id,levellist) | |
34 except socket.error,e: | |
35 print "dmx server error %s, waiting"%e | |
36 time.sleep(1) | |
37 except xmlrpclib.Fault,e: | |
38 print "outputlevels had xml fault: %s" % e | |
39 time.sleep(1) | |
40 else: | |
41 def err(error): | |
42 print "dmx server error",error | |
43 time.sleep(1) | |
44 d = _dmx.callRemote('outputlevels',_id,levellist) | |
45 d.addErrback(err) | |
46 | |
47 | |
48 dummy = os.getenv('DMXDUMMY') | |
49 if dummy: | |
50 print "dmxclient: DMX is in dummy mode." | |
51 def bogus(*args): | |
52 pass | |
53 outputlevels = bogus |