Add embedded storage drivers and extend firmware metadata
This commit is contained in:
30
c/sd-file-browser/README.md
Normal file
30
c/sd-file-browser/README.md
Normal 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.
|
||||
Reference in New Issue
Block a user