Skip to content

khosta77/MotorManagerService

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MotorManagerService

Молитва

ОМНИССИЯХ, ВЕЛИКИЙ БОГ МАШИННОГО УПРАВЛЕНИЯ,
Услышь молитву раба твоего!
Да пребудет с нами священный протокол 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!"

About

Микросервис для управления шаговыми двигателями через TCP-сокеты с веб-интерфейсом. Поддерживает подключение к MCU через FT232RL модуль и предоставляет RESTful API для управления моторами.

Возможности

  • Управление до 10 шаговыми двигателями
  • Синхронное и асинхронное движение моторов
  • Веб-интерфейс для управления через браузер
  • RESTful API для интеграции
  • Подключение к MCU через FT232RL
  • Мониторинг состояния системы в реальном времени

Сборка & Запуск

Проект собирается и компилируется! Проверил на mac OS 15.

  1. Работа с Json реализована через nlohmann/json просто:
git clone git@github.com:nlohmann/json.git
  1. Надо проверить зависимости, должен быть 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

  1. Сборка & скомпилировать все
cmake -DENABLE_COVERAGE=OFF -B build
cd build
make
  • Если собирать без маркера -DENABLE_COVERAGE=ON - будет треш в терминале
  1. Подготовка файлов покрытия, если -DENABLE_COVERAGE=ON.
make coverage
  1. Вызов программы:
./source/universal_server

Веб-интерфейс

Быстрый запуск

cd interface
./start_system.sh

Откройте браузер: http://127.0.0.1:8000

Ручной запуск

  1. Сборка MockMCU (заглушка для тестирования):
cd mock-mcu
mkdir -p build
cd build
cmake ..
make
  1. Запуск MockMCU:
cd mock-mcu/build && ./mock-mcu -d 1 -s
  1. MotorManagerService:
cd build && ./source/universal_server
  1. Создание виртуального окружения:
cd interface
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
  1. Веб-интерфейс:
cd interface
source venv/bin/activate
python main.py

Подробная документация: interface/README.md

TODO, коды с задачи, которые в бэклоге.

  • #001 Прописать коды ошибок при передаче

  • #002 Возвращать ошибку, если пришла не корректная команда

  • #003 Проблемы с тестом, нужно исправить

About

Микросервис для управления моторами

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors