Other Parts Discussed in Thread: CC2530
Is it possible to trigger an immediate transmission after MAC_McpsDataReq is called? If I set the txMax parameter in the macCfg_t structure as 1 will it work? Is there any other option?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Other Parts Discussed in Thread: CC2530
Is it possible to trigger an immediate transmission after MAC_McpsDataReq is called? If I set the txMax parameter in the macCfg_t structure as 1 will it work? Is there any other option?
I do not think that reducing the Tx queue will result in Tx happening any faster. If the device you are sending to is an FFD (Fully Functional Device) then the Tx will happen immediately, the TX queue will only mean that your application can send multiple back-to-back messages before the MAC task gets context to send the message. If the device you are sending to is an RFD then the Tx will not happen until the RFD polls for a data, so the queue will queue messages for devices to poll. See "802.15.4 MAC API.pdf" section "8.5 Direct Data Transactions" for sending data to an FFD or section "8.6 Indirect Data Transactions, Data Poll and Purge" for sending data to an RFD.
Assuming that you are sending a message to an FFD and you do not need to queue messages waiting for a data poll:
- If you are running on a CC2530/31/33/38 that you should exit MSA_ProcessEvent as soon as possible so that the macEventLoop can get context and send the message.
- If you are running on a CC26xx device then you you could try calling Task_sleep so the the Stack task can get context and send the message. If this does not speed anything up then you should exit the MSA_ProcessEvent as soon as possible.
Regards,
TC.