zoukankan      html  css  js  c++  java
  • ZigBee Device Object End Device Bind Request--协调器与终端之间的绑定

    这里主要讲述协调器和终端之间的绑定。

    This mechanism uses a button press or other similar action at the selected devices to bind within a specific timeout period.  The End Device Bind Request messages are collected at the coordinator within the timeout period and a resulting Binding Table entry is created based on the agreement of profile ID and cluster ID. The default end device binding timeout (APS_DEFAULT_MAXBINDING_TIME) is16 seconds (defined in nwk_globals.h), but can be changed if added to f8wConfig.cfg or as a compile flag.

        绑定表的创建时间应该是在允许绑定时间结束之后开始的。协议默认的绑定时间为16s。

    All sample applications have a function that handles key events [for example, TransmitApp_HandleKeys() in

    TransmitApp.c].  This function calls ZDApp_SendEndDeviceBindReq() [in ZDApp.c], which gathers all the

    information for the application’s endpoint and calls  ZDP_EndDeviceBindReq() [ZDProfile.c] to send the

    message to the coordinator.  Or, as in SampleLight and SampleSwitch,  ZDP_EndDeviceBindReq() is called

    directly with only the cluster IDs relevant to the lamp On/Off functions.

      所有的应用中均有处理绑定的按键事件,具体的看看代码就知道了。

    下面的这段话不是很理解,暂时贴在这里,求高手作答。蓝色部分求高手看了之后留言讲解。

    Coordinator end device binding is a toggle process.  Meaning that the first time your go through the process, it will

    create a binding entry in the requesting devices.  Then, when you go through the process again, it will remove the

    bindings in the requesting devices.  That’s why, in the following process, it will send an unbind, and wait to see if

    the unbind was successful.  If the unbind was successful, the binding entry must have existed and been removed,

    otherwise it sends a binding request to make the entry.

    When the coordinator receives 2 matching End Device Bind Requests, it will start the process of creating source

    binding entries in the requesting devices.  The coordinator follows the following process, assuming matches were

    found in the ZDO End Device Bind Requests:

    1.  Send a ZDO Unbind Request to the first device.  The End Device Bind is toggle process, so the unbind

    is sent first to remove an existing bind entry.

    2.  Wait for the ZDO Unbind Response, if the response status is ZDP_NO_ENTRY, send a ZDO Bind

    Request to make the binding entry in the  source device.  If the response status is ZDP_SUCCESS,

    move on to the cluster ID for the first device (the unbind removed the entry – toggle).

    3.  Wait for the ZDO Bind Response.  When received, move on to the next cluster ID for the first device.

    4.  When the first device is done, do the same process with the second device.

    5.  When the second device is done, send the ZDO End Device Bind Response messages to both the first

    and second device.

  • 相关阅读:
    LAB8 android
    python3速查参考- python基础 1 -> python版本选择+第一个小程序
    selenium三种断言以及异常类型
    selenium+java:获取列表中的值
    selenium测试(Java)--元素操作(五)
    redhat网卡设置
    PYTHON TDD学习(一)-->Python 3.4版本环境安装Django及其启动
    渗透测试
    实用--功能测试方法与实际测试内容
    SQL常见面试题(学生表_课程表_总表)
  • 原文地址:https://www.cnblogs.com/farbeyond/p/5204624.html
Copyright © 2011-2022 走看看