view light8/potserver.py @ 59:001646cd5349

all mousewheel events everywhere will now pass up the tree to be caught by all mousewheel events everywhere will now pass up the tree to be caught by higher widgets. if things get slow, this might be the problem
author drewp
date Tue, 09 Jul 2002 07:36:29 +0000
parents 45b12307c695
children 238fbd5266ea
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