From 706421d387b0f45748ffc4af06a4ca337f50f864 Mon Sep 17 00:00:00 2001
From: YuanHongbin <975559679@qq.com>
Date: Tue, 4 Aug 2026 14:10:55 +0800
Subject: [PATCH] =?UTF-8?q?fix(duch,laser):=20duch=20cat1=E7=BD=91?=
=?UTF-8?q?=E7=BB=9C=E6=8C=87=E4=BB=A4=E8=A7=A3=E6=9E=90+LaserOnOff?=
=?UTF-8?q?=E7=8A=B6=E6=80=81=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- Cat1Rev_Thread +LIPURC拦截去dLen<24限制, 全量DebugAnalyze(Task网络指令)
- COMM_UNIT_CMD_CONT_LASER回应处置LaserOnOff真实值(设备自动关/开)
---
Project/GateWay/MDK/GateWay.uvoptx | 45 ++++++++++++++-
Project/GateWay/MDK/RTE/RTOS/board.c | 23 ++++----
Project/GateWay/source/User/Inc/main.h | 2 +-
Project/GateWay/source/User/Src/CatOneTask.c | 11 ++--
Project/GateWay/source/User/Src/Public.c | 2 +
Project/GateWay/source/User/Src/main.c | 60 ++++++++++++++++++--
6 files changed, 117 insertions(+), 26 deletions(-)
diff --git a/Project/GateWay/MDK/GateWay.uvoptx b/Project/GateWay/MDK/GateWay.uvoptx
index 1d3b626..83ea766 100644
--- a/Project/GateWay/MDK/GateWay.uvoptx
+++ b/Project/GateWay/MDK/GateWay.uvoptx
@@ -428,7 +428,40 @@
-
+
+
+ 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
@@ -460,6 +493,16 @@
1
cat1Active
+
+ 6
+ 1
+ CatOne.Cat1Status
+
+
+ 7
+ 1
+ CatOne.AtCmd
+
diff --git a/Project/GateWay/MDK/RTE/RTOS/board.c b/Project/GateWay/MDK/RTE/RTOS/board.c
index 9bbfa65..8f65c3f 100644
--- a/Project/GateWay/MDK/RTE/RTOS/board.c
+++ b/Project/GateWay/MDK/RTE/RTOS/board.c
@@ -77,8 +77,8 @@ void rt_hw_board_init(void)
static int uart_init(void)
{
//#error "TODO 2: Enable the hardware uart and config baudrate."
- DbgOrCat1Uart_Config(500000);
-// RS485Ch1_Config(500000);
+ //DbgOrCat1Uart_Config(500000);
+ RS485Ch1_Config(500000);
return 0;
}
INIT_BOARD_EXPORT(uart_init);
@@ -86,15 +86,16 @@ INIT_BOARD_EXPORT(uart_init);
void rt_hw_console_output(const char *str)
{
rt_enter_critical();
- switch(GateWay.ConfigPara.Duch) {
- case CH_RS485_1: RS485Ch1UartSend((uint8_t *)str, strlen(str)); break;
- case CH_RS485_2: RS485Ch2UartSend((uint8_t *)str, strlen(str)); break;
- case CH_ETH: EthUartSend((uint8_t *)str, strlen(str)); break;
- case CH_LORA: Sx1276LoRaSendBuffer((uint8_t *)str, strlen(str)); break;
- case CH_CAT1: DebugOrCat1UartSend((uint8_t *)str, strlen(str)); break;
- case CH_DBG: DebugOrCat1UartSend((uint8_t *)str, strlen(str)); break;
- default: DebugOrCat1UartSend((uint8_t *)str, strlen(str)); break;
- }
+ RS485Ch1UartSend((uint8_t *)str, strlen(str));
+// switch(GateWay.ConfigPara.Duch) {
+// case CH_RS485_1: RS485Ch1UartSend((uint8_t *)str, strlen(str)); break;
+// case CH_RS485_2: RS485Ch2UartSend((uint8_t *)str, strlen(str)); break;
+// case CH_ETH: EthUartSend((uint8_t *)str, strlen(str)); break;
+// case CH_LORA: Sx1276LoRaSendBuffer((uint8_t *)str, strlen(str)); break;
+// case CH_CAT1: DebugOrCat1UartSend((uint8_t *)str, strlen(str)); break;
+// case CH_DBG: DebugOrCat1UartSend((uint8_t *)str, strlen(str)); break;
+// default: DebugOrCat1UartSend((uint8_t *)str, strlen(str)); break;
+// }
rt_exit_critical();
}
diff --git a/Project/GateWay/source/User/Inc/main.h b/Project/GateWay/source/User/Inc/main.h
index c0f4740..e5a4f54 100644
--- a/Project/GateWay/source/User/Inc/main.h
+++ b/Project/GateWay/source/User/Inc/main.h
@@ -4,7 +4,7 @@
#include "Public.h"
#include "DebugCmd.h"
-#define MAC_ADDR_TYPE 0//0为测试服务器
+#define MAC_ADDR_TYPE 3//0为测试服务器
extern bool MainDispEn;
#define MAIN_DBG_LOG(...) { if(MainDispEn) Debug_Printf(__VA_ARGS__);}
diff --git a/Project/GateWay/source/User/Src/CatOneTask.c b/Project/GateWay/source/User/Src/CatOneTask.c
index 5aaddb4..ed285ef 100644
--- a/Project/GateWay/source/User/Src/CatOneTask.c
+++ b/Project/GateWay/source/User/Src/CatOneTask.c
@@ -636,13 +636,10 @@ void CatOneRev_Thread_Entry(void *parameter)
CatOneRxLen = 0;
char *urc = strstr(RxBuffTemp, "+LIPURC: 0,1,");
if(urc) {
- int dLen;
- if(sscanf(urc, "+LIPURC: 0,1,%d", &dLen) == 1 && dLen < 24) {
- char *data = strchr(strchr(strchr(urc, ',')+1, ',')+1, ',') + 1;
- char *end = strchr(data, '\r');
- if(end) *end = 0;
- DebugAnalyze(GateWay, (uint8_t *)data, strlen(data));
- }
+ char *data = strchr(strchr(strchr(urc, ',')+1, ',')+1, ',') + 1;
+ char *end = strchr(data, '\r');
+ if(end) *end = 0;
+ DebugAnalyze(GateWay, (uint8_t *)data, strlen(data));
}
CatOneAtCmdAnalyze(RxBuffTemp);
memset(CatOneRxBuff, 0x00, CAT_ONE_REV_LEN_MAX);
diff --git a/Project/GateWay/source/User/Src/Public.c b/Project/GateWay/source/User/Src/Public.c
index af6baa3..31fe2f1 100644
--- a/Project/GateWay/source/User/Src/Public.c
+++ b/Project/GateWay/source/User/Src/Public.c
@@ -801,6 +801,7 @@ int CommUnitAnalyze(GateWayPara GateWay, uint8_t *rData, uint16_t rLen, SendData
MegData[9] = PayLoad[0];
UploadSend(MegData, 10);
rt_free(MegData);
+ GateWay->ConfigPara.CommUnitArray[CommUnitIdx].LaserOnOff = false;
GateWay->ConfigPara.CommUnitArray[CommUnitIdx].ContLaser = false;
MAIN_DBG_LOG("CommUnit The laser has been turned off! Mac:%02X-%02X-%02X-%02X-%02X-%02X\r\n",
CUHeader->DevMac[0], CUHeader->DevMac[1], CUHeader->DevMac[2], CUHeader->DevMac[3], CUHeader->DevMac[4], CUHeader->DevMac[5]);
@@ -820,6 +821,7 @@ int CommUnitAnalyze(GateWayPara GateWay, uint8_t *rData, uint16_t rLen, SendData
MegData[9] = PayLoad[0];
UploadSend(MegData, 10);
rt_free(MegData);
+ GateWay->ConfigPara.CommUnitArray[CommUnitIdx].LaserOnOff = true;
GateWay->ConfigPara.CommUnitArray[CommUnitIdx].ContLaser = false;
MAIN_DBG_LOG("CommUnit The laser has been activated! Mac:%02X-%02X-%02X-%02X-%02X-%02X\r\n",
CUHeader->DevMac[0], CUHeader->DevMac[1], CUHeader->DevMac[2], CUHeader->DevMac[3], CUHeader->DevMac[4], CUHeader->DevMac[5]);
diff --git a/Project/GateWay/source/User/Src/main.c b/Project/GateWay/source/User/Src/main.c
index 5ae0210..136d260 100644
--- a/Project/GateWay/source/User/Src/main.c
+++ b/Project/GateWay/source/User/Src/main.c
@@ -105,12 +105,60 @@ void GateWayInit(void)
GateWay.ConfigPara.LTENet.DestAddr[2] = 103;
GateWay.ConfigPara.LTENet.DestAddr[3] = 147;
GateWay.ConfigPara.LTENet.DestPort = 8080;
-#elif MAC_ADDR_TYPE > 0
- GateWay.ConfigPara.LTENet.DestAddr[0] = 103;
- GateWay.ConfigPara.LTENet.DestAddr[1] = 217;
- GateWay.ConfigPara.LTENet.DestAddr[2] = 192;
- GateWay.ConfigPara.LTENet.DestAddr[3] = 248;
- GateWay.ConfigPara.LTENet.DestPort = 12111;
+#elif MAC_ADDR_TYPE == 1
+ GateWay.ConfigPara.LTENet.DestAddr[0] = 39;
+ GateWay.ConfigPara.LTENet.DestAddr[1] = 106;
+ GateWay.ConfigPara.LTENet.DestAddr[2] = 103;
+ GateWay.ConfigPara.LTENet.DestAddr[3] = 147;
+ GateWay.ConfigPara.LTENet.DestPort = 8081;
+#elif MAC_ADDR_TYPE == 2
+ GateWay.ConfigPara.LTENet.DestAddr[0] = 39;
+ GateWay.ConfigPara.LTENet.DestAddr[1] = 106;
+ GateWay.ConfigPara.LTENet.DestAddr[2] = 103;
+ GateWay.ConfigPara.LTENet.DestAddr[3] = 147;
+ GateWay.ConfigPara.LTENet.DestPort = 8082;
+#elif MAC_ADDR_TYPE == 3
+ GateWay.ConfigPara.LTENet.DestAddr[0] = 39;
+ GateWay.ConfigPara.LTENet.DestAddr[1] = 106;
+ GateWay.ConfigPara.LTENet.DestAddr[2] = 103;
+ GateWay.ConfigPara.LTENet.DestAddr[3] = 147;
+ GateWay.ConfigPara.LTENet.DestPort = 8083;
+#elif MAC_ADDR_TYPE == 4
+ GateWay.ConfigPara.LTENet.DestAddr[0] = 39;
+ GateWay.ConfigPara.LTENet.DestAddr[1] = 106;
+ GateWay.ConfigPara.LTENet.DestAddr[2] = 103;
+ GateWay.ConfigPara.LTENet.DestAddr[3] = 147;
+ GateWay.ConfigPara.LTENet.DestPort = 8084;
+#elif MAC_ADDR_TYPE == 5
+ GateWay.ConfigPara.LTENet.DestAddr[0] = 39;
+ GateWay.ConfigPara.LTENet.DestAddr[1] = 106;
+ GateWay.ConfigPara.LTENet.DestAddr[2] = 103;
+ GateWay.ConfigPara.LTENet.DestAddr[3] = 147;
+ GateWay.ConfigPara.LTENet.DestPort = 8085;
+#elif MAC_ADDR_TYPE == 6
+ GateWay.ConfigPara.LTENet.DestAddr[0] = 39;
+ GateWay.ConfigPara.LTENet.DestAddr[1] = 106;
+ GateWay.ConfigPara.LTENet.DestAddr[2] = 103;
+ GateWay.ConfigPara.LTENet.DestAddr[3] = 147;
+ GateWay.ConfigPara.LTENet.DestPort = 8086;
+#elif MAC_ADDR_TYPE == 7
+ GateWay.ConfigPara.LTENet.DestAddr[0] = 39;
+ GateWay.ConfigPara.LTENet.DestAddr[1] = 106;
+ GateWay.ConfigPara.LTENet.DestAddr[2] = 103;
+ GateWay.ConfigPara.LTENet.DestAddr[3] = 147;
+ GateWay.ConfigPara.LTENet.DestPort = 8087;
+#elif MAC_ADDR_TYPE == 8
+ GateWay.ConfigPara.LTENet.DestAddr[0] = 39;
+ GateWay.ConfigPara.LTENet.DestAddr[1] = 106;
+ GateWay.ConfigPara.LTENet.DestAddr[2] = 103;
+ GateWay.ConfigPara.LTENet.DestAddr[3] = 147;
+ GateWay.ConfigPara.LTENet.DestPort = 8088;
+#elif MAC_ADDR_TYPE == 9
+ GateWay.ConfigPara.LTENet.DestAddr[0] = 39;
+ GateWay.ConfigPara.LTENet.DestAddr[1] = 106;
+ GateWay.ConfigPara.LTENet.DestAddr[2] = 103;
+ GateWay.ConfigPara.LTENet.DestAddr[3] = 147;
+ GateWay.ConfigPara.LTENet.DestPort = 8089;
#endif
GateWay.ConfigPara.CommUnitReadInterval = COMMUNIT_READ_SENSOR_INTERVAL_MAX;//非低功耗设备