关于关贸总协定特征的问题

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
5个职位/ 0个新职位
最后发表
dsandbue
离线
最后看到:2年2个月前
加入:2017-02-15 14:09
关于关贸总协定特征的问题

你好,

我想实现一个GATT特性,智能手机发送一个read查询,DA14680用一个变量的值(在运行时更改)回答。所以我研究了电池服务,想知道如何实现它。

电池服务的行为完全像我想我自己的服务-你可以查询它,并得到一个变化的变量作为返回。但是,有什么问题(在文件sdk/ble-services/src/ base .c中):
据我所知,当你发送一个Read-query时,它会由函数"handle_read_req()"来处理。然而,当我调试程序并在这个函数中设置一个断点,从智能手机发送一个read查询到这个特性,断点永远不会到达/激活,但智能手机接收电池值。所以,如果你能解释如何/在哪里生成/发送查询的答案,那就太好了。:-)

背景我的问题:在我的应用程序,一旦收到Read-query, DA14680需要执行一些算法之前发送的变量作为回应,我想把这些操作放在一个句柄或回调函数,但是我不确定哪个函数可以使用……
我知道可以通过ble_gatts_set_value()函数更改响应值,但我希望只在读查询的情况下调用/使用该函数,以避免轮询该函数并浪费计算能力。

谢谢提前
菲利普

设备:
MT_dialog
离线
最后看到:7个月1个星期前
工作人员
加入:2015-06-08 34
嗨dsandbue,

嗨dsandbue,

在580的情况下,外部设备对电话设备的回复直接从堆栈发送,堆栈将读取数据库的值,并使用适当的值反馈给电话。现在在5.0.4 SDK中有一种方法可以捕捉读数指示,请查看以下链接了解更多细节https://support.dialog-semiconductor.com/gattcreadcmdind-da14580

关于你的第二个问题,为了让处理程序处理与自定义概要文件的交互,你必须遵循已经实现的概要文件的例子,让我们以bas概要文件的bas_init()函数为例。你会看到有一个结构,它将容纳所有关于配置文件的信息,包括每个事件的处理程序(连接,读,写等)。因此,你必须为你的自定义配置文件实现类似的东西,并为结构的read_req成员有一个类似的回调函数,在做了这些之后,你必须使用ble_service_add()添加服务,以便管理器为事件触发你,您还可以在UM-B-044 DA1468x软件平台参考文档。pdf中7.2.2段中找到一些文档。通过执行上面的操作,每次都会有一个读/写等请求,相应的处理程序就会被触发。

由于MT_dialog

dsandbue
离线
最后看到:2年2个月前
加入:2017-02-15 14:09
谢谢你的回答,

谢谢你的回答,很遗憾我选错了“category”,我只用DA14680而不是580,所以我想知道你的回答的第一部分对DA14680也是正确的吗?因为这是我正在经历的——所以我不能停止handle_read_req()中的程序,因为读取查询得到堆栈处理?

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

嗨dsandbue,

不,这并不代表68 x的家庭,与68 x你应该能够尽快停止读请求中央试图读取你的特点,但仍需要实现handle_read_req()函数的具体特点和你也需要启用该特性在创建特色。因此,当使用ble_gatts_add_characteristic()创建特征时,参数gatts_flag_t标志(如果设置为GATTS_FLAG_CHAR_READ_REQ)将把请求重路由到应用程序级别,你将能够在应用程序级别捕获请求,然后必须使用ble_gatts_read_cfm()手动发送确认值。

由于MT_dialog

dsandbue
离线
最后看到:2年2个月前
加入:2017-02-15 14:09
非常感谢!!它

非常感谢!!这招现在很管用。:-)