cc2530学习笔记
case KEY_CHANGE://按键事件
case AF_INCOMING_MSG_CMD://接收数据事件,调用函数AF_DataRequest()接收数据
case ZDO_STATE_CHANGE:
          //只要网络状态发生改变,就通过ZDO_STATE_CHANGE事件通知所有的任务。
          //同时完成对协调器,路由器,终端的设置
SAMPLEAPP_SEND_PERIODIC_MSG_EVT,    //周期性事件处理函数
 SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT );  //每5s处理一次
case SAMPLEAPP_PERIODIC_CLUSTERID: //收到广播数据
case SAMPLEAPP_FLASH_CLUSTERID: //收到组播数据
//接收数据,参数为接收到的数据
void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )
//分析发送周期信息
void SampleApp_SendPeriodicMessage( void )
/接收属于本应用任务SampleApp的消息,以SampleApp_TaskID标记
  MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID );
消息结构体:
typedef struct
{
  osal_event_hdr_t hdr;     /* OSAL Message header */
  uint16 groupId;           /* Message's group ID - 0 if not set */
  uint16 clusterId;         /* Message's cluster ID */
  afAddrType_t srcAddr;     /* Source Address, if endpoint is STUBAPS_INTER_PAN_EP,
                               it's an InterPAN message */
  uint16 macDestAddr;       /* MAC header destination short address */
  uint8 endPoint;           /* destination endpoint */
  uint8 wasBroadcast;       /* TRUE if network destination was a broadcast address */
  uint8 LinkQuality;        /* The link quality of the received data frame */
  uint8 correlation;        /* The raw correlation value of the received data frame */
  int8  rssi;               /* The received RF power in units dBm */
  uint8 SecurityUse;        /* deprecated */
  uint32 timestamp;         /* receipt timestamp from MAC */
  uint8 nwkSeqNum;          /* network header frame sequence number */
  afMSGCommandFormat_t cmd; /* Application Data */
} afIncomingMSGPacket_t;
typedef struct
{
  uint8   TransSeqNumber;
  uint16  DataLength;              // Number of bytes in TransData
  uint8  *Data;
} afMSGCommandFormat_t;
event+簇id+消息内容+内容大小
MSGpkt->hdr.event   +  MSGpkt->clusterId   +  MSGpkt->cmd.Data + MSGpkt->cmd.DataLength
uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events )触发接收或者发送
开始消息----》判断事件AF_INCOMING_MSG_CMD----》处理函数----》SAMPLEAPP_PERIODIC_CLUSTERID簇ID
typedef enum
{
  afAddrNotPresent = AddrNotPresent,
  afAddr16Bit      = Addr16Bit,   //点播方式
  afAddr64Bit      = Addr64Bit,
  afAddrGroup      = AddrGroup,  //组播方式
  afAddrBroadcast  = AddrBroadcast   //广播方式
} afAddrMode_t;
typedef struct
{
  union
  {
    uint16      shortAddr;   //短地址
    ZLongAddr_t extAddr;    //IEEE地址
  } addr;
  afAddrMode_t addrMode;    //传送模式
  uint8 endPoint;    //端点号
  uint16 panId;  // used for the INTER_PAN feature
} afAddrType_t;
afAddrType_t SampleApp_Periodic_DstAddr; //广播
afAddrType_t SampleApp_Flash_DstAddr;    //组播
afAddrType_t SampleApp_P2P_DstAddr;      //点播
SampleApp_Periodic_DstAddr.addrMode = (afAddrMode_t)AddrBroadcast;//广播
  SampleApp_Periodic_DstAddr.endPoint = SAMPLEAPP_ENDPOINT;
  SampleApp_Periodic_DstAddr.addr.shortAddr = 0xFFFF;  //广播地址
// Setup for the flash command's destination address - Group 1
  SampleApp_Flash_DstAddr.addrMode = (afAddrMode_t)afAddrGroup;//组播
  SampleApp_Flash_DstAddr.endPoint = SAMPLEAPP_ENDPOINT;
  SampleApp_Flash_DstAddr.addr.shortAddr = SAMPLEAPP_FLASH_GROUP;
  
  SampleApp_P2P_DstAddr.addrMode = (afAddrMode_t)Addr16Bit; //点播 
  SampleApp_P2P_DstAddr.endPoint = SAMPLEAPP_ENDPOINT; 
  SampleApp_P2P_DstAddr.addr.shortAddr = 0x0000;            //发给协调器 地址为0
cc2530学习笔记的更多相关文章
- TIMAC 学习笔记(二)
		昨天大体上熟悉了TIMAC自带的CC2530的示范例程,今天先从演示抓包入手,分析四种不同的配置工程在空中传输的差异.随后,会按照扫描.组网.入网等MAC层接口函数入手,结合IEEE 802.15.4 ... 
- js学习笔记:webpack基础入门(一)
		之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ... 
- PHP-自定义模板-学习笔记
		1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ... 
- PHP-会员登录与注册例子解析-学习笔记
		1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ... 
- 2014年暑假c#学习笔记目录
		2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ... 
- JAVA GUI编程学习笔记目录
		2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ... 
- seaJs学习笔记2 – seaJs组建库的使用
		原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ... 
- CSS学习笔记
		CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ... 
- HTML学习笔记
		HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ... 
随机推荐
- 关于 JAVA 中使用 Preferences 读写注册表时要注意的地方
			要注意的只有一个地方,那就是键名或者项名不要包含大写字母,否则读不到数据. 代码是这样的: 1: Preferences preferences = Preferences.systemRoot(); ... 
- Openjudge-计算概论(A)-整数的个数
			描述: 给定k(1<k<100)个正整数,其中每个数都是大于等于1,小于等于10的数.写程序计算给定的k个正整数中,1,5和10出现的次数.输入输入有两行:第一行包含一个正整数k,第二行包 ... 
- 17.从键盘上输入一个正整数n,请按照以下五行杨辉三角形的显示方式, 输出杨辉三角形的前n行。请采用循环控制语句来实现。 (三角形腰上的数为1,其他位置的数为其上一行相邻两个数之和。) 1 1   1 1   2   1 1   3   3   1 1   4   6   4   1  1   5   10  10  5  1
			17.从键盘上输入一个正整数n,请按照以下五行杨辉三角形的显示方式, 输出杨辉三角形的前n行.请采用循环控制语句来实现. (三角形腰上的数为1,其他位置的数为其上一行相邻两个数之和.) 1 1 1 1 ... 
- c/c++ 浮点型处理
			#include <stdio.h> #include <iostream> #include <string> #include <string.h> ... 
- Minigui开发之遥控控制逻辑算法
			引言 在开发公司的minigui产品时,需要用遥控器来切换显示屏上的图标和控件,这就涉及到一个问题,如何获得下一个选中的图标或控件呢? 解决思路 利用每个控件自身的ID号,建立一张类似矩阵的表,用坐标 ... 
- HDU - 2586  How far away ?(LCA模板题)
			HDU - 2586 How far away ? Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & ... 
- 2016 百度之星初赛 Gym Class(优先队列+拓扑排序)
			Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit Status Pract ... 
- POJ	2062  HDU  1528  ZOJ  2223  Card Game Cheater
			水题,感觉和田忌赛马差不多 #include<cstdio> #include<cstring> #include<cmath> #include<algor ... 
- SQLServer 错误: 15404,无法获取有关 Windows NT 组 用户
			因做服务器数据库迁移,造成的一系列问题, 1.重启SQL 代理,操作也不可. 然后又进行操作: SQL---------安全性------登录名 中原来的系统用户名前的计算机名更改为现在所用的计算机名 ... 
- 第3章 Java语言基础----成员变量与局部变量
			在对局部变量进行赋值时,不能对非静态字段age进行静态引用,图1错误,加上static后图二正确,图3与图4类似,如下图所示: 图1图2 图3图4 2.成员变量times在类中定义,局部变量times ... 
