我在Raspberry PI 3上使用bluepy从SensorTag收集数据。
无论我设置为tag.waitForNotifications(0.1)
,更新间隔仍然是1秒。
请您指出正确的功能或文档。
答案 0 :(得分:0)
一种解决方案可能是设置更新周期:
tag.getCharacteristics(uuid='f000aa83-0451-4000-b000-000000000000')[0].write(struct.pack("B", 0xa))
其中f000aa83-0451-4000-b000-000000000000
是运动传感器更新周期的特征(found here)(数十毫秒),0xa
是100ms的十六进制表示除以10。 / p>
这是我的完整功能:
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毫秒。还有一种方法可以更改标签固件的源代码。