From 434e63287e63b9570e40c8c8c604e5858820686f Mon Sep 17 00:00:00 2001 From: YuanHongbin <975559679@qq.com> Date: Tue, 4 Aug 2026 16:52:25 +0800 Subject: [PATCH] =?UTF-8?q?fix(duch):=20Cat1=20DUCH=E6=A8=A1=E5=BC=8F30?= =?UTF-8?q?=E5=88=86=E9=92=9F=E8=B7=91=E6=BB=A1->CAT=5FONE=5FINIT=E9=87=8D?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - DUCH_MODE while循环累计实际延时runMs - 30分钟(1,800,000ms)后设CAT_ONE_INIT+AtCmdIdx=0重走初始化 - 断线靠+LIPURC:0,0 URC走OFF->IDEL重连 - Cat1DuchReady=false+break防fallthrough到OFF --- Project/GateWay/MDK/GateWay.uvoptx | 40 +++----------------- Project/GateWay/source/User/Src/CatOneTask.c | 10 ++++- 2 files changed, 15 insertions(+), 35 deletions(-) diff --git a/Project/GateWay/MDK/GateWay.uvoptx b/Project/GateWay/MDK/GateWay.uvoptx index 83ea766..61c1a8e 100644 --- a/Project/GateWay/MDK/GateWay.uvoptx +++ b/Project/GateWay/MDK/GateWay.uvoptx @@ -428,40 +428,7 @@ - - - 0 - 0 - 643 - 1 -
55060
- 0 - 0 - 0 - 0 - 0 - 1 - ..\source\User\Src\CatOneTask.c - - \\GateWay\../source/User/Src/CatOneTask.c\643 -
- - 1 - 0 - 569 - 1 -
54386
- 0 - 0 - 0 - 0 - 0 - 1 - ..\source\User\Src\CatOneTask.c - - \\GateWay\../source/User/Src/CatOneTask.c\569 -
-
+ 0 @@ -503,6 +470,11 @@ 1 CatOne.AtCmd + + 8 + 1 + start,0x0A + diff --git a/Project/GateWay/source/User/Src/CatOneTask.c b/Project/GateWay/source/User/Src/CatOneTask.c index ed285ef..4b29acf 100644 --- a/Project/GateWay/source/User/Src/CatOneTask.c +++ b/Project/GateWay/source/User/Src/CatOneTask.c @@ -543,6 +543,7 @@ void CatOneLoopHandler(void) case CAT_ONE_DUCH_MODE: Cat1DuchReady = true; + uint32_t runMs = 0; while(ChannelIsActive(CatOne.GateWay->ConfigPara, CH_CAT1)) { if(duchRd != duchWr) { uint16_t avail = (duchWr - duchRd) & 0x1FFF; @@ -550,6 +551,7 @@ void CatOneLoopHandler(void) sprintf(CatOne.CatOneSendBuff, "AT+QISEND=0,%d\r\n", n); DebugOrCat1UartSend((uint8_t *)CatOne.CatOneSendBuff, strlen(CatOne.CatOneSendBuff)); rt_thread_delay(200); + runMs += 200; if(duchRd + n <= 8192) { DebugOrCat1UartSend((uint8_t *)&duchRing[duchRd], n); } else { @@ -559,13 +561,19 @@ void CatOneLoopHandler(void) } DebugOrCat1UartSend((uint8_t *)"\x1A", 1); rt_thread_delay(500); + runMs += 500; duchRd = (duchRd + n) & 0x1FFF; } else { rt_thread_delay(50); + runMs += 50; + } + if(runMs >= 1800000) { + CatOne.Cat1Status = CAT_ONE_INIT; + CatOne.AtCmdIdx = 0; + break; } } Cat1DuchReady = false; - CatOne.Cat1Status = CAT_ONE_IDEL; break; case CAT_ONE_OFF: