update time sync api.
This commit is contained in:
@@ -57,7 +57,7 @@ static void RTT_GetFrameStart(L2_INST* instPtr, TIME_WORD *tmStamp, L2_TOR_TYPE
|
|||||||
*
|
*
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
// TODO: Check
|
// 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;
|
L1_FRAME_TYPE lastRecvdFrame;
|
||||||
lastRecvdFrame = Phy_GetLastRecvFrameType(instPtr->config.phyInstPtr);
|
lastRecvdFrame = Phy_GetLastRecvFrameType(instPtr->config.phyInstPtr);
|
||||||
if(lastRecvdFrame == L1_NONE_FRAME){
|
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;
|
uint64_t currTime, expctTime;
|
||||||
int64_t timeDiff;
|
int64_t timeDiff;
|
||||||
TIME_WORD timeStamp, slotTimerAdjmet;
|
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);
|
expctTime += Phy_GetTimeComp(lastRecvdFrame);
|
||||||
|
|
||||||
|
if(relative) {
|
||||||
|
expctTime += (uint64_t)instPtr->netStartTime * L2_SLOTS_PER_FRAME * TIME_FRAC_MAX;
|
||||||
|
}
|
||||||
|
|
||||||
Phy_GetFrameSyncTimeStamp(instPtr->config.phyInstPtr, &timeStamp);
|
Phy_GetFrameSyncTimeStamp(instPtr->config.phyInstPtr, &timeStamp);
|
||||||
currTime = (uint64_t)timeStamp.frac_part;
|
currTime = (uint64_t)timeStamp.frac_part;
|
||||||
currTime += ((uint64_t)timeStamp.int_part) * TIME_FRAC_MAX;
|
currTime += ((uint64_t)timeStamp.int_part) * TIME_FRAC_MAX;
|
||||||
|
|||||||
Reference in New Issue
Block a user