This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2541:在栈1.4.2.2中运行传感器服务时出现问题值不匹配

Guru**** 2562120 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/586595/cc2541-issue-with-running-sensor-service-in-stack-1-4-2-2-values-missmatch

器件型号:CC2541

您好!

我在 BLE stack1.4.0中使用了 runningservice、我使用它发送数据、 我刚刚移植到 BLE 堆栈1.4.2.2并以相同的格式发送数据、但在这两种用例中、我获取的数据与使用堆栈1.4.0发送的旧格式不同。

使用栈1.4.0,我将在 UUID 0x2A53中获取数据  ,值类似于:03 00 00 00 00 00 00 00 00 00 00 00  

在这之后、我每次发送数据时、它都会以这种格式本身进行更新。

但使用相同的代码,我将在 UUID 0x2A53中获取数据 ,值类似于:22 00 00 1B 00 FF B0 00 00

我使用的是1.4.2.2中的默认密钥卡项目、只是通过保持1.4.2.2堆栈中的所有内容不变、从1.4.0代码添加了我的应用。

我使用的函数在栈1.4.0中正常工作 、可使用运行服务将数据从我的应用程序代码发送到移动应用程序、如下所示。

(三
*@fn sensorMeasNotify
*
*@简要准备并发送 RSC 测量通知
*
*@返回无
*
静态空 sensorMeasNotify (uint8 AB、uint8 CD)

uint8 *p = sensorMeas .pValue;
uint8标志= 0x03;//sensorFlagsIdx];
FLAGS = FLAGS & 0x0FB;

//根据仿真值构建 RSC 测量结构
//标志模拟当前位。
*p++=标志;

//包括,与标志无关。
*p++= LO_UINT16( instSpeed );
*p++= HI_UINT16( instSpeed );
*p++=实例;

if (flags & RSC_FLAGS_STRIDE)

*P++= LO_UINT16( instStripedLength );
*P++= HI_UINT16( instStripedLength );

IF (FLAGS 和 RSC_FLAGS_DIST)

*p++=AB;//break_uint32 (totalDistance、0);
*p++=CD;//break_uint32 (totalDistance、1);
*p++=break_uint32 (totalDistance、2);
*p++=break_uint32 (totalDistance、3);

//获取长度
sensorMeas.len =(uint8)(p - sensorMeas.pValue);

//发送到服务以发送通知
Running_MeasNotify (gapConnHandle,&sensorMeas);

栈1.4.2.2中的相同代码提供了一些随机值。

但是,从栈1.4.2.2 配置文件--> RSC 中使用的运行文件

与以前的堆栈相比,最新堆栈中有任何变化。 或者普尔斯建议我做任何错误的事......!!!

此致、

阿图尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我建议您浏览我们的移植指南、了解每个堆栈版本之间的差异。
    processors.wiki.ti.com/.../LPRF_BLE_Porting_Projects
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Christin:

    我已经完成了这项工作,但我没有找到任何有关此运行服务或任何相关文件的信息。

    你能用其他建议进一步指导吗?

    此致
    阿图尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Christin、

    我在 GATT/ATT 有效载荷结构中只发现了一个变化

    下面的结构元素
    uint8 value[ATT_MTU_size-5];//!<要写入的属性值的一部分

    更改为

    uint8 *pValue;//!<要写入的属性值的一部分(0到 ATT_MTU_SIZE -5)-必须被分配

    必须在上面的注释中分配内存是否需要为此分配内存...?

    我尝试将上面维护的指针替换为旧格式、但这会导致移动应用程序中没有数据传输。


    此致
    阿图尔