是用于获得RSSI正确的方式吗?

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
8个帖子/ 0新
最后一篇
2228266166.
离线
最后一次露面:2年1个月前
加入:2018-08-07 07:43
是用于获得RSSI正确的方式吗?

亲爱的支持,
当DA14580设备连接时,我希望每10毫秒获取RSSI的值。目前,我在下面写一个函数。
void app_easy_gap_get_con_rssi(uint8_t connection_idx)
{
assert_warning(connection_idx

struct gapc_get_info_cmd * cmd = ke_msg_alloc(gapc_get_info_cmd,
ke_build_id(task_gapc,connection_idx),
task_app,
gapc_get_info_cmd);

cmd->操作= gapc_get_con_rssi;

ke_msg_send(cmd);
}

int gagc\u con\u rssi\u ind\u处理程序(ke\u msg\u id\u t const msgid,
struct gapc_con_rssi_ind const * param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
rssi_buf [i] = param-> rssi;
i++;
如果(i == 16)
我= 0;
返回(KE_MSG_CONSUMED)
}

我打开计时器0,在计时器0中断中使用app\u easy\u gap\u get\u con\u rssi()函数。在gagc\u con\u rssi\u ind\u handler()函数中,我可以得到rssi的值。
请告诉我此方法是否正确。

设备:
PM_DIALOG.
离线
最后一次露面:13小时7分钟前
职员
加入:2018-02-08 11:03
你好,

你好,

为了获取RSSI值,您应该将带有GAPC_GET_CON_RSSI的GAPC_GET_INFO_CMD作为命令的操作发送。之后,堆栈将以GAPC_CON_RSSI_IND响应,并且应用程序可以从应用程序中检索RSSI值。由于我能从App_easy_gap_get_con_rssi()中看到,请使用GAPC_GET_CON_RSSI操作向堆栈发送GAPC_GET_INFO_CMD命令。但是,我需要一些澄清 - 有关您的代码架构的信息。如果我理解正确,你的应用程序在app_easy_timer到期时执行app_easy_gap_get_con_rssi(),这是10ms?您能否分享你如何处理定时器0,以便每10ms获得RSSI值?如果你能每10毫秒获得RSSI值,请你告诉我吗?获取GAPC_CON_RSSI_IND时执行GAGC_CON_RSSI_IND_HANDLER()?你的代码似乎是正确的。请为我提供这些澄清,然后我会尝试从我身边测试它,我会告诉你。

谢谢,PM_DIALOG.

2228266166.
离线
最后一次露面:2年1个月前
加入:2018-08-07 07:43
你好,

你好,
实际上,我在计时器0中使用app_easy_gap_get_con_rssi()函数中断.i用一个gapc_get_con_rsss发送一个gapc_get_info_cmd作为命令每10ms的命令,但没有得到RSSI的值。

PM_DIALOG.
离线
最后一次露面:13小时7分钟前
职员
加入:2018-02-08 11:03
你好,

你好,

当您获得广告指示时,广告消息的RSSI值包含在您收到的数据包中。当中央获取广告数据包时,触发GAP_ADV_REPORT_IND,应处理以才能提取RSSI。在连接的情况下,您应该将消息显式发送到堆栈(GAPC_GET_INFO_CMD)以获取RSSI(检查RW_BLE_GAP_IS PDF)。请澄清你的问题吗?

谢谢,PM_DIALOG.

2228266166.
离线
最后一次露面:2年1个月前
加入:2018-08-07 07:43
如果是连接,我

在连接的情况下,我每隔10ms向堆栈向堆栈发送GAPC_GET_INFO_CMD以获取RSSI.然而,我发现RSSI的值在同一距离中非常不稳定。你可以给我一个代码例程吗?
谢谢。

PM_DIALOG.
离线
最后一次露面:13小时7分钟前
职员
加入:2018-02-08 11:03
你好,

你好,

由于它已经在此线程中提及,您可以通过使用GapC_CON_RSSI_IND操作使用GAPC_GET_INFO_CMD来获取RSSI,因为您已在应用程序中实现,您可以获得RSSI值。请检查RW-BLE-GAP-IS.PDF)。此外,请在软件实现部分中查看常见问题解答“如何读取和转换RSSI值到DBM?”。您获得不稳定值的最可能原因是将噪声添加到信号中。您能否澄清RSSI值的不稳定程度是多少?您使用的是定制董事会或我们的开发板吗?

此外,您可以参考SDK 5.0.4 \ 5.0.4 \ projects \ host_apps \ windows \ proximity \ monitor \ src \ app_task.c文件,实现gapc_con_rssi_ind_handler函数的实现。您可以将GAPC_CON_RSSI_IND_HANDLER函数移植到代码中。

如果您发现上述任何答案有用请标记其中一个接受。

谢谢,PM_DIALOG.

azimin
离线
最后一次露面:5个月2周前
加入:2018-12-12 12:11
你好,你怎么称呼

你好,你怎么称呼函数“gapc_con_rssi_ind_handler”?
谢谢

PM_DIALOG.
离线
最后一次露面:13小时7分钟前
职员
加入:2018-02-08 11:03
嗨azimin,

嗨azimin,

我建议您查看来自SDK主机应用程序的Papc_con_rssi_ind_handler()从SDK主机应用程序。

谢谢,PM_DIALOG.