ZigBee data acknowledge problem. Confirm Status = not enough memory

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

ZigBee data acknowledge problem. Confirm Status = not enough memory

跳至解决方案
946 次查看
Elisa
Contributor III

I want to send packets using


afAddrInfo.txOptions = (gApsTxOptionNone_c | gApsTxOptionAckTx_c)


and


status = AF_DataRequest(&afAddrInfo, mypktPacket, pkt, &myconfirmId);


If status is gZbSuccess_c, I wait the  confirmation.


_______


If I receive a gZbSuccess_c  I will wait and then send a new pkt (frequency is 5 pkt per seconds)


If I receive a gApsNoAck_c i will resend the pkt if my circular data buffer is not full.



The problem is that after few minutes the confirmation status became gZbNoMem_c


What does it means? Who has not enough memory? The sender or the receiver node? 

标签 (1)
  • RF

0 项奖励
1 解答
520 次查看
AlanCollins
Contributor V

Hello Elisa,

     The "AF_DataRequest" will return "gZbNoMem_c" if it failes to allocate the message. The message goes into the SAP that communicates to the lower layer and eventually becomes an OTA message.

This means you are not freeing correctly the messages your application is using.

I recommend you to turn on the message tracking for debugging what's going on: #define MsgTracking_d 1

Then, when you get the "No mem" error, you can check the "MsgTrackingArray" to see the type of messages that have nto been freed correclty.

Cheers,

Alan

在原帖中查看解决方案

0 项奖励
1 回复
521 次查看
AlanCollins
Contributor V

Hello Elisa,

     The "AF_DataRequest" will return "gZbNoMem_c" if it failes to allocate the message. The message goes into the SAP that communicates to the lower layer and eventually becomes an OTA message.

This means you are not freeing correctly the messages your application is using.

I recommend you to turn on the message tracking for debugging what's going on: #define MsgTracking_d 1

Then, when you get the "No mem" error, you can check the "MsgTrackingArray" to see the type of messages that have nto been freed correclty.

Cheers,

Alan

0 项奖励