Skip to content

Latest commit

 

History

221 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Controlboard

Инструмент командной строки (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 мог корректно определить репозиторий и ветку для загрузки остальных файлов.

Скрипт выполнит следующие действия:

  1. Создаст директорию ~/controlboard.
  2. Скачает необходимые файлы.
  3. Установит системные зависимости (python3-venv).
  4. Создаст виртуальное окружение Python.
  5. Добавит текущего пользователя в группу dialout (для доступа к COM-портам).
  6. Создаст скрипт быстрого запуска 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

Скрипт автоматически:

  1. Остановит конфликтующие службы (edgeserver, vsmd).
  2. Найдет контроллер на портах.
  3. Заморозит Watchdog ПК (чтобы избежать перезагрузки).
  4. Проверит текущую версию прошивки. Если она совпадает с новой — пропустит прошивку и отправит уведомление.
  5. Прошьет устройство выбранным .hex файлом (если версии отличаются).
  6. Включит в отчет IP-адрес устройства (10.8.*) для удобства администрирования.

Примечание: При использовании Mass Flasher с флагом --flash-cleanup, после успешной прошивки автоматически запускается скрипт очистки dev_cleanup.sh и происходит перезагрузка. Это гарантирует, что на устройстве не останется лишних файлов (пакета venv, исходников), кроме лога и файла версии.

Уведомления в Telegram

Скрипт autoflash.sh может отправлять уведомления об успешной прошивке в Telegram.

Настройка:

  1. Откройте файл конфигурации telegram_config.env (создается автоматически или скопируйте шаблон).

  2. Раскомментируйте и заполните переменные:

    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: Скрипт очистки (для разработчиков).

"Чистая" установка (Dev Mode)

Для тестирования скриптов установки на "чистой" системе предусмотрен механизм отката изменений.

  1. Логирование: Скрипты setup.sh и autoflash.sh записывают все системные изменения (установленные пакеты, добавление в группы) в файл dev_init.txt внутри папки проекта.
  2. Глобальный лог: Полная история операций пишется в ~/controlboard.log.
  3. Очистка: Чтобы вернуть систему в исходное состояние (удалить пакеты, убрать права, удалить папку проекта), запустите:
cd ~/controlboard
./dev_cleanup.sh

Внимание: Скрипт удалит папку ~/controlboard! В системе останутся только лог-файл ~/controlboard.log и история версий прошивки ~/smalledge_fw_version.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages