From d310647fa63d57606f0117731f3fb898a90fae37 Mon Sep 17 00:00:00 2001 From: Gatsby Van Date: Wed, 31 Jan 2024 19:44:20 +0800 Subject: [PATCH] *rewrite linklayer logging --- .../src/networking/link_layer/link_layer.c | 91 +++++-------------- 1 file changed, 25 insertions(+), 66 deletions(-) diff --git a/df_datalink_sp/src/networking/link_layer/link_layer.c b/df_datalink_sp/src/networking/link_layer/link_layer.c index ee7605f..a257c9d 100644 --- a/df_datalink_sp/src/networking/link_layer/link_layer.c +++ b/df_datalink_sp/src/networking/link_layer/link_layer.c @@ -385,54 +385,6 @@ void L2_FrameStateUpdate(L2_INST *instPtr) L2_DataAvailUpdate(instPtr, false); } } - - // Logging status. - // -- send slot status - if (instPtr->tor.curr == L2_TOR_RX) - { - instPtr->rxSlotLog.tuNo = L2_GetCurrentFrameNum(instPtr); - instPtr->rxSlotLog.slotNo = L2_GetCurrentSlotNum(instPtr); - instPtr->rxSlotLog.frameType = recvType; - memset(instPtr->rxSlotLog.payload, 0x00, sizeof(instPtr->rxSlotLog.payload)); - if (isValid == true) - { - memcpy(instPtr->rxSlotLog.payload, - instPtr->recvPktData, - Phy_GetFrameLen(L2_L2frame2L1frame(recvType))); - TIME_WORD timeWrod; - Phy_GetLastReceivedFrameSyncTimeStamp(phyRef, &timeWrod); - instPtr->rxSlotLog.tmStamp = timeWrod.frac_part; - instPtr->rxSlotLog.tmStamp += (uint64_t)timeWrod.int_part * TIME_FRAC_MAX; - - // Log time deviation. - instPtr->txSlotLog.tmDevi = 0; // TODO: - // Log frequency deviation - instPtr->rxSlotLog.freqDevi = (uint32_t)Phy_GetFreqEst(phyRef); - } - else - { - instPtr->rxSlotLog.tmStamp = 0; - instPtr->rxSlotLog.tmDevi = 0; - instPtr->rxSlotLog.freqDevi = 0; - memset(instPtr->rxSlotLog.payload, 0x00, sizeof(instPtr->rxSlotLog.payload)); - } - SysMonitor_UpdateRecvSlotLog(&(instPtr->rxSlotLog)); - } - // -- send slot status - if (instPtr->tor.next == L2_TOR_TX) - { - instPtr->txSlotLog.tuNo = L2_GetCurrentFrameNum(instPtr); - instPtr->txSlotLog.slotNo = L2_GetCurrentSlotNum(instPtr); - instPtr->txSlotLog.frameType = sendType; - memset(instPtr->rxSlotLog.payload, 0x00, sizeof(instPtr->txSlotLog.payload)); - memcpy(instPtr->txSlotLog.payload, - instPtr->sendPktData, - Phy_GetFrameLen(L2_L2frame2L1frame(sendType))); - instPtr->txSlotLog.tmStamp = 0; - instPtr->txSlotLog.tmDevi = 0; - instPtr->txSlotLog.freqDevi = 0; - SysMonitor_UpdateSendSlotLog(&(instPtr->txSlotLog)); - } } /*****************************************************************************/ @@ -1276,25 +1228,32 @@ int32_t Linklayer_Proc(L2_INST *instPtr) // Check and execute scheduled event. L2_EventPoolHandler(instPtr); - PHY_INST* phyRef = instPtr->config.phyInstPtr; - TMC_INST* tmcRef = instPtr->config.tmcInstPtr; - - TIME_WORD timeWord; - // Update Protocol log - instPtr->prtcLog.tmSys = instPtr->frameNum.last * L2_SLOTS_PER_FRAME + instPtr->slotNum.last; - instPtr->prtcLog.phySt = 0; // TODO: Update physical state. - TimeCtrl_GetCurrentTime(tmcRef, &timeWord); - instPtr->prtcLog.tmLocal = timeWord.frac_part; // us - instPtr->prtcLog.tmLocal += (uint64_t)timeWord.int_part * TIME_FRAC_MAX; // us - instPtr->prtcLog.beamNo = phyRef->beamNo.last; - instPtr->prtcLog.beamNo = phyRef->beamWd.last; - instPtr->prtcLog.stage = instPtr->mainState; - instPtr->prtcLog.recvCnt = instPtr->log.frameRecv; - instPtr->prtcLog.recvCorrect = instPtr->log.frameCorrect; - SysMonitor_UpdateProtocolLog(&(instPtr->prtcLog)); - - // Update link layer state. instPtr->mainState = instPtr->nextState; + + instPtr->linkLog.tuNum = instPtr->frameNum.curr; + instPtr->linkLog.slotNum = (uint8_t)instPtr->slotNum.curr; + instPtr->linkLog.nodeType = (instPtr->config.myType == L2_NODE_HEAD) ? 0xAA : 0xCC; + instPtr->linkLog.cxnStatus = (instPtr->cxn2Net) ? 0x11 : 0x00; + instPtr->linkLog.linkStage = (instPtr->mainState == L2_INIT_STATE) ? 0x00 : 0x11; + // TODO: + // instPtr->linkLog.recxnCnt = + // instPtr->linkLog.beamNo = + // instPtr->linkLog.beamAz = + // instPtr->linkLog.beamEl = + instPtr->linkLog.advTxCnt = (uint16_t)instPtr->log.advTxCnt; + instPtr->linkLog.advRecvCnt = (uint16_t)instPtr->log.advRecvCnt; + instPtr->linkLog.advCorrectCnt = (uint16_t)instPtr->log.advCorrectCnt; + instPtr->linkLog.cfmTxCnt = instPtr->log.cfmTxCnt; + instPtr->linkLog.cfmRecvCnt = instPtr->log.cfmRecvCnt; + instPtr->linkLog.cfmCorrectCnt = instPtr->log.cfmCorrectCnt; + instPtr->linkLog.svcTxCnt = instPtr->log.svcTxCnt; + instPtr->linkLog.svcRecvCnt = instPtr->log.svcRecvCnt; + instPtr->linkLog.svcCorrectCnt = instPtr->log.svcCorrectCnt; + instPtr->linkLog.timeDev = instPtr->log.timeDev; + instPtr->linkLog.sendId = instPtr->serviceFSM->txLog.dataId; + instPtr->linkLog.recvId = instPtr->serviceFSM->rxLog.dataId; + + SysMonitor_UpdateLinklayerLog(&(instPtr->linkLog)); return SUCCESS; }