シリアル通信での送信ができるようになったので、受信の実験をしてみました。
(Python 2.7.3)
#! /usr/bin/python
import serial
import time
try:
port = "/dev/rfcomm0"
baudrate = 115200
ser = serial.Serial(port, baudrate)
except serial.SerialException as e:
print("could not open serial port '{}':{}".format(port,e))
while 1:
time.sleep(1)
if ser.inWriting() > 0:
print(ser.inWaiting())
for i in range(ser.inWaiting()):
print(i,ser.read(1))
ser.close()
スマホからBluetooth Terminalで”あ”と送ると
3
(0, ‘\xe3’)
(1, ‘\x81’)
(2, ‘\x82’)
と表示された。改行コードなしでUTF-8で送られていることが分かりました。
だからreadline()でリードできないと思い、以下のように修正したら”あ”と表示されました。
while 1:
time.sleep(1)
if ser.inWriting() > 0:
print ser.read(ser.inWaiting())
# for i in range(ser.inWaiting()):
# print(i,ser.read(1))
ser.close()
0 件のコメント :
コメントを投稿