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;//非低功耗设备