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.

[参考译文] CC2652P:LQI 连接成本映射问题

Guru**** 2463330 points
Other Parts Discussed in Thread: Z-STACK

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1214455/cc2652p-lqi-to-link-cost-mapping-question

器件型号:CC2652P
主题中讨论的其他器件:Z-stack

为什么该函数不使用 MIN_LQI_COST_2、MIN_LQI_COST_4和 MIN_LQI_COST_6?

添加它们以获得更准确的"成本"是否合理?

/*********************************************************************
 * @fn          nwkConvertLqiToCost
 *
 * @brief       Convert Link Qualiy valuel (lqi 1~255) to link cost (1~7)
 *
 * @param       lqi - link quality value
 *
 * @return      uint8_t - link cost
 */
uint8_t nwkConvertLqiToCost( uint8_t lqi )
{
  uint8_t cost;

  cost = MAX_LINK_COST ;

  if ( lqi > MIN_LQI_COST_1 )
  {
    cost = 1;
  }
  else if ( lqi > MIN_LQI_COST_3 )
  {
    cost = 3;
  }
  else if ( lqi > MIN_LQI_COST_5 )
  {
    cost = 5;
  }
  else if ( lqi == LINK_AGEOUT_COST )
  {
    cost = LINK_AGEOUT_COST;
  }

  return cost;
}

在该主题中 e2e.ti.com/.../cc2652p-lqi-to-link-cost-mapping 表示映射已过时、将在更新的 SDK 中进行更新。 什么时候可以完成呢?

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

    尊敬的 Alex:

    Z-Stack 源代码仅使用 nwkConvertLqiToCost 估算邻居成本(即好、差或无链路)、因此不需要更准确。  为了满足其他开发需求、改进这一特性被忽略了、但软件开发团队仍然知道该问题、可能能够 在今年下半年解决该问题。  您能否解释一下、如果没有更准确的 LQI 成本转换、您的应用会遇到哪些具体障碍、以及您希望更强大的实施方案能够改善您系统的行为?

    此致、
    Ryan

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

    我看不出任何严重的问题,只是急躁,为什么用这种方式实施,是什么原因.

    实际上我的网络中有几个路由器、它们被放置在一个~55m 的链中。

    当我用监听器检查链路状态消息时、我通常会看到成本为1或7。 因此、它从1快速升至7、根本没有中间值3、5。

    有时路由器会尝试直接向协调器发送消息、忽略邻居。

    我还发现了一个图表 LQI vs 距离和我的 LQI/距离看起来非常相似,它看起来成本计算是无效的。

    https://www.researchgate.net/figure/LQI-vs-distance-d-between-Zigbee-based-sensor-nodes-B1B4-and-a-coordinator-node_fig1_4319141

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

    感谢您的详细回答。  您是否尝试过像其他主题中建议的那样修改 MIN_LQI_Cost_*值?  这至少可以改善中间值的操作。  如果 ZR 在中间邻居和 ZC 之间的开销相同,则它将在逻辑上放弃跳频并直接发送消息。

    此致、
    Ryan

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

    感谢您的回答!

    不、我还没有尝试修改 MIN_LQI_Cost、因为我认为可能有理由使其尽可能低。 这就是为什么我问这个问题,以确认(或反驳)我的思思思。 我虽然这是故意的,以强制发送消息的方式与最小的跃点数。

    例如,如果我们有更"准确"的成本与中间值,并且它们均匀地分布在 LQI 图上,可能是一个节点看到邻居和一个共存者,宁愿发送消息给邻居,因为它有较高的成本。 但这毫无意义、因为协调器也是可见的。 最好使用直接消息(即使成本较低)。 否则、如果我们向邻居发送消息、则会增加网络流量、增加跳数、延迟消息等

    我还有一个问题。 这两组路由器的路由效率是否有区别:

    1.所有路由器都直接与协调器配对,协调器是其父路由器。 然后、我们将路由器随机放置在一个长链中。

    2.所有路由器都是一对一配对的。 ZR1到 ZC、ZR2到 ZR1、ZR3到 ZR2等 前一台路由器是下一台路由器的父路由器。 然后我们根据它们在一条长链中的关系逐一放置它们。

    哪种情况最好? "父网络地址"会以某种方式影响路由、还是根本无关紧要?

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

    路由设备(ZC/ZR)是邻居关系、而不是父级/子级(如 ZED)。路由层是一种修复网状设置、这意味着理想情况下、路由器将老化中断的邻居链路、并在路由器移入/移离节点的距离后拾取新的邻居链路。  最好的情况是建立在已部署应用程序中预期的邻居链路。  因此,ZR 加入网络的原始节点一旦开始从附近的路由器接收链路状态消息,就不应与 ZR 路由数据包的能力有任何关系。

    此致、
    Ryan