From 587a505595e28c6828500c60dadf2efa4e5e2848 Mon Sep 17 00:00:00 2001 From: vvzvlad Date: Thu, 12 Mar 2026 02:53:40 +0300 Subject: [PATCH] docs: fix discrepancies with ESP32 sync_programs.cpp implementation - Change transport from HTTP to HTTPS only (code enforces https:// check) - Replace "write to temp file on SD" with PSRAM buffer in device logic - Update footer note about buffer: PSRAM, not internal RAM --- http_program_sync_protocol.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/http_program_sync_protocol.md b/http_program_sync_protocol.md index fe73fbb..3ff9505 100644 --- a/http_program_sync_protocol.md +++ b/http_program_sync_protocol.md @@ -10,7 +10,7 @@ Отсутствие файла в запросе означает **«сервер не удаляет этот файл»**. Удаление — **активное**: файл удаляется только если пришёл блок файла с пустым содержимым. -- **Транспорт:** HTTP +- **Транспорт:** HTTPS (только HTTPS; HTTP не поддерживается на стороне девайса) - **Инициатор синхронизации:** устройство (девайс) - **Количество HTTP roundtrip'ов:** 1 - **Файлы:** до 5 KB, типично 300–500 байт, ~10–20 файлов @@ -126,11 +126,10 @@ curl -v -k \ 1. Прочитать локальные изменения в /programs/ на SD-карте 2. Сформировать пакет изменений 3. Отправить POST /sync/programs/{panel_id} -4. Получить ответный пакет, записать полностью во временный файл, чтобы не использовать буферы в рам +4. Получить ответный пакет, накопить полностью в PSRAM-буфере (heap_caps_malloc MALLOC_CAP_SPIRAM), чтобы не использовать внутренний RAM 5. Для каждого файла в ответе: - если content пустой → удалить локальный файл - иначе записать на SD (create or overwrite) -6. удалить временный файл ``` Минимум логики на девайсе: нет сравнения timestamp'ов, нет решений — только применять изменения. @@ -296,4 +295,4 @@ P177 Updated at 24.02.2025, 16:00:00 U1740412800 // 4. Использовать chunked transfer или накопить в буфере ``` -Для 10–20 файлов по 500 байт пакет ~10–15 KB — умещается в буфер RAM ESP32. +Для 10–20 файлов по 500 байт пакет ~10–15 KB. Как запрос, так и ответный пакет накапливаются в PSRAM-буфере (до 32 KB), а не во внутреннем RAM ESP32.