能源经济:BLE设备 - 什么时候可以连接?

时间:2016-03-17 08:55:36

标签: android ios firmware bluetooth-lowenergy

我正在设计自定义BLE设备协议。我的设备将是 - 体重秤,血压计,健身带之一。

协议定义我的Android / iOS应用(收集器)将用于从其中一个设备收集传感器数据的收集过程。

我们可以假设收集器有50%的时间存在,并且正在扫描广播的设备以连接并从中收集数据

我的问题是: 什么是使设备可连接的有效方法,考虑到电池电量?

我目前的做法:

设备是可连接的,如果

  • (A)它对某些用户没有测量结果,
  • (B)用户打开它(通过踩踏板,按下按钮或其他任何东西)

如果(B)设备广播自己,例如每1秒钟可以连接到收藏家

如果(A)设备广播自己,例如每5秒钟可以连接到收藏家

一旦条件(A)/(B)不适用,设备就会进入休眠模式 - 不播放任何内容。

这是通过能源消耗的有效方法吗?或者有没有更好的实践来实现“设备可视性”?

P.S。无法找到更好的资源来询问,但这个问题可以被认为是一个编程问题,因为它与固件编程有关

1 个答案:

答案 0 :(得分:3)

请参阅我的decision tree

如果将睡眠/关闭和开始框链接在一起,代码将运行一个非常有效的无限循环,如果您打开设备,或者如果有数据要共享,它将打开设备。

开始-----

B)用户是否开启了我?

  • 否:继续进行A)
  • 是:继续问题1.和2.

A)我有数据要发送吗?

  • 否:如果没有'user on'命令不需要发送数据,则:进入睡眠/关闭状态(可能会导致启动框并开始循环一遍又一遍)
  • 是:设备未被用户打开,但有数据要发送;然后:

    1. if connection = true - >发送数据。
    2. if connection = / = true - >启动计时器并以1或5秒的固定间隔开始连接循环接下来的2-5分钟。

当计时器= 2-5min connection = true时,连接循环结束。 当计时器用完时,进入关闭/睡眠状态。

注意:您可能会或可能不想添加错误处理程序以使代码中断为A)以防万一。