工具与软件:
您好、TI
我们已将 SE 安全芯片集成到外设中。 在启动时初始化蓝牙广播后、我们需要从 SE 芯片读取本地名称、并替换原始默认蓝牙本地名称。 如何修改此参数? 直接修改 attDeviceName
中引用的变量 ti_ble_config.h
似乎会导致系统错误。
此致!
普雷斯顿
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.
工具与软件:
您好、TI
我们已将 SE 安全芯片集成到外设中。 在启动时初始化蓝牙广播后、我们需要从 SE 芯片读取本地名称、并替换原始默认蓝牙本地名称。 如何修改此参数? 直接修改 attDeviceName
中引用的变量 ti_ble_config.h
似乎会导致系统错误。
此致!
普雷斯顿
您好!
我认为您要寻找的是 GGS_SetParameter。 不过、我们的文档似乎没有很好地涵盖此功能。 您可以按如下方式使用该函数:
status = GGS_SetParameter(GGS_DEVICE_NAME_ATT, GAP_DEVICE_NAME_LEN, (void *)pAttDeviceName); if (status != SUCCESS) { return status; }
此函数在堆栈初始化过程中调用(参见 common/iCallBLE/ble_stack_api.c :: Stackinit_Gatt 5213()),因此我不确定堆栈初始化后是否可以更改。
解决此问题的方法是更改 BLEAppUtil_stackInit 函数、以便在堆栈初始化之前填充设备名称:
/** File: bleapputil_init.c (common/BLEAppUtil/bleapputil_init.c) Function: BLEAppUtil_stackInit **/ // Init GATT status = bleStack_initGatt(BLEAppUtilLocal_GeneralParams->profileRole, BLEAppUtilSelfEntity, /** NOTE: Change this param to the device name desired **/ BLEAppUtilLocal_GeneralParams->deviceNameAtt); if(status != SUCCESS) { // TODO: Call Error Handler }
在 common/BLEAppUtil/bleapputil_task.c 中调用 BLEAppUtil_stackInit :: BLE687. Util_Task
我对您尝试执行的操作建议如下:
1.创建可以保存所需名称的全局变量。
2.修改 BLEAppUtil_stackInit :: bleStack_initGatt 以使用此全局变量。
3.在调用 BLEAppUtil_stackInit 之前 、请将全局变量设置为所需的名称:
这应该使用您设置的名称。
此致!
Nima Behmanesh
您好、Nima
很抱歉、我对您的回应出现延误。
我尝试更 BLEAppUtilLocal_GeneralParams->deviceNameAtt
改为自定义名称、如图所示、其中自定义名称是一个六字节数组。 但是、初始化后、蓝牙广播名称 仍会显示在 syscfg.(通过移动蓝牙搜索发现的名称)中配置的名称
这似乎没有生效。 操作顺序是否有问题? 我在此处初始化的名称是否会被 syscfg 中的名称覆盖?
此致、
普雷斯顿
您好、Nima
bStatus_t Peripheral_start() { bStatus_t status = SUCCESS; status = BLEAppUtil_registerEventHandler(&peripheralConnHandler); if(status != SUCCESS) { // Return status value return(status); } status = BLEAppUtil_registerEventHandler(&peripheralAdvHandler); if(status != SUCCESS) { return(status); } memcpy(&scanResData1[2], test_name, sizeof(test_name));//Added by Preston status = BLEAppUtil_initAdvSet(&peripheralAdvHandle_1, &advSetInitParamsSet_1); if(status != SUCCESS) { // Return status value return(status); } status = BLEAppUtil_advStart(peripheralAdvHandle_1, &advSetStartParamsSet_1); if(status != SUCCESS) { // Return status value return(status); } // Return status value return(status); }
在广播初始化期间、我修改了 scanResDATA1中的本地名称并 开始运行。