Python parsing Bluetooth RFCOMM for 9 bytes
Barry Dick
barryd.it at gmail.com
Fri Dec 14 00:25:53 EST 2012
> Is the following more like how you want it?
>
>
>
> data = ""
>
> try:
>
> while True:
>
> try:
>
> more = client_socket.recv(9)
>
> except bluetooth.BluetoothError, b:
>
> print "Bluetooth Error: ", b
>
> else:
>
> data += more
>
>
>
> while len(data) >= 9:
>
> print "Data: [%s]" % binascii.hexlify(data[ : 9])
>
> data = data[9 : ]
>
> except KeyboardInterrupt:
>
> #print "Closing socket...",
>
> client_socket.close()
>
> #print "done."
>
>
>
> You could, of course, decide to recv more than 9 bytes at a time. It
>
> could return less than you asked for (but it should block until at
>
> least 1 byte is available), but it will never return more than you
>
> asked for.
Thank you for your interest and quick reply.
Its a great start, seeing as I'm a beginner with python, I was actually hoping to see an example of http://code.activestate.com/recipes/408859/ as it appears to be exactly what I need, but I haven't got a clue how to implement it. Basically as each byte perhaps gets read or 9 bytes at a time, that way I can seek out as much real data as possible
Data: [0000002c025b025321]
Data: [00010048000602505e]
Data: [0002004a000a025552]
Data: [0003004b0006025752]
Data: [00046698000702569e]
(notice the header data[9:1] will always flow in this pattern 0 -> 4 and then back again, so I figure that might as well be my start)
And skip the errors...
Data: [0002004b000a026343]
Data: [00]
Data: [03004f0006025b4a00]
Data: [046698000802569d00]
Data: [00003002830257f100]
More information about the Python-list
mailing list