From 9ee82719cac644862dd147f6de6408716366ade3 Mon Sep 17 00:00:00 2001 From: helei Date: Wed, 19 Aug 2026 23:20:30 +0800 Subject: [PATCH] =?UTF-8?q?V1.5:=20OTA=E8=BF=9B=E5=BA=A6=E4=B8=8A=E6=8A=A5?= =?UTF-8?q?=E6=94=B9=E5=8F=AF=E9=9D=A0=E5=8F=91=E9=80=81(=E7=AD=89OK+?= =?UTF-8?q?=E9=87=8D=E8=AF=951=E6=AC=A1),=E5=B9=B3=E5=8F=B0=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E4=B8=AD=E6=A0=87=E5=BF=97=E5=8F=AF=E7=BD=AE=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- V1.5/STM32F103_App1/HardWare/CAR/air780e.c | 7 +++++-- V1.5/鐗堟湰璇存槑.md | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/V1.5/STM32F103_App1/HardWare/CAR/air780e.c b/V1.5/STM32F103_App1/HardWare/CAR/air780e.c index 7b3d37b..48ca7b7 100644 --- a/V1.5/STM32F103_App1/HardWare/CAR/air780e.c +++ b/V1.5/STM32F103_App1/HardWare/CAR/air780e.c @@ -475,10 +475,13 @@ int air780e_mqtt_report(const char *header, const char *ota_id, int val) { if (!header || !ota_id || !ota_id[0]) return -1; static char cmd[300]; if (strstr(header, "progress")) { - /* 进度上报:允许丢包,发了就走 */ + /* 进度上报:等 OK 确认送达(失败自动重试 1 次),让平台"升级中"可靠置位。 + * 代价是每 10% 最多多花 ~3s,换来进度可见 */ sprintf(cmd, "AT+MPUB=\"/iot/data/up/%s\",0,0,\"{\\22header\\22:\\22%s\\22,\\22body\\22:{\\22id\\22:\\22%.16s\\22,\\22progress\\22:%d}}\"", MqttInfoStr.ClientID, header, ota_id, val); - CAT1_printf("%s", cmd); + if (catSendCmd(cmd, "OK", 2, 15) != 0) { + log_warn("> OTA 进度上报无应答: %d%%", val); + } return 0; } else { /* 结果上报:平台据此判定升级完成,必须可靠送达——等 OK 并重试 */ diff --git a/V1.5/鐗堟湰璇存槑.md b/V1.5/鐗堟湰璇存槑.md index b12796b..a8adb9d 100644 --- a/V1.5/鐗堟湰璇存槑.md +++ b/V1.5/鐗堟湰璇存槑.md @@ -162,3 +162,5 @@ - OTA 闂幆锛堝吋瀹圭増锛夛細鍥為 W25Q64 缁撴瀯鏀瑰姩锛圔L/APP 鍏变韩缁撴瀯涓嶈兘鍔紝鐜板満鏃犳硶鍒 BL锛夛紝 骞冲彴浠诲姟 id 鏀瑰瓨 APP 绉佹湁 EEPROM(175~194)锛屾柊鍥轰欢棣栧惎纭鏃跺湪鍙潬杩炴帴涓婅ˉ鍙 result.post(success=1, 浠诲姟id) + confirm.post锛岄佽揪鍚庢竻鍥 0xFF +- OTA 杩涘害涓婃姤鏀瑰彲闈犲彂閫侊細progress.post 绛 OK 纭锛堝け璐ヨ嚜鍔ㄩ噸璇 1 娆★紝姣 10% 鏈澶氬鑺 ~3s锛夛紝 + 骞冲彴"鍗囩骇涓"鏍囧織鍙疆浣嶏紱鑻ユ棤搴旂瓟鎵撳嵃 WARN