From 5c5a50e4adef06fbee5e769075cfbaf48f069d0f Mon Sep 17 00:00:00 2001 From: Gatsby Van Date: Tue, 26 Dec 2023 11:04:15 +0800 Subject: [PATCH] update time sync api. --- datalink814_ge/src/linklayer/time_sync.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/datalink814_ge/src/linklayer/time_sync.c b/datalink814_ge/src/linklayer/time_sync.c index 46fc28c..1600671 100644 --- a/datalink814_ge/src/linklayer/time_sync.c +++ b/datalink814_ge/src/linklayer/time_sync.c @@ -57,7 +57,7 @@ static void RTT_GetFrameStart(L2_INST* instPtr, TIME_WORD *tmStamp, L2_TOR_TYPE * ******************************************************************************/ // TODO: Check -int32_t L2_TimeAlign(L2_INST* instPtr, uint32_t frameNum, uint32_t slotNum){ +int32_t L2_TimeAlign(L2_INST* instPtr, uint32_t frameNum, uint32_t slotNum, bool relative){ L1_FRAME_TYPE lastRecvdFrame; lastRecvdFrame = Phy_GetLastRecvFrameType(instPtr->config.phyInstPtr); if(lastRecvdFrame == L1_NONE_FRAME){ @@ -68,9 +68,13 @@ int32_t L2_TimeAlign(L2_INST* instPtr, uint32_t frameNum, uint32_t slotNum){ uint64_t currTime, expctTime; int64_t timeDiff; TIME_WORD timeStamp, slotTimerAdjmet; - expctTime = ((uint64_t)(frameNum*L2_SLOTS_PER_FRAME + slotNum))*TIME_FRAC_MAX; + expctTime = ((uint64_t)(frameNum * L2_SLOTS_PER_FRAME + slotNum)) * TIME_FRAC_MAX; expctTime += Phy_GetTimeComp(lastRecvdFrame); + if(relative) { + expctTime += (uint64_t)instPtr->netStartTime * L2_SLOTS_PER_FRAME * TIME_FRAC_MAX; + } + Phy_GetFrameSyncTimeStamp(instPtr->config.phyInstPtr, &timeStamp); currTime = (uint64_t)timeStamp.frac_part; currTime += ((uint64_t)timeStamp.int_part) * TIME_FRAC_MAX;