读取cc2530节点的设备类型、协调器、路由器、终端。
建立网络、加入网络流程分析
协调器节点:在1-10 实验8 网络通信实验2 组播通信中
- while(MSGpkt)
- {
- switch(MSGpkt->hdr.event)
- {
- case ZDO_STATE_CHANGE: //建立网络后,设置事件
- GenericApp_NwkState=(devStates_t)(MSGpkt->hdr.status);//???????
- if(GenericApp_NwkState==DEV_ZB_COORD)//把该节点已初始化为协调器,则执行下面的
- {
- HalLedBlink(HAL_LED_2,0,50,500); //LED2 闪烁
- aps_AddGroup(GENERICAPP_ENDPOINT,&GenericApp_Group); //建立网路后,加入组。
- osal_start_timerEx(GenericApp_TaskID,SEND_TO_ALL_EVENT,5000);
- }
路由器节点: 在1-10 实验8 网络通信实验2 组播通信中
- while(MSGpkt)
- {
- switch(MSGpkt->hdr.event)
- {
- case ZDO_STATE_CHANGE: //加入网络后,加入族中
- GenericApp_NwkState=(devStates_t)(MSGpkt->hdr.status);//读取节点的设备类型
- if(GenericApp_NwkState==DEV_ROUTER)
- {
- aps_AddGroup(GENERICAPP_ENDPOINT,&GenericApp_Group); //加入组中
- }
- break;
终端节点:1-5 实验4 串口通信2
- while(MSGpkt)
- {
- switch(MSGpkt->hdr.event)
- {
- case ZDO_STATE_CHANGE:
- GenericApp_NwkState=(devStates_t)(MSGpkt->hdr.status);//读取节点的设备类型
- if(GenericApp_NwkState==DEV_END_DEVICE)
- {
- //当中断节点加入网络后使用osal_set_envent()函数设置SEND_DATA_EVENT事件,当事件发生时,执行事件处理函数
- osal_set_event(GenericApp_TaskID,SEND_DATA_EVENT);//??????????????????????????
- }
- break;
而上面的 GenericApp_NwkState是devStates_t GenericApp_NwkState;这样定义的,用于//保存节点状态
- typedef enum
- {
- DEV_HOLD, // Initialized - not started automatically
- DEV_INIT, // Initialized - not connected to anything
- DEV_NWK_DISC, // Discovering PAN's to join
- DEV_NWK_JOINING, // Joining a PAN
- DEV_NWK_REJOIN, // ReJoining a PAN, only for end devices
- DEV_END_DEVICE_UNAUTH, // Joined but not yet authenticated by trust center
- DEV_END_DEVICE, // Started as device after authentication
- DEV_ROUTER, // Device joined, authenticated and is a router
- DEV_COORD_STARTING, // Started as Zigbee Coordinator
- DEV_ZB_COORD, // Started as Zigbee Coordinator
- DEV_NWK_ORPHAN // Device has lost information about its parent..
- } devStates_t;
刚开始时,都是在GenericApp_Init()函数中将GenericApp_NwkState=DEV_INIT。然后再通过哪几步转到为上面三种情况DEV_ZB_COORD、DEV_ROUTER、DEV_END_DEVICE中的一种。
TI协议栈是半开源的,网络层代码并不开源。运行于端口0的ZDO负责应用层用户程序和网络层之间的通信。
网络层的建立过程是由ZDO来实现的。网络建立后应用层会接受到ZDO_STATE_CHANGE消息。使用下面语句就可以读取当前网络的状态。
GenericApp_NwkState=(devStates_t)(MSGpkt->hdr.status);//读取节点的设备类型
读取cc2530节点的设备类型、协调器、路由器、终端。的更多相关文章
- 001——CC2530——终端或者路由器传输到不同多协调器上
(一)参考文献:协调器太多,cc2530的终端或则路由器选择性加入协调器的方法 (二)频道和ID一样 进入协调器和终端和路由器的两个程序,找到Tools中的f8wConfig.cfg文件.修改默认PA ...
- 【分布式协调器】Paxos的工程实现-cocklebur简介(一)
初识分布式协调器 分布式协调器的“协调”二字让人摸不到头脑,怎么就协调了,用的着协调吗?实际上这个东西在之前就是为了提供分布式锁服务而设计的,伟大的google公司发明了chubby,雅虎随后也推出了 ...
- 中小研发团队架构实践之分布式协调器.Net版ZooKeeper
原文:中小研发团队架构实践之分布式协调器.Net版ZooKeeper 一.ZooKeeper是什么 Apache ZooKeeper是由Apache Hadoop的子项目发展而来,于2010年11月 ...
- tensorflow中协调器 tf.train.Coordinator 和入队线程启动器 tf.train.start_queue_runners
TensorFlow的Session对象是支持多线程的,可以在同一个会话(Session)中创建多个线程,并行执行.在Session中的所有线程都必须能被同步终止,异常必须能被正确捕获并报告,会话终止 ...
- SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC)
原文:SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC) 在可更新订阅中,在订阅设置更新方法,将 "排队更新" 设置为 " ...
- C#读取xml节点数据方法小结
本文实例总结了C#读取xml节点数据的方法.分享给大家供大家参考.具体如下: 第一种: 使用XPath XML的路径我配置在web.config 的appSettings节点下 <appSett ...
- 数据库的应用——直接从内存中读取osg节点 (转)
数据库的应用——直接从内存中读取osg节点 目的:要从数据库中读取节点数据到osg. 一开始的方法是这样的,每当我要添加一个数据库中的节点数据时,首先把它读取到内存中,然后写入一个文件,最后再次从文件 ...
- Dom4j使用Xpath语法读取xml节点
我们可以使用Xpath的语法来轻易的读取xml的某个节点[类似于jQuery的选择器]: 使用Xpath语法需要添加新的jaxen-1.1-beta-7.rar 这个jar包 dom4j完整jar包我 ...
- 读取本地HTML的小说阅读器应用源码项目
该源码是一个不错的读取本地HTML的小说阅读器,读取本地HTML的小说阅读器,并且源码也比较简单的,非常适合我们的新手朋友拿来学习,有兴趣的朋友研究下. 源码下载: http://code.662p. ...
随机推荐
- tableview cell添加3D动画
当cell显示之前,会先调用该方法,因此给cell添加动画,在这个方法里面即可. -(void)tableView:(UITableView *)tableView willDisplayCell:( ...
- Android软件盘InputMethodManager
调用下面代码:(第一次调用显示,再次调用则隐藏,如此反复),this指activity InputMethodManager imm = (InputMethodManager)this.getSys ...
- IoC容器Autofac正篇之解析获取(六)
解析获取的方式有如下几种: Resolve class Program { static void Main(string[] args) { var builder = new ContainerB ...
- 5.如果第4题中在DOS命令下输入:java Hello 出现以下结果:Bad command or the file name 可能是什么原因?请说明理由。
1.没有输入javac指定路径,而是直接输入java Hello. 2.前面已经用过一次指令,没有重新输入路径.
- text-size-adjust的值为100% 代替值 none
iPhone 横屏默认会放大文字,设置text-size-adjust会解决这个问题 一般用text-size-adjust:none 但建议用100%代替none text-size-adjust: ...
- 运维命令rsync
如果你是一位运维工程师,你很可能会面对几十台.几百台甚至上千台服务器,除了批量操作外,环境同步.数据同步也是必不可少的技能. 说到“同步”,不得不提的利器就是rsync,今天就来说说我从这个工具中看到 ...
- C#输出日历
用C#输出日历,此功能可用于Ajax方式列出计划日程相关的内容,由于是C#控制输出,可以方便加上自己需要的业务处理逻辑. 1.控制台输出: using System; namespace 控制台日历 ...
- app调用支付宝支付 笔记
1.提交各种申请 2.通过后进入支付宝开放平台 --> 管理中心 -->创建应用 --> 填写相关信息 提交等待审核通过(1,2天) 3.下载集成包(https://doc. ...
- 自定义cell,根据数据源,要对cell的布局进行调整,没有实现调整的相应效果
自定义cell,用于两种显示情况,首次进来A种情况(主材页面),正确显示,然后切换B种情况(辅材情况),可以正确显示,但是当再次切换回A种情况(主材情况)的时候,主材cell不能正常显示了,遗留的B中 ...
- Git Server和sourceTree客户端使用说明
一.创建本地仓库 新建一个文件夹,命名为LocalRep,来作为本地仓库. 在终端 cd+拖拽文件夹到终端,打开文件夹在LocalRep目录下操作clone远程仓库到本地,指令如下所示(需根据实际情况 ...