SensorTag bluepy 更新间隔

SensorTag bluepy update interval

我在 Raspberry PI 3 上使用 bluepy 从 SensorTag 收集数据。 不管我怎么设置tag.waitForNotifications(0.1),更新间隔还是1秒

能否请您指出正确的函数或文档。

一个解决方案可以像这样设置更新周期:

tag.getCharacteristics(uuid='f000aa83-0451-4000-b000-000000000000')[0].write(struct.pack("B", 0xa))

其中 f000aa83-0451-4000-b000-000000000000 是运动传感器更新周期(以几十毫秒为单位)的特征 (found here),0xa 是 100 毫秒除以 10 的十六进制表示.

这是我的完整功能:

import bluepy
from bluepy import sensortag

import sys
import traceback
import struct    

def connect(mac):
  tag = None

  print('connecting to '+mac, end='', flush=True)
  while tag == None:
    try:
      tag = sensortag.SensorTag(mac)
    except (bluepy.btle.BTLEException):
      print('.', end='', flush=True)
    except (Excpetion, e):
      print()
      print(e)
      sys.exit()

  print()
  tag.gyroscope.enable()
  tag.accelerometer.enable()

  # get MovementSensor period characteristic
  gp = tag.getCharacteristics(uuid='f000aa83-0451-4000-b000-000000000000')
  # set 100ms (100ms/10 = 0xa in hex(10))
  gp[0].write(struct.pack("B", 0xa))

  return tag

在这种情况下,更新周期有大约 100 毫秒的限制。还有一种方法可以更改标签固件的源代码。