[SLOT_n]
mode = testsdСлужебный модуль тестирования карты памяти: проверяет чтение и запись, рапортует прогресс и результат.
Совместимость
Принцип работы
Модуль последовательно читает блоки карты, а в режимах readwrite и readback
дополнительно пишет их обратно и сверяет записанное. Тестирование запускается
командой start и прерывается командой stop.
Опция maxErrors задаёт число ошибок, после которого тест останавливается, runDelay — паузу между блоками, чтобы тест не забирал всё процессорное время.
Модуль применяется при производственной проверке и диагностике носителей, в рабочей конфигурации устройства он не нужен.
Топики
База топика события:
<deviceName>/testsd_<slot>— напримерmoduleBox/testsd_0
База топика действия:
<deviceName>/testsd_<slot>— напримерmoduleBox/testsd_0
Полный топик — база плюс направление и имя: moduleBox/testsd_0/action/start.
Опции
Доступные опции:
- testType — строка(enum), тип теста — см. Типы теста. Значения:
readwrite,read,readback. По умолчаниюreadwrite. - maxErrors — число(int), порог ошибок, после которого тестирование останавливается. Диапазон 1–4096. По умолчанию 1.
- runDelay — число(int), пауза между чтением блоков в тиках FreeRTOS. Диапазон 0–4096. По умолчанию 0.
События
| Топик | Payload | Описание |
|---|---|---|
testsd_<slot>/event/state | строка | Текущая фаза тестирования и детекция карты: stopped, initializing, running, formatting, done, inserted, ejected |
testsd_<slot>/event/result | строка | Результат завершённого теста: none, success, error, formatError |
testsd_<slot>/event/progress | 0–100 | Прогресс тестирования в процентах |
testsd_<slot>/event/enable | 0 / 1 | Состояние модуля - активен (1) или спит (0) |
Пример: топик moduleBox/testsd_0/event/progress, payload 45.
Команды
| Топик | Payload | Описание |
|---|---|---|
testsd_<slot>/action/start | — | Команда запускает тестирование |
testsd_<slot>/action/stop | — | Команда останавливает тестирование |
testsd_<slot>/action/enable | 0 / 1 | Включить (1) или выключить (0) модуль |
Типы теста
- read — только чтение блоков. Самый быстрый и безопасный: содержимое карты не меняется.
- readwrite — чтение и запись блока обратно. Проверяет, что карта принимает запись.
- readback — чтение, запись и проверка результата повторным чтением. Самый строгий и самый долгий.
Примеры
[SLOT_1]
mode = testsd
options = testType:readback, maxErrors:5, runDelay:2
;кнопка запускает тест, результат уходит на подсветку
crosslink = button_0/event/press:1->testsd_1/action/start:1, testsd_1/event/result:success->led_0/action/enable:1Режим readback — самый строгий: блок читается, записывается обратно и
проверяется повторным чтением. Тест останавливается после пяти ошибок.
[SLOT_1]
mode = testsd
options = testType:read, runDelay:5
;прогресс теста выводится шкалой на ленте
crosslink = testsd_1/event/progress:@->led_2/action/setPos:@Подробнее — внутренние связи (crossLink).