读取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. ...
随机推荐
- C语言-字符串文本串联
要形成包含多个行的字符串,可以串联两个字符串. 为此,请键入正斜杠,然后按 return 键. 反斜杠导致编译器忽略以下换行符. 例如,字符串 "Long strings can b ...
- 《Windows驱动开发技术详解》之编程加载NT式驱动
之前我们加载驱动都是利用INSTDRV这个应用,其原理是在注册表中写入相应的字段,这一节我们手动编写代码去加载驱动,其原理类似:
- Linux关机命令详解
在linux下一些常用的关机/重启命令有shutdown.halt.reboot.及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的. Linux centos重启命令: 1. ...
- JavaScript高级程序设计:第五章
引用类型 一.object类型: 创建object实例的方式有两种.第一种是使用new操作符后跟Object构造函数,如下所示: var person = new Object(): person ...
- LeetCode OJ 118. Pascal's Triangle
Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5,Retur ...
- 在JavaScript中创建命名空间的几种写法
在JavaScript中全局变量经常会引起命名冲突,甚至有时侯重写变量也不是按照你想像中的顺序来的,可以看看下面的例子: var sayHello = function() { return 'Hel ...
- ubuntu 自动获取ip的怎么设置
ubuntu以DHCP方式配置网卡自动获取ip编辑文件/etc/network/interfaces:sudo vi /etc/network/interfaces并用下面的行来替换有关eth0的行: ...
- Arch: Configurations
the original purpose is to show the steps needed to setup i3 in vbox.. easy. alright, it is a bit mi ...
- php 高并发下数据同步的问题
1.加锁缺点:降低性能优点:减少代码逻辑复杂度(题主现在这样超过1w条就删数据的逻辑,感觉看起来就点糟糕啊,如果整个系统一复杂,这样的来回写数据,你确定你的逻辑还维护得下去?建议题主梳理一下代码的逻辑 ...
- php 代码编写的格式
1.代码标记 php程序可以使用<?php .... ?> 或 <? ..... ?> 来界定php代码,在html页面中嵌入纯变量是,可以使用<?= $variabl ...