DA14580“GAPC_PARAM_UPDATED_IND”

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
8个职位/ 0个新职位
最后发表
omesa
离线
最后看到:6个月2个星期前
加入:2014-12-07 17
DA14580“GAPC_PARAM_UPDATED_IND”

你好,
首先,我希望所有人都有一个更好的新年作为最后一个。
我有以下问题:
我的申请是一个超低功率传感器。当我的android应用连接到设备上时,我必须尽快改变连接参数以节省能源,因为我每10秒就会得到一个新的数据。
在一个特殊的测量程序中,我将每1秒得到一个新的数据。
所以,我不得不不时地改变连接参数。
这和预期的一样。
但是在我的DA14580代码中,我想确定,新的连接参数是否被主(android应用程序)异常。如果连接参数不正确,我必须断开通信。

我的项目是基于“ble_app_sleepmode项目”

所以我的第一个想法是在“user_catch_rest_hndl()”中捕获以下消息。

案例GAPC_PARAM_UPDATED_IND:

//将void指针强制转换为适当的消息结构
Struct gapc_param_updated_ind const *msg_param = (Struct gapc_param_updated_ind const *)(param);

//检查已更新的Conn Params是否已填充为首选参数
如果((msg_param->con_interval >= user_connection_param_conf.intv_min)
(msg_param->con_interval <= user_connection_param_conf.intv_max)
(msg_param->con_latency == user_connection_param_conf.latency) &&
(msg_param - > sup_to = = user_connection_param_conf.time_out))

//我的代码app_easy_gap_disconnect(app_env[0].conidx);//发送断开连接命令

}打破;

但是变量msg_param->con_interval、msg_param->con_latency、msg_param-> sup_总是具有相同的值。

我的第二个想法是捕捉以下消息GAPC_PARAM_UPDATE_CFM //主确认或不确定从端提出的参数是否被接受
但没有成功。

也许它是错误的地方捕捉这条消息在"user_catch_rest_hndl()"或Android没有发送这条消息。

第三个也是最后一个想法是直接读取实际的连接参数,但是它们在哪里呢?

谢谢提前

此致敬礼
Siegmar

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

嗨omesa,

一旦连接参数被更新,GAPC_PARAM_UPDATED_IND事件就会被触发。如果主(移动电话)接受参数,那么当参数被更新时,GAPC_PARAM_UPDATED_IND应该被发送到应用程序。如果检查SDK示例,您将看到在user_catch_rest_hndl()中捕获了GAPC_PARAM_UPDATED_IND。您应该能够通过在app_process_catch_rest_cb()中捕获GAPC_PARAM_UPDATED_IND来获得更新参数指示,但这同样表明连接参数已经被主服务器更改。在将新参数应用于连接之前,您无法捕获消息。你能添加一个断点来检查是否能收到这条信息吗?是= >参数已更新。请使用SS工具箱中的功率分析器检查这一点。

如果您正在开始一个新的设计/项目,我们强烈建议您从DA14531或DA14585/586产品和我们最新的SDK6.0.14开始,因为它有更多的改进。亚博电竞菠菜我们有很多代码示例和改进的文档,也有软件路线图支持。DA14580产品族和SDK5没有软件路线图支持。

谢谢,PM_Dialog

omesa
离线
最后看到:6个月2个星期前
加入:2014-12-07 17
你好,

你好,

谢谢你的快速回复。

首先,这不是一个新的设计。它正在工作,也许在6个月内,我将把软件移植到新的硬件。

但我有个问题。

当然,我知道如何设置断点;-)

但是变量msg_param->con_interval、msg_param->con_latency、msg_param-> sup_总是具有相同的值。

Msg_param ->con_interval = Msg_param ->con_latency !!

请知悉,我使用DA14580芯片已经超过2年了。

如果你告诉我正确的方向,那就太好了。

干杯

Siegmar

PM_Dialog
离线
最后看到:9小时11分钟前
工作人员
加入:2018-02-08 11:03
嗨omesa,

嗨omesa,

谢谢你的解释。我的意思是,检查断点到达这一点。在连接参数请求之后,您是否能够看到连接间隔已被更新?

当GAP外围设备向GAP Central发送连接参数更新请求时,GAP Central根据Bluetooth LE规范决定是否接受该请求。

如果它被拒绝,app_on_update_params_rejected(默认为NULL)将被触发。因此,您可以删除NULL并实现您的应用程序代码。请遵循其他用户回调的实现。

如果它被接受,您可以使用app_on_update_params_complete回调来执行同样的操作。请参阅user_callback_config.h中的user_app_callbacks()。

例如:

.app_on_update_params_complete = user_app_on_update_params_complete,

在user_XXXX.h文件中(例如user_periphere .h)

Void user_app_on_update_params_ rejected (Void);空白user_app_on_update_params_complete(无效);

在user_XXXX.c文件中(例如user_peripheral .c)

Void user_app_on_update_params_ rejected (Void) {........} void user_app_on_update_params_complete(void) {........}

如前所述,当连接的参数被更新时,应该触发GAPC_PARAM_UPDATED_IND事件。是否需要读取新的连接参数?

谢谢,PM_Dialog

omesa
离线
最后看到:6个月2个星期前
加入:2014-12-07 17
非常感谢你的帮助

非常感谢您的回复和给我的指导。

正如前面提到的,当连接的参数被更新时,应该触发GAPC_PARAM_UPDATED_IND事件。是否需要读取新的连接参数?”

我想确定,连接参数是正确的。也许我可以在Android Master上测试它,但是奴隶可以自己控制它更好。

今天我将从调查开始。

干杯

Siegmar

PM_Dialog
离线
最后看到:9小时11分钟前
工作人员
加入:2018-02-08 11:03
嗨Siegmar,

嗨Siegmar,

如果Master接受或拒绝更新参数请求,您可以使用建议的回调。

谢谢,PM_Dialog

omesa
离线
最后看到:6个月2个星期前
加入:2014-12-07 17
你好,

你好,

非常感谢你给我指明了正确的方向。它正在像预期的那样工作。当连接参数没有被master异常时,我可以在回调函数void user_app_on_update_params_ rejected (void)中断开连接,使用app_easy_gap_disconnect(app_env[0].conidx);

所以我的问题解决了,谢谢

此致敬礼

Siegmar

PM_Dialog
离线
最后看到:9小时11分钟前
工作人员
加入:2018-02-08 11:03
嗨Siegmar,

嗨Siegmar,

很高兴你把它修好了。如果您有任何后续问题,请提出一个新的论坛帖子。

谢谢,PM_Dialog