如何修改Bluetooth link supervision timeout (基于CSR BC4/5)

来源:互联网 发布:游族网络市值 编辑:程序博客网 时间:2024/05/19 08:41

在做scanner产品时,发现蓝牙与android设备断开连接时,android端大概需要20多秒才显示scanner断开连接,客户认为这个时间太长,需要修改成5秒。


与这个问题相关的技术关键词是“link supervision timeout”,当蓝牙为master设备时,可以修改这个timeout,与此同时,slave设备的“link supervision timeout”也会一同修改。

也就是说,只有设备为master时,才有权限修改“link supervision timeout”这个属性。


scanner产品用的是CSR BC4/5系列,查询相关的代码,可以查询到关键的库函数定义如下(lib\connection\connection.h)

/*!@brief This function is called to set the link supervision timeout.@param theAppTask The client task.@param sink The sink.@param timeout The timeout in 0.625ms units.*/void ConnectionSetLinkSupervisionTimeout(Sink sink, uint16 timeout);


根据调试经验,应该在BT建立连接之后,呼叫这个函数才有用处,代码示例如下,

/* set timeout to 1 second */ConnectionSetLinkSupervisionTimeout(xxx.sink, 0x064c);




0 0
原创粉丝点击