ОМНИССИЯХ, ВЕЛИКИЙ БОГ МАШИННОГО УПРАВЛЕНИЯ,
Услышь молитву раба твоего!
Да пребудет с нами священный протокол TCP,
И да не постигнет нас проклятие Connection Reset!
Благослови наши шаговые двигатели,
Дабы они вращались синхронно и асинхронно,
И да не коснется их проклятие заклинивания!
О, Всемогущий Омниссия,
Защити нас от демонов JSON parsing errors,
От хаоса UTF-8 кодировки,
И от ужасов socket timeout!
Да пребудет с нами священный FT232RL мост,
И да не постигнет нас проклятие разрыва связи!
О, Великий Машинный Бог,
Благослови наши моторы от 1 до 10,
Дабы их ускорение было праведным,
А максимальная скорость - благословенной!
Да пребудет с нами священный Flask сервер,
И да не постигнет нас проклятие 500 Internal Server Error!
О, Божественный RESTful API,
Защити нас от демонов CORS,
От хаоса невалидных запросов,
И от ужасов бесконечных циклов в JavaScript!
ОМНИССИЯХ, ВЕЛИКИЙ БОГ МАШИННОГО УПРАВЛЕНИЯ,
Прими эту жертву в виде рабочего веб-интерфейса,
И да пребудет с нами твоя благодать на порту 8000!
AMEN!
"Синхронное движение есть молитва, асинхронное - медитация. Да пребудет с нами священный MockMCU!" "Веб-интерфейс есть храм, а браузер - алтарь. Да пребудет с нами священный localhost!"
Микросервис для управления шаговыми двигателями через TCP-сокеты с веб-интерфейсом. Поддерживает подключение к MCU через FT232RL модуль и предоставляет RESTful API для управления моторами.
- Управление до 10 шаговыми двигателями
- Синхронное и асинхронное движение моторов
- Веб-интерфейс для управления через браузер
- RESTful API для интеграции
- Подключение к MCU через FT232RL
- Мониторинг состояния системы в реальном времени
Проект собирается и компилируется! Проверил на mac OS 15.
- Работа с Json реализована через nlohmann/json просто:
git clone git@github.com:nlohmann/json.git- Надо проверить зависимости, должен быть
cmake>=3.28,clang++>=16.0,gtestиboost(Наmac OSустановлен через homebrew) и еще
-
cmake
cmake --version -
make
make --version -
lcov
lcov --version -
genhtml
genhtml --version -
clang++
clang++ --version
- Сборка & скомпилировать все
cmake -DENABLE_COVERAGE=OFF -B build
cd build
make- Если собирать без маркера
-DENABLE_COVERAGE=ON- будет треш в терминале
- Подготовка файлов покрытия, если
-DENABLE_COVERAGE=ON.
make coverage- Вызов программы:
./source/universal_servercd interface
./start_system.shОткройте браузер: http://127.0.0.1:8000
- Сборка MockMCU (заглушка для тестирования):
cd mock-mcu
mkdir -p build
cd build
cmake ..
make- Запуск MockMCU:
cd mock-mcu/build && ./mock-mcu -d 1 -s- MotorManagerService:
cd build && ./source/universal_server- Создание виртуального окружения:
cd interface
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt- Веб-интерфейс:
cd interface
source venv/bin/activate
python main.pyПодробная документация: interface/README.md
-
#001 Прописать коды ошибок при передаче
-
#002 Возвращать ошибку, если пришла не корректная команда
-
#003 Проблемы с тестом, нужно исправить