zigbee网络形成:协议栈函数的解析
浅谈整个zigbee协议栈系统运行时,各函数的运行流程
协调器作为采集节点,如何形成网络
1.APP层
void SAPI_Init( byte task_id ) SAPI初始化
sapi_bindInProgress = 0xffff; //绑定标志位,默认不允许绑定
sapi_epDesc.endPoint = zb_SimpleDesc.EndPoint; //在sapi层定义的端口描述符,右侧是常量 sapi_epDesc.task_id = &sapi_TaskID;
sapi_epDesc.simpleDesc = (SimpleDescriptionFormat_t *)&zb_SimpleDesc;
sapi_epDesc.latencyReq = noLatencyReqs;//Beacon
afRegister( &sapi_epDesc );//在应用框架层(AF)注册端口描述符
afSetMatch(sapi_epDesc.simpleDesc->EndPoint, FALSE);// 默认关闭匹配描述符响应
ZDO_RegisterForZDOMsg( sapi_TaskID, NWK_addr_rsp );// 注册网络地址(16位)响应事件,簇ID=OX8000 ZDO_RegisterForZDOMsg( sapi_TaskID, Match_Desc_rsp ) //注册匹配描述符响应事件,簇ID=OX8006
osal_set_event(task_id, ZB_ENTRY_EVENT);//为该任务设置事件ZB_ENTRY_EVENT为常数(0X2000)
UINT16 SAPI_ProcessEvent( byte task_id, UINT16 events ) SAPI 事件处理函数
if ( events & ZB_ENTRY_EVENT ) //ox1000,进入事件
{
zb_HandleOsalEvent( ZB_ENTRY_EVENT );//用户自己定义(蜂鸣器响,LED亮…),提示用户设备已启动 zb_ReadConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );//从NV里面读取配置信息,从ZCD_NV_STARTUP_OPTION读取的值放在startOptions(启动选项)
}
if ( keys & HAL_KEY_SW_1 )//按下S1键,重启协调器
{
if ( myAppState == APP_INIT )
{
logicalType = ZG_DEVICETYPE_ENDDEVICE;//读取NV设备逻辑类型
zb_WriteConfiguration(ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType)
//将读取的logicalType写入NV(ZCD_NV_LOGICAL_TYPE)
zb_ReadConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
startOptions = ZCD_STARTOPT_AUTO_START;//改变NV启动选项
zb_WriteConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
zb_SystemReset();//系统重启
}
}
你可能喜欢
- zigbee学习笔记
- 实验指导书
- 读书日记
- 学习资料
- IEEE802
- 系统函数
- zigbee学习笔记46页
- zigbee学习笔记四——四种地址绑定模式2页
- zigbee学习笔记六——添加中断向量1页
- zigbee学习笔记3-通信例程之GenericApp8页
- zigbee学习笔记2——添加自己的任务4页
- zigbee学习笔记1——基本概念2页
- 焊接方法与设备实验指导书13页
- 《快速成型技术及应用》 实验指导书3页
- 现代汽车检测与故障诊断实验指导书(新)24页
- 微机原理实验指导书(软件部分)11页
- 实验指导书-企业信息化建设与管理课程31页
- 外汇交易实验指导书3页
- 暑假读书日记3页
- 读书日记 董正扬6页
- 读书日记1页
- 10月8日 读书日记1页
- 读书笔记昆虫日记2页
- 读书日记表和阅读银行排行榜2页


