This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2745R10-Q1:在连接事件回调函数中显示 RSSI

Guru**** 2644985 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1583620/cc2745r10-q1-displaying-rssi-within-the-connection-event-callback-function

器件型号: CC2745R10-Q1

根据 CC2745 SDK(9.12 版本)中的示例软件“basic_ble",“,我、我将在连接事件回调函数中显示 RSSI、但在某个时候、显示更新会停止。 时间约为 96 秒。

 

对于这种现象、可以考虑采取哪些对策?
实施如下。 很抱歉无法发布主代码。

  • 在 app_connection.c 中的函数“BLEAPPUTIL_LINK_INSTABLE_EVENT 内、Connection_Conn EventHandler“ Gap_Register 用于注册回调函数。
  • 之后、注册的回调函数使用参数 RSSI.EventRpt_t *pReport 通过 MenuModule_printf 函数显示 Gap_Conn。

 

提前感谢您。

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Yamanaka-San、  

    您是否正在进行 RSSI 处理和/或显示来自回调函数的 RSSI 数据? 如上一个线程中所述,您应该使用 BLEApp Util_Invoke Function() 将函数添加到队列中。  

    您可以创建一个使用 pReport 作为输入的函数。 然后、您将处理 RSSI 数据并显示来自该函数的数据。 通过回调进行处理和显示将阻止其他进程完成、在 BLE 环境中、这可能会导致连接失败。 BLEAppUtil_invokeFunction 允许您对函数进行排队、以便代码不会阻止其他重要 BLE 功能按时发生。  

    如果这对我有帮助、请告诉我。  

    谢谢、

    Isaac

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:  

    感谢您的答复。


    问题中的处理在一个回调函数内完成、我们尚未使用您提到的“BLEApp Util_Invoke Function“。

    我们想尝试使用“BLEApp Util_Invoke Function“来实现它、但使用哪个函数来通过该函数对存储在队列中的项进行出队?

    对于重复出现的问题、我们深表歉意、感谢您的帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Yamanaka-San、  

    您能解释一下为什么要从队列中出队?  

    我将查看从队列中退队的情况。  

    谢谢、

    Isaac

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    我很抱歉我缺乏理解,但这是我的想法。 如果我错了、请指出。

    (1) 使用“BLEApp Util_Invoke Function“注册连接事件回调

    (2) 发生连接事件时、将调用已注册的回调函数

    (3) 在回调函数中、对包含从连接事件获取的 RSSI 等信息的消息排队

    (4) 在任务处理中、检查队列中是否有消息、如果有、则执行处理

    我认为在上述步骤 (4) 中有必要取消排队、这就是为什么我询问了取消排队的方法。

    此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Yamanaka-San、  

    BLEAppUtil_invokeFunction 会将该函数添加到队列中。 这很有用、因为函数的处理将在有时间完成时完成。 如果您在回调上下文中完成处理、则软件将滞留在回调中、直到处理完成。 因此、您可能会遇到 BLE 连接失败的问题、或者当您在回调中滞留处理时软件中的其他任务无法获得帮助。  

    使用 BLEApp Util_Invoke 功能将函数添加到队列中,无需出队。 执行该函数后、除非您/软件使用 BLEAppUtil_invokeFunction 对该函数再次排队、否则该函数不会再次排队。  

    如果这对我有帮助、请告诉我。  

    谢谢、

    Isaac

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我明白,明白。 这很有帮助。

    此致。