Mercurial > code > home > repos > light9
comparison light8/Lightboard.py @ 112:afbdae5e1359
dmx light output is now via a separate process which light8 talks to.
dmx light output is now via a separate process which light8 talks to.
other programs can also submit dmx to the server
author | drewp |
---|---|
date | Wed, 11 Jun 2003 09:36:35 +0000 |
parents | 47bda76f5236 |
children | 6f9898f00c9c |
comparison
equal
deleted
inserted
replaced
111:0c619695d6c6 | 112:afbdae5e1359 |
---|---|
1 from __future__ import nested_scopes | 1 from __future__ import nested_scopes,division |
2 | 2 |
3 from Tix import * | 3 from Tix import * |
4 from signal import signal, SIGINT | 4 from signal import signal, SIGINT |
5 from time import time | 5 from time import time |
6 import xmlrpclib | |
6 import sys, cPickle, random | 7 import sys, cPickle, random |
7 | 8 |
8 from uihelpers import * | 9 from uihelpers import * |
9 from panels import * | 10 from panels import * |
10 from Xfader import * | 11 from Xfader import * |
20 self.substate = dict([(name, subobj.get_state()) | 21 self.substate = dict([(name, subobj.get_state()) |
21 for name, subobj in subs]) | 22 for name, subobj in subs]) |
22 self.windowpos = windowpos | 23 self.windowpos = windowpos |
23 | 24 |
24 class Lightboard: | 25 class Lightboard: |
25 def __init__(self, master, parportdmx, DUMMY): | 26 def __init__(self, master, DUMMY): |
26 self.master = master | 27 self.master = master |
27 self.parportdmx = parportdmx | 28 |
28 self.DUMMY = DUMMY | 29 self.DUMMY = DUMMY |
29 self.jostle_mode = 0 | 30 self.jostle_mode = 0 |
30 self.lastline = None | 31 self.lastline = None |
31 | 32 |
32 self.channel_levels = [] # these are actually the labels for the | 33 self.channel_levels = [] # these are actually the labels for the |
46 | 47 |
47 self.windowpos = 0 | 48 self.windowpos = 0 |
48 self.get_data() | 49 self.get_data() |
49 self.buildinterface() | 50 self.buildinterface() |
50 self.load() | 51 self.load() |
51 print "Light 8.8: Enterring backgroundloop" | 52 |
53 # get a connection to the dmx server | |
54 self.dmxserver=xmlrpclib.Server("http://localhost:8030") | |
55 | |
56 print "Light 8.8: Entering backgroundloop" | |
52 self.backgroundloop() | 57 self.backgroundloop() |
53 self.updatestagelevels() | 58 self.updatestagelevels() |
54 self.rec_file = open('light9.log', 'a') | 59 self.rec_file = open('light9.log', 'a') |
55 self.record_start() | 60 self.record_start() |
56 | 61 |
292 delta = random.randrange(-1, 2, 1) # (-1, 0, or 1) | 297 delta = random.randrange(-1, 2, 1) # (-1, 0, or 1) |
293 # print "delta", delta | 298 # print "delta", delta |
294 levels = [min(100, max(x + delta, 0)) for x in levels] | 299 levels = [min(100, max(x + delta, 0)) for x in levels] |
295 # print "jostled", levels | 300 # print "jostled", levels |
296 | 301 |
297 self.parportdmx.sendlevels(levels) | 302 self.dmxserver.outputlevels("light8-%s" %os.getpid(),[l/100 for l in levels]) |
303 # self.parportdmx.sendlevels(levels) | |
298 | 304 |
299 def updatestagelevels(self): | 305 def updatestagelevels(self): |
300 self.master.after(100, self.updatestagelevels) | 306 self.master.after(100, self.updatestagelevels) |
301 for lev, idx in zip(self.oldlevels, xrange(0, 68 + 1)): | 307 for lev, idx in zip(self.oldlevels, xrange(0, 68 + 1)): |
302 self.stage.updatelightlevel(Patch.get_channel_name(idx + 1), lev) | 308 self.stage.updatelightlevel(Patch.get_channel_name(idx + 1), lev) |