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)