Movesense CustomGATT和ECG或加速度计

时间:2019-08-14 08:47:43

标签: bluetooth-gatt movesense

关于此问题的一些帖子尚未宣布任何解决方案。

想要访问内部的moveenseense传感器数据(ECG,Acc…),但不使用Android或iOS平台(如moveense演示文稿https://www.movesense.com/wp-content/uploads/2018/11/2018-11-06-Using-Movesense-CustomGATTService.pdf所建议),我至少有1周未能这样做。 我可以成功创建自己的GATT特征并从moveense设备外部进行订阅。通过用几行来增加sample / custom_gattsvc_app,很容易做到这一点:

  1. 定义:
    const uint16_t myCharUUID16 = 0x2A58; // this new characteristic will appear in the service as the third one in the sample
  1. 在CustomGATTSvcClient :: configGattSvc()中:
    WB_RES::GattProperty myCharProp = WB_RES::GattProperty::INDICATE;

    myChar.props = wb::MakeArray<WB_RES::GattProperty>( &myCharProp, 1);
    myChar.uuid = wb::MakeArray<uint8_t>( reinterpret_cast<const uint8_t*>(&myCharUUID16), 2);

    customGattSvc.chars = wb::MakeArray<WB_RES::GattChar>(characteristics, 3);  // 3 here since there are 3 characteristics now
  1. 访问 您现在可以查看并使用BTLE客户端(bluetility…)订阅新服务,即使该服务暂时不做任何事情。

问题从我这里开始:

在CustomGATTSvcClient :: onGetResult()中,由于所有BT服务创建完毕后,由于CustomGATTSvcClient :: onPostResult()调用了onGetResult(),因此我尝试强制订阅ECG或Acc:

int32_t sampleRate = 10;
asyncSubscribe(WB_RES::LOCAL::MEAS_ACC_SAMPLERATE(),AsyncRequestOptions::Empty, sampleRate);

我没有实现onSubscribeResult()

在onNotify()中,您应该能够每隔1/10秒通过

用新数据拦截来自白板的呼叫
switch (resourceId.getConstId())     {     
case WB_RES::LOCAL::MEAS_ACC_SAMPLERATE::ID:     
{
    // To see a blinking LED on each new Acc data
    asyncPut(WB_RES::LOCAL::COMPONENT_LED(),AsyncRequestOptions::Empty, myFlippingBool);

    myFlippingBool = ! myFlippingBool;

}

我观察到的东西:

A。当我asyncSubscribe()ECG或Acc时,即使成功订阅了0x2A1C特征,也不再调用示例的WB_RES :: LOCAL :: MEAS_TEMP :: LID并且不会将更新分发到BT客户端。这意味着所有通知都会因资源冲突而被禁用?

B。订阅时(如前)或什至:

wb::Result result = getResource("Meas/Acc/10", mMyAccResourceId);
result = asyncSubscribe(mMyAccResourceId);

从不调用onNotify()方法,因为LED不会闪烁(即使在onNotify()实现之后直接执行,而无需进行开关/ case设置)

缺少有关CustomGatt的文档,似乎很多人无法将传感器集成到其他平台(Raspberry Pi或运行BT堆栈的通用处理器)上。 我曾经尝试过从基本的微控制器和BT模块通过直接AT命令访问moveenseense平台而没有成功(Movesense direct access to GATT endpoints),所以现在我转向没有成功的Raspberry解决方案+ Qt。

感谢您提供任何示例或对此问题的解答!

1 个答案:

答案 0 :(得分:0)

不支持至少10 Hz。 Meas \ Acc \ 13会发生什么?