首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Xamarin Android中加快SPP吞吐量?

如何在Xamarin Android中加快SPP吞吐量?
EN

Stack Overflow用户
提问于 2016-10-07 09:18:51
回答 1查看 189关注 0票数 1

我试图获得一个Xamarin应用程序接收大约10 kbps的SPP数据通过蓝牙从我们的定制PCB。PCB上的BC127模块可以发送255个字节的最大数据包,因此应用程序需要每隔25 to接收一个数据包。我使用数据包来分离数据,所以需要一次只接收一个。

测试应用程序不断尝试接收数据,但有时当它回到接收方法的开始时,接收流中会有2+数据包等待。我的问题是,是什么导致了我的蓝牙接收方法的巨大延迟?我附上了下面的方法。连接到蓝牙模块后,应用程序只在一段时间内运行此方法(True)循环。

代码语言:javascript
复制
public byte[] ReadBluetoothPacket()
    {
        int bytesAvailable = 0;
        while (bytesAvailable == 0)                                     // Wait for packet to arrive
        {
            bytesAvailable = stream.BaseInputStream.Available();        // Find out how big the packet is
        }
        byte[] result = new byte[bytesAvailable];
        _socket.InputStream.Read(result, 0, bytesAvailable);            // Add the bytes to the buffer
        return result; 
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-19 08:29:49

我相信这个问题是由于Android操作系统做的后台任务,这些任务阻碍了我的接收线程。由于它只是一个间歇性的问题,重写数据接收器来同时处理多个数据包解决了这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39913722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档