全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
从零开始学习ZStack之8近段时间比较忙,几乎都快荒废了Z-Stack的学习了,把以前学的都快忘记了,这就是非专业技术的痛苦啊!学习刚好有点眉目,突然意外中断停下,当再一次学习的时候突然发现:以前学的都忘了8成了!郁闷啊!今天真不知道从什么地方下手学习了,所以就针对最近客户比较关心的问题做点介绍,这样有针对性、有目的性的学习可能最适合现在的我了,不然从头把以前那些所谓的笔记看一遍,可能今天晚上又没了,指不定明晚以及后晚以及后后晚都没时间,不然老是看以前的笔记没有进展就麻烦了!呵呵!今天只解决1个问题:TI提供的例子程序的表演及功能介绍。因为最近问这些的客户比较多,特别又是刚入手的朋友,对Z-Stack非常迷糊的时期,如果能够跑通几个例子、看几个演示,那么可以大大提高学习兴趣;另外如果知道某个例子的大致功能及实现,那么在去看具体实现过程目的性就非常明确。首先来看看TI究竟有哪些例子:可以看出其例子是非常丰富的。GenericApp,Location,SampleApp,SimpleApp,HomeAutomation,SerialApp,Transmit,ZLOAD。这样看来还是不少的。其中SampleApp例子已经在前面的学习中有所涉及,可以说前面的所有学习都是基于这个例子的,所以这里就不测试它了。Location是定位的测试例子,这里我的硬件是不够的,所以也不做测试。其他我都做点测试,能成功的就成功,不能成功的就失败,这个我也没办法,呵呵!1、GenericApp工程打开等我就不多说了,自己去找,如果连这些我都还说,那么我以前的东西是白学了。硬件连接中.当我用两个节点分别烧写入DB的协调器和路由器,从我的经验看来,他们分别能建立网络和加入网络,但是 从表象上几乎看不见数传现象,尽管我按了每个节点的按键,也仅仅是本节点的LED在改变。唯独有点数传感觉的是:按键右键对方有反应就是了,至于具体什么反映我觉得没必要说明白,大家试试就知道了。所以还决定看看程序来判断这个例子的功能。大约浏览了下,这个例子似乎还与设备的绑定有关系,因为在按建处理程序中发现:if ( keys & HAL_KEY_SW_2 ) HalLedSet ( HAL_LED_4, HAL_LED_MODE_OFF ); / Initiate an End Device Bind Request for the mandatory endpoint dstAddr.addrMode = Addr16Bit; dstAddr.addr.shortAddr = 0x0000; / Coordinator ZDP_EndDeviceBindReq( &dstAddr, NLME_GetShortAddr(), GenericApp_epDesc.endPoint, GENERICAPP_PROFID, GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList, GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList, FALSE );很明显这里按键2(右键)是发送绑定请求的命令。if ( keys & HAL_KEY_SW_4 ) HalLedSet ( HAL_LED_4, HAL_LED_MODE_OFF ); / Initiate a Match Description Request (Service Discovery) dstAddr.addrMode = AddrBroadcast; dstAddr.addr.shortAddr = NWK_BROADCAST_SHORTADDR; ZDP_MatchDescReq( &dstAddr, NWK_BROADCAST_SHORTADDR, GENERICAPP_PROFID, GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList, GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList, FALSE ); 显然按键4(左)是初始化一个匹配描述符请求,也就是发现服务,或者叫自动寻求匹配设备。这就不怪我按键有反映了!而且在发送数据和接收数据处理函数发现:void GenericApp_SendTheMessage( void ) char theMessageData = Hello World; if ( AF_DataRequest( &GenericApp_DstAddr, &GenericApp_epDesc, GENERICAPP_CLUSTERID, (byte)osal_strlen( theMessageData ) + 1, (byte *)&theMessageData, &GenericApp_TransID, AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ) = afStatus_SUCCESS ) / Successfully requested to be sent. else / Error occurred in request to send. 居然发送的是一个字符串“Hello World”。void GenericApp_MessageMSGCB( afIncomingMSGPacket_t *pkt ) switch ( pkt-clusterId ) case GENERICAPP_CLUSTERID: / the message#if defined( LCD_SUPPORTED ) HalLcdWriteScreen( (char*)pkt-cmd.Data, rcvd );#elif defined( WIN32 ) WPRINTSTR( pkt-cmd.Data );#endif break; 接收数据处理函数里居然要通过液晶显示,本人这里的液晶暂时没有移植过来,因为暂时还不具备那个实力,怪不得看不到发送数据的状况!这里本人就自作聪明的把以前SampleApp例子里面的一句话加过来了:void GenericApp_MessageMSGCB( afIncomingMSGPacket_t *pkt ) switch ( pkt-clusterId ) case GENERICAPP_CLUSTERID: / the message HalLedBlink( HAL_LED_4, 4, 50, (500) );#if defined( LCD_SUPPORTED ) HalLcdWriteScreen( (char*)pkt-cmd.Data, rcvd );#elif defined( WIN32 ) WPRINTSTR( pkt-cmd.Data );#endif break; 麽想到啊,这么一加居然就有反应了,o(_)o!我不愧是天才的接班人啊!其实这里很简单的了,就是接收到数据后闪烁4下灯,间隔0.5S。因为从:if ( events & GENERICAPP_SEND_MSG_EVT ) / Send the message GenericApp_SendTheMessage(); / Setup to send message again osal_start_timerEx( GenericApp_TaskID, GENERICAPP_SEND_MSG_EVT, GENERICAPP_SEND_MSG_TIMEOUT ); / return unprocessed events return (events GENERICAPP_SEND_MSG_EVT); 这里可以看出,这个例子很明显仅仅是个发送周期信息的例子。所以LED4就周期性的闪烁4下,当然是协调器发送,路由器闪烁,路由器发送,协调器闪烁。但是这例子里体现了绑定的概念,应该说是从基本功能上很齐全的一个例子,而且在ZSTACK上实现无线网络数传,没有任何多余的功能。所以该例子是一个典型的ZSTACK模板,也就是为用户提供了一个通用模板可以通过这个建立自己的应用。关于如何在这个例子上建立、修改成自己的工程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 针刺伤应急处理
- 中国人民大学法硕专业考研考点分析-考研复习笔记-考研经验
- 一元一次不等式(第2课时)课件2025-2026学年人教版七年级数学下册
- 电商采购职业规划书
- excel表格函数试题及答案
- 小学数学应用题专题题目及答案
- 烘焙(面包)题库及答案
- 保育员职业资格考试试题及解答
- 教育法基础试题及答案
- 法语DELFA2题目及详解
- 包山砍伐合同范本
- 国家信息中心区块链服务网络(BSN)
- 2024年大学生志愿服务西部计划笔试试题库(含答案)
- 黑龙江省哈尔滨市2025年中考语文真题试卷附真题答案
- 火烧石材承包协议书
- 上海高校毕业生登记表(本专科生)
- (13)普通高中艺术课程标准日常修订版(2017年版2025年修订)
- 水务网络安全培训课件
- 鲁迅完整版课件
- 汽车维修岗前培训考试题及答案解析
- 江西吉安市市直事业单位选调考试真题2024
评论
0/150
提交评论