summaryrefslogtreecommitdiff
path: root/pyBTlatency
diff options
context:
space:
mode:
Diffstat (limited to 'pyBTlatency')
-rw-r--r--pyBTlatency/data.csv273
-rwxr-xr-xpyBTlatency/pyBTlatency.py53
-rwxr-xr-xpyBTlatency/pySerialGraph.py64
3 files changed, 390 insertions, 0 deletions
diff --git a/pyBTlatency/data.csv b/pyBTlatency/data.csv
new file mode 100644
index 0000000..1504122
--- /dev/null
+++ b/pyBTlatency/data.csv
@@ -0,0 +1,273 @@
+1,30.3130149841
+2,30.266046524
+3,18.2421207428
+4,26.2129306793
+5,14.181137085
+6,14.1448974609
+7,22.0949649811
+8,22.0680236816
+9,34.1081619263
+10,26.113986969
+11,14.007806778
+12,13.9241218567
+13,37.878036499
+14,26.3149738312
+15,29.8190116882
+16,33.7929725647
+17,29.7651290894
+18,29.7210216522
+19,37.693977356
+20,21.6670036316
+21,25.6350040436
+22,21.6040611267
+23,33.6339473724
+24,37.5781059265
+25,33.497095108
+26,33.5021018982
+27,29.8700332642
+28,17.4090862274
+29,25.6390571594
+30,25.3450870514
+31,33.3127975464
+32,21.3208198547
+33,21.2409496307
+34,21.2080478668
+35,17.1990394592
+36,17.1542167664
+37,29.5670032501
+38,25.0899791718
+39,21.0540294647
+40,21.0130214691
+41,32.9830646515
+42,32.9620838165
+43,32.9170227051
+44,32.8879356384
+45,28.8469791412
+46,12.8281116486
+47,36.7929935455
+48,36.7569923401
+49,25.2001285553
+50,36.7019176483
+51,32.6690673828
+52,16.6251659393
+53,16.4601802826
+54,40.44008255
+55,24.4138240814
+56,20.3850269318
+57,20.4360485077
+58,20.3251838684
+59,20.2879905701
+60,16.2439346313
+61,12.1982097626
+62,40.1718616486
+63,36.1449718475
+64,32.0980548859
+65,36.0779762268
+66,32.0618152618
+67,31.9979190826
+68,15.9630775452
+69,27.9338359833
+70,27.909040451
+71,23.8749980927
+72,19.6979045868
+73,15.6791210175
+74,19.6318626404
+75,19.5999145508
+76,15.5699253082
+77,27.8098583221
+78,27.5139808655
+79,27.4858474731
+80,27.4469852448
+81,47.413110733
+82,27.4319648743
+83,31.3360691071
+84,31.289100647
+85,27.2679328918
+86,11.2209320068
+87,15.1789188385
+88,15.1429176331
+89,23.1158733368
+90,43.0879592896
+91,15.0589942932
+92,19.012928009
+93,18.9869403839
+94,14.9610042572
+95,26.9198417664
+96,26.8959999084
+97,26.8709659576
+98,27.1520614624
+99,34.8029136658
+100,30.7700634003
+101,30.7288169861
+102,30.7869911194
+103,26.6790390015
+104,14.6460533142
+105,14.6119594574
+106,10.5571746826
+107,38.52891922
+108,22.4850177765
+109,18.4650421143
+110,18.4240341187
+111,14.6698951721
+112,14.3640041351
+113,22.2890377045
+114,26.2551307678
+115,22.5651264191
+116,22.2029685974
+117,34.1799259186
+118,30.1148891449
+119,18.1159973145
+120,18.5198783875
+121,14.0218734741
+122,25.9819030762
+123,21.9371318817
+124,18.2650089264
+125,17.865896225
+126,29.846906662
+127,29.7980308533
+128,29.767036438
+129,37.7280712128
+130,37.7049446106
+131,25.6690979004
+132,25.6311893463
+133,21.5921401978
+134,21.586894989
+135,33.5450172424
+136,29.4809341431
+137,25.4421234131
+138,25.4051685333
+139,25.3939628601
+140,33.3528518677
+141,37.3191833496
+142,37.2848510742
+143,33.2579612732
+144,17.1318054199
+145,13.1001472473
+146,13.1058692932
+147,37.0061397552
+148,36.9720458984
+149,21.1579799652
+150,21.5148925781
+151,28.8708209991
+152,28.8369655609
+153,16.8070793152
+154,16.7751312256
+155,12.7379894257
+156,12.7182006836
+157,36.6802215576
+158,24.6520042419
+159,16.6220664978
+160,16.5860652924
+161,16.6299343109
+162,24.5158672333
+163,28.4719467163
+164,28.4419059753
+165,24.4300365448
+166,20.3931331635
+167,28.3679962158
+168,32.3250293732
+169,28.2909870148
+170,16.2661075592
+171,32.2349071503
+172,24.206161499
+173,20.1749801636
+174,24.1351127625
+175,16.1159038544
+176,16.077041626
+177,16.0491466522
+178,15.9809589386
+179,11.9609832764
+180,23.9500999451
+181,27.8978347778
+182,23.866891861
+183,24.0590572357
+184,43.8001155853
+185,27.7750492096
+186,27.7662277222
+187,27.7001857758
+188,27.6761054993
+189,31.653881073
+190,23.6141681671
+191,23.5819816589
+192,19.5620059967
+193,39.6220684052
+194,11.4760398865
+195,15.4480934143
+196,11.4259719849
+197,15.3779983521
+198,27.3518562317
+199,35.3291034698
+200,35.2900028229
+201,31.2540531158
+202,19.2320346832
+203,19.1941261292
+204,19.5569992065
+205,27.5411605835
+206,23.1919288635
+207,35.0711345673
+208,35.0461006165
+209,17.5909996033
+210,17.5619125366
+211,33.5268974304
+212,33.4920883179
+213,13.4539604187
+214,33.4391593933
+215,33.4239006042
+216,17.3580646515
+217,21.3449001312
+218,21.2988853455
+219,17.2870159149
+220,29.2420387268
+221,25.2139568329
+222,25.1939296722
+223,21.1520195007
+224,21.1160182953
+225,33.0967903137
+226,33.0729484558
+227,33.0522060394
+228,29.0069580078
+229,29.0150642395
+230,24.8689651489
+231,24.8470306396
+232,32.8149795532
+233,32.7858924866
+234,16.7510509491
+235,32.723903656
+236,28.7230014801
+237,24.6651172638
+238,36.6241931915
+239,24.7559547424
+240,16.6809558868
+241,20.5368995667
+242,32.4828624725
+243,28.4669399261
+244,32.4280261993
+245,12.3970508575
+246,12.3620033264
+247,32.3278903961
+248,20.3189849854
+249,28.265953064
+250,32.2458744049
+251,32.2079658508
+252,20.1652050018
+253,28.1429290771
+254,28.2340049744
+255,24.2369174957
+256,36.1320972443
+257,16.0238742828
+258,19.9890136719
+259,19.9639797211
+260,15.8739089966
+261,15.8429145813
+262,15.8050060272
+263,39.7820472717
+264,35.8531475067
+265,19.7279453278
+266,11.6970539093
+267,31.6641330719
+268,31.6400527954
+269,15.615940094
+270,23.5850811005
+271,27.5309085846
+272,23.5090255737
+273,23.4949588776
diff --git a/pyBTlatency/pyBTlatency.py b/pyBTlatency/pyBTlatency.py
new file mode 100755
index 0000000..c80a77b
--- /dev/null
+++ b/pyBTlatency/pyBTlatency.py
@@ -0,0 +1,53 @@
+#!/usr/bin/python
+
+import time
+import serial
+import signal
+import sys, csv
+
+readings=[]
+f=open('data.csv','w')
+
+
+serIn = serial.Serial(
+ port='/dev/rfcomm0',
+ baudrate=38400
+)
+serOut = serial.Serial(
+ port='/dev/ttyUSB0',
+ baudrate=9600
+)
+
+def signal_handler(signal, frame):
+ total=0
+ for i in readings:
+ total+=i;
+ print len(readings),"readings, average:",(total/len(readings))*1000,"ms"
+ serOut.close()
+ serIn.close()
+ f.close()
+ sys.exit(0)
+
+signal.signal(signal.SIGINT, signal_handler)
+tStart=time.time()
+serIn.write('a')
+while time.time()-tStart<2.0:
+ if serIn.inWaiting() >0:
+ print serIn.read()
+
+while 1:
+ #print "testing.."
+ finished = False
+ serOut.write("0")
+ tStart=time.time()
+ while time.time()-tStart<1.0:
+ if serIn.inWaiting() >0:
+ r=time.time()-tStart
+ readings.append(r)
+ i=serIn.read()
+ print i,r*1000,"ms"
+ f.write(str(len(readings))+","+str(r*1000)+"\n")
+ #time.sleep(1000)
+
+
+ \ No newline at end of file
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