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

ZigBee的ACK相关问题

3.0.2协议栈

1.MAC ACK默认是启用的,从哪里可以看到是启用的?重试的次数是哪个参数设定的?

2.APS ACK怎么启用,AF_DataRequest 的options 里如何启用啊?下面的options 里启用了吗?

#if defined ( INTER_PAN ) 
if ( StubAPS_InterPan( destAddr->panId, destAddr->endPoint ) )
{
options = AF_TX_OPTIONS_NONE;
}
else
#endif
{
options = zclGetClusterOption( srcEP, clusterID );

// The cluster might not have been defined to use security but if this message
// is in response to another message that was using APS security this message
// will be sent with APS security
if ( !( options & AF_EN_SECURITY ) )
{
afIncomingMSGPacket_t *origPkt = zcl_getRawAFMsg();

if ( ( origPkt != NULL ) && ( origPkt->SecurityUse == TRUE ) )
{
options |= AF_EN_SECURITY;
}
}
}

3.APSC_ACK_WAIT_DURATION_POLLED 

这个参数对于睡眠设备来说重发间隔是多长时间?非睡眠设备重发间隔是多长时间?

下面的描述没看明白,3000是什么意思?

/* This number is used by polled devices, since the spec'd formula
* doesn't work for sleeping end devices. For non-polled devices,
* a formula is used. Value is in 2 milliseconds periods
*/
-DAPSC_ACK_WAIT_DURATION_POLLED=3000

4.hold的话,只是针对睡眠设备,非睡眠设备是不是也会hold?

5.hold的时长是7秒,最大hold的消息个数在哪设置呢?

/* Default indirect message holding timeout value:
* 1-65535 (0 -> 65536) X CNT_RTG_TIMER X RTG_TIMER_INTERVAL
*/
-DNWK_INDIRECT_MSG_TIMEOUT=7

YiKai Chen:

1. maxFrameRetries inside macpibdefauls in mac_pib.c
2. 參考 sunmaysky.blogspot.com/…/how-to-check-aps-ack-in-ti-z-stack.html
3. 沒收到APS ACK時要等多久作polling
4. RX ALWAYS ON设备/ZR/ZC不会hold
5. 調整下面參數
// in nwk_globals.c
// doubling the size of all the buffers:

// Maximums for the data buffer queue
#define NWK_MAX_DATABUFS_WAITING16 //8// Waiting to be sent to MAC
#define NWK_MAX_DATABUFS_SCHEDULED10 //5// Timed messages to be sent
#define NWK_MAX_DATABUFS_CONFIRMED10 //5// Held after MAC confirms
#define NWK_MAX_DATABUFS_TOTAL24 //12// Total number of buffers

Viki Shi:

1、#define MAC_MAX_FRAME_RETRIES0x59/* The maximum number of retries allowed after a transmission failure */mac_api.c
2、AF_ACK_REQUEST开启APS ACK
3、以2ms为单位
4、非睡眠设备可以直接发送
5、这个发过了,见:e2echina.ti.com/…/189986

user5367314:

回复 YiKai Chen:

APSC_ACK_WAIT_DURATION_POLLED
例如终端1是allways on终端2是low power
假如由于信号不好,协调器给终端1发送的时候没有收到APS ACK,会间隔多久再次尝试发送?2ms吗?
协调器给终端2发送的时候没有收到APS ACK,会间隔多久再次尝试发送?3000ms吗?
下面的描述没看明白,3000是什么意思?
/* This number is used by polled devices, since the spec'd formula
* doesn't work for sleeping end devices. For non-polled devices,
* a formula is used. Value is in 2 milliseconds periods
*/
-DAPSC_ACK_WAIT_DURATION_POLLED=3000

YiKai Chen:

回复 user5367314:

PSC_ACK_WAIT_DURATION_POLLED 只作用於polling ZED、你從ZC發message 出來就和PSC_ACK_WAIT_DURATION_POLLED 沒有什麼關聯

user5367314:

回复 YiKai Chen:

APS ACK大概是个什么流程啊?没太明白
发送的时候使能AF_ACK_REQUEST如下
options |= AF_ACK_REQUEST;
status = AF_DataRequest( destAddr, epDesc, clusterID, msgLen, msgBuf,&APS_Counter, options, zcl_radius );
如果对方收到了,发送方怎么知道?发送方会收到AF_DATA_CONFIRM_CMD?
那我怎么知道有没有发送成功呢?以及重发是怎么重发的?

YiKai Chen:

回复 user5367314:

去看一下

user5367314:

回复 YiKai Chen:

打不开啊?有别的方法可以看吗?复制后回复给我?

YiKai Chen:

回复 user5367314:

試試用VPN去連

user5367314:

回复 YiKai Chen:

3.0.2协议栈里CC2538的串口使用,有没有参考的例程提供下?

YiKai Chen:

回复 user5367314:

看看ZNP例程

赞(0)
未经允许不得转载:TI中文支持网 » ZigBee的ACK相关问题
分享到: 更多 (0)