微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > 请教EasyLink_enableRxAddrFilter使用时增加地址长度问题

请教EasyLink_enableRxAddrFilter使用时增加地址长度问题

时间:12-23 整理:3721RD 点击:

我想使用EasyLink_enableRxAddrFilter来过滤接收到的数据包,我想使用芯片8位IEEE MAC地址来作为过滤地址。

因此我使用一个uint8_t addrFilter[8]数组存放MAC地址,然后如下调用:

EasyLink_enableRxAddrFilter(addrFilter, 8, 1),发现返回错误状态:EasyLink_Status_Param_Error

然后调试跟踪,发现有个变量默认设置为1,

//Addr size for Filter and Tx/Rx operations
//Set default to 1 byte addr to work with SmartRF
//studio default settings
static uint8_t addrSize = 1;

请问一下,这里所说的smartRF studio defaultsettings也是1,如果用8字节地址作为过滤的话,是不是需要对应修改smartrf_settings.c文件呢?

说一下我自己的测试结果吧,

我设置一个node的发送地址为:8字节全0x00

collector的地址过滤数组为一个16字节数组:a[16],当然为了方便查看,实际定义的是一个结构体,里面放了两个8字节的一维数组,然后调用:EasyLink_enableRxAddrFilter((uint8_t *)(a), 8, 2);这样就设置了两个8字节的过滤地址。

如果直接这么调用,按帖子所说,会返回错误,需要同时修改EasyLink.c文件里面的addrSize,有两个地方将该变量赋值为1,同步改为8。

做如下测试:

当数组a[]前8字节或后8字节全为0时,collector可以接收node的发送数据;

当数组a[]前8直接为0XBB,后8字节为非0数据时,不能收到node的发送数据。

仅供参考。

当数组a[]前8直接为0XBB,后8字节为非0数据时,其实是可以收到node的发送数据,只不过你需要在node的那边修改发送地址

hi,

Eggsy Pang,我是这么设置的,node的发送地址为依然为8字节全0, collector过滤地址a[]的前8字节为8个0XBB, 后8字节为8个0xAA,这样collector收不到node发送的数据。

按照你的意思是需要修改node的发送地址为其他数据?为什么我设置node的地址全为0时,collector是搜索不到数据的呢 ?

你把node的发送地改为collector的过滤地址,试试看

我上面的意思就是想测试一下什么情况下不能收到,数组a[]改为0xAA和0xBB就是想验证node发送地址为0x00时候,collector就收不到;node发送的数据了。

我感觉你理解错误filter的概念了,collector在数组里定义了地址,首先node发过来一个地址,collector会把收到的地址和数组里面的值进行对比,如果地址过滤长度为1,那只拿收到的地址和a[0]对比,如果地址过滤长度为3,那对比a[0] a[1] a[2],只要有一个正确,就可以接收

hi~

Eggsy Pang ,我是这么理解的。

node定义了一个8字节的地址:nodeAddr[8] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06,0x07,0x08}

collector定义两个过滤地址:collectorAddr1[8],   collectorAddr2[8]

将collector过滤地址封装在一个结构体中:

Struct CollectorFilterAddr

{

char collectorAddr1[8],  

char collectorAddr2[8]

}collectorFilterAddr;

然后调用接口函数设置接收过滤地址:

EasyLink_enableRxAddrFilter((uint8_t *)(&collectorFilterAddr), 8, 2);

若果在collector端设置的地址collectorAddr1[],   collectorAddr2[]中有一个和node的发送地址nodeAddr[]相同(8个字节数据依次完全相同),那么可以接收,若果不相同则接收不到。

按照我的理解,node和collector的地址长度应该保持一致。不知道理解是否正确,还望释疑。感谢。

没错,你现在这个理解是对的

好的,谢谢Eggsy Pang ,我最开始是这么理解的,之前没说清楚,不好意思。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top