[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/progress0100Прогресс тестирования в процентах
testsd_<slot>/event/enable0 / 1Состояние модуля - активен (1) или спит (0)

Пример: топик moduleBox/testsd_0/event/progress, payload 45.

Команды

ТопикPayloadОписание
testsd_<slot>/action/startКоманда запускает тестирование
testsd_<slot>/action/stopКоманда останавливает тестирование
testsd_<slot>/action/enable0 / 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).