TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2530: 如何调整发送数据的源地址格式和周期数据内容

Part Number:CC2530Other Parts Discussed in Thread:Z-STACK

使用 z-stack 3.0.2 开发测试,协调器和路由设备会周期发送数据,但是我没找到相关数据的装填位置。

我想请教以下几个问题:

1、数据发送的源地址格式怎么更改,现有数据默认地址模式 Addr16Bit,如果想将源地址模式变更 Addr64Bit 怎么调整;

2、网络数据的装填这个部分,例程开放的最底层是哪里,如果我想变更周期发送的数据,使用这个数据传输一些自定义协议内容,应该调整哪里,我找了好久也没找到相关位置。

Yolande Wang:

已经跟进您的需求,请等候一下。

,

YiKai Chen:

1.你可透過改變AF_DataRequest 的第一個參數 afAddrType_t *dstAddr為使用Addr64Bit 模式去送封包,但是一般建議還是用Addr16Bit模式.

2.就是使用AF_DataRequest 去送

,

Yolande Wang:

1.您可以在AF_DataRequest中设置第一个参数afAddrType_t *dstAddr来使用Addr64Bit,但不建议这样做。

2.您可以使用AF_DataRequest以专有格式发送数据包。

,

Yolande Wang:

Hi YL,

以上步骤您尝试过了吗,问题的疑惑点解决了吗?

Thanks & Best regards,

Yolande

,

YL:

可能是我没描述清楚,

IEEE协议里面 数据帧(Frame_Type 为 Data)

包括 dstAddr和scrAaddr,发送时 afData_req只能修改dstAddr的模式,而scrAddr默认是16bitAddr,

我想尝试将scrAddr模式改为64bitAddr 不知道可以实现吗?

,

YiKai Chen:

scrAddr模式是沒辦法在Z-Stack 內修改成64bitAddr的

,

Yolande Wang:

Hi YL,

正如YiKai所说,对于此数据服务 APSDE-DATA.request,Zigbee 规范没有使用 64 位源地址的选项。您无法在 scrAddr 中使用 64bitAddr。

你做此测试的目标是什么?看看是否有其他的解决方案。

Thanks & Best regards,

Yolande

,

YL:

使用场景是小范围组网,我原本想将各个节点根据自身工作位置,拟定一个指定的编号。这样其在网络中处于什么身份其他设备就知道了,某个节点出现故障时可以直接定位到目标设备。

我不知道我理解对不对,现有的Z-Stack 是根据短地址来查询长地址,而且短地址并不是固定的,这样可能让我这种想法实现复杂一些。

,

YiKai Chen:

Zigbee设备入网會廣播设备的长地址和短地址,建議你可以在應用程序儲存一個自己的對應表,這樣就可以用设备的长地址隨時去物應短地址做發送

,

YL:

起因也是我看到了这个函数

void ZMacSendNoData ( uint16 DstAddr, uint16 DstPANId ){

    macMcpsDataReq_t *pBuf;

    /* Allocate memory */    pBuf = MAC_McpsDataAlloc(0, MAC_SEC_LEVEL_NONE, MAC_KEY_ID_MODE_NONE);

    if (pBuf)    {        /* Fill in src information */        pBuf->mac.srcAddrMode = SADDR_MODE_SHORT;

        /* Fill in dst information */        pBuf->mac.dstAddr.addr.shortAddr = DstAddr;        pBuf->mac.dstAddr.addrMode = SADDR_MODE_SHORT;        pBuf->mac.dstPanId = DstPANId;

        /* Misc information */        pBuf->mac.msduHandle = 0;        pBuf->mac.txOptions = ZMAC_TXOPTION_ACK | ZMAC_TXOPTION_NO_RETRANS | ZMAC_TXOPTION_NO_CNF;

        /* Right now, set security to zero */        pBuf->sec.securityLevel = false;

        /* Call Mac Data Request */        MAC_McpsDataReq(pBuf);    }}

但是这个函数 MAC_McpsDataReq(pBuf); 追踪不到原型。

,

YiKai Chen:

MAC_McpsDataReq的源碼在z-stack lib不開放,所以你找不到源碼,請參照我的建議建立长地址和短地址對應表這樣會比較方便

,

YL:

再请教一下,2.5.1版本是否支持呢

,

YiKai Chen:

2.5.1版本Zigbee设备入网也是會廣播设备的长地址和短地址的

,

YL:

请教一下:

周期广播数据周期参数我找到了,数据发送调用的位置我没找到。这个也不在开源代码部分吗?

,

YiKai Chen:

数据发送可以调用AF_DataRequest,源代码在AF.c裏頭

,

YL:

我的意思是,您这边说的周期广播长地址和短地址的函数,我想看看是否可以在里面增加一些内容。

,

YiKai Chen:

广播长地址和短地址的函数你是不能亂動的

赞(0)
未经允许不得转载:TI中文支持网 » CC2530: 如何调整发送数据的源地址格式和周期数据内容
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1