From 9642a003e00a5e3848f2a1337024b540b63c014e Mon Sep 17 00:00:00 2001 From: Gatsby Van Date: Fri, 22 Dec 2023 01:22:06 +0800 Subject: [PATCH] bugfix: rtt rx event happens two slots after. --- datalink814_ge/src/linklayer/net_mgmt.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/datalink814_ge/src/linklayer/net_mgmt.c b/datalink814_ge/src/linklayer/net_mgmt.c index 96ca4f7..b3b83ea 100644 --- a/datalink814_ge/src/linklayer/net_mgmt.c +++ b/datalink814_ge/src/linklayer/net_mgmt.c @@ -918,8 +918,18 @@ int32_t MgmtNet_Routine(L2_INST* instPtr, const L2_RTNE_TABLE_ENTRY* rtneEntry){ if (L2_GetLastFrameType(instPtr) == L2_INTRA_TSYNC_FRAME && L2_GetLastTor(instPtr) == L2_TOR_RX) { RTT_FsmUpdate(instPtr, L2_TOR_RX); } - if (rtneEntry->slotType == SLOT_INTRA_TSYNC && torState == L2_TOR_TX) { + if (rtneEntry->slotType == SLOT_INTRA_TSYNC) { + if(torState == L2_TOR_TX) { RTT_FsmUpdate(instPtr, L2_TOR_TX); + } + else if (torState == L2_TOR_RX) + { + L2_SCHD_EVENT* rttRxEvent = L2_CreatNewSchdEvent(instPtr->schdEventPool, L2_EV_RTT_RECV_UPDATE, true); + if(rttRxEvent == NULL) { + DBG_ERROR("Failed to initialize rtt event.\n"); + } + Status = L2_ScheduleEventAfter(instPtr, rttRxEvent, INTRA_TSYNC_SLOTS + 1); + } } switch (rtneEntry->slotType) {