zigbee网络设备启动

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Zigbee网络设备启动—主要函数说明

2010-07-09 20:32:17| 分类:Zigbee|字号订阅

使用的协议栈版本信息: ZigBee2006\ZStack-1.4.3-1.2.1

1、ZDApp_Init()及其中几个函数的说明.

(1)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 );

} /*如果devState=DEV_HOLD,则不会调用ZDOInitDevice()来初始化网络

不组网也不进网.LED4闪烁指示这是一个非自动启动模式,等待应

用程序来开启是网络设备*/

else

{

// Blink LED to indicate HOLD_START

HalLedBlink ( HAL_LED_4, 0, 50, 500 );

}

ZDApp_RegisterCBs();

}

****************************************这里说明三个函数: ZDAppCheckForHoldKey()

ZDO_Init()

ZDOInitDevice( 0 )

(1)ZDAppCheckForHoldKey()

**************************

void ZDAppCheckForHoldKey( void )

{

#if (defined HAL_KEY) && (HAL_KEY == TRUE)

//个人认为:可以直接通过读取按键来看是否需要采用HOLD_START模式//如果发现SW_1按下(普通按键吧)/向上(Joystick up),则设置DEV_HOLD;

// Get Keypad directly to see if a HOLD_START is needed.

// Hold down the SW_BYPASS_START key (see OnBoard.h)

// while booting to avoid starting up the device.if ( HalKeyRead () == SW_BYPASS_START) //HAL_KEY_SW_1{

// Change the device state to HOLD on start up

devState = DEV_HOLD;

}

#endif // HAL_KEY

}参见基本问题说明3.

*************************

(2)、ZDO_Init()

*************************void ZDO_Init( void )

{

/*

//REFLECTOR如果定义了这个编译选项则使用“源绑定”,

In the Zigbee 2006 release,the binding mechanism is implemented in all devices and is called source binding.绑定机制可以在所有设备中实现, 04版的只能在协调器中实现.*/// Initialize ZD items

#if defined ( REFLECTOR )

ZDO_EDBind = NULL;

#endif

相关文档
最新文档