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

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
11个员额/ 0个新员额
最后发表
stanley_yeh
离线
最后看到:2年2个月前
加入:2016-12-23 06:52
写入设备名称(0x2a00)特性以更改设备名称

嗨,对话框中,

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

我在user_config.h中修改了user_gapm_conf,如下所示…

。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
离线
最后看到:5个月2个星期前
工作人员
加入:2015-06-08 34
嗨stanley_yeh,

嗨stanley_yeh,

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

由于MT_dialog

stanley_yeh
离线
最后看到:2年2个月前
加入:2016-12-23 06:52
太感谢了!

太感谢了!

stanley_yeh
离线
最后看到:2年2个月前
加入:2016-12-23 06:52
嗨mt_dialog,

嗨mt_dialog,
我尝试在app_entry_point_handler和gapc_set_dev_info_req_ind_handler函数中打印一些消息。
但是,DA14585似乎没有收到任何事件。
我能自己解决这个问题吗?这个问题是否必须更新system_library。我不能解决它?
谢谢。

MT_dialog
离线
最后看到:5个月2个星期前
工作人员
加入:2015-06-08 34
嗨stanley_yeh,

嗨stanley_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结构的.att_cfg成员更改为GAPM_MASK_ATT_SVC_CHG_EN|0x01,以便启用对特定特征的无安全写操作。

在上面的修改之后,你应该会看到default_app_on_set_dev_info()回调发生,但同样,这只是表明中央已经写入了那个特征,这不会改变数据库中的名称。

由于MT_dialog

stanley_yeh
离线
最后看到:2年2个月前
加入:2016-12-23 06:52
嗨mt_dialog,

嗨mt_dialog,
非常感谢。我现在可以接收事件了。
很抱歉,我听不懂以下句子的意思:

1.“这不会改变数据库中的名称。”
你能告诉我如果数据库中的名字不能更改会有什么风险吗?
你的意思是设备名是SDK中的定义(#define USER_DEVICE_NAME "DA14585"),所以没有实际的实现来更改它?
实际上,我已经实现了一个函数,可以将设备名称存储到外部flash中。所以你说的判决对我的案子没有影响,对吧?

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

非常感谢。

MT_dialog
离线
最后看到:5个月2个星期前
工作人员
加入:2015-06-08 34
嗨stanley_yeh,

嗨stanley_yeh,

1)将会发生什么,因为SDK,此刻无论你写的设备提供的SDK不会存储名称你它就值发送到设备,你就能得到它,但设备一旦你看阿甘的名字不会改变,设备将报告相同的名称。是的,在SDK中没有实际的实现来改变它。我不知道你说你实现了一个功能,在外部闪存中存储设备的名称是什么意思。但是为了能够通过这个特性改变设备的名称你需要对SDK本身进行修改,显然你需要分配一个指针到USER_DEVICE_NAME而不是一个固定的名称,指针将显示一个数组,该数组将用于存储实际设备的名称,无论何时通过写入该特征来更改名称,你将不得不将写入数据复制到该数组。

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

由于MT_dialog

stanley_yeh
离线
最后看到:2年2个月前
加入:2016-12-23 06:52
嗨mt_dialog,

嗨mt_dialog,
我非常感谢您的详细信息。
对于第一个问题,我可以自己保存设备名称。没问题。
关于第二个问题,我还需要安全特性,如果有新的SDK版本请告诉我。
多谢。

MT_dialog
离线
最后看到:5个月2个星期前
工作人员
加入:2015-06-08 34
嗨stanley_yeh,

嗨stanley_yeh,

SDK的最新版本是6.0.6,有一个项目实现了安全(ble_app_security),我不太明白到底是什么问题。如果您应用值GAPM_MASK_ATT_SVC_CHG_EN|0x03,那么为了写入特征将需要安全性,如果配对没有启动,那么您将无法写入特征。如果您不想对该特征进行保护,那么。att_cfg的GAPM_MASK_ATT_SVC_CHG_EN|0x01将允许您在不安全的情况下写入特征。

由于MT_dialog

stanley_yeh
离线
最后看到:2年2个月前
加入:2016-12-23 06:52
嗨mt_dialog,

嗨mt_dialog,
我现在使用SDK 6.0.6,我也设置"。att_cfg = (GAPM_MASK_ATT_SVC_CHG_EN | 0x03)"
我第一次在特征上写字符串时,应用程序显示它们在结合。
绑定后,我仍然无法设置设备名称。该应用程序显示“错误0x5:gatt Insuf身份验证”
我是否应该将函数“gapc_set_dev_info_req_ind_handler”中的参数从TASK_GAPM修改为TASK_GAPC ?
struct gapc_set_dev_info_cfm * cfm = ke_msg_alloc(gapc_set_dev_info_cfm,
/ * TASK_GAPM TASK_GAPC, * /
TASK_APP,
gapc_set_dev_info_cfm);
你能给我一些建议吗?
非常感谢。

MT_dialog
离线
最后看到:5个月2个星期前
工作人员
加入:2015-06-08 34
嗨stanley_yeh,

嗨stanley_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