在使用z-stack2.5.1的SampleLight demo的时候,使用CC debugger调试能看到进入ZDApp_event_loop函数调用ZDO_StartDevice,但是在Z-Stack3.0的SampleLight demo调试的时候却看不到进入ZDApp_event_loop的过程,对比两个例程的初始化基本一致,为啥会出现两种结果呢?
Alvin Chen:
你是不是想说 ZDOInitDevice( 0 ); 这个可以进入if ( events & ZDO_NETWORK_INIT ){// Initialize apps and start the networkZDApp_ChangeState( DEV_INIT );
ZDO_StartDevice( (uint8_t)ZDO_Config_Node_Descriptor.LogicalType, devStartMode,DEFAULT_BEACON_ORDER, DEFAULT_SUPERFRAME_ORDER );
// Return unprocessed eventsreturn (events ^ ZDO_NETWORK_INIT);}
z-stack 3.0.2建议做如下操作:
1)如何让协调器建网,如何在建网以后去绑定设备(在上面的附件文件中通过按键实现了)可以通过调用 bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_FORMATION | BDB_COMMISSIONING_MODE_FINDING_BINDING); 函数选择合适的模式。
2)如何让路由或者终端设备进行加网,如何在加网以后去绑定设备
可以通过调用bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING);
gaoyang9992006:
看不到进入的过程,但是结果是一样的吗?最终运行结果是不是都实现了同样的功能?
YiKai Chen:
有可能是因為IAR的optimization level設置為高造成的
user5994982:
回复 Alvin Chen:
找到问题了,入网信息丢失是修改了bdb_StartCommissioning中间的部分代码导致的,现在问题解决了,谢谢。