comparison light8/ExternalInput.py @ 78:0969d8a6729d

support for external sliders. fill in ExternalInput with real IO
author dmcc
date Fri, 12 Jul 2002 10:05:57 +0000
parents 45b12307c695
children d34a4956417a
comparison
equal deleted inserted replaced
77:5649f5d9c798 78:0969d8a6729d
1 import thread, SocketServer, socket 1 import thread, SocketServer
2
3
4 currentlevels = [0,0,0,0]
5
6 2
7 class NetSliderHandler(SocketServer.StreamRequestHandler): 3 class NetSliderHandler(SocketServer.StreamRequestHandler):
8 def handle(self): 4 def handle(self):
9 data = self.rfile.readline(1000) 5 data = self.rfile.readline(1000)
10 currentlevels[:] = [round(self.bounds(float(x)/255),3) for x in list(data.split())]
11 def bounds(self,x):
12 # the last .1 both ways shall not do anything
13 x=x*1.1-.05
14 x=min(1,max(0,x))
15 return x
16 6
17 def start_server(levelstorage=0): 7 def start_server(levelstorage):
18 server = SocketServer.TCPServer( 8 server = SocketServer.TCPServer(
19 ('', socket.getservbyname('rlslider', 'tcp')), 9 ('', socket.getservbyname('rlslider', 'tcp')),
20 NetSliderHandler) 10 NetSliderHandler)
21 server.serve_forever() 11 server.serve_forever()
22 12
31 pass 21 pass
32 # thread.start_new_thread(start_server, (self.update)) 22 # thread.start_new_thread(start_server, (self.update))
33 def update(self, *args): 23 def update(self, *args):
34 self.level_storage[:] = args 24 self.level_storage[:] = args
35 def get_levels(self): 25 def get_levels(self):
36 return currentlevels 26 import math, time
37 # import math, time 27 return [max(0, math.sin(time.time() + i)) for i in range(4)] # bogus
38 # return [max(0, math.sin(time.time() + i)) for i in range(4)] # bogus
39 28
40 # return self.level_storage 29 # return self.level_storage