This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
使用 z-stack 3.0.2 开发测试,协调器和路由设备会周期发送数据,但是我没找到相关数据的装填位置。
我想请教以下几个问题:
1、数据发送的源地址格式怎么更改,现有数据默认地址模式 Addr16Bit,如果想将源地址模式变更 Addr64Bit 怎么调整;
2、网络数据的装填这个部分,例程开放的最底层是哪里,如果我想变更周期发送的数据,使用这个数据传输一些自定义协议内容,应该调整哪里,我找了好久也没找到相关位置。
1.你可透過改變AF_DataRequest 的第一個參數 afAddrType_t *dstAddr為使用Addr64Bit 模式去送封包,但是一般建議還是用Addr16Bit模式.
2.就是使用AF_DataRequest 去送
1.您可以在AF_DataRequest中设置第一个参数afAddrType_t *dstAddr来使用Addr64Bit,但不建议这样做。
2.您可以使用AF_DataRequest以专有格式发送数据包。
可能是我没描述清楚,
IEEE协议里面 数据帧(Frame_Type 为 Data)
包括 dstAddr和scrAaddr,发送时 afData_req只能修改dstAddr的模式,而scrAddr默认是16bitAddr,
我想尝试将scrAddr模式改为64bitAddr 不知道可以实现吗?
Hi YL,
正如YiKai所说,对于此数据服务 APSDE-DATA.request,Zigbee 规范没有使用 64 位源地址的选项。您无法在 scrAddr 中使用 64bitAddr。
你做此测试的目标是什么?看看是否有其他的解决方案。
Thanks & Best regards,
Yolande
使用场景是小范围组网,我原本想将各个节点根据自身工作位置,拟定一个指定的编号。这样其在网络中处于什么身份其他设备就知道了,某个节点出现故障时可以直接定位到目标设备。
我不知道我理解对不对,现有的Z-Stack 是根据短地址来查询长地址,而且短地址并不是固定的,这样可能让我这种想法实现复杂一些。
起因也是我看到了这个函数
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); 追踪不到原型。