最近在看nRF5_SDK_for_Thread_and_Zigbee_2.0.0_29775ac里面关于ZigBee light_control的示例,里面有一个Zigbee 协调器的例子。不是很清楚52840的ZigBee组网的问题。看了下它的代码
/* Set ZigBee stack logging level and traffic dump subsystem. */
ZB_SET_TRACE_LEVEL(ZIGBEE_TRACE_LEVEL);
ZB_SET_TRACE_MASK(ZIGBEE_TRACE_MASK);
ZB_SET_TRAF_DUMP_OFF();
/* Initialize ZigBee stack. Pass "zdo_zc" to the stack logging system. */
ZB_INIT("zdo_zc");
/* Set device address to the value read from FICR registers. */
zb_osif_get_ieee_eui64(ieee_addr);
zb_set_long_address(ieee_addr);
/* Set channels on which the coordinator will try to create a new network. */
zb_set_network_coordinator_role(IEEE_CHANNEL_MASK);
zb_set_max_children(MAX_CHILDREN);
/* Keep or erase NVRAM to save the network parameters after device reboot or power-off. */
zb_set_nvram_erase_at_start(ERASE_PERSISTENT_CONFIG);
/** Start Zigbee Stack. */
zb_err_code = zboss_start();
ZB_ERROR_CHECK(zb_err_code);
while(1)
{
zboss_main_loop_iteration();
UNUSED_RETURN_VALUE(NRF_LOG_PROCESS());
}
那么渣渣的问题来了:
- 不是说ZigBee有一个IEEE长地址和短地址,IEEE长地址是出厂就设定的,那短地址在哪里呢?代码里没看到这方面的呀
- 不是需要一个PAN ID网络标识号吗?在哪里设定的?
- 那个信道IEEE_CHANNEL_MASK号不是该协调器自己扫描吗?怎么就自己设定最合适的信道了不是很清楚52840 创建ZigBee的流程,望老铁们解答解答。