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