AnsweredAssumed Answered

RF4CE Beekit issue

Question asked by mlopez on Oct 6, 2013
Latest reply on Feb 28, 2014 by mlopez

Hi,

We are developing a product with protocol stack RF4CE, MC1323X and Beekit.

 

In the reference code produced by Beekit I`ve found an issue that I don`t know how to resolve.

 

In  the App_HandleNldeEvent() function:

 

/*****************************************************************************

*  App_HandleNldeEvent

*

*  Handles messages received on the NLDE SAP

*

*****************************************************************************/

static void* App_HandleNldeEvent(void)

{

  void *pMsgIn;

  /* Try to get the first message in the Nlde message queue */

  pMsgIn = MSG_DeQueue(&mNldeAppInputQueue);       

  if((pMsgIn) && (appStateMachine.state == gAppStateIdle_c))

  {

    /* Handle the message in Idle state */

    App_HandleNldeMessage((nwkNldeToAppMsg_t*)pMsgIn);

    MSG_Free(pMsgIn);

    pMsgIn = NULL;

  }

  return pMsgIn;

}

 

You take out the message from the Queue, but if the appStateMachine is not idle (for example when you are sending data) you simply throw away the message and lost it.

We can't lost packets in my application.

 

I`ve tried to change this code but in every intent the communications fail.

If I don`t test the idle state and process the message anyway, it fails.

If I don`t DeQueue the message if appStateMachine is not idle, also fails.

 

What could I do?

 

Thanks in advance,

Miguel Angel

Outcomes