我正在编写一个针对Android和iOS的应用程序,该应用程序与Adafruit Bluefruit Le Uart Friend使用Nordic UART服务和TXD/RXD特征进行通信。
TxGattCharact: TBluetoothGattCharacteristic;
SelectedDevice: TBluetoothLEDevice;
TxGattCharact.SetValueAsString(myString, True); // UTF8 required
if BluetoothLE1.WriteCharacteristic(SelectedDevice, TxGattCharact) then
... // everything just fine
else
Log('Writing Characteristic denied or unsuccessfull');
我不得不将字符串分成最大20个字符的块,作为BLE规则。这是90%的时间但是,有时候,撰写本术不是成功的
有没有办法了解防止这种情况的原因和可能的行动?我可以在发送另一根字符串之前冲洗BLE缓冲区以清洁所有内容吗?
预先感谢您的帮助
要检查的一件事是北欧模块上启用了UART - 我遇到了与此类似的问题,因为有时UART以某种方式被禁用了。您可以使用北欧工具箱应用程序(用于iOS或Android)进行检查。您可能还需要检查设备在尝试写入之前是否仍连接(检查tbluetoothledevice.isconted属性)。