Mercurial > code > home > repos > light9
view light8/potserver.py @ 2405:69ca2b2fc133
overcomplicated attempt at persisting the pane layout in the rdf graph
this was hard because we have to somehow wait for the graph to load before config'ing the panes
author | drewp@bigasterisk.com |
---|---|
date | Fri, 17 May 2024 16:58:26 -0700 |
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