From e9a73bbb3c14af340999f70146747787785f4fee Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Mon, 19 Dec 2011 18:20:33 +0000 Subject: initial commit --- pyBTlatency/pySerialGraph.py | 64 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100755 pyBTlatency/pySerialGraph.py (limited to 'pyBTlatency/pySerialGraph.py') diff --git a/pyBTlatency/pySerialGraph.py b/pyBTlatency/pySerialGraph.py new file mode 100755 index 0000000..61b2ed9 --- /dev/null +++ b/pyBTlatency/pySerialGraph.py @@ -0,0 +1,64 @@ +#!/usr/bin/python + +import time +import serial +import signal +import sys, csv +import pygame + +class Serial(serial.PosixSerial,serial.FileLike): + #workaround for python 2.6 seriall behavior, http://code.google.com/p/python-on-a-chip/issues/detail?id=110 + pass + +ser = Serial( + port='/dev/ttyUSB0', + baudrate=115200, +) + +def signal_handler(signal, frame): + print "closing serial port" + ser.close() + sys.exit(0) + +signal.signal(signal.SIGINT, signal_handler) +tStart=time.time() +waiting=True +print "Starting..." +while waiting: + ser.write('a') #start comms + time.sleep(0.1); + while time.time()-tStart<1.0 and waiting : + if ser.inWaiting() >0: + print ser.readline() + waiting=False + time.sleep(0.1); + if waiting: + print "Timeout,restarting..." + tStart=time.time() +window = pygame.display.set_mode((640, 512)) +y=127 +times=[] +tSec=40; +while 1: + if ser.inWaiting() >0: + i=ser.readline(eol=chr(0)) + #print "received packet:",len(i),"bytes" + pygame.draw.rect(window,(0,0,0),(0,0, 640,512)) + for x in range(0,len(i)-1): #skip end char + y1=ord(i[x]) + pygame.draw.line(window, (255, 255, 255), (x*2, y*2), ((x*2)+2, y1*2)) + y=y1 + + tNow=time.time(); + times.append(tNow-tStart); + tStart=tNow + if len(times)>320: + times.pop(0) + for x in range(0,len(times)-1): #skip end char + pygame.draw.line(window, (255, 0, 0), (x*2, 512-(255*times[x]*tSec)), ((x*2)+2, 512-(255*times[x]*tSec)) ) + pygame.display.flip() + + time.sleep(0.01) + + + \ No newline at end of file -- cgit v1.2.3