写入设备名称(0x2a00)特性以更改设备名称

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
11个帖子/ 0新
最后一篇
斯坦利_yeh.
离线
最后一次露面:2年3个月前
加入:2016-12-23 06:52
写入设备名称(0x2a00)特性以更改设备名称

嗨对话框,

我的客户想要使用通用访问(0x1800)的设备名称(0x2A00)来修改设备名称。

我在user_config中修改了user_gapm_conf.h如下......

。att_cfg = gapm_mask_att_svc_chg_en |gapm_mask_att_name_perm,

我还在“default_app_on_set_dev_info”函数中添加一些调试登录,但似乎不起作用。

有没有错?

我的设备信息。DA14585,SDK:6.0.4

谢谢。

设备:
mt_dialog.
离线
最后一次露面:6个月4周前
职员
加入:2015-06-08 11:34
嗨斯坦利_yeh,

嗨斯坦利_yeh,

好吧,似乎在回调函数eapc_set_dev_info_req_ind_handler()发送确认是task_gapc而不是task_gapm的任务中的一个问题,也是回调实际上没有改变设备名称,所以只要您收到回调即可更改应用程序回调中的设备名称。我正在检查SDK团队,我会尽快让你知道一些反馈。

谢谢mt_dialog.

斯坦利_yeh.
离线
最后一次露面:2年3个月前
加入:2016-12-23 06:52
非常感谢!

非常感谢!

斯坦利_yeh.
离线
最后一次露面:2年3个月前
加入:2016-12-23 06:52
嗨mt_dialog,

嗨mt_dialog,
我试图在app_entry_point_handler和gapc_set_dev_info_req_ind_handler函数中打印一些消息。
但是,似乎DA14585没有收到任何事件。
我可以自己解决这个问题吗?这个问题是否必须更新system_library.lib,即我无法修复它?
谢谢。

mt_dialog.
离线
最后一次露面:6个月4周前
职员
加入:2015-06-08 11:34
嗨斯坦利_yeh,

嗨斯坦利_yeh,

当前实现允许您在某人在该特定特性写入时,您可以使用回调通知您,但在数据库中的名称中没有实际实现,这是SDK团队正在调查的。所以,如果您对刚刚在某人写在那些特定的特征时,您有兴趣才能在您所要做的所有特性写入的情况下是以下更改:

  1. 在GAPC_SET_DEV_INFO_REQ_IND_HANDLER()中将GAPC_SET_DEV_INFO_CFM()的目标任务从task_gapm更改为task_gapc。
  2. 然后在user_config.h文件中更改user_gapm_conf结构的。ust_gapm_conf结构的成员到gapm_mask_att_svc_chg_en | 0x01,以便对特定特征没有安全性。

在上面的更改之后,您应该看到默认_happ_on_set_dev_info()要进行回调,但是再次占中央写在该特性的指示,这不会在数据库中更改名称。

谢谢mt_dialog.

斯坦利_yeh.
离线
最后一次露面:2年3个月前
加入:2016-12-23 06:52
嗨mt_dialog,

嗨mt_dialog,
非常感谢。我现在可以收到这个活动。
对不起,我无法理解以下句子的含义是什么:

1.“这不会更改数据库中的名称。”
如果数据库中的名称无法更改,您能否告诉我风险,会发生什么?
你的意思是,设备名称是SDK中的定义(#define user_device_name“da14585”),因此没有实际实现更改它?
实际上,我已经实现了一个可以将设备名称存储到外部闪存中的函数。所以你说的句子对我的情况没有影响,对吗?

2.“为特定特征提供没有安全性的写入。”
我的客户表示写知必须具有安全性。我无法理解为什么GAPM_MASK_ATT_NAME_PERM不起作用?

非常感谢。

mt_dialog.
离线
最后一次露面:6个月4周前
职员
加入:2015-06-08 11:34
嗨斯坦利_yeh,

嗨斯坦利_yeh,

1)关于将发生什么,正如SDK的情况下,目前您在设备上写的任何内容时,SDK都不会将您提供的名称存储在设备上只会将值发送到设备,您将能够得到它,但是读取IT后,设备的名称AGAN不会更改,设备将像以前一样报告相同的名称。因此,在SDK中是没有实际实现来改变它。我不知道你的意思是说你已经实现了一个在外部闪存中存储了设备名称的函数。但是为了能够通过该特征来改变设备的名称,您必须将更改应用于SDK本身,显然您将必须为user_device_name分配指针而不是固定名称,指针将显示为将用于存储实际设备名称的数组,并在通过写入该特性时更改名称时,您必须将数据从写入复制到该数组。

2)每个特征都具有一些安全功能,如果启用。这意味着,如果您已将0x03(GapM_Mask_Att_Name_Perm)的值分配给设备的名称特征,这意味着为了能够在该特征上写入设备,该设备需要通过身份验证来保护链接。因此,如果链接没有身份验证,这意味着设备不会允许您在该特定特征上写入,因为您不遵守设备已设置的要求。另一方面,如果您应用0x01的值,这意味着您可以启用特性的写作,而无需额外的安全性,这意味着连接到设备的人能够编写特征。

谢谢mt_dialog.

斯坦利_yeh.
离线
最后一次露面:2年3个月前
加入:2016-12-23 06:52
嗨mt_dialog,

嗨mt_dialog,
我非常感谢您的详细信息。
对于第一个问题,我可以自己保存设备名称。那没问题。
对于第二个问题,我仍需要安全功能,请告诉我是否有任何新的SDK版本。
非常感谢。

mt_dialog.
离线
最后一次露面:6个月4周前
职员
加入:2015-06-08 11:34
嗨斯坦利_yeh,

嗨斯坦利_yeh,

最新版本的SDK是6.0.6,并且有一个项目实现安全性(BLE_APP_SECURY),我不完全得到什么问题。如果应用值Gapm_mask_att_svc_chg_en | 0x03然后为了写入特性需要安全性,如果未启动配对,则无法写入特性。如果您不希望对该特性的保护,那么GAPM_MASK_ATT_SVC_CHG_EN | 0x01对于.ATT_CFG将允许您在没有安全性的情况下写入特性。

谢谢mt_dialog.

斯坦利_yeh.
离线
最后一次露面:2年3个月前
加入:2016-12-23 06:52
嗨mt_dialog,

嗨mt_dialog,
我现在正在使用SDK 6.0.6,我还设置了“.att_cfg =(gapm_mask_att_svc_chg_chg_chg_chg_chg_chg_chg_chg_chg_chg_chg_chg_chg_chg_chg_chg_chg_ch_chg_chg_chg_chg_ch_ch_ce)”。
第一次我写一个字符串到特征,应用程序显示他们绑定。
绑定后,我仍然无法设置设备名称。该应用程序显示“错误0x5:gatt Insuf身份验证”
我应该在“GAPC_SET_DEV_INFO_REQ_IND_HAND_HAND_HAND_HAND_HAND_HAND_HANDLER”功能中将来自TASK_GAPM的参数修改为TASK_GAPC?
struct gapc_set_dev_info_cfm * cfm = ke_msg_alloc(gapc_set_dev_info_cfm,
task_gapc,/ * task_gapm,* /
task_app,
gapc_set_dev_info_cfm);
你能给我一些建议吗?
多谢。

mt_dialog.
离线
最后一次露面:6个月4周前
职员
加入:2015-06-08 11:34
嗨斯坦利_yeh,

嗨斯坦利_yeh,

正如我上一篇文章中所说的那样SDK不实现更改设备的名称,但它会触发应用程序级别的指示,所以我想你已经应用了自定义修改,你也必须从task_gapm更改为task_gapc为了向您接受或不更改的对等设备发送验证。关于gatt_insuf_authentication这是您第一次尝试设置名称和中央发起的(在ble_app_security的情况下)的第一次,将发生回调(default_app_on_set_dev_info),您必须处理接收应用程序中的名称并决定接受或拒绝新名称,然后通过相应的状态发送填充填充_set_dev_info_cfm,以便正确发送确认您必须从task_gapm转换为task_gapc。

谢谢mt_dialog.