Инструмент командной строки (CLI) и библиотека Python для управления платой контроллера через Modbus RTU (UART).
Проект предоставляет удобный интерфейс для взаимодействия с аппаратным контроллером. Поддерживаются чтение датчиков, управление периферией (камера, радар, LED), настройка параметров и обновление прошивки.
Для быстрой установки и настройки окружения используйте скрипт setup.sh:
# Скачать и запустить установщик
url="https://raw.githubusercontent.com/masseselsev/controlboard/main/controlboard/setup.sh?v=$(date +%s)"; wget -O - "$url" | bash -s "$url"Важно: Мы используем конструкцию
bash -s "$url", чтобы передать URL скрипта в качестве аргумента. Это необходимо для того, чтобыsetup.shмог корректно определить репозиторий и ветку для загрузки остальных файлов.
Скрипт выполнит следующие действия:
- Создаст директорию
~/controlboard. - Скачает необходимые файлы.
- Установит системные зависимости (
python3-venv). - Создаст виртуальное окружение Python.
- Добавит текущего пользователя в группу
dialout(для доступа к COM-портам). - Создаст скрипт быстрого запуска
run.sh.
Запустите run.sh из папки установки или используйте меню, которое открывается после установки.
Меню автоматически выполняет живую проверку наличия контроллера (3 попытки) и отображает статус [ONLINE] или [OFFLINE] в заголовке, а также версию прошивки.
./run.shЛибо запустите вручную:
cd ~/controlboard
source env/bin/activate
python controlboard.py read temp -p /dev/ttyUSB0Для обновления прошивки используйте пункт 2) Прошивка контроллера в меню или запустите скрипт autoflash.sh:
./autoflash.shСкрипт автоматически:
- Остановит конфликтующие службы (
edgeserver,vsmd). - Найдет контроллер на портах.
- Заморозит Watchdog ПК (чтобы избежать перезагрузки).
- Проверит текущую версию прошивки. Если она совпадает с новой — пропустит прошивку и отправит уведомление.
- Прошьет устройство выбранным
.hexфайлом (если версии отличаются). - Включит в отчет IP-адрес устройства (10.8.*) для удобства администрирования.
Примечание: При использовании Mass Flasher с флагом
--flash-cleanup, после успешной прошивки автоматически запускается скрипт очисткиdev_cleanup.shи происходит перезагрузка. Это гарантирует, что на устройстве не останется лишних файлов (пакета venv, исходников), кроме лога и файла версии.
Скрипт autoflash.sh может отправлять уведомления об успешной прошивке в Telegram.
Настройка:
-
Откройте файл конфигурации
telegram_config.env(создается автоматически или скопируйте шаблон). -
Раскомментируйте и заполните переменные:
TELEGRAM_BOT_TOKEN=ваш_токен TELEGRAM_CHAT_ID=ваш_chat_id
Если файл не заполнен, уведомления просто не будут отправляться (без ошибок).
Типы уведомлений:
- ✅ Успех: Прошивка завершена, устройство перезагружено.
- ℹ️ Пропуск: Установленная версия совпадает с новой (прошивка не требуется).
В каждом сообщении указывается hostname и IP-адрес (из подсети 10.8.*).
controlboard.py: Основной CLI-инструмент.commands.py: Определения команд Modbus.app.py: Интерактивная REPL-оболочка.setup.sh: Скрипт установки.autoflash.sh: Скрипт прошивки.dev_cleanup.sh: Скрипт очистки (для разработчиков).
Для тестирования скриптов установки на "чистой" системе предусмотрен механизм отката изменений.
- Логирование: Скрипты
setup.shиautoflash.shзаписывают все системные изменения (установленные пакеты, добавление в группы) в файлdev_init.txtвнутри папки проекта. - Глобальный лог: Полная история операций пишется в
~/controlboard.log. - Очистка: Чтобы вернуть систему в исходное состояние (удалить пакеты, убрать права, удалить папку проекта), запустите:
cd ~/controlboard
./dev_cleanup.shВнимание: Скрипт удалит папку ~/controlboard! В системе останутся только лог-файл ~/controlboard.log и история версий прошивки ~/smalledge_fw_version.