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

hi 我有一个zigbee的发包问题想请教。

我的enddevice入网成功,发送报文时调用函数 APSDE_DataReq 返回值为0x0,但是 ZMacDataReqSec没有被调用到,这个时候我该怎么继续查问题?

Viki Shi:

“enddevice入网成功” 这个入网成功是怎么判断的?发送device announcement了吗?

man miao:

回复 Viki Shi:

设备的状态是 DEV_END_DEVICE, 6 Started as end device after authentication

man miao:

回复 Viki Shi:

同样的代码 我编译出router后 在入网成功后是可以发送报文的 发送后coor收到是可以控制led的 我用的sample light的代码改的。

man miao:

回复 Viki Shi:

确认 ZDP_DeviceAnnce已经发送了

Viki Shi:

ZMacDataReqSec应该是传输数据时可跟踪的最后一个函数了,你目前遇到了什么问题,发送数据不成功?

man miao:

回复 Viki Shi:

我遇到的问题就是发不出数据,然后我跟踪到ZMacDataReqSec没有被调用,但是我接下来就不知道咋查了。
我没有使能secure。

我没有使用iar的编译器和开发环境,我使用的是arm-none-eabi-gcc编译器,makefile是我自己写的。

我的enddevice发送数据 时的参数打印如下:
APSDE_DataReq stat:0x0 asduLen:3 clusterID:0x6 dstEP:0x8 dstPanId:0xcf38 profileID:0x104 srcEP:0x8 zg_dump_addr: addrMode: Addr16Bit shortAddr:0x0000
dump data len(3):
01 03 02
这里期望结果是调用ZMacDataReqSec,但是实际是任何打印都没有。

同样的代码 编译为router设备时发送ok时的打印如下:
APSDE_DataReq stat:0x0 asduLen:3 clusterID:0x6 dstEP:0x8 dstPanId:0xcf38 profileID:0x104 srcEP:0x8 zg_dump_addr: addrMode: Addr16Bit shortAddr:0x0000
dump data len(3):
01 05 02
<< zclSampleLight_event_loop
ZMacDataReqSec dump data len(19):
48 00 00 0044 a8 1e ea00 08 06 0004 01 08 09
01 05 02

我直到数据发送的流程是af–>aps–>nwk->mac层 现在我知道aps层返回ok但是mac层没有调用,nwk层发送数据的函数ti有提供出来没?
我该如何继续定位这个问题?

Viki Shi:

回复 man miao:

在消息AF_DATA_CONFIRM_CMD中查询返回的status,看NWK 层的buffer是否把数据发送出去

man miao:

回复 Viki Shi:

添加AF_DATA_CONFIRM_CMD中查询返回的status后 如下
1router和coor请求入网后 发送报文ok 返回status为0:>> zclSampleLight_event_loop MSGpkt hdr.event:0xfdafDataConfirm endpoint:0x8 status:0x0
2 ed 和coor请求入网后 发送报文后返回status为0xcd:>> zclSampleLight_event_loop MSGpkt hdr.event:0xfdafDataConfirm endpoint:0x8 status:0xcd—————–ZNwkNoRoute

我有个疑问 ed是直接和coor请求入网的 入网后coor short addr为0的设备应该已经在ed的邻居表里,为啥发包会出现ZNwkNoRoute的错误?
我理解的发包时的目的地址会先查邻居表有就发送,没有就查路由表,路由表没有就启动路由发现的广播报文。

我的发送报文的参数是这个样子的zclSampleLight_DstAddr.addrMode = (afAddrMode_t)Addr16Bit;zclSampleLight_DstAddr.addr.shortAddr =0;zclSampleLight_DstAddr.panId = _NIB.nwkPanId;zclGeneral_SendOnOff_CmdToggle(SAMPLELIGHT_ENDPOINT, &zclSampleLight_DstAddr, FALSE, bdb_getZCLFrameCounter() );

谢谢!

YiKai Chen:

回复 man miao:

建議你抓包看看是什麼狀況

man miao:

回复 YiKai Chen:

报文发不出来 抓包有啥用?

赞(0)
未经允许不得转载:TI中文支持网 » hi 我有一个zigbee的发包问题想请教。
分享到: 更多 (0)