TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2640R2F: broadcaster下使用long range mode长距离模式

Part Number:CC2640R2F

当前使用SDK为simplelink_cc2640r2_sdk_4_40_00_10,编译器为CCS7.4.0.00015,

我已经根据peripheral对broadcaster做了一些改动,不过还有问题想咨询一下。

请问程序跑起来后是直接进入long range mode,还是需要添加其他的语句来切换到这个模式?

另外,我想动态地修改advertData,每次赋值后应该如何更新广播内容?GAP_UpdateAdvertisingData这个函数应该是已经被删除了。

谢谢解答。

Susan Yang:

Yi LI 说:请问程序跑起来后是直接进入long range mode,还是需要添加其他的语句来切换到这个模式?

使能该模式的话,您可以使用HCI_LE_SetPhyCmd() 

在peripheral下可以找到

static uint8_t phy[] = {HCI_PHY_1_MBPS, HCI_PHY_2_MBPS, HCI_PHY_1_MBPS | HCI_PHY_2_MBPS,HCI_PHY_CODED, HCI_PHY_1_MBPS | HCI_PHY_2_MBPS | HCI_PHY_CODED, AUTO_PHY_UPDATE};

long range mode的话,您需要使用HCI_PHY_CODED

当您处于连接状态时,使用 HCI_LE_SetPhyCmd()。如下语句HCI_LE_SetPhyCmd(connHandle, 0, HCI_PHY_CODED, HCI_PHY_CODED, LL_PHY_OPT_S8);

,

Yi LI:

你好,Susan。我还有其他问题想咨询一下:

HCI_LE_SetPhyCmd这条语句应该写在哪个位置;connHandle这个变量应该写在哪个位置,如何定义;是否需要模仿peripheral中SimplePeripheral_setPhy写一个相似的函数;而且broadcaster中貌似用不了GAPRole开头的函数。
动态修改advertData方面,您好像没有回答我的问题。

谢谢解答。

,

Susan Yang:

Yi LI 说:动态修改advertData方面

请您参考下面关于动态修改广播数据的方法

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1012324/launchxl-cc2640r2-attempting-to-change-the-data-packets-advertised-during-runtime-using-the-skeleton-code-of-simple_broadcaster

如果需要在更新广告数据后触发相关事件,GAP_UpdateAdvertisingData() 也将起作用。

另外下面的教程包含了有关更改广告数据的更多信息

https://dev.ti.com/tirex/explore/content/simplelink_academy_cc2640r2sdk_5_10_02_00/modules/blestack/ble_scan_adv_basic/ble_scan_adv_basic.html#advertising-task-2-ndash-change-the-advertising-data 

Yi LI 说:HCI_LE_SetPhyCmd这条语句

HCI_LE_SetPhyCmd()是请求更改发送器和接收器 PHY 的 API 调用。如果您在运行期间不会更改 PHY,则HCI_LE_SetDefaultPhyCmd()将允许主机指定默认 PHY 并用于所有后续连接。

,

Yi LI:

Hi,Susan。我已经根据您提供的资料完成了动态修改advertData,但我又遇到了新的问题。

HCI_LE_SetDefaultPhyCmd()应该写在哪个位置,SimpleBroadcaster_init的末尾吗?
虽然上述函数在icall_ble_api.h这个头文件里定义了,而且simple_broadcaster已经包含了这个头文件,但是编译时会报错,显示unresolved symbol,请问可能是什么原因?

谢谢解答。

,

Susan Yang:

抱歉,之前漏掉了您的回复,请问您现在问题解决了吗?

,

Yi LI:

你好,Susan。我遇到的问题还没有解决。

,

Susan Yang:

Yi LI 说:HCI_LE_SetDefaultPhyCmd()应该写在哪个位置,SimpleBroadcaster_init的末尾吗?

请看一下

https://software-dl.ti.com/lprf/simplelink_cc26x2_latest/docs/ble5stack/ble_user_guide/html/ble-stack-5.x/phy-2mbps.html#default-phy 

Yi LI 说:但是编译时会报错,显示unresolved symbol

应该是您在CCS内没有添加路径,类似下面这样

,

Yi LI:

你好,Susan。

我在Include Options里添加了路径(${SRC_BLE_DIR}/../../../source/ti/ble5stack/inc, ${SRC_BLE_DIR}/../../../source/ti/ble5stack/icall/inc)并使用各种方法包含函数所在头文件,但问题依旧。抱歉无法上传图片。
文中只提到在建立连接前调用HCI_LE_SetDefaultPhyCmd(),没有其他信息。本项目不涉及连接,我也不太清楚底层的运行逻辑,无从判断我的做法是否正确。

谢谢解答。

,

Susan Yang:

Yi LI 说:我在Include Options里添加了路径(${SRC_BLE_DIR}/../../../source/ti/ble5stack/inc, ${SRC_BLE_DIR}/../../../source/ti/ble5stack/icall/inc)并使用各种方法包含函数所在头文件,但问题依旧。抱歉无法上传图片

若是可以的话,请您上传一下工程,我来具体看一下

,

Yi LI:

ELEC5882M.zip

麻烦您了

,

Susan Yang:

我试了一下,并没有报错呀

能否给出您的详细错误?截图的话,您可以直接截图后copy,而后贴到回复框内

,

Yi LI:

你好,Susan。

我把HCI_LE_SetDefaultPhyCmd语句注释掉了,在simple_broadcaster的第417行。错误信息如下图所示。

会不会是因为我使用的CCS和ARM Compiler Tools版本比较低,前者是7.4.0.00015,后者是TI v18.12.7.LTS。

谢谢解答。

,

Susan Yang:

请给出console内的详细错误。

Yi LI 说:我把HCI_LE_SetDefaultPhyCmd语句注释掉了

您是指加上这一句就会报错?

,

Yi LI:

是的,加上就会报错。现在怀疑是这个函数不应该在现在的位置调用。我想试试把它放在按键函数里。

,

Yi LI:

 你好,Susan。请问我遇到的错误有解决方案了吗?谢谢。

赞(0)
未经允许不得转载:TI中文支持网 » CC2640R2F: broadcaster下使用long range mode长距离模式
分享到: 更多 (0)