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

相关文章

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重

Linux配置IP地址的三种实现方式

《Linux配置IP地址的三种实现方式》:本文主要介绍Linux配置IP地址的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录环境RedHat9第一种安装 直接配置网卡文件第二种方式 nmcli(Networkmanager command-line

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

JAVA SE包装类和泛型详细介绍及说明方法

《JAVASE包装类和泛型详细介绍及说明方法》:本文主要介绍JAVASE包装类和泛型的相关资料,包括基本数据类型与包装类的对应关系,以及装箱和拆箱的概念,并重点讲解了自动装箱和自动拆箱的机制,文... 目录1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱2. 泛型2

MySQL常见的存储引擎和区别说明

《MySQL常见的存储引擎和区别说明》MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY、Archive、CSV和Blackhole,每种引擎有其特点和适用场景,选择存储引擎时需根... 目录mysql常见的存储引擎和区别说明1. InnoDB2. MyISAM3. MEMORY4. A

MyBatis的配置对象Configuration作用及说明

《MyBatis的配置对象Configuration作用及说明》MyBatis的Configuration对象是MyBatis的核心配置对象,它包含了MyBatis运行时所需的几乎所有配置信息,这个对... 目录MyBATis配置对象Configuration作用Configuration 对象的主要作用C

在Dockerfile中copy和add的区别及说明

《在Dockerfile中copy和add的区别及说明》COPY和ADD都是Dockerfile中用于文件复制的命令,但COPY仅用于本地文件或目录的复制,不支持自动解压缩;而ADD除了复制本地文件或... 目录在dockerfile中,copy 和 add有什么区别?COPY 命令ADD 命令总结在Doc

解读Pandas和Polars的区别及说明

《解读Pandas和Polars的区别及说明》Pandas和Polars是Python中用于数据处理的两个库,Pandas适用于中小规模数据的快速原型开发和复杂数据操作,而Polars则专注于高效数据... 目录Pandas vs Polars 对比表使用场景对比Pandas 的使用场景Polars 的使用