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

转载于:https://www.cnblogs.com/yihujiu/p/6020756.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/285652.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【天工Godwork精品教程】任务三:刺像控点、空三平差、精度优化调整

无人机航测精品专栏链接:《无人机航空摄影测量精品教程》 【天工Godwork精品教程】任务一:创建工程(导入相片、编辑相机参数、导入POS) 【天工Godwork精品教程】任务二:导入控制点、POS权重设置、自由空三 【天工Godwork精品教程】任务三:刺像控点、空三平差、精度优化调…

.NET in China - What's New in .NET

点击蓝字关注我们编辑:Alan Wang排版:Rani Sun活动介绍去年11月,.NET 6 的发布,为我们带来了 .NET 多平台应用 UI(.NET MAUI)。就在前不久,.NET MAUI 已正式发布。未来,作为 .NET 7 …

Android之网络请求提示Cleartext HTTP traffic to dev*******.com not permitted

1、问题 请求服务端网络错误提示错误如下 Cleartext HTTP traffic to dev*******.com not permitted2、解决办法 Android9.0 默认是禁止所有的http,AndroidManifest.xml添加如下 android:usesCleartextTraffic="true"同时在res目录新建文件夹xml,放入network_se…

[转].NET 开源项目 Anet 介绍

使用 Anet 有一段时间了,已经在我的个人网站(如 bookist.cc)投入使用,目前没有发现什么大问题,所以才敢写篇文章向大家介绍。 GitHub 地址: https://github.com/anet-team/anet Anet 是一个 .NET Core 通用…

【天工Godwork精品教程】任务四:EOS正射影像DOM生成,DOM精编

无人机航测精品专栏链接:《无人机航空摄影测量精品教程》 【天工Godwork精品教程】任务一:创建工程(导入相片、编辑相机参数、导入POS) 【天工Godwork精品教程】任务二:导入控制点、POS权重设置、自由空三 【天工Godwork精品教程】任务三:刺像控点、空三平差、精度优化调…

强烈推荐国内几款优秀的开源电商系统

一、背景需求 我玩得好的朋友刚创业,搞电商最一块,想做个全套的电商框架系统,希望支持公众号、小程序、H5、pc后台管理等功能,创业初期资金非常紧张,请开发人员做成本太高,然后就咨询我,有没有最…

Maui的学习之路(二)--设置

Maui的学习之路(二) -- 设置上一篇我们做了Maui的基本介绍,理论上这一篇应该会创建第一个Maui的应用,以便对此进行详细的评估,并逐步深入。如果你需要进行Maui首个应用的创建,那么欢迎访问.NET MAUI 创建移…

今天,Java编程周末提高班(第一期)正式结束

Java编程周末提高班(第一期),走过了近两个月历程,一共同拥有68人次学生周末到老师家进行Java学习与交流。近距离的和一群年轻的学习接触,收获非常多,特别是对以后教学的改进。在学习的闲暇。大家自己做饭&a…

基本反射了解

1 package cn.wh;2 /**3 * java.lang.Class4 * author 王恒5 * time 2016年11月2日 上午10:39:256 */7 public class RedlectTest {8 public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {9 …

【PhotoScan精品教程】任务四:PhotoScan做空三+CC生成正射、三维建模综合案例

《无人机航空摄影测量精品教程》合集目录(Pix4d、CC、EPS、PhotoScan、Inpho、GodWork) 【PhotoScan精品教程】任务一:新建工程、导入照片、设置坐标系、导入控制点(POS)、自由空三 【PhotoScan精品教程】任务二:刺像控点,平差,质量报告精度检查,像控点POS权重调配 【…

[转]让.NET应用秒变微服务

随着近年来微服务的发展,许多团队开始将自己的单体应用改造为微服务。通常Java或Go的应用可以通过业界已有的微服务框架作为微服务开发和改造的底座,封装掉解决跨网络问题带来的复杂性。但以Chassis模式进行的微服务改造有两大问题:多语言框架…

C语言九十三之输入一个字符x,找到输入的那句话(字符串)里面一样字母的位置。

📃个人主页:个人主页 🔥系列专栏:C语言试题200例目录 💬推荐一款刷算法、笔试、面经、拿大公司offer神器 👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 输入一个字…

WPF 使用 MAUI 的自绘制逻辑

这是一个当前还没开发完成的功能,准确来说连预览版也算不上的功能。我原本以为 MAUI 是无法在 WPF 上面跑的,然而在看完了 MAUI 整个大的设计,才了解到,原来 MAUI 是一个非常庞大的开发项目。在 MAUI 里面,虽然现在是正…

[转]redis 5.0.5 5分钟搭建redis集群

环境:centos 7 1:下载并安装redis ​​​​​​​$ wget http://download.redis.io/releases/redis-5.0.5.tar.gz$ tar xzf redis-5.0.5.tar.gz$ cd redis-5.0.5$ make redis 5.0版本 集群搭建不需要我们安装ruby就可以搭建成功,并且redis…

【土地评价与土地管理】案例:某地区柑橘种植适宜性评价

文章目录 一、确定评价单元二、评价因子选择三、评价因子权重的确定四、构建评价分级标准五、综合评价六、适宜性等级划分七、得出适宜性评价结果柑橘种植所需的自然条件: 柑橘果树生长发育、开花结果与温度、日照、水分(湿度)、土壤以及风、海拔、地形和坡向等环境条件紧密相…

django中怎样生成非HTML格式的内容。

某些时候可能有这种需求。在网页中点击一个链接或者一个button希望返回一张图片、一个pdf文档、一个csv文档等而非HTML。在diango中非常easy做到这些。django中的view用来接收http request并返回web response。通常情况下,返回的内容为HTML,但其可以返回…

Window.document对象

一、找到元素: docunment.getElementById("id");根据id找,最多找一个; var a docunment.getElementById("id");将找到的元素放在变量中; docunment.getElementsByName("name")&am…

C# 读写文件从用户态切到内核态,到底是个什么流程?

一:背景 1. 一个很好奇的问题我们在学习 C# 的过程中,总会听到一个词叫做 内核态 ,比如说用 C# 读写文件,会涉及到代码从 用户态 到 内核态 的切换,用 HttpClient 获取远端的数据,也会涉及到 用户态 到 内核…

C语言九十四之请编写函数fun(char *str, int n),其功能是:使字符串str的前导*号不能多余n个,若多于n个,则删除多余的*号,若少于或等于n个,则不做处理。

📃个人主页:个人主页 🔥系列专栏:C语言试题200例目录 💬推荐一款刷算法、笔试、面经、拿大公司offer神器 👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 规定输入的…

【土地评价与土地管理】案例:某地区土地农业利用潜力评价

文章目录 一、确定评价单元二、拟定潜力评价系统表、确定指标权重三、指标评价四、评定潜力等级五、得出潜力评价结果一、确定评价单元 土地潜力评价单元采用地块作为评价单元,此地块是建立在土地利用现状的基础上, 综合土地的自然属性来确定,评价单元界线与土地现有界线基本…