Coordinator只发不收,EndDevice只收不发的简单例子

这篇博客介绍了在ZigBee网络中,如何实现Coordinator只负责发送信息而不接收,而EndDevice仅接收信息但不发送的简单场景。通过分析GenericApp的例程,并拆分Coordinator和EndDevice的功能,博主详细讲解了实验内容和程序流程。代码包括Coordinator.h、Coordinator.c和EndDevice.c,读者可以通过添加这些文件到项目中运行代码,以理解ZigBee节点间通信的基本操作。
摘要由CSDN通过智能技术生成

在ZigBee中,协调器和终端节点进行无线数据收发,对于刚初学的人来说可能不知道怎么下手。分不清哪个是Coordinator哪个EndDevice的内容。
那就先从GenericApp的例程开始,将Coordinator和EndDevice的内容拆分学习。
这里先讲个Coordinator只发不收,EndDevice只收不发的简单例子。
实验内容:
协调器只发不收, 终端节点只收不发的一个简单例子。
程序流程:
①定义事件(shijian)
②协调器建立网络
③读取系统事件, 若无, 则执行 default 内容; 若发生 shijian 事件则执行信息发送函数并清
除 shijian 事件标志
④终端节点加入网络后, 执行 LED2 闪烁
⑤终端节点收到协调器发来的数据, 执行被调用的信息处理函数使 LED1 闪烁

话不多说,直接上代码,注释也在代码里。
代码如下:

Coordinator.h头文件:

#ifndef GENERICAPP_H
#define GENERICAPP_H

#include "ZComDef.h"

//这些常量仅为示例,应根据设备的需要进行更改。
#define GENERICAPP_ENDPOINT           10

#define GENERICAPP_PROFID             0x0F04
#define GENERICAPP_DEVICEID           0x0001
#define GENERICAPP_DEVICE_VERSION     0
#define GENERICAPP_FLAGS              0

#define GENERICAPP_MAX_CLUSTERS       1
#define GENERICAPP_CLUSTERID          1

#define shijian 0x0001      //自定义事件
/*
 * Task Initialization for the Generic Application
  通用应用程序的任务初始化
 */
extern void GenericApp_Init( byte task_id );

/*
 * Task Event Processor for the Generic Application
  通用应用程序的任务事件处理器
 */
extern UINT16 GenericApp_ProcessEvent( byte task_id, UINT16 events );

#endif /* GENERICAPP_H */

Coordinator.c文件:

#include "OSAL.h"
#include "AF.h"
#include "ZDApp.h"
#include "ZDObject.h"
#include "ZDProfile.h"
#include<string.h>
#include "Coordinator.h"
#include "DebugTrace.h"
#if !defined( WIN32 )
  #include "OnBoard.h"
#endif
#include "hal_lcd.h"
#include "hal_led.h"
#include "hal_key.h"
#include "hal_uart.h"

const cId_t GenericApp_ClusterList[GENERICAPP_MAX_CLUSTERS] = 
{
   
  GENERICAPP_CLUSTERID    //簇ID
};

const SimpleDescriptionFormat_t GenericApp_SimpleDesc =   //简单描述
{
   
  GENERICAPP_ENDPOINT,
  GENERICAPP_PROFID,
  GENERICAPP_DEVICEID,
  GENERICAPP_DEVICE_VERSION,
  GENERICAPP_FLAGS,
  GENERICAPP_MAX_CLUSTERS,
  (cId_t *)GenericApp_ClusterList,
  0,
  (cId_t *)NULL
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值