make interrupt smalle (and hopefully faster)

master
ademant 2019-06-21 16:56:05 +02:00
parent 4d37eeeb35
commit deee8c4d3b
1 changed files with 22 additions and 17 deletions

View File

@ -15,26 +15,31 @@ if "device" in log_conf:
g.setmode(g.BCM)
g.setup(1, g.IN,pull_up_down=g.PUD_UP)
global revcount
revcount = 0
revcount = []
def increaserev(channel):
timestamp=int(1000*time.time())
json_out={"time": timestamp,"device": devicename,"payload":{"S0":{"timestamp": timestamp,"sensor":"S0","i2c":0,"value":1}}}
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except:
print("{}: could not connect to database".format(time.time()))
else:
try:
s.connect(("banana", 24048))
except:
print("{}: could not connect to database".format(time.time()))
else:
s.sendall(json.dumps(json_out))
s.close()
global revcount
revcount += 1
revcount.append(int(time.time()*1000))
g.add_event_detect(1, g.RISING, callback=increaserev)
while True:
sleep(60)
print "RPM is {0}".format(revcount)
if len(revcount) > 0:
rc=revcount[:]
for i in rc:
json_out={"time": timestamp,"device": devicename,"payload":{"S0":{"timestamp": timestamp,"sensor":"S0","i2c":0,"value":1}}}
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except:
print("{}: could not connect to database".format(time.time()))
else:
try:
s.connect(("banana", 24048))
except:
print("{}: could not connect to database".format(time.time()))
else:
s.sendall(json.dumps(json_out))
s.close()
revcount.remove(i)
print "RPM is {0}".format(len(revcount))
revcount = 0