comparison light8/ExternalInput.py @ 90:d34a4956417a

rsn has a separate thread that receives rlslider connections from a potserver.py process, rsn has a separate thread that receives rlslider connections from a potserver.py process, and they work
author drewp
date Sat, 13 Jul 2002 02:57:27 +0000
parents 0969d8a6729d
children d6c48d2d3bd6
comparison
equal deleted inserted replaced
89:0459cecf8145 90:d34a4956417a
1 import thread, SocketServer 1 import thread, SocketServer, socket
2
3
4 currentlevels = [0,0,0,0]
5
2 6
3 class NetSliderHandler(SocketServer.StreamRequestHandler): 7 class NetSliderHandler(SocketServer.StreamRequestHandler):
4 def handle(self): 8 def handle(self):
5 data = self.rfile.readline(1000) 9 data = self.rfile.readline(1000)
10 currentlevels[:] = [float(x)/255 for x in list(data.split())]
6 11
7 def start_server(levelstorage): 12 def start_server(levelstorage=0):
8 server = SocketServer.TCPServer( 13 server = SocketServer.TCPServer(
9 ('', socket.getservbyname('rlslider', 'tcp')), 14 ('', socket.getservbyname('rlslider', 'tcp')),
10 NetSliderHandler) 15 NetSliderHandler)
11 server.serve_forever() 16 server.serve_forever()
12 17
21 pass 26 pass
22 # thread.start_new_thread(start_server, (self.update)) 27 # thread.start_new_thread(start_server, (self.update))
23 def update(self, *args): 28 def update(self, *args):
24 self.level_storage[:] = args 29 self.level_storage[:] = args
25 def get_levels(self): 30 def get_levels(self):
26 import math, time 31 return currentlevels
27 return [max(0, math.sin(time.time() + i)) for i in range(4)] # bogus 32 # import math, time
33 # return [max(0, math.sin(time.time() + i)) for i in range(4)] # bogus
28 34
29 # return self.level_storage 35 # return self.level_storage