总结:我有一个连接到 rpi-zero 的 microbit。我对 microbit 进行了编码,当A button按下它时,它会将数据发送uart.write到 rpi-zero。
在这个测试中,microbit 将向uart.write("Test")rpi-0 写入一个“测试”字。
我的最终目标是使用 rpi-zero 的 BLE 功能作为控制设备,从 microbit 按钮发送指令。
我找到了用 python 为 rpi 编写的GATT 服务器代码。它运行完全没有问题。
下面的代码将用于监听 microbit uart 服务并检查接收到的数据是否为"Test":
import serial
serialPort = serial.Serial(port = "/dev/ttyACM0", baudrate=115200, bytesize=8, timeout=0.5, stopbits=serial.STOPBITS_ONE)
serialString = " "
(serialPort.in_waiting > 0)
while True:
serialString = serialPort.readline()
if serialString == b'Test':
print("Yes")
else:
print("F")
Run Code Online (Sandbox Code Playgroud)
但真正的问题是当我尝试将这个循环代码实现到 GATT 服务器代码中时。
我似乎无法理解如何将此值传递给 self.send_tx
此外,似乎 GATT 服务器代码中已经存在一个全局循环。所以我尝试使用线程同时运行这两个函数,但是当我添加self.send_tx("Test")它时只会抛出一个错误Self is …