I've added a circular list to read multiple messages from the RF core butI only see one message regardless of how many transmitters are operating.
When I turn of either transmitter I get the message from the other meaning both are transmitting but when I loop through the rxQueue there's ever only
one message and it's always from the same source.
I used the circular list implementation from:
--dev.ti.com/.../data-queues.html--
When I walk the list and print all the status I can see all the slots are pending but I expected the read request to copy all available data into the available memory since there are multiple open slots.
I've tried waiting longer to see if the start/end duration wasn't long but that didn't change. below is the code to read from the RF core
/* Start RX command to receive packets. */ RF_cmdPropRx.startTrigger.triggerType = TRIG_ABSTIME; //use the current time as the time to read any pending data //According to RF.h if startTime is in the past then we will //never fire so use a future time from now. RF_cmdPropRx.startTime = RF_getCurrentTime() + RF_convertMsToRatTicks(2); //set how long to wait before quitting RF_cmdPropRx.endTime = RF_convertMsToRatTicks(BEACON_INTERVAL_MS); RF_cmdPropRx.endTrigger.triggerType = TRIG_REL_START; RF_EventMask result = RF_runCmd(rfHandle, (RF_Op*)&RF_cmdPropRx, RF_PriorityNormal, &WaitingForSyncState_rxCallback, RF_EventRxEntryDone); if ((result != RF_EventLastCmdDone) || ((volatile RF_Op*)&RF_cmdFs)->status != DONE_OK) { status1 = ((volatile RF_Op*)&RF_cmdFs)->status; status2 = result; snprintf((char*)msg.data,sizeof(msg.data), "Failed to send run command. result(0x%X), status(0x%X)\n", status2,status1); msg.type = log_error; msg.msg_size = strlen((const char*)msg.data); display(&msg); }
Thanks