社区导航

 
查看: 764|回复: 2

[求助] 安卓蓝牙BLE接收大量数据的问题

[复制链接]

438

TA的帖子

1

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2018-9-14 18:35:59 | 显示全部楼层 |阅读模式
最近在做一个可穿戴设备,下位机用蓝牙模块,上位机用安卓,下位机需要以5kB/s的速率传输,上位机总是接收几包就连接断了,用抓包器看了一下,下位机传输速度很多,每个连接间隔45ms,但是需要传送几包,包与包之间大概只有600us,安卓用回调函数接收,感觉是因为来不及导致的连接中断。
  1. @Override
  2.         public void onCharacteristicChanged(BluetoothGatt gatt,BluetoothGattCharacteristic characteristic) {
  3.             byte[] value = characteristic.getValue();
  4.             Log.i(TAG, "CharacteristicChanged: " + value.length);
  5.         }
复制代码

这个回调函数每一包就回调一次,然后只能取一包,想请问大家有做过安卓蓝牙数据采集是怎么实现的,网上有很多资料但是完全不适用于数据量大的场景,因为下位机是透传模块,没法改动它的代码,也不是蓝牙5.0,每一包就只能发20字节,不知道怎么处理



回复

使用道具 举报

301

TA的帖子

8

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2018-9-15 23:04:44 | 显示全部楼层
你的意思是蓝牙模块传输太快了,导致安卓上的APP数据接收不上是吗?
透传模式跟串口模式是差不多的,你可以设定app接收到一个包后蓝牙模块再传输一个包,虽然这样速率会下降,但是会可靠。


回复

使用道具 举报

438

TA的帖子

1

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2018-9-17 14:49:08 | 显示全部楼层
可是我就是需要高速率,现在市面上买的模块的透传速度勉强能满足我的需要,安卓端接收就已经出现了问题,我觉得是我不会安卓的原因,不知道商用的可穿戴蓝牙设备是怎么解决高速率传输的问题,难道都是用的传统蓝牙?


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2018-11-21 11:29 , Processed in 0.103885 second(s), 15 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表