lacteApp
C++17 service for Lacte hardware
Loading...
Searching...
No Matches
Общее описание

Ключевые возможности

  • Пуллинг платы каждые 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

    Плата сама не инициирует связь — приложение опрашивает её и принимает решения по записи.

Запуск

lacteApp [OPTIONS]

Опции:

  • --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

Алгоритм работы сервиса

  1. На старте читается board_cache.txt и восстанавливается последнее состояние.
  2. Пытается открыть UART (--dev или autodetect), 115200, VID:PID 067b:23a3.
  3. Каждые 100 мс запрашивает INFO и VERSION.
  4. Если обнаружено изменение — дозапрашивает UID, RFID, RFID_DATA и пишет изменившиеся поля в БД.
  5. При обрыве UART — периодические попытки переподключения, затем цикл продолжится.
  6. При завершении — сериализует актуальное состояние в board_cache.txt.
  7. Каждые 30 секунд(можно изменить опцией –check-interval) проверяет наличие файлов прошивки в /mnt/disk_nand_ext/*.bin: при появлении — выполняет проверку CRC (IAR), прошивку и удаление файла согласно правилам выше.\ Подробнее в update page