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

⚠️
你好。。谢谢你来到论坛。令人兴奋的消息!我们现在正在迁移到新的论坛平台,该平台将提供更好的功能,并包含在主对话网站中。所有员额和帐户都已迁移。我们现在只接受新论坛的流量-请在//www.xmece.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
5个职位/ 0个新职位
最后一篇文章
德桑布埃
离线
最后一次见到:2年2个月前
加入:2017-02-15 14:09
关于关贸总协定特点的问题

你好,

我想实现一个GATT特性,智能手机发送一个读取查询,DA14680用一个变量的值进行应答(在运行时改变)。因此,我研究了电池服务,以了解如何实现它。

电池服务的行为与我希望自己的服务完全一样——您可以查询它并获取一个不断变化的变量作为返回。然而,是什么困扰着我(在文件sdk/ble services/src/bas.c中):
据我所知,当发送读取查询时,它由函数“handle\u Read\u req()”处理。但是,当我调试程序并在此函数中设置断点时,从智能手机向此特征发送读取查询,该断点永远不会到达/激活,但智能手机仍会收到电池电量值。因此,如果您能解释查询答案是如何生成/发送的,那就太好了。:-)

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

提前谢谢
菲利普

设备:
MT_对话框
离线
最后一次见到:7个月1周前
工作人员
加入:2015-06-08 11:34
嗨,德桑布,

嗨,德桑布,

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

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

谢谢你的对话

德桑布埃
离线
最后一次见到:2年2个月前
加入:2017-02-15 14:09
谢谢你的回答,

谢谢你的回答,不幸的是我选择了错误的“类别”,我只使用DA14680而不是580,所以我想知道你回答的第一部分是否也适用于DA14680?因为这就是我所经历的-所以我不能停止handle_read_req()中的程序,因为读取查询是由堆栈处理的?

MT_对话框
离线
最后一次见到:7个月1周前
工作人员
加入:2015-06-08 11:34
嗨,德桑布,

嗨,德桑布,

不,这不代表68x系列,使用68x,您应该能够在中央处理器尝试读取您的特征时立即停止读取请求,但您仍然需要为该特定特征实现handle_read_req()函数,并且您还需要在创建特征时启用该特征。因此,当使用ble_gatts_add_characteristic()创建特征时,参数gatts_flag_t flags如果设置为gatts_flag_CHAR_READ_REQ将请求重新路由到应用程序级,您将能够在应用程序级捕获请求,然后您必须使用ble_gatts_read_cfm()手动发送确认值。

谢谢你的对话

德桑布埃
离线
最后一次见到:2年2个月前
加入:2017-02-15 14:09
非常感谢你!!信息技术

非常感谢你!!它现在就像一个符咒。:-)