使用ble_app_profile ble app可读UUID值总是不显示值

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
2个帖子/ 0个新
最后发表
uta_lc
离线
最后看到:1年1个月前
加入:2016-05-03 07:39
使用ble_app_profile ble app可读UUID值总是不显示值

亲爱的DLG的支持,

我一直试图将一些代码从SDK 5.0.4移植到SDK 6.0.6,但是我在如何初始化自己的属性的数据库(UUID)方面遇到了困难。

我们有10字节的配置数据读取从flash启动期间,我希望读回通过一个定制的UUID。你能让我如何在SDK 6.0.6中实现吗?我使用cust1配置文件-修改了defs和config.c等,但当我尝试读取连接后的UUID,它总是显示没有值。

我一直使用app_XXX_enable消息(从app发送)PROFILE_ENABLE到BLE配置任务,其中处理程序使用attmdb_svc_set_permission来正确初始化数据库。

然而,在SDK6.0.6,试图做同样的事情,但它总是导致有趣的行为。

你能提供一些基于ble_app_profile中的代码的示例代码吗?我尝试了未修改的ble_app_profile从SDK 6.0.6.427,但当读回任何可读的值,它总是返回“无值”和嗅嗅显示“Rcvd读请求[格式错误的数据包]。”

DLG的人能马上看一下吗?我们的发行日程很紧。

非常感谢,
uta_lc

设备:
PM_Dialog
离线
最后看到:4小时55分钟前
工作人员
加入:2018-02-08 11:03
嗨uta_lc,

嗨uta_lc,

有三种方法可以用从SPI flash中存储的数据初始化属性的数据库。以下示例来自SDK 6.0.6.427的ble_app_peripheral示例。

  1. 您可以将存储的数据添加到您的特征值如下:

[svc1_idx_adc_val_1_uuid_128] = {svc1_adc_val_1_uuid_128, att_uuid_128, perm (rd, enable) | perm (ntf, enable),
DEF_SVC1_ADC_VAL_1_CHAR_LEN, <长度>,<价值>}

值是存储的数据,长度是数据的长度。请注意,应该在初始化数据库之前从SPI flash中读取存储的值。因此,应该在执行default_app_on_set_dev_config_complete()回调函数的app_db_init_start()之前读取数据。

  1. 您可以发送CUSTS1_VAL_SET_REQ消息,这样custs1_val_set_req_handler将被执行。attmdb_att_set_value(),将数据库中flash的值更新为特征值。通过这种方法,可以将数据库更新到cust1_task中。
  1. 你可以读取SPI flash的数据,然后执行attmdb_att_set_value(custs1_env->shdl + param->句柄,param->长度,0,(uint8_t *)¶m->值);没有发送CUSTS1_VAL_SET_REQ消息。

谢谢,PM_Dialog