b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

zigbee技术_zigbee组网流程图_zigbee组网课程设计

电脑杂谈  发布时间:2017-01-12 15:13:40  来源:网络整理

zigbee技术_zigbee组网流程图_zigbee组网课程设计

这一讲我要详细说一下协调器的组网过程。在Zstack中,网络组网是从ZDApp_Init函数开始的。具体的执行流程为:Main()->osal_init_system()->osalInitTasks()->ZDApp_In

it()。zigbee组网流程图zigbee组网流程图进入到ZDApp_Init中:

void ZDApp_Init( byte task_id )

{

uint8 capabilities;

// Save the task ID

ZDAppTaskID = task_id;

// Initialize the ZDO global device short address storage

ZDAppNwkAddr.addrMode = Addr16Bit;

ZDAppNwkAddr.addr.shortAddr = INVALID_NODE_ADDR; //0xFFFE

(void)NLME_GetExtAddr();// Load the saveExtAddr pointer.

// Check for manual"Hold Auto Start"

//检测到有手工设置SW_1则会设置devState = DEV_HOLD,从而避开网络初始化

ZDAppCheckForHoldKey();

// Initialize ZDO items and setup the device - type of device to create.

ZDO_Init(); //通过判断预编译来开启一些函数功能

// Register the endpoint description with the AF

// This task doesn't have a Simple description, but we still need

// to register the endpoint.

afRegister( (endPointDesc_t *)&ZDApp_epDesc );

#if defined( ZDO_USERDESC_RESPONSE )

ZDApp_InitUserDesc();

#endif // ZDO_USERDESC_RESPONSE

// set broadcast address mask to support broadcast filtering

NLME_GetRequest(nwkCapabilityInfo, 0, &capabilities);

NLME_SetBroadcastFilter( capabilities );

// Start the device?

if ( devState != DEV_HOLD )

{

ZDOInitDevice( 0 );

}

else

{

// Blink LED to indicate HOLD_START

HalLedBlink ( HAL_LED_4, 0, 50, 500 );

}

ZDApp_RegisterCBs();

}

ZDApp_Init首先检测SW1是否被按下,如果SW1被按下,设备将处于DEV_HOLD状态,不会进入组网状态,这里我们要特别注意。如果SW1没有被按下,那么程序将调用ZDOInitDevice来开启设备。

uint8 ZDOInitDevice( uint16 startDelay )

{

uint8 networkStateNV = ZDO_INITDEV_NEW_NETWORK_STATE;


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/dianqi/article-25822-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 孙小琳
      孙小琳

      甲午海战时我们的装备也杠杠的

    热点图片
    拼命载入中...