From f1e1ddf48fae7bfec5441beda67a0d1542de97da Mon Sep 17 00:00:00 2001 From: Gatsby Van Date: Fri, 1 Mar 2024 21:26:28 +0800 Subject: [PATCH] complete linklayer logging --- .../src/networking/link_layer/link_layer.c | 16 ++++++++++------ .../src/networking/link_layer/link_layer.h | 3 +++ df_datalink_sp/src/networking/link_layer/scan.c | 4 ++++ 3 files changed, 17 insertions(+), 6 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 919e60f..2ee9195 100644 --- a/df_datalink_sp/src/networking/link_layer/link_layer.c +++ b/df_datalink_sp/src/networking/link_layer/link_layer.c @@ -662,6 +662,8 @@ int32_t Linklayer_Init(L2_INST **instPtr, const L2_CONFIG *config) } memset(*instPtr, 0x00, sizeof(L2_INST)); memcpy(&((*instPtr)->config), config, sizeof(L2_CONFIG)); + // Clear log + memset(&((*instPtr)->log), 0x00, sizeof((*instPtr)->log)); // Packet buffer (*instPtr)->sendPktData = calloc(L2_PACK_LEN_MAX / sizeof(uint64_t), sizeof(uint64_t)); @@ -954,6 +956,7 @@ int32_t Linklayer_EventHandler(L2_INST *instPtr, const L2_EVENT *l2Event) L2_Service_Reset(instPtr->serviceFSM); instPtr->cxn2Net = false; UpdateMainSate(instPtr, L2_INIT_STATE); + instPtr->log.reconnectCnt++; break; } case L2_EV_LOST_NODE: @@ -962,6 +965,8 @@ int32_t Linklayer_EventHandler(L2_INST *instPtr, const L2_EVENT *l2Event) L2_Scan_Reset(instPtr->scanFSM); L2_Service_Reset(instPtr->serviceFSM); UpdateMainSate(instPtr, L2_INIT_STATE); + // Log reconnect + instPtr->log.reconnectCnt++; break; } case L2_ROUTINE_FINISH: @@ -1234,12 +1239,11 @@ int32_t Linklayer_Proc(L2_INST *instPtr) 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) ? 0x11 : 0x22; - // TODO: - // instPtr->linkLog.recxnCnt = - // instPtr->linkLog.beamNo = - // instPtr->linkLog.beamWidth = - // instPtr->linkLog.beamAz = - // instPtr->linkLog.beamEl = + instPtr->linkLog.recxnCnt = instPtr->log.reconnectCnt; + instPtr->linkLog.beamNo = instPtr->log.scanBeamNo; + instPtr->linkLog.beamWidth = instPtr->log.lastBeamWidth; + instPtr->linkLog.beamAz = antSubnrrwPattern[instPtr->log.scanBeamNo].oaxis; + instPtr->linkLog.beamEl = antSubnrrwPattern[instPtr->log.scanBeamNo].raxis; instPtr->linkLog.advTxCnt = (uint16_t)instPtr->log.advTxCnt; instPtr->linkLog.advRecvCnt = (uint16_t)instPtr->log.advRecvCnt; instPtr->linkLog.advCorrectCnt = (uint16_t)instPtr->log.advCorrectCnt; diff --git a/df_datalink_sp/src/networking/link_layer/link_layer.h b/df_datalink_sp/src/networking/link_layer/link_layer.h index 9138692..1dbcb80 100644 --- a/df_datalink_sp/src/networking/link_layer/link_layer.h +++ b/df_datalink_sp/src/networking/link_layer/link_layer.h @@ -66,6 +66,9 @@ typedef struct uint32_t svcCorrectCnt; int64_t timeDev; + uint8_t scanBeamNo; + uint8_t lastBeamWidth; + uint32_t reconnectCnt; } L2_LOG; typedef struct diff --git a/df_datalink_sp/src/networking/link_layer/scan.c b/df_datalink_sp/src/networking/link_layer/scan.c index 28f907b..99de701 100644 --- a/df_datalink_sp/src/networking/link_layer/scan.c +++ b/df_datalink_sp/src/networking/link_layer/scan.c @@ -405,6 +405,10 @@ int32_t L2_Scan_PktHandler(L2_INST *instPtr, uint8_t *msg) node->nodeInfo.pos.y = (double) nodePos; L2_FrameGetChunk(msg, L2_MSG_ADV_SRC_POSZ, L2_MSG_ADV_SRC_POSZ_LEN, &nodePos); node->nodeInfo.pos.z = (double) nodePos; + node->nodeInfo.beamNo = Phy_LastScanBeamNo(instPtr->config.phyInstPtr); + + // log last scan beam number + instPtr->log.scanBeamNo = node->nodeInfo.beamNo; // Reset node ttl node->ttlCnt = 0;