Add embedded storage drivers and extend firmware metadata

This commit is contained in:
2026-09-27 01:44:59 +03:00
parent 795a1279b1
commit 2ad29e7ffd
52 changed files with 5801 additions and 3 deletions

View File

@@ -0,0 +1,30 @@
# SD File Browser
Небольшое переносимое read-only ядро для постраничного просмотра каталогов.
Оно не зависит от STM32 HAL, FatFs, Modbus или GUI. Платформа передаёт callback
`list_page`; ядро проверяет путь, предел страницы и очищает ответ перед вызовом.
Логический путь всегда начинается с `/`. Запрещены `..`, `.`, пустые части,
обратная косая черта, двоеточие, управляющие символы, путь от ОС и компоненты
длиннее 48 ASCII-байт. Максимум — три элемента на страницу и 95 байт пути.
FatFs-порт сканирует позднюю страницу пошагово: один вызов service выполняет не
более шестнадцати `readdir`. Поэтому любой `uint16` offset доступен без длинного
блокирующего вызова main loop. Между страницами `DIR` закрыт. Если логгер или
backup получает работу во время сканирования, приложение отменяет viewer,
освобождает `DIR` и возвращает `logger busy`; writer всегда имеет приоритет.
Для переноса реализуйте `SdFileBrowserListPageFn`, обеспечьте read-only открытие
каталога, конечные тайм-ауты носителя и закройте cursor при извлечении карты.
Порт также предоставляет `SdFileBrowserFatFs_ReadLogChunk`: он разрешает только
legacy `/TEMPLOG.MD` и `temperature_*.md` внутри `/niceOne/mounth`, читает не
более 64 байт и закрывает `FIL` до возврата. Первый ответ публикует размер и FAT
date/time; каждый следующий запрос обязан повторить их. Замена, обрезание или
изменение файла возвращает `SD_FILE_BROWSER_FILE_CHANGED`. В API нет функций
записи, удаления, rename, выполнения Markdown или чтения служебных каталогов.
## Shared source
Canonical source: `templates/c/sd-file-browser`. Used by `home/climate`; its old paths are compatibility includes. Board-specific ports remain in the application. Change this library, not the forwarding files.