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 毫秒的限制。还有一种方法可以更改标签固件的源代码。
我在 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 毫秒的限制。还有一种方法可以更改标签固件的源代码。