Merge branch 'master' of http://git.lattuga.net/jops/cac
This commit is contained in:
commit
a480550b39
1 changed files with 94 additions and 0 deletions
94
bluetoothTermostato2.py
Normal file
94
bluetoothTermostato2.py
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
import string
|
||||||
|
import time
|
||||||
|
import bluetooth
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
bd_addr = "98:D3:31:B2:35:33" #itade address
|
||||||
|
port = 1
|
||||||
|
|
||||||
|
sampleTime = 1
|
||||||
|
numSamples = 5
|
||||||
|
lastTemp = 0
|
||||||
|
|
||||||
|
|
||||||
|
def connect():
|
||||||
|
while(True):
|
||||||
|
try:
|
||||||
|
gaugeSocket = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
|
||||||
|
gaugeSocket.connect((bd_addr, port))
|
||||||
|
print 'Connected'
|
||||||
|
break;
|
||||||
|
except bluetooth.btcommon.BluetoothError as error:
|
||||||
|
gaugeSocket.close()
|
||||||
|
print "Could not connect: ", error, "; Retrying in 10s..."
|
||||||
|
time.sleep(10)
|
||||||
|
return gaugeSocket;
|
||||||
|
|
||||||
|
def recv_timeout(the_socket,timeout=2000):
|
||||||
|
#make socket non blocking
|
||||||
|
the_socket.setblocking(0)
|
||||||
|
|
||||||
|
#total data partwise in an array
|
||||||
|
total_data=[];
|
||||||
|
data='';
|
||||||
|
|
||||||
|
#beginning time
|
||||||
|
begin=time.time()
|
||||||
|
while 1:
|
||||||
|
#if you got some data, then break after timeout
|
||||||
|
if total_data and time.time()-begin > timeout:
|
||||||
|
print "if you got some data, then break after timeout"
|
||||||
|
break
|
||||||
|
|
||||||
|
#if you got no data at all, wait a little longer, twice the timeout
|
||||||
|
elif time.time()-begin > timeout*2:
|
||||||
|
print "if you got no data at all, wait a little longer, twice the timeout"
|
||||||
|
break
|
||||||
|
|
||||||
|
#recv something
|
||||||
|
try:
|
||||||
|
data = the_socket.recv(8192)
|
||||||
|
print "ricevuto qualcosa %s" % data
|
||||||
|
if data:
|
||||||
|
total_data.append(data)
|
||||||
|
print len(total_data)
|
||||||
|
if len(total_data)==2:
|
||||||
|
print "sono qui"
|
||||||
|
break;
|
||||||
|
#change the beginning time for measurement
|
||||||
|
begin=time.time()
|
||||||
|
|
||||||
|
else:
|
||||||
|
#sleep for sometime to indicate a gap
|
||||||
|
time.sleep(0.1)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
print "esco"
|
||||||
|
#join all parts to make final string
|
||||||
|
return ''.join(total_data)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
gaugeSocket = connect()
|
||||||
|
while(True):
|
||||||
|
try:
|
||||||
|
print sys.argv[1]
|
||||||
|
gaugeSocket.send(sys.argv[1])
|
||||||
|
print 'Sent data'
|
||||||
|
#data = gaugeSocket.recv(1024)
|
||||||
|
#print len(data)
|
||||||
|
#print 'received [%s]' % data
|
||||||
|
print recv_timeout(gaugeSocket)
|
||||||
|
break
|
||||||
|
|
||||||
|
except bluetooth.btcommon.BluetoothError as error:
|
||||||
|
print "Caught BluetoothError: ", error
|
||||||
|
time.sleep(5)
|
||||||
|
gaugeSocket = connect()
|
||||||
|
pass
|
||||||
|
|
||||||
|
gaugeSocket.close()
|
||||||
|
|
Loading…
Reference in a new issue