Mercurial > code > home > repos > light9
view light8/potserver.py @ 158:5c7ac46e33d3
more disabling of stuff that make no sense at certain times and some
more disabling of stuff that make no sense at certain times and some
bug fixes. still haven't fixed the scale problem
author | dmcc |
---|---|
date | Mon, 07 Jul 2003 07:39:40 +0000 |
parents | d8e2492e2947 |
children |
line wrap: on
line source
#!/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