我司产品是一个Beacon的设备,之前是基于peripheral修改,功能已实现。
但实际使用时,因为peripheral能被连接,而在连接时,功耗远大于只广播不连接的状态。所以会造成设备的电池寿命降低。
我想请教的问题是:
能不能peripheral的程序框架下,可以设置只广播不可连接,广播能连接这两种模式?
就像是多角色一样,可以在broadcaster和peripheral切换。
该如何实现,请TI的大佬们提供一下思路,谢谢!
灰小子:
觉得应该分析一下在连接时都有哪些功能在运行,分别消耗了多少电流,有没有正常进入低功耗状态?
Susan Yang:
那您可以先试一下
这个例程功耗大约多少?
user4586760但实际使用时,因为peripheral能被连接,而在连接时,功耗远大于只广播不连接的状态。
请问能给出大体数据吗?
糖油粑粑:
回复 Susan Yang:
Susan, 你好!很高兴收到你的回复。
我们在广播时平均电流是18uA,而在连接时跟手机端应该有关,有的app连上后有好几百uA。
YiKai Chen:
回复 糖油粑粑:
試試調整connection interval看看吧
Susan Yang:
回复 糖油粑粑:
同意YiKai Chen的观点,请您尝试修改连接间隔
另外关于蓝牙低功耗的测量,您可以参考下下面的报告
www.ti.com.cn/…/zhca712c.pdf
糖油粑粑:
回复 Susan Yang:
Susan,你好!
我的connection相关参数如下:
// Minimum connection interval (units of 1.25ms, 80=100ms) if automatic
// parameter update request is enabled
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL20// Maximum connection interval (units of 1.25ms, 800=1000ms) if automatic
// parameter update request is enabled
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL800
#else //!FEATURE_OAD
// Minimum connection interval (units of 1.25ms, 8=10ms) if automatic
// parameter update request is enabled
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL8// Maximum connection interval (units of 1.25ms, 8=10ms) if automatic
// parameter update request is enabled
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL8我们想修改为不可连接只广播的模式,除了功耗是一方面的原因,还有另一方面原因:客户不想最终用户在其它APP(非客户的APP)中找到该设备,选择连接。即使提示密码或是我们自己做了一个通过char来握手方式,客户都不接受。因为这两个方法都会造成先连接再断开的过程。
客户设备能通过按键切换工作模式:
1. 可连接的广播
2. 不能连接,只广播
不知道这个功能能否实现?
YiKai Chen:
回复 糖油粑粑:
可以吧
糖油粑粑:
回复 YiKai Chen:
YK,很高兴能收到你肯定的回复,请问该如何实现,有没有好的思路?