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。请问我遇到的错误有解决方案了吗?谢谢。