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.

ZigBee 3.0 bdb_StartCommissioning使用

Other Parts Discussed in Thread: Z-STACK

上面这个链接有如下描述,有些疑问确认一下:

如何让协调器建网,如何在建网以后去绑定设备

可以通过调用 bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_FORMATION | BDB_COMMISSIONING_MODE_FINDING_BINDING); 

如何让路由或者终端设备进行加网,如何在加网以后去绑定设备

可以通过调用bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING);

我的疑问如下:

1.协调器建网和绑定BDB_COMMISSIONING_MODE_NWK_FORMATION | BDB_COMMISSIONING_MODE_FINDING_BINDING

例如一个终端和一个协调器已经组好网了,过段时间又来了一个新的终端,是不是协调器还要建一次网,这个建网是不是就是permit join的意思?

BDB_COMMISSIONING_MODE_NWK_FORMATION终端才能加的进去 ?

2.BDB_COMMISSIONING_MODE_FINDING_BINDING不要可以吗?我只是协调器和终端之间传送私有数据

3.我的理解是协调器端用BDB_COMMISSIONING_MODE_NWK_FORMATION ,终端用BDB_COMMISSIONING_MODE_NWK_STEERING ,不知道理解是否正确?

4.如果加网成功了,或者不成功在哪里可以知道状态?

在zclSampleSw_ProcessCommissioningStatus函数里面知道相关的状态。这是上面的链接里描述的,

我是用这个函数来判断终端的状态还是用ZDO_STATE_CHANG去判断终端的状态?

  • BDB_COMMISSIONING_MODE_NWK_FORMATION是建立网络。
    BDB_COMMISSIONING_MODE_FINDING_BINDING 两个设备进行绑定

    BDB_COMMISSIONING_MODE_NWK_STEERING router:未加入网络则发送beacon request , zed:未加入网络则发送beacon request coordinator: permit join 180s.

    判断状态可以使用ZDO_STATE_CHANG
    对BDB有疑问可以看:Z-Stack 3.0 Developer's Guide
    www.zigbee.org/.../docs-13-0402-13-00zi-Base-Device-Behavior-Specification-2.pdf
  • 1. 一个终端和一个协调器已经组好网了,过段时间又来了一个新的终端,协调器不用再建一次网,这時候只要调用bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING);就可以使能permit join的
    2. 可以
    3. 协调器端只有组网時用BDB_COMMISSIONING_MODE_NWK_FORMATION ,之後协调器跟终端都可以用BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING就好
    4. 用ZDO_STATE_CHANG去判断终端的状态
  • 1.那是不是在协调器上电的时候,在初始化里调用BDB_COMMISSIONING_MODE_NWK_FORMATION完成建网
    后续如果再有终端需要加入的时候,在协调器端触发BDB_COMMISSIONING_MODE_NWK_STEERING 即可?
    2.BDB_COMMISSIONING_MODE_NWK_FORMATION和BDB_COMMISSIONING_MODE_NWK_STEERING 都会触发permit join是吧?
    3.在协调器上电的时候,在初始化里调用BDB_COMMISSIONING_MODE_NWK_FORMATION完成建网,此时如果用终端请求加入能加的进来吗?是不是协调器的初始化里要设置为BDB_COMMISSIONING_MODE_NWK_FORMATION | BDB_COMMISSIONING_MODE_NWK_STEERING 还是设置为BDB_COMMISSIONING_MODE_NWK_FORMATION 即可?
  • 1. 是的
    2&3. 协调器沒有建网時在初始化里调用BDB_COMMISSIONING_MODE_NWK_FORMATION会触发使能permit join,但是如果已經建网就不会触发使能permit join,此時須设置BDB_COMMISSIONING_MODE_NWK_STEERING ,终端请求加入网才能加的进来
  • 我总结一下看对不对:
    1. 协调器上电的时候,调用BDB_COMMISSIONING_MODE_NWK_FORMATION完成建网
    2. 协调器通过ZDO_STATE_CHANG发现有终端要求入网,于是在协调器侧触发BDB_COMMISSIONING_MODE_NWK_STEERING,让终端加入自己的网络

    那么终端上电的时候,调用什么申请入网?
  • bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_STEERING)是終端調用,如果設備沒有加入過這個網路,協調器應該使能permit join即可,如果曾經入網過,協調器不需要有任何動作