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
This commit is contained in:
2026-03-12 02:53:40 +03:00
parent 798dfc450a
commit 587a505595

View File

@@ -10,7 +10,7 @@
Отсутствие файла в запросе означает **«сервер не удаляет этот файл»**. Отсутствие файла в запросе означает **«сервер не удаляет этот файл»**.
Удаление — **активное**: файл удаляется только если пришёл блок файла с пустым содержимым. Удаление — **активное**: файл удаляется только если пришёл блок файла с пустым содержимым.
- **Транспорт:** HTTP - **Транспорт:** HTTPS (только HTTPS; HTTP не поддерживается на стороне девайса)
- **Инициатор синхронизации:** устройство (девайс) - **Инициатор синхронизации:** устройство (девайс)
- **Количество HTTP roundtrip'ов:** 1 - **Количество HTTP roundtrip'ов:** 1
- **Файлы:** до 5 KB, типично 300–500 байт, ~10–20 файлов - **Файлы:** до 5 KB, типично 300–500 байт, ~10–20 файлов
@@ -126,11 +126,10 @@ curl -v -k \
1. Прочитать локальные изменения в /programs/ на SD-карте 1. Прочитать локальные изменения в /programs/ на SD-карте
2. Сформировать пакет изменений 2. Сформировать пакет изменений
3. Отправить POST /sync/programs/{panel_id} 3. Отправить POST /sync/programs/{panel_id}
4. Получить ответный пакет, записать полностью во временный файл, чтобы не использовать буферы в рам 4. Получить ответный пакет, накопить полностью в PSRAM-буфере (heap_caps_malloc MALLOC_CAP_SPIRAM), чтобы не использовать внутренний RAM
5. Для каждого файла в ответе: 5. Для каждого файла в ответе:
- если content пустой → удалить локальный файл - если content пустой → удалить локальный файл
- иначе записать на SD (create or overwrite) - иначе записать на SD (create or overwrite)
6. удалить временный файл
``` ```
Минимум логики на девайсе: нет сравнения timestamp'ов, нет решений — только применять изменения. Минимум логики на девайсе: нет сравнения timestamp'ов, нет решений — только применять изменения.
@@ -296,4 +295,4 @@ P177 Updated at 24.02.2025, 16:00:00 U1740412800
// 4. Использовать chunked transfer или накопить в буфере // 4. Использовать chunked transfer или накопить в буфере
``` ```
Для 10–20 файлов по 500 байт пакет ~10–15 KB — умещается в буфер RAM ESP32. Для 10–20 файлов по 500 байт пакет ~10–15 KB. Как запрос, так и ответный пакет накапливаются в PSRAM-буфере (до 32 KB), а не во внутреннем RAM ESP32.