From cc6352a3de3e3cc429e5696387bafac41542c122 Mon Sep 17 00:00:00 2001 From: YuanHongbin <975559679@qq.com> Date: Mon, 15 Jun 2026 18:37:44 +0800 Subject: [PATCH] =?UTF-8?q?feat(debug):=20=E6=96=B0=E5=A2=9E=20up=20?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E7=BD=91=E5=85=B3=E7=8A=B6=E6=80=81=E5=92=8C?= =?UTF-8?q?=20reg=20=E9=87=8D=E6=96=B0=E6=B3=A8=E5=86=8C=E5=91=BD=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DebugCmd.c | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/DebugCmd.c b/DebugCmd.c index e93249a..34c9b0d 100644 --- a/DebugCmd.c +++ b/DebugCmd.c @@ -903,6 +903,76 @@ void DebugCmdRestoreFactory(int argc, char *argv[]) while(1); } +/***************************************************************************************** +* 函数名称: DebugCmdUpload +* 功能描述: 上传当前网关状态 +* 参 数: argc, 输入参数数量 + argv, 输入参数 +* 返 回 值: 无 +*****************************************************************************************/ +static void DebugCmdUpload(int argc, char *argv[]) +{ + DBG_LOG("\r\n"); + if(strcmp(argv[1], "?") == 0) { + DBG_LOG("Debug Cmd: up\r\n"); + DBG_LOG(" brief --> Upload current gateway status to server.\r\n\r\n"); + return; + } + + if(GateWay->SvrRegFlag == false) { + DBG_LOG("Server not registered, please register first.\r\n"); + return; + } + + uint8_t MegData[6]; + uint8_t len = sizeof(GateWayAlarmType_t); + MegData[0] = len & 0x00ff; + MegData[1] = (len >> 8) & 0x00ff; + MegData[2] = NET_COMM_CMD_ALARM; + + MegData[3] = 0x00; + MegData[4] = GateWay->ConfigPara.OutageFlag ? 1 : 0; + MegData[5] = GateWay->Battery; + + if(CatOneEthSendQueue(MegData, 6) == true) { + DBG_LOG("Gateway status uploaded.\r\n"); + } + else { + DBG_LOG("Gateway status upload failed.\r\n"); + } +} + +/***************************************************************************************** +* 函数名称: DebugCmdRegister +* 功能描述: 重新向上位机发起注册 +* 参 数: argc, 输入参数数量 + argv, 输入参数 +* 返 回 值: 无 +*****************************************************************************************/ +static void DebugCmdRegister(int argc, char *argv[]) +{ + DBG_LOG("\r\n"); + if(strcmp(argv[1], "?") == 0) { + DBG_LOG("Debug Cmd: reg\r\n"); + DBG_LOG(" brief --> Re-register to the server.\r\n\r\n"); + return; + } + + GateWay->SvrRegFlag = false; + + if(GateWay->ConfigPara.Comm == CATONE_COMM) { + CatOneTriggerRegister(); + DBG_LOG("Trigger Cat1 re-registration immediately.\r\n"); + } + else if(GateWay->ConfigPara.Comm == ETH_COMM) { + ETHTriggerRegister(); + DBG_LOG("Trigger ETH re-registration immediately.\r\n"); + } + else { + DBG_LOG("Unknown communication type.\r\n"); + } +} + /***************************************************************************************** * 函数名称: DebugCmdRestoreFactory * 功能描述: 恢复出厂设置 @@ -1851,6 +1921,14 @@ void DebugCmdHelp(int argc, char *argv[]) len = strlen("reboot ?\r\n"); memcpy(Data, "reboot ?\r\n", len); DebugAnalyze(GateWay, Data, len); + + len = strlen("up ?\r\n"); + memcpy(Data, "up ?\r\n", len); + DebugAnalyze(GateWay, Data, len); + + len = strlen("reg ?\r\n"); + memcpy(Data, "reg ?\r\n", len); + DebugAnalyze(GateWay, Data, len); } const DBGFunType DebugFun[DEBUG_CMD_CNT] = { @@ -1880,4 +1958,6 @@ const DBGFunType DebugFun[DEBUG_CMD_CNT] = { "lpcfg", DebugCmdLPConfig, "lora", DebugLoraConfig, "reboot", DebugCmdReboot, + "up", DebugCmdUpload, + "reg", DebugCmdRegister, };