本文主要记录了协调器和终端通信,完成LED灯的变化,具体为:协调器轮询接收终端发的数据,终端开不开发送都可以,协调器一定要开,终端才会收到。

#if defined(ZDO_COORDINATOR) //协调器收到"D1"后,返回"D1"给终端,让终端Led1也闪烁
    SampleApp_SendPeriodicMessage();
#endif

即:以上代码,在通信时终端开不开都可以,协调器一定要开。

ZigBee主要流程如下:

1、执行main()函数;

2、main()函数调用 osal_init_system();           //初始化操作系统

3、初始化操作系统中调用  osalInitTasks(); //初始化系统任务

4、初始化系统任务中定义 tasksEvents 存放任务ID的缓冲区,(uint16 * tasksEvents )

5、初始化系统任务中定义 taskID ,标示一个任务,高优先级对应的taskID反而低,(uint8  taskID )

6、初始化系统任务中调用 SampleApp_Init( taskID )   //用户创建任务

7、创建任务中分配任务ID,// SampleApp_TaskID = taskID;   //osal分配的任务ID随着用户添加任务的增多而改变

8、初始化操作系统完成。回到main()函数。

9、main()函数调用osal_start_system(); // No Return from here 执行操作系统,进去后不会返回

10、扫描事件,得到优先级高的任务ID,tasksEvents[idx]  ,idx=优先级最高的taskID.

11、 (tasksArr[idx])( idx, events );//通过指针调用任务处理函数,关键。tasksArr[idx]是一个数组,里面存放了一个函数SampleApp_ProcessEvent(idx, events)。

12、执行SampleApp_ProcessEvent ( uint8 task_id, uint16 events ) //用户应用任务的事件处理函数。

13、判断事件为接收事件,

// Received when a messages is received (OTA) for this endpoint
        case AF_INCOMING_MSG_CMD://接收数据事件,调用函数AF_DataRequest()接收数据
          SampleApp_MessageMSGCB( MSGpkt );//调用回调函数对收到的数据进行处理

14、执行

//接收数据,参数为接收到的数据
void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )

15、LED灯变化,

16、调用SampleApp_SendPeriodicMessage()发送数据到终端。

17、继续扫描任务,运行OS。

ZigBee协调器和终端通信相关推荐

  1. 基于Zigbee的SHT10温湿度数据采集系统(已实现控制12个终端节点)——Zigbee协调器主要代码解析

    之前实现了基于Zigbee的SHT10温湿度数据采集系统,这里来重新复盘一些主要的知识和代码. 写在前面: 1 功能介绍:使用Zigbee终端节点采集环境的温度和湿度数据,然后将数据无线发送的Zigb ...

  2. 使用zigbee的协议栈进行协调器路由器终端初始化

    实验目的: 使用协议栈,外加自己写的数码管的代码模块 配置协调器路由器终端,各自对应数码管数字C,R,E. 本身不是很细致,只是把一些重要步骤截了一下,IAR工程什么的默认大家都会了. zigbee协 ...

  3. 组一个包括协调器路由器终端节点的zigbee网络,通过串口能获取它们的拓扑结构。

    组一个包括协调器路由器终端节点的zigbee网络,通过串口能获取它们的拓扑结构. 实验简介 实验环境 实验准备 1.下载基本工程文件 2.打开工程文件 3.尝试编译 路由器和终端节点 查看完整原文 旧 ...

  4. ZigBee协调器,ZigBee智能节点盒

    新设备下 1.安装CP210xVCPInstaller_x64.exe串口驱动 2.连接USB转串口,RS485转232,蓝色数据线连ZigBee协调器485A,黄色数据线连ZigBee协调器485B ...

  5. ZIGBEE 协调器(刷写程序后)PAN_ID+1,与原来路由器无法组网

    ZIGBEE 协调器(刷写程序后)PAN_ID+1,与原来路由器无法组网 原因:或许是你下载时,勾选了Erase flash选项,如下图 原因简析 原因:或许是你下载时,勾选了Erase flash选 ...

  6. TI CC2538 做ZigBee协调器控制飞利浦 Hue 调色灯

    [源码.文档.软件.硬件.技术交流.技术支持,入口见文末] 一.实验准备 1.1 硬件准备 1.1.1 CC2538 模块 本文中使用的 CC2538 模块是带 PA 芯片(CC2592)的.此外,最 ...

  7. Zigbee协调器主动使终端节点退网

    我使用ZDP_MgmtLeaveReq()这个函数来让已知短地址的终端退网,代码如下:我这样使用的结果是,可以将节点退网,节点上也需要做一些配置.我在函数里禁止节点重连,但是节点退网后会获取到新的短地 ...

  8. ZigBee协调器向子节点发消息

      在一般的ZigBee教程中,子节点如何向协调器发送消息已经被描述得非常清楚了,即子节点直接使用API向地址为0x0000的协调器发送消息即可.用到的函数如下: afStatus_t AF_Data ...

  9. mesh 协调器 路由器_关于zigbee协调器(单播方式)传输数据给网络中的多个路由器丢失数据包的问题?...

    问题描述:建立一个mesh网络,网络中只存在协调器和路由器节点,并不存在Endevice终端节点.整个网络大概存在20多个路由节点,一个协调器. 路由器节点和协调器都加入和NV存储,所以路由节点掉电后 ...

  10. Z-Statk协调器 路由器 终端的确定---Simple例程(一)

        当我们选择了终端.路由器.或者协调器的时候,来看一下程序中是怎么判断的.也就是如何作为其中的各个角色进行启动,是加入网络,还是形成网络.因为我们在这三个设备上使用的一套代码.首先,我们可以看到 ...

最新文章

  1. 读取本地照片 以流的形式进行显示
  2. 【直播】张晋:心跳信号分类模型融合
  3. 【Android开发教程】一、基础概念
  4. css03层次选择器
  5. 一个关于Integer的秘密
  6. (技能篇)双机热备之Oracle切换故障处理
  7. armv7 cortex a系列编程手册_STM32、Cortex-M3和ARMv8-M之间的关联
  8. CondenseNet总结
  9. npm 删除依赖包_npm 和 yarn 你选哪个?
  10. Java中七个潜在的内存泄露风险,你知道几个?
  11. 解决方案:System.InvalidOperationException: 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。
  12. 300.最长上升子序列
  13. Eclipse+Java+Swing实现学校教材管理系统
  14. linux node安装菜鸟教程,手把手告诉你如何安装多个版本的node
  15. smtp协议支持身份认证与不认证两种状态。
  16. Mysql基础篇(3)—— MySQL数据库类型
  17. 苏如是:香港中鼎资本与您分享“数实共生世界”和“后人类社会”
  18. unity 双指触控(以及多指触摸的代码原理分析)
  19. 数据结构 严薇敏 队列 的实现及其使用方法详解
  20. 史上最详细唇语识别最新研究进展记录

热门文章

  1. mysql获取姓名拼音首字母_C# 汉字获取拼音首字母,给数据库中的姓名添加首字母...
  2. halo输入QQ号获取QQ头像和名称
  3. IPCAS1.2.11安装步骤
  4. S2B2B-云分销系统介绍
  5. 百度地图API仿链家地图找房 聚合开发 js实现
  6. 新标准的发布关联的液相色谱-三重四极杆质谱技术的联用
  7. 如何修复rpc服务器,打印时弹出RPC服务器不可用修复教程
  8. 在Power BI中如何计算同比增长?
  9. 基于JavaEE的办公OA系统的设计与实现
  10. python按顺序执行函数_Python3的unittest用例按编写顺序执行