ZigBee IEEE地址说明

2024-06-01 04:58
文章标签 说明 地址 zigbee ieee

本文主要是介绍ZigBee IEEE地址说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

通过已知的IEEE地址获得该节点的网络地址:

1、将某终端的IEEE地址保存至数组(与用SmartRF Flash读出的长地址顺序相反)

uint8 pDestination[] ={0x34,0xB1,0xC4,0x08,0x00,0x4B,0x12,0x00};

2、在应用层调用查询网络地址函数:

DP_NwkAddrReq(pDestination,ZDP_ADDR_REQTYPE_SINGLE,0,0);

3、消息会以广播的形式发给网络中所有未休眠的节点,拥有该IEEE地址的终端收到请求后会将网络地址发回给请求方,请求方可以在ZDO层的处理函数中进行处理。在case NWK_addr_rsp下调用消息解析函数ZDO_ParseAddrRsp(); 提取出消息中的短地址:

ZDApp_ProcessOSALMsg();->case ZDO_CB_MSG:   ZDApp_ProcessMsgCBs();

case NWK_addr_rsp:

{            

  ZDO_NwkIEEEAddrResp_t  *My_pAddrRsp= ZDO_ParseAddrRsp(inMsg);

  mu_addr=My_pAddrRsp->nwkAddr; //把短地址保存起来

  break;    

 }

目前已实现用IEEE地址获取休眠节点的网络地址,并进行通讯。

直接使用IEEE地址进行发送数据:

1、将某终端的IEEE地址保存至数组(与用SmartRF Flash读出的长地址顺序相反)

uint8 pDestination[] ={0x34,0xB1,0xC4,0x08,0x00,0x4B,0x12,0x00};

2、创建地址结构体并进行填充:

afAddrType_t SampleApp_IEEE_DstAddr;   //长地址发送

SampleApp_IEEE_DstAddr.addrMode = (afAddrMode_t)Addr64Bit; //长地址发送

SampleApp_IEEE_DstAddr.endPoint = SAMPLEAPP_ENDPOINT; 

osal_memcpy( &(SampleApp_IEEE_DstAddr.addr.extAddr),pDestination,8); 

3、调用AF函数对数据进行发送:

AF_DataRequest(&SampleApp_IEEE_DstAddr,&SampleApp_epDesc,SAMPLEAPP_P2P_CLUSTERID,4,data,&SampleApp_TransID,AF_DISCV_ROUTE,AF_DEFAULT_RADIUS )

PS:此方法只能用于与子节点的通讯。





这篇关于ZigBee IEEE地址说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1020042

相关文章

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

redis和redission分布式锁原理及区别说明

《redis和redission分布式锁原理及区别说明》文章对比了synchronized、乐观锁、Redis分布式锁及Redission锁的原理与区别,指出在集群环境下synchronized失效,... 目录Redis和redission分布式锁原理及区别1、有的同伴想到了synchronized关键字

MySQL 临时表创建与使用详细说明

《MySQL临时表创建与使用详细说明》MySQL临时表是存储在内存或磁盘的临时数据表,会话结束时自动销毁,适合存储中间计算结果或临时数据集,其名称以#开头(如#TempTable),本文给大家介绍M... 目录mysql 临时表详细说明1.定义2.核心特性3.创建与使用4.典型应用场景5.生命周期管理6.注

Java中数组与栈和堆之间的关系说明

《Java中数组与栈和堆之间的关系说明》文章讲解了Java数组的初始化方式、内存存储机制、引用传递特性及遍历、排序、拷贝技巧,强调引用数据类型方法调用时形参可能修改实参,但需注意引用指向单一对象的特性... 目录Java中数组与栈和堆的关系遍历数组接下来是一些编程小技巧总结Java中数组与栈和堆的关系关于

mybatis-plus QueryWrapper中or,and的使用及说明

《mybatis-plusQueryWrapper中or,and的使用及说明》使用MyBatisPlusQueryWrapper时,因同时添加角色权限固定条件和多字段模糊查询导致数据异常展示,排查发... 目录QueryWrapper中or,and使用列表中还要同时模糊查询多个字段经过排查这就导致只要whe

SpringBoot改造MCP服务器的详细说明(StreamableHTTP 类型)

《SpringBoot改造MCP服务器的详细说明(StreamableHTTP类型)》本文介绍了SpringBoot如何实现MCPStreamableHTTP服务器,并且使用CherryStudio... 目录SpringBoot改造MCP服务器(StreamableHTTP)1 项目说明2 使用说明2.1

JAVA覆盖和重写的区别及说明

《JAVA覆盖和重写的区别及说明》非静态方法的覆盖即重写,具有多态性;静态方法无法被覆盖,但可被重写(仅通过类名调用),二者区别在于绑定时机与引用类型关联性... 目录Java覆盖和重写的区别经常听到两种话认真读完上面两份代码JAVA覆盖和重写的区别经常听到两种话1.覆盖=重写。2.静态方法可andro

zookeeper端口说明及介绍

《zookeeper端口说明及介绍》:本文主要介绍zookeeper端口说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、zookeeper有三个端口(可以修改)aVNMqvZ二、3个端口的作用三、部署时注意总China编程结一、zookeeper有三个端口(可以

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化