From d718b121dea1d87796ad79b34d88db9974698a92 Mon Sep 17 00:00:00 2001 From: lh <3191213465@qq.com> Date: Mon, 3 Aug 2026 18:03:35 +0800 Subject: [PATCH] =?UTF-8?q?=E9=99=90=E5=88=B6=E4=B8=BB=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E5=92=8C2=E4=B9=98=E7=8B=AC=E7=AB=8B=E7=BA=BF=E7=A8=8B2?= =?UTF-8?q?=E5=8F=96=E9=87=8D=E4=BC=A0=E6=AC=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TSCP/src/MSCP/CFM/CFM_Net.c | 6 ++++++ TSCP/src/MSCP/CFM/CFM_Net.h | 3 +++ TSCP/src/MSCP/SFM/SFM_2oo2.c | 4 ++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/TSCP/src/MSCP/CFM/CFM_Net.c b/TSCP/src/MSCP/CFM/CFM_Net.c index 01df07f..3dbfa2f 100644 --- a/TSCP/src/MSCP/CFM/CFM_Net.c +++ b/TSCP/src/MSCP/CFM/CFM_Net.c @@ -1031,6 +1031,7 @@ CM_INT32 CFM_2oo2_Currency_NoSplit(STRU_2OO2_NET_NO_PACK_T *p_2oo2_Ctrl,IN const /*发送相关*/ CM_UINT8 sendBuf[1500] = {0u}; CM_UINT32 sysCyc = DFM_GetBirthCount(); /*平台周期号*/ + CM_UINT16 ARQ_Cut = 0u; /* 记录重传请求次数 */ CM_UINT64 curTick = 0u; /* 当前时刻 */ CM_UINT64 sTick = 0u; /* 起始Tick */ @@ -1118,6 +1119,7 @@ CM_INT32 CFM_2oo2_Currency_NoSplit(STRU_2OO2_NET_NO_PACK_T *p_2oo2_Ctrl,IN const { /*发送重传请求*/ (void)CFM_2oo2_SendARQ_Currency(p_2oo2_Ctrl,ENUM_2oo2_NET_ARQ); + ARQ_Cut++; /*- 重置起始时间*/ sTick = CM_GetTick(); } @@ -1126,6 +1128,10 @@ CM_INT32 CFM_2oo2_Currency_NoSplit(STRU_2OO2_NET_NO_PACK_T *p_2oo2_Ctrl,IN const /*- 无处理 */ } } + if(ENUM_BOARDSTATE_RUN == PFM_GetBoardState() && SFM_2oo2_ARQ_MAX_CNT <= ARQ_Cut) + { + CM_ASSERT(0,NET_MODE, DARK_FAULT_CODE_FUN_ORDER_53, TSCP_DARK_ASSERT_1); + } if((CM_TRUE == mineRcvFlag) && (CM_TRUE == peerRcvFlag)) { /*- 结束接收 */ diff --git a/TSCP/src/MSCP/CFM/CFM_Net.h b/TSCP/src/MSCP/CFM/CFM_Net.h index 879e7f1..8fe9056 100644 --- a/TSCP/src/MSCP/CFM/CFM_Net.h +++ b/TSCP/src/MSCP/CFM/CFM_Net.h @@ -42,6 +42,9 @@ extern "C" #define CFM_OUTNET_RAW_MSG_NUM_MAX (1000u) +#define SFM_2oo2_ARQ_MAX_CNT ((ENUM_INIT_OVER<=PFM_LOG_GET_INIT_STAGE())?5u:6000u) + + /*暗文类型宏定义*/ #define DARK_LOG_STRING (0x55u) #define DARK_LOG_HEX (0xAAu) diff --git a/TSCP/src/MSCP/SFM/SFM_2oo2.c b/TSCP/src/MSCP/SFM/SFM_2oo2.c index 86989df..62beb77 100644 --- a/TSCP/src/MSCP/SFM/SFM_2oo2.c +++ b/TSCP/src/MSCP/SFM/SFM_2oo2.c @@ -566,11 +566,11 @@ static CM_INT32 s_2oo2_ARQ_Recv(OUT CM_UINT8 *RxData, IN CM_UINT32 RxSize, OUT E } } /*本机与邻机接收成功或重传次数超过1分钟(6000次)退出重传 */ - if(((CM_TRUE == MineRcvSuccessFlag) && (CM_TRUE == PeerRcvSuccessFlag)) || (ARQ_Cut >= 6000)) + if(((CM_TRUE == MineRcvSuccessFlag) && (CM_TRUE == PeerRcvSuccessFlag)) || (ARQ_Cut >= SFM_2oo2_ARQ_MAX_CNT)) { /*- 结束接收 */ /*- 结束接收 重传超过6000次日志记录 */ - if(ARQ_Cut >= 6000) + if(ARQ_Cut >= SFM_2oo2_ARQ_MAX_CNT) { MSCP_LOG_MSG("2oo2 failed break ARQ_Cut = %d, MineRcvSuccessFlag = %d, PeerRcvSuccessFlag = %d\n", ARQ_Cut, MineRcvSuccessFlag, PeerRcvSuccessFlag); CM_ASSERT(0,SFM_2oo2_MODE, DARK_FAULT_CODE_FUN_ORDER_6, TSCP_DARK_ASSERT_2);