主题中讨论的其他器件:SysConfig
工具与软件:
我们使用的是 BLE5示例项目"Data Stream"。 我想根据我们的要求对其进行调整。 到目前为止工作良好。 在进行开启或初始化时、例如在运行期间、我想将器件名称从"Data Stream"更改为"Hello 1001"。 我希望每个 BLE 器件都有自己的名称和编号。 我该怎么做? 如果您可以为我显示项目的位置、或者提供适合"Data Stream"项目的示例代码、那会很理想。
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.
工具与软件:
我们使用的是 BLE5示例项目"Data Stream"。 我想根据我们的要求对其进行调整。 到目前为止工作良好。 在进行开启或初始化时、例如在运行期间、我想将器件名称从"Data Stream"更改为"Hello 1001"。 我希望每个 BLE 器件都有自己的名称和编号。 我该怎么做? 如果您可以为我显示项目的位置、或者提供适合"Data Stream"项目的示例代码、那会很理想。
你好、Ali、
感谢您的咨询。
因此、如果您要更改器件广播名称、可以通过 SysConfig 进行更改、如下图所示。

如果您需要在运行时修改此参数,可以看到该名称存储在"attDeviceName"变量中,该变量是存储在 appMainParams 中的参数的一部分(类型为 BLEAreg Util_General 0595ams_t )。 您可以在 app_main.c 中看到此定义
请确保名称不超过21个字符的 GAP_DEVICE_NAME_LEN。
BR、
David。
亲爱的 David
我更改了 单元 app_main.c 上的变量(请参阅下面的)、但配对时保留了广告名称"Data Stream"。
void appMain (void)
{
#if ! defined(Display_disable_all)
menuitmodule_params_t params ={
.mode =仅限 Module_Mode_ 4.0 INTS_ONLY
};
if (MenuModule_init (NULL、¶ms)!=成功)
{
// TODO:调用错误处理程序
}
#endif //#if!defined (Display_disable_all)
attDeviceName[0]='T';
attDeviceName[1]="E";
attDeviceName[2]='s';
attDeviceName[3]='T';
attDeviceName[4]="1";
attDeviceName[5]='2';
attDeviceName[6]='3';
attDeviceName[7]='4';
attDeviceName[8]='5';
attDeviceName[9]='6';
attDeviceName[10]='7';
attDeviceName[11]='8';
//调用 BLEAppUtil 模块初始化函数
BLEAppUtil_init (App_Stack itDoneHandler,
&appMainParams,&appMainPeriCentParams);
}
David、您好!
感谢您的反馈。
如果我通过 SysConfig 进行更改、新器件名称没有问题。
attDeviceName[0]='T';
attDeviceName[1]="E";
attDeviceName[2]='s';
attDeviceName[3]='T';
scanResData1 [0]='T';
scanResData1 [1]='E';
scanResData1 [2]='s';
scanResData1 [3]='T';
//调用 BLEAppUtil 模块初始化函数
BLEAppUtil_init (App_Stack itDoneHandler,
&appMainParams,&appMainPeriCentParams);
Ali
David、您好!
我不n´t BLEAppUtil_init 内的 GGS_SetParameter ()函数(见下文)。 记住、我使用示例程序"Data Stream"。 在哪里必须更改运行时上的哪个变量?
void BLEAppUtil_init (ErrorHandler_t errorHandler、StackInitDone_t initDoneHandler、
BLE4.12.4510ams_t Util_General *initGeneralParams,
BLE4.12.42Params_t Util_Peri *initPeriCentParams)
{
//注册应用程序错误处理程序
errorHandlerCb = errorHandler;
//注册初始化完成处理程序-将从 GAP_DEVICE_INIT_DONE_EVENT 调用
appInitDoneHandler = initDoneHandler;
//将用户的 BLEAppUtil 参数分配给本地参数
BLEAppU4510s Local_General conveniParams= initGeneralParams;
BLEAppU4510Params=initPeriCentParams; Local_Peri
//创建消息队列以发送到 BLEAppUtil
BLEAppUtil_createQueue();
//创建 BLE 堆栈任务
bleStack_createTasks();
//创建本地应用程序任务
BLEAppUtil_createBLEAppUtilTask();
//构造将由以下函数使用的互斥体:
// BLEAppUtil_registerEventHandler
// BLEAppUtil_unRegisterEventHandler
// BLEAppUtil_callEventHandler
pthread_mutex_init (&mutex、NULL);
}
此致
Ali
你好、Ali、
我懂了。 您可以更改广播数据和扫描响应数据(特别是 GAP_ADTYPE_LOCAL_NAME_COMPLETE 字段)。 请 在此处查看我们的培训材料(广播任务2–更改广播数据)。 此外、您还可以查看我们的 用户指南中有关更改 Adv 参数的部分。
您还可以利用此 e2e 线程 (不过、该方法与不同的器件系列非常相似)。
BR、
David。
尊敬的 David:
感谢您的帮助。 现在我发现了我的错误在哪里。 请勿触摸变量 scanResDATA1的数组元素0和1。 以下示例工作正常。 :)
attDeviceName[0]='T';
attDeviceName[1]="E";
attDeviceName[2]='s';
attDeviceName[3]='T';
scanResData1 [2]='T';
scanResData1 [3]='E';
scanResData1 [4]='s';
scanResData1 [5]='T';
//调用 BLEAppUtil 模块初始化函数
BLEAppUtil_init (App_Stack itDoneHandler,
&appMainParams,&appMainPeriCentParams);
此致
Ali