zoukankan      html  css  js  c++  java
  • Zigbee 对路由请求的原语处理

    NLME-ROUTE-DISCOVERY.request

    这里是对 NLME-ROUTE-DISCOVERY.request的解读。

    NLME-ROUTE-DISCOVER.request{
        DstAddrMode, // mode (简记,方便后面描述, 下同)
        DstAddr,    // addr
        Radius,
        NoRouteCache    // cache
    }
    NameTypeValid RangeDesc
    mode Integer 0-2 0(no destination address) 
    1(16 bit nwk addr of a multicst group) 
    2(16 bit nwk address of an individual device)
    addr 16-bit any nwk addr 如果mode=0, 该字段不存在
    Radius integer 0x0-0xff 限制转次跳数
    cache bool true/false 禁止建立 路由记录表(route record table) 
    TRUE no 
    FALSE ,establish a route record table

    本地处理

      • ZIGBEE END 接收到这条原语(primitive) 返回状态 INVALID_REQUEST
      • mode != 0, addr 为广播, 返回 INVALID_REQUEST
      • FFD设备接收到, 但设备本身没有路由能力, mode != 0, 则使用 NLME_ROUTE-DISCOVERY.confirm(ROUTE_ERROR ,4)返回
      • FFD设备接收到,本身拥有路由能力, mode = 2, 启动网络层来进行路由发现,试图建立当前设备跟addr之间的路由
      • FFD设备接收到,本身拥有路由能力, mode = 1, 网络层检查设备的nwkGroupIDTable 来判断是否为小组成员,如果是小组成员, NLME-ROUTE-DISCOVERY.confirm(SUCCESS), 停止后续的处理。如果不是小组成员,则网络层会继续进行路由发现,找到当前设备与group id标定设备之间的路由。
      • FFD设备接收到,本身拥有路由能力, mode = 0,网络层管理实体发起MANY-TO-ONE路由发现,这一部分在3.6.3.5.1描述。
      • 以上3种情况中任意1种路由发现,设备会发送一个route discovery command frame 来开展路由发现。若是mode=0, 则立即返回SUCCESS, mode!=0的情况下,要等收到一个route reply command frame 或者 操作超时 (timeout)。 收到路由应答则返回SUCCESS, 没有收到则返回ROUTE_ERROR。
    ------------------------------------------------ Newbit Studio, 感谢你的光临 http://weibo.com/newbittech ------------------------------------------------
  • 相关阅读:
    今日进度
    今日进度
    每周总结
    今日进度
    今日进度
    今日进度
    flask展示Excel
    ubuntu 相关
    python解析xml三种方法【ElementTree】【DOM】【SAX】
    Lambda实现if...elif...else【三元表达式】
  • 原文地址:https://www.cnblogs.com/newbit/p/15397824.html
Copyright © 2011-2022 走看看