找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4300|回复: 0
打印 上一主题 下一主题
收起左侧

Zstack协议栈---地址查找功能--便于单播查询目的地址

[复制链接]
跳转到指定楼层
楼主
ID:71477 发表于 2015-1-1 18:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
APS层提供了一系列快速转换地址(查询)的功能。如果查询已经完成并保存在地
址管理器(参见网络层)中,或者它是你自己的地址,这些函数能使你把短地址转换为IEEE
地址(或把IEEE地址转换为短地址)。
APSME_LookupExtAddr()  API函数
如果网络(短)地址已经存储在地址管理器中,这个函数根据它查询扩展(IEEE
地址。它没有启动一个网络(无线)IEEE 查询,只是从内存记录中查找
函数原型
uint8APSME_LookupExtAddr(uint16nwkAddr,uint8*extAddr);
参数描述
nwkAddr—这是你现有的地址,希望这个函数使用它来查询扩展地址。
extAddr—这是你想要找到的地址。这是一个指向内存的指针,找到IEEE地址时
这个函数将把它复制到该内存中。
返回值
找到返回true,找不到返回false
3.3.4.2APSME_LookupNwkAddr()
如果扩展(IEEE)地址已经存储在地址管理器中,这个函数根据它查询网络(短)
地址。它没有启动一个网络(无线)IEEE查询。
函数原型
uint8APSME_LookupNwkAddr(uint8*extAddr,uint16*nwkAddr);
参数描述
nwkAddr—这是你想要找的地址。这是一个指向内存的指针,找到短地址时这个
函数将把它复制该内存中。
extAddr—这是你现有的地址,希望这个函数使用它来查询扩展地址。这是一个
指向内存的指针,找到IEEE 地址时这个函数将把它复制到该内存中。
返回值
找到返回true,找不到返回false
举例:
通过登记的IEEE地址,查询到设备入网的短地址,从而单播点对点发送数据。
广播尽量少用。
afAddrType_t dstAddr;
switch (clusterID) //串口命令
  {
    case 0x0055:
  
if(APSME_LookupNwkAddr(Pwk,&Sadd)) //Pwk是IEEE地址的数组,通过IEEE查询到短地址,用于确定单播发送的目的短地址
{
               dstAddr.addrMode = afAddr16Bit;          //
单播
        dstAddr.addr.shortAddr = Sadd;     //短地址
        dstAddr.endPoint = LOCATION_BLINDNODE_ENDPOINT; //目的设备类型   
                ShortAdd[0]=Sadd&0x00ff;
                ShortAdd[1]=Sadd>>8;
                HalUARTWrite( SPI_MGR_DEFAULT_PORT, ShortAdd, 2 );  //短地址发到串口
                HalUARTWrite( SPI_MGR_DEFAULT_PORT, "888888", 6 );

      }
    break;



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表