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:我尝试使源路由发送支持数据单元分段。

Guru**** 2038710 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/1459664/cc2652p-i-have-try-to-make-source-routing-sending-support-data-unit-fragmentation

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

工具与软件:

我已经尝试修正了这样的 SDK 代码。 它有时起作用、有时不起作用。

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
uint16_t afRtgDstAddress = INVALID_NODE_ADDR;
afStatus_t AF_DataRequest(...)
{
....
if((req.dstAddr.addrMode == Addr16Bit) && (!(req.txOptions & APS_TX_OPTIONS_SKIP_ROUTING)))
{
afRtgDstAddress = req.dstAddr.addr.shortAddr;
}
if (len > afDataReqMTU( &mtu ) )
{
if (apsfSendFragmented)
{
stat = (*apsfSendFragmented)( &req );
}
else
{
stat = afStatus_INVALID_PARAMETER;
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    您好、Aries、

    我希望你做得好。 您在此处使用的是哪个 SDK 版本? 和 CCS 版本。  

    -您能指出您开始使用的示例和/或详细说明为什么代码片段有时工作/不工作(步骤/序列)?  

    谢谢!
    Alex F

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

    我 在、器上将"MAX_RTG_SRC_ENTRYes"设置为128 、但 在我的协调器上使用的 zgConcentratorEnable 为 "FALSE"。 我的协调器 将 AF-Packet 发送到属于另一个路由器的终端设备。 有时协调会触发发送的源路由、 有时 协调器不会触发 源路由。

    如何 在调用"AF_DataRequest"时打开和关闭源路由

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

    您好、Aries、

    您可以在此处获取一些监听器调试日志吗?

    以及提供路由定义和阐明节点角色(为什么协调器不是 MOT 协调器?)。

    您 可以尝试使用 AF_DataRequest 中的 RTG_GetRtgSrcEntry 来确定源路由条目是否可用。

    谢谢!
    Alex F

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

    我的程序  RTG_GetRtgSrcEntry 在 AF_DataRequest 中被调用、而 RTG_GetRtgSrcEntry 可以检测终端设备被记录在协调器的源路由表中。 但协调器不会触发 源路由。

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

    嘿、Aries、您能否提供所有路由定义并阐明 您的节点角色(即为什么协调员不是 MTO 集中器?)

    https://dev.ti.com/tirex/content/simplelink_cc13xx_cc26xx_sdk_7_41_00_17/docs/zigbee/html/zigbee/z-stack-overview.html#many-to-one-routing-protocol 

    从 Z-Stack UG 中可以看出:"作为多对一布线的一部分、仅在特定情况下使用源布线。 首先、在集中器响应源设备启动的请求时使用。"

    使用默认 Z-Stack 预编译库可能无法实现您想要的目标。

    此致、
    Ryan

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

    LINK_DOWN_TRIGGER=12
    NWK_ROUTE_AGE_LIMIT=5
    DEF_NWK_RADIUS=30
    default_route_request_RADIUSX=8
    Route_discovery_time=12
    SRC_RTG_VALIDE_TIME=10
    MTO_RREQ_LIMIT_TIME=5000
    CONCURRENT_DISCOVERY_Timex=120
    MAX_RTG_SRC_ENTRYS=128
    CONSTER_ROUE_CACHE=TRUE
    CONTROLLER_ENABLE=TRUE

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

    谢谢、这些与 swra650相似 、不存在任何问题。  嗅探器日志可以确认、根据设计、某些数据包情况不会触发 Z-Stack 库中的源路由。  这将如何影响您的终端应用?

    此致、
    Ryan

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

    我希望数据单元分段发送触发源路由、但有时源 路由会触发、有时 源路由不会触发。 我想 预先判断将 在 AF_DataRequest 中触发源路由。

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

    我已经研究过 Z-stack lib 的代码、发现协调器会首先在正常路由表(RTG 表)中搜索路由路径。 尽管目标地址记录在源路由表中、但不会触发源路由。 所以我在"uint8_t afDataReqmtu ( afDataReqmty_t* fields )"中固定的代码 可以像这样

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    uint8_t afDataReqMTU( afDataReqMTU_t* fields )
    {
    uint8_t len;
    uint8_t hdr;
    if ( fields->kvp == TRUE )
    {
    hdr = AF_HDR_KVP_MAX_LEN;
    }
    else
    {
    hdr = AF_HDR_V1_1_MAX_LEN;
    }
    len = (uint8_t)(APSDE_DataReqMTU(&fields->aps) - hdr);
    //match rtg table to recalculate MTU, fixed by luoyiming 2025-01-04
    if(afRtgDstAddress != INVALID_NODE_ADDR)
    {
    if ( RTG_CheckRtStatus( afRtgDstAddress, RT_ACTIVE, 0 ) != RTG_SUCCESS )
    {
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX