- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
zigbee应用编程常用函数
Zigbee应用编程常用函数
吴小星
/p-677121261270.html
JZA_boAppStart
JZA_vStackEvent
JZA_vPeripheralEvent
JZA_vAppEventHandler
JZA_vAppDefineTasts
JZA_eAfKvpObject
JZA_vAfKvpResponse
JZA_u8AfMsgObject
JZA_vZdpResponse
AppColdStart
AppWarmStart
JZS_u32InitSystem:初始化协议栈
JZS_vStartStack
第一类是应用的初始化函数,它们用于在设备上电时对协议杖进行初始化:
AppColdStart (应用程序入口,设备上电后,应用程序从这个函数开始运行) ,AppWarmStart
第二类是应用程序调用协议杖的函数,这类函数通常由第一类函数进行调用
JZS_u32InitSystem,JZS_vStartStack
第三类是协议杖调用应用程序的函数,这类函数通常作为协议杖和应用程序进行同性接口
JZA_boAppStart
JZA_vStackEvent
JZA_vPeripheralEvent
JZA_vAppEventHandler
JZA_vAppDefineTasts
JZA_eAfKvpObject
JZA_vAfKvpResponse
JZA_u8AfMsgObject
JZA_vZdpResponse
AppColdStart函数
在这个函数中,调用一系列协议栈初始化函数及BOS的初始化函数
AppWarmStart函数
当设备从内存供电的休眠状态唤醒时,进入这个函数;如果设备不需要休眠时,该函数为空;
JZS_u32InitSystem:初始化zigbee协议栈
JZS_vStartStack:调用这个函数后,设备将作为Co-ordinator,Ruoter或者End Device启动。如果是Co-ordinator将启动网络,如果是Ruoter或者End Device将加入网络。
协议栈调用应用程序的函数
这些函数是协议栈在运行过程中如果需要应用程序进行相应的处理把控制权交给应用程序接口。需要注意的是,所有这些函数都需要在您的应用中定义接口,即使你不使用其中的一些函数;
JZA_boAppStart:这个函数让用户可以在协议栈启动前定义endpoint的descrptor,通常在这个函数中调用JZS_vStartStack来启动协议栈。
JZA_vStackEvent:协议栈将通过这个函数反馈网络层的一些网络事件,比如网络启动成功或者节点加入成功,或者数据发送完成。
JZA_vPeripheralEvent:这个函数主要用来处理外部硬件中断,如时钟环,串口。
JZA_vAppDefineTasks:这个函数用于向BOS注册自己的用户任务。
JZA_eAfKvpObject:用于用户程序接收处理其他节点发送的KVP数据。
JAZ_u8AfMsgObject:用于用户程序接收处理其它节点发送的MSG数据。
JZA_vAfKvpResponse:这个函数用来接收发送的KVP包的回应。这一回应由远程节点发出。通常这个函数用来判断和远程节点的通讯是否通畅。
JZA_vZdpResponse:这个函数用来接收所发送的ZDP请求的回应。
应用框架接口函数
应用框架函数主要分为两大类:
一类是AF sub-layer Data Entity (AFDE)API:用来创建和发送数据请求,这类函数在af.h文件中定义。
另一类是AF sub-layer Management Entity (AFME) API:用来添加,修改,删除设备描述,这系列函数在afProfile.h中定义。
AFDE类函数只有一个,是afdeDataRequest(),这个函数用来向网络层发出数据发送请求。该函数原型如下:
Bool_t afdeDataRequest(
AF_ADDRTYPE sDstAddr,
Uint8 u8SrcEP,
Uint16 u16ProfileId,
Uint8 u8ClusterId,
AF_FRAME_TYPE eFrameType,
Uint8 u8TransCount,
AFDE_DATA_REQ_INFO *psAfdeDataReqInfo,
Uint8 *pau8Afdu,
Uint8 txOptions,
Uint8 u8DiscoverRoute,
Uint8 u8RadiusCounter
);
sDstAddr:这个参数数据要发送的目标地址,是一个AF_ADDRTYPE类型数据,
typedef struct
{
DEV_ADDR_MODE hAddrMode;
U
文档评论(0)