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:
广播长地址和短地址的函数你是不能亂動的