ZigBee学习之40——Home Automation Profile3

ZigBee学习之40——Home Automation Profile3

ID:37936354

大小:47.00 KB

页数:5页

时间:2019-06-03

ZigBee学习之40——Home Automation Profile3_第1页
ZigBee学习之40——Home Automation Profile3_第2页
ZigBee学习之40——Home Automation Profile3_第3页
ZigBee学习之40——Home Automation Profile3_第4页
ZigBee学习之40——Home Automation Profile3_第5页
资源描述:

《ZigBee学习之40——Home Automation Profile3》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、ZigBee学习之40——Home Automation Profile3staticvoidzclProcessMessageMSG(afIncomingMSGPacket_t*pkt){…………//首先检查命令域的数据长度,如果没有数据则直接退出if(pkt->cmd.DataLength==0)return;//Error,ignorethemessage…………//然后检查消息的目的终端是否存在于节点上,若不是发送给此节点的则退出epDesc=afFindEndPointDesc(pkt->endPoint);if(epDesc==NULL)return;//

2、Error,ignorethemessage//将簇ID转换到逻辑簇ID,如果为0xFFFF则退出logicalClusterID=zclConvertClusterID(pkt->clusterId,epDesc->simpleDesc->AppProfId,TRUE);if(logicalClusterID==ZCL_INVALID_CLUSTER_ID)return;//Error,ignorethemessage//检查设备是否可操作,即检查DEVICE_ENABLED属性if(zcl_DeviceOperational(pkt->endPoint,pkt->

3、clusterId,inMsg.hdr.fc.type,inMsg.hdr.commandID)==FALSE){return;//Error,ignorethemessage}//一下是处理和解析收到的命令if(zcl_ProfileCmd(inMsg.hdr.fc.type)){//收到的是针对剖面的命令比如读写属性,报告属性,身份认证等if(inMsg.hdr.fc.manuSpecific){//Wedon'tsupportanymanufacturerspecificcommand//不支持生产商的特定命令status=ZCL_STATUS_UNSUP_MA

4、NU_GENERAL_COMMAND;}elseif((inMsg.hdr.commandID<=ZCL_CMD_MAX)&&(zclCmdTable[inMsg.hdr.commandID].pfnParseInProfile!=NULL)){//接收到的命令ID小于最大命令ID,并且命令表中此命令定义了解析函数,则解析并处理此命令zclParseCmd_tparseCmd;parseCmd.endpoint=pkt->endPoint;parseCmd.dataLen=inMsg.pDataLen;parseCmd.pData=inMsg.pData;//Pars

5、ethecommand,rememberthatthereturnvalueisapointertoallocatedmemoryinMsg.attrCmd=zclParseCmd(inMsg.hdr.commandID,&parseCmd);if((inMsg.attrCmd!=NULL)&&(zclCmdTable[inMsg.hdr.commandID].pfnProcessInProfile!=NULL)){//Processthecommandif(zclProcessCmd(inMsg.hdr.commandID,&inMsg)==FALSE){//处理此

6、命令不成功//Couldn'tfindattributeinthetable.}………………}else{//处理此簇ID的特殊命令//Nope,mustbespecifictotheclusterID//为实际的簇ID查找合适的插头//FindtheappropriatepluginpInPlugin=zclFindPlugin(pkt->clusterId,epDesc->simpleDesc->AppProfId);//在这个查找插头的函数中关联了一个静态变量plugins,这个变量中指明了插头的范围以及处理输入消息的函数,其数据结构定义为:【zcl.c】type

7、defstructzclLibPlugin{structzclLibPlugin*next;uint16startLogCluster;//startinglogicalclusterIDuint16endLogCluster;//endinglogicalclusterIDzclInHdlr_tpfnIncomingHdlr;//functiontohandleincomingmessage}zclLibPlugin_t;//在zclSampleLight_Init()中我们通过调用zclGeneral_RegisterCmdCallbacks()

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。