[simulation] use ACK frame generation utils (#5033)

This commit is contained in:
Li Cao
2020-06-01 17:06:02 -07:00
committed by GitHub
parent ba0b896b20
commit b9d348c328
+8 -7
View File
@@ -732,25 +732,26 @@ void radioTransmit(struct RadioMessage *aMessage, const struct otRadioFrame *aFr
#endif // OPENTHREAD_SIMULATION_VIRTUAL_TIME == 0 #endif // OPENTHREAD_SIMULATION_VIRTUAL_TIME == 0
} }
void radioSendAck(void) void radioGenerateAck(void)
{ {
sAckFrame.mLength = IEEE802154_ACK_LENGTH;
sAckMessage.mPsdu[0] = IEEE802154_FRAME_TYPE_ACK;
if ( if (
#if OPENTHREAD_CONFIG_THREAD_VERSION >= OT_THREAD_VERSION_1_2 #if OPENTHREAD_CONFIG_THREAD_VERSION >= OT_THREAD_VERSION_1_2
// Determine if frame pending should be set
(otMacFrameIsData(&sReceiveFrame) || otMacFrameIsDataRequest(&sReceiveFrame)) (otMacFrameIsData(&sReceiveFrame) || otMacFrameIsDataRequest(&sReceiveFrame))
#else #else
otMacFrameIsDataRequest(&sReceiveFrame) otMacFrameIsDataRequest(&sReceiveFrame)
#endif #endif
&& HasFramePending(&sReceiveFrame)) && HasFramePending(&sReceiveFrame))
{ {
sAckMessage.mPsdu[0] |= IEEE802154_FRAME_PENDING;
sReceiveFrame.mInfo.mRxInfo.mAckedWithFramePending = true; sReceiveFrame.mInfo.mRxInfo.mAckedWithFramePending = true;
} }
sAckMessage.mPsdu[1] = 0; otMacFrameGenerateImmAck(&sReceiveFrame, sReceiveFrame.mInfo.mRxInfo.mAckedWithFramePending, &sAckFrame);
sAckMessage.mPsdu[2] = otMacFrameGetSequence(&sReceiveFrame); }
void radioSendAck(void)
{
radioGenerateAck();
sAckMessage.mChannel = sReceiveFrame.mChannel; sAckMessage.mChannel = sReceiveFrame.mChannel;