使用iPad上的Swift 5.x作为中央设备。我所连接的外设将228字节写入读取/通知特征(使用BlueNRG-MS作为BT芯片)。在Swift中,characteristic.value的长度始终为217。
如果我连接到LightBlue并读取相同的特征,我会看到全部228个字节。
characteristic.value的最大长度为350字节。在初始连接时,来自char的通知是350个零。其特点是长度可变。
在启动时,当中央设备连接时,作为测试,我发送相同的228字节缓冲区,中央设备接收所有228字节。
我对Swift非常陌生,所以我的问题是:是什么阻止我在iOS端的特征中接收完整的数据缓冲区?
发布于 2021-04-20 03:26:25
我想在BlueNRG上的缓冲区大小只有20个字节,也许这与此有关?也许控制器中有一些东西,它并不关心其他122个特征的前导零,它们就没有有用的信息了?
BlueNRG-MS不支持大于20字节的ATT_MTU。特征可以以块的形式读取(不通知),因此当读取被触发时,移动设备能够接收全长。From here.
祝你调试?好运
https://stackoverflow.com/questions/67167202
复制相似问题