Ключевые возможности
- Пуллинг платы каждые 100 мс: INFO + VERSION + RFID data .
- При изменении состояния — дозапрос всех доступных пакетов и запись только изменившихся полей в БД.
- Режим теста --test=ping для проверки коммуникации (посылка команд и проверка ответов).
- Флаг --verbose для детального дампа пакетов (поля, смещения, CRC и т. д.).
- Работа через UART (tty) c устройством VID:PID = 067b:23a3 на скорости 115200.
- Автопереподключение при обрыве связи с UART.
- Кэш последнего состояния платы в board_cache.txt (читается на старте, сохраняется при завершении).
- Каталог данных по умолчанию: /mnt/nand_disk_ext/lacte — здесь хранятся бинарные файлы приложения, база данных, кэш (board_cache.txt) и вспомогательные файлы сервиса.
- Встроена mock плата для отладки протокола общения. Можно включить с помощью опции –virtual
Плата сама не инициирует связь — приложение опрашивает её и принимает решения по записи.
Запуск
Опции:
- --test <mode> — тестовый режим. По умолчанию ping.
- ping — отправляет стандартные запросы на плату и проверяет ответы.
- --flash <path> — путь к файлу прошивки (поддержка сервиса обновления).
- --dev <tty> — путь к UART-устройству (например, /dev/ttyUSB0). Если опция не указана, приложение попытается автоматически обнаружить устройство по VID:PID 067b:23a3 и открыть его на скорости 115200.
- --verbose — подробный вывод протокола (парсинг полей, длины, CRC).
- --virtual — запуск в виртуальном режиме (без реального железа).
- -v --version — показать версию приложения.
- -h --help — показать справку по опциям.
- --check-interval <ms> — интервал опроса платы в миллисекундах (по умолчанию 10000 мс).
- --bin-path <path> - путь к файлам приложения (прошивка для обновления, кэш) (по умолчанию /mnt/nand_disk_ext/lacte). Виртуальная плата полностью повторяет протокол обмена и ответы (для отладки и тестов), кроме перепрошивки: обновление прошивки в виртуальном режиме не выполняется.
- Рабочая директория и хранение данных: по умолчанию все данные сервиса (бинарники, БД, board_cache.txt, вспомогательные файлы) располагаются в каталоге /mnt/nand_disk_ext/lacte. Убедитесь, что у процесса есть права на чтение/запись в этот каталог.
Примеры:
# Виртуальный пинг с подробным логом
./lacteApp --verbose --test=ping --virtual
# Работа с реальной платой
./lacteApp --dev /dev/ttyUSB0 --verbose
Алгоритм работы сервиса
- На старте читается board_cache.txt и восстанавливается последнее состояние.
- Пытается открыть UART (--dev или autodetect), 115200, VID:PID 067b:23a3.
- Каждые 100 мс запрашивает INFO и VERSION.
- Если обнаружено изменение — дозапрашивает UID, RFID, RFID_DATA и пишет изменившиеся поля в БД.
- При обрыве UART — периодические попытки переподключения, затем цикл продолжится.
- При завершении — сериализует актуальное состояние в board_cache.txt.
- Каждые 30 секунд(можно изменить опцией –check-interval) проверяет наличие файлов прошивки в /mnt/disk_nand_ext/*.bin: при появлении — выполняет проверку CRC (IAR), прошивку и удаление файла согласно правилам выше.\ Подробнее в update page