我参考”https://support.dialog-semiconductor.com/increase-length-name-during-adv..。“动态修改蓝牙设备名称,
在app_task.c中增加函数
空白set_device_name(空白)
{
struct gapm_set_dev_name_cmd *req = KE_MSG_ALLOC(
GAPM_SET_DEV_NAME_CMD,
TASK_GAPM,
TASK_APP,
gapm_set_dev_name_cmd
);
申请- >操作= GAPM_SET_DEV_NAME;
申请- >长度= 6;
memcpy(请求- >名称,“cylzrh”,6);
ke_msg_send(要求的);
}
在app_task.c经理命令完成事件的处理差距中调用修改蓝牙设备名称的函数。
Static gapm_cmp_evt_handler(ke_msg_id_t const msgid,
Struct gapm_cmp_evt const *参数,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
开关(param - >操作)
{
/ /省略原代码……
// 增加处理的代码
案例GAPM_SET_DEV_NAME:
{
set_device_name ();
}
打破;
/ /省略原代码……
}
返回(KE_MSG_CONSUMED);
}
调试运行时,蓝牙设备的名称没有修改掉,请问哪里错了。应该怎么实现,谢谢!如果能直接给出代码更感激。
设备:
你好,
从你的代码来看。在set_device_name函数中,把消息GAPM_SET_DEV_NAME_CMD从应用层(TASK_APP)发送到了TASK_GAPM。而在GAPM的事件处理函数中,你又调用了set_device_name。
这样不是一直在发消息循环而没做任何事情吗?
请问如何动态修改蓝牙设备名。
以官方DA1458x_SDK_5.0.4 \…\ ble_examples中的ble_app_profile为例,应该在哪个文件中,哪个函数里修改。谢谢!
你好,
你原来的代码里,去掉在gapm_cmp_evt_handler中对set_device_name的调用,然后可以通过状态参数判断其设置的有效性,是可以设置成功的。
手机一般会对外设的名称做缓存,你从机端修改名字后,手机需要关、开下蓝牙才能刷新对该名字的更新显示