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: