使用芯片:CC2652R
开发平台:CC13x2 / 26×2 SDK
设备类型:协调器
关于3.0网络的组网入网,现在通过BDB来进行,推荐的开发文档也都看了,但是在实际应用种还是由一些问题和疑惑:
1、现在的硬件设备没有按键,所以Zstackapi_bdbStartCommissioningReq()是在初始化的程序种直接调用的;
请问,作为一个协调器,不需要立即打开允许入网和发现绑定的功能,Zstackapi_bdbStartCommissioningReq()的参数应该用什么比较合适?
现在的测试情况是:使用BDB_COMMISSIONING_MODE_NWK_FORMATION | BDB_COMMISSIONING_MODE_NWK_STEERING,网络会建立,并且会立即打开允许入网;
使用BDB_COMMISSIONING_MODE_NWK_FORMATION,也会建立网络,不打开允许入网;
2、 如果单独协调器的话,上边的配置不管用哪个,网络建立都没有问题。但是,如果我在这个网络中入网了一个路由设备,那么本协调器重启之后,就没有网络了(默认的PANID,我是设定的固定值,不是FFFF),表现就是没有link stauts的广播发出,有别的设备发出的beacon request的时候,它也也不发送beacon ,但是协调器程序是运行的,因为我做了一个LED的闪烁指示。
3、这个协调器模块,我配置成初始状态不打开入网。由于没有按键,只有与网关的串口连接,有哪个MT的指令可以触发Zstackapi_bdbStartCommissioningReq()这个调用么?如果有的话吗,参数配置BDB_COMMISSIONING_MODE_NWK_FORMATION | BDB_COMMISSIONING_MODE_NWK_STEERING,还是只用BDB_COMMISSIONING_MODE_NWK_STEERING就可以了?
ZHA1.2协议栈的时候,一直用的是MT_ZdoMgmtPermitJoinRequest(),来打开入网的,现在还使用这个指令有什么问题么?
4、对以前协议栈的设备的入网,按照TI大佬的建议修改,现在ZHA1.2的设备可以入网,2.5.1a协议栈的路由设备还是入网一直失败,通过抓包观察,能执行到协调器发送trans key,但是设备发不出来Device Announce
Viki Shi:
需要讨论一下,稍后再来回复
Viki Shi:
需要讨论一下,稍后再来回复
user5020974:
回复 Viki Shi:
1、想实现的功能就是协调器初始的时候建立网络(如果没有建立过则新建,建立过就用原来的网络),不允许入网,后边通过网关下达指令再打开入网;
2、NV_RESTORE和NV_INIT都在编译条件中添加了的;
3、这个我再试试;
4、“关闭TC link key”是指编译条件中的“TC_LINKKEY_JOIN”吗?这个我没有关闭,但是ZHA1.2的设备可以入网的。另外这个选项不能关闭吧?如果关闭了,我的网络是不是就是不加密的网络了?编译条件如下(使用的是zc-cie的例程的编译条件,自己添加了MT相关):
NPI_USE_UART
NPI
ZTOOL_P1
MT_TASK
MT_APP_FUNC
MT_SYS_FUNC
MT_AF_FUNC
MT_ZDO_FUNC
MT_ZDO_CB_FUNC
MT_NWK_FUNC
MT_NWK_CB_FUNC
MT_UTIL_FUNC
MT_APP_CNF_FUNC
MT_ZDO_MGMT
MT_ZDO_CB_MGMT
ZCL_READ
ZCL_DISCOVER
ZCL_WRITE
ZCL_BASIC
ZCL_IDENTIFY
ZCL_ZONE
ZCL_WD
ZCL_ACE
TIMAC_ROM_IMAGE_BUILD
TIMAC_ROM_PATCH
xUSE_ZCL_SAMPLEAPP_UI
MAX_STATUS_LINES=10
ZSTACK_SECURITY
xBOARD_DISPLAY_USE_UART
FREQ_2_4G
OSAL_PORT2TIRTOS
OSAL_PORT2TIRTOS_OSALMAP
STACK_LIBRARY
RCN_APP_ASSERT
HAL_ASSERT_SPIN
ZDO_API_BASIC
TC_LINKKEY_JOIN
NV_RESTORE
NV_INIT
FEATURE_NON_BEACON_MODE
ZCL_STANDALONE
MAX_DEVICE_TABLE_ENTRIES=50
NVOCMP_NVPAGES=2
DEVICE_FAMILY=cc26x0
CC26X2R1_LAUNCHXL
DeviceFamily_CC26X2
user5020974:
回复 user5020974:
问题2的补充:现象就是只要现在设置的PANID与原来的相同,就建立不起来网络,换一个PANID就有网络了。
操作步骤是:
1、11频段、PAN=0x1234,建立了一个网络;
2、入网了一个路由设备,入网成功后,该路由设备就在“11频段、PAN=0x1234”这个网络正常工作了;
3、重启协调器,网络就没有了;使用重新烧写程序,还是建立不起来网络;
4、如果把协调器的PAN改一下,比如改成了PAN=0x5678,烧写完毕后,网络就建立起来了,再重启协调器,网络还是正常的。
user5020974:
回复 user5020974:
问题2现在没事了。原因是第一次断电重启的过程中,烧写了一下程序,所以NV里边的原来的网络信息是被擦除了,启动后可能是发现空间中有跟自己的PANID相同的网络,所以它就不建立网络了。这个地方更ZHA1.2的时候,是有区别的。ZHA1.2中,在建立网络时,如果空间中有跟自己ID相同的网络,会将自己的网络ID自动加1,然后建立网络。
Viki Shi:
回复 user5020974:
好的,感谢提供反馈
user5020974:
回复 Viki Shi:
还有一个奇怪的现象: 初始化种调用Zstackapi_bdbStartCommissioningReq()时,参数配置为BDB_COMMISSIONING_MODE_NWK_FORMATION。 第一次烧写程序进去后,默认就打开了允许入网;断电重启一下,允许入网就是关闭的了~
Viki Shi:
回复 user5020974:
请问使用的协议栈版本是什么?