这是我在这里苦苦挣扎了几个星期的问题,我认为我会尝试从比我有更多BLE(蓝牙低能耗)经验的人那里获得更多意见。
我有一个在Windows 8.1(Metro)上开发的C#应用程序,我目前正在使用该应用程序通过BLE下载大量数据。该应用程序连接到存储大量数据的自定义设备。该设备利用具有下载特征的自定义服务,该服务设置为 Indicate 。
我的问题:下载大数据集(100 KB或更多)时,由于指示问题,下载失败。根据连接到BLE无线电的调试器的说法,无线电停止发送数据,因为它正在等待Windows应用程序的指示回调。我尝试清理事件处理程序几乎不执行任何操作,但这根本没有解决我的问题。我不确定我可以做些什么来解决此问题,因为在Windows上的大多数BLE属性方面,我没有太多控制权。我不确定这是否是Windows 8.1设备上的性能问题,还是我无法控制的事情。
如果有帮助,下载仅会在接收到超过100 KB时中断,因为它可以完成大多数小于此大小的下载。我还使用两台不同的计算机进行了测试,其中一台是BLE 4.0,另一台是BLE 4.2。增大的数据包大小可提高内存下载速度,但仍会在同一区域中断。
任何想法都会很有帮助。如果您需要更多信息,也请告诉我。 预先谢谢你!