Mercurial > code > home > repos > light9
diff light8/potserver.py @ 0:45b12307c695
Initial revision
author | drewp |
---|---|
date | Wed, 03 Jul 2002 09:37:57 +0000 |
parents | |
children | 238fbd5266ea |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/light8/potserver.py Wed Jul 03 09:37:57 2002 +0000 @@ -0,0 +1,63 @@ +#!/usr/bin/python + +import socket,time + +from io import * + +pots = SerialPots() +pots.golive() + +laste="" +lastlevs=(0,0,0,0) +dirs=[0,0,0,0] +samples=nsends=noises=0 +watch=0 +while 1: + if samples > 30: + fps=1.0*samples/(time.time()-watch) + watch=time.time() + print "S"*nsends+"n"*noises+" "*(samples-nsends-noises),"%.1f Hz"%fps + samples=nsends=noises=0 + samples+=1 + l=pots.getlevels() + + # no change at all? + if l==lastlevs: + time.sleep(.01) + continue + + report=0 # we only will report if a dimmer moves twice in the same direction + for i in range(0,4): + change = l[i]-lastlevs[i] + if change!=0: + thisdir = (change>0)-(change<0) + if thisdir==dirs[i]: + # a dimmer is moving in a constant direction + report=1 + dirs[i]=thisdir + + if report==0: + noises+=1 + continue + + lastlevs = l + nsends+=1 + + try: + s=socket.socket(socket.AF_INET, socket.SOCK_STREAM) + #s.setblocking(1) + ret=s.connect_ex(("10.1.0.32", socket.getservbyname('rlslider','tcp'))) +# print ret + s.send("%d %d %d %d\n" % l) + s.close() + except Exception,e: + print str(e) + s=socket.socket(socket.AF_INET, socket.SOCK_STREAM) + if ret==111: + print time.ctime(),"waiting for server" + time.sleep(3) + else: + print time.ctime(),e + + +