4个职位/ 0个新职位
最后发表
huzhongyi
离线
最后看到:2年4个月前
加入:2018-08-25 06:57
动态修改蓝牙设备名称

我参考”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 int gapm_cmp_evt_handler(ke_msg_id_t const msgid,
Struct gapm_cmp_evt const *param,
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);

调试运行时,蓝牙设备的名称没有修改掉,请问哪里错了。应该怎么实现,谢谢!如果能直接给出代码更感激。

设备:
CYibin
离线
最后看到:4个月11个小时前
工作人员
加入:2017-12-14 02:48
你好,

你好,

从你的代码来看。在set_device_name函数中,把消息GAPM_SET_DEV_NAME_CMD从应用层(TASK_APP)发送到了TASK_GAPM。而在GAPM的事件处理函数中,你又调用了set_device_name。

这样不是一直在发消息循环而没做任何事情吗?

huzhongyi
离线
最后看到:2年4个月前
加入:2018-08-25 06:57
请问如何动态修改蓝牙设备名。

请问如何动态修改蓝牙设备名。
以官方DA1458x_SDK_5.0.4 \…\ ble_examples中的ble_app_profile为例,应该在哪个文件中,哪个函数里修改。谢谢!

CYibin
离线
最后看到:4个月11个小时前
工作人员
加入:2017-12-14 02:48
你好,

你好,

你原来的代码里,去掉在gapm_cmp_evt_handler中对set_device_name的调用,然后可以通过状态参数判断其设置的有效性,是可以设置成功的。

手机一般会对外设的名称做缓存,你从机端修改名字后,手机需要关、开下蓝牙才能刷新对该名字的更新显示