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.

[参考译文] CC1352R:需要一种方法来停止重新加入、而不可能发送不关联或清除网络信息

Guru**** 2460850 points


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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1546180/cc1352r-need-method-to-discontinue-re-joining-without-potentially-sending-a-disassociate-or-clearing-network-info

器件型号:CC1352R


工具/软件:

为了节省电力、我需要一种巧妙的方式来暂停重新加入的尝试。

我曾经尝试过使用 SENSOR_PAUSE_EVT 和 SENSOR_RECOVERY_EVT 的方法、但其副作用是、与重置器件相比、重新加入的行为实际上并不一致。

所以、我只是暂停了堆栈、当需要重试加入重新启动器件时、这是有效的、但从功耗的角度来看并不理想、而且并不巧妙。

必须要有一种更好的方法、但我在文档中没有看到。

我要找的基本上是一个静默离开、结果是堆栈已复位并准备好看到 SENSOR_START_EVT 或调用 Jdllc_rejoin 。

我使用的是 SDK 8.30.1-01、并从一个双堆栈示例开始、该示例使用 DMM 同时支持 15.4 和 BLE。 我以 FH 模式运行堆栈。

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

    您好、Joshua、

    您是如何停止堆栈的、使用  SENSOR_PAUSE_EVT 和 SENSOR_RESULT_EVT 时、您会看到哪些不一致的行为 ?

    通过运行 sensor_pause_evt 的代码  、它应该已停止轮询和报告时钟。

     sensor_start_evt 触发 Jdllc_rejoin();

    请帮助我了解您的代码之间的差异。

    此致、

    Daniel

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

    Daniel、

    我已经通过发送 SENSOR_PAUSE_EVT 停止堆栈。  当我发送 sensor_resume_evt 时,它又设置 sensor_start_evt ,就像你说的触发 Jdllc_rejoin ()。

    但是我注意到的是、暂停的时间越长、重新加入的可能性就越小。 似乎内部的某个东西不同步、或者当调用 Jdllc_rejoin 时、某个计时器没有复位。 复位器件会完全导致重新连接的工作非常快速可靠。

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

    您好、Joshua、

    感谢您的澄清。

    我一直使用两个 LaunchPad(收集器和传感器)进行测试 、这些 LaunchPad 在跳频模式下运行 DMM 示例以及 BLE + TI 15.4 Stack。 我向 SSF.c 添加了简历/暂停、以便能够以类似于您的 case 的方式发送事件。
    到目前为止、我没有注意到任何问题、但我会进行更多测试。 在您 重新加入网络之前、通常必须等待传感器处于暂停状态多长时间?  

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

    我开始看到 5 分钟左右的问题。

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

    您好、Joshua、

    我无法重现您的问题。 我在暂停的情况下运行传感器大约一小时(运行 SENSOR_PAUSE_EVT 后)、我能够在发送 SENSOR_RESULT_EVT 后的几秒钟内重新加入网络。

    您是否修改了其他一些可能有助于重现这种情况的内容?

    如何触发 SENSOR_PAUSE_EVT 和 SENSOR_REACK_EVT 事件?

    此致、

    Daniel

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

    Daniel、我将使用超时计时器触发 SENSOR_PAUSE_EVT、然后使用另一个计时器在稍后触发 SENSOR_RESULT_EVT。 时间间隔为 90 秒尝试加入、然后是 5 分钟的死区时间、死区时间间隔随着中断持续而增加。

    我还想知道收集器的配置是否可以考虑到这一点?
      load-nV-sim = true
      CONFIG-AUTO-START = true
      CONFIG-CHANNEL-MASK =全部
      CONFIG-CHANNEL-PAGE = 9
      config-coord-short-addr = 0xaabb
      CONFIG-DOUBLE-TIMER = FALSE
      CONFIG-DOWN-TIME = 250
      CONFIG-BROADCAST-INTERVAL = 2000
      config-fh-num-non-sleaved-jup-neighbors = 1
      config-Fh-num-sleaved-non-sleaved-fixed-channel-neighbors = 1
      CONFIG-FH-BROADCAST-DOWN-TIME = 0
      CONFIG-INDIREAL-PERISTIN-TIME = 62500
      CONFIG-FH-async-channel-Mask = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 49 50 51 52 54 55 56 57 58 59 59 60 61 62 63
      CONFIG-FH-CHANNEL-MASK = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 49 50 51 52 53 54 56 57 59 60 61 62 63
      CONFIG-FH-ENABLE = TRUE
      config-Fh-netname =“netName"</s>“
      config-mac-beacon-order = 15
      CONFIG-MAC-超级 帧-ORDER = 15
      CONFIG-PAN-ID = 0xAbBA
      config-phy-id = 132
      CONFIG-MIN-BACKOFF = 3
      CONFIG-MAX-BACKOFF = 5
      CONFIG-MAX-CSMA-BACKOFF = 5
      CONFIG-MAX-RETIMES = 5
      CONFIG-REPORT_INTERVAL = 90000
      CONFIG-POLLING-INTERVAL = 120000
      CONFIG-TRACKING_DELAY 时间= 90000
      CONFIG-SCAN-DURATION = 5
      config-secure = true
      CONFIG-RANGE-ext = 0
      CONFIG-TX-POWER = 14
      CONFIG-TRICK-MAX-clk-duration = 6000
      CONFIG-TRICKLE-MIN-CLK-DURATION = 3000

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

    您好、Joshua、

    感谢您的配置、如果没有弄错、这是 TI-15-4-Ti STACK-GATEWAY-LINUX-SDK 上的 collector.cfg? 您能否分享您正在使用的 Linux SDK 版本?

    我没有“config-indirectent-peristent-time = 62500“这一行、而是在 collector.h 中定义的

    #elif ((CONFIG_PHY_ID >= APIMAC_200KBPS_915MHZ_PHY_132) && (CONFIG_PHY_ID <= APIMAC_200KBPS_868MHZ_PHY_133))
    
    /* MAC Indirect Persistent Timeout */
    #define INDIRECT_PERSISTENT_TIME (MAX((5 * 1000 * CONFIG_POLLING_INTERVAL / 2),MIN_PERSISTENCE_TIME_USEC) / \
                                      (BASE_SUPER_FRAME_DURATION * \
                                       SYMBOL_DURATION_200_kbps))

    我正在尝试您发送的配置、但仍然无法重现问题。

    此致、

    Daniel