DCSS — Drone Control Simulation Server
Архитектура проекта
Языки программирования в проекте
Почему несколько языков?
Как совместить разные языки
Таблица файлов проекта
Взаимодействие модулей
Этапы разработки
Безопасность
Итоговый стек
43.94K

Презентация по тз

1. DCSS — Drone Control Simulation Server

• Система для тренировки и оценки навыков
пилотов БВС.
• Цель: эмуляция полёта дронов, выполнение
заданий и оценка результатов.

2. Архитектура проекта

• Компоненты:
• - Web-сервер (Python)
• - Quest Manager (Python)
• - Quest Evaluator (C++ ядро + Python API)
• - SITL / ArduPilot (C++)
• - Клиент Asv.Drones (C#/.NET)
• - Frontend (Vue.js / React, JS)
• - PostgreSQL (хранилище)

3. Языки программирования в проекте

• Python:
- Web-сервер (Django/FastAPI)
- Quest Manager (оркестрация)
+ Быстрая разработка, экосистема, интеграция с БД
C++:
- Quest Evaluator (ядро)
- SITL (ArduPilot)
+ Высокая производительность, низкие задержки
C# (.NET):
- Плагин для Asv.Drones
+ Совместимость с клиентом, доступ к GUI API
JavaScript:
- Frontend (Vue.js/React)
+ Удобный SPA интерфейс в браузере

4. Почему несколько языков?

• Каждый язык выбран под задачу:
• - Python → API, админка, бизнес-логика
• - C++ → симуляция и работа с MAVLink в
реальном времени
• - C# → интеграция с Asv.Drones
• - JS → web-интерфейс для пользователей
• Все сервисы изолированы (Docker) и общаются
по REST, TCP, MAVLink.

5. Как совместить разные языки

• 1. Каждый сервис пишется на своём языке.
• 2. Упаковывается в Docker-контейнер.
• 3. Общение только через API (HTTP JSON,
WebSocket, MAVLink, БД).
• 4. Запуск всей системы — docker-compose /
Kubernetes.
• Результат: одна система, внутри которой
разные технологии работают параллельно.

6. Таблица файлов проекта

• /web/ (Python) — API, авторизация, админка
• /manager/ (Python) — оркестрация заданий
• /evaluator/ (C++ + Python) — выполнение
заданий
• /sim/ (C++) — ArduPilot SITL
• /client-plugin/ (C#) — плагин Asv.Drones
• /frontend/ (JS) — интерфейс для браузера
• /infra/ (Docker, k8s) — инфраструктура и
деплой
• /docs/ — схемы, OpenAPI, инструкции

7. Взаимодействие модулей

• 1. Пользователь в браузере (Vue.js) → Webсервер (Python)
• 2. Web-сервер → Quest Manager (Python)
• 3. Manager → запускает контейнер Quest
Evaluator (C++)
• 4. Evaluator ↔ SITL (C++) по MAVLink
• 5. Asv.Drones (C#) ↔ SITL по MAVLink
• 6. Evaluator → результаты в PostgreSQL
• 7. Web → отдаёт результаты пользователю

8. Этапы разработки

• 1. Проектирование архитектуры
• 2. Разработка Web-сервера (Python)
• 3. Реализация Quest Manager (Python)
• 4. Реализация Quest Evaluator (C++ + Python)
• 5. Интеграция с SITL (C++)
• 6. Разработка плагина Asv.Drones (C#)
• 7. Создание фронтенда (Vue.js / React)
• 8. Контейнеризация (Docker)
• 9. Тестирование (unit, integration, e2e)
• 10. Документация и деплой

9. Безопасность

• - Все запросы только по HTTPS (TLS)
• - JWT авторизация для API
• - Одноразовые ссылки (TTL)
• - Ограничение прав доступа (роли)
• - Валидация входных данных

10. Итоговый стек

• Web & API: Python (Django или FastAPI)
• Quest Manager: Python
• Quest Evaluator: C++ (ядро) + Python (API)
• Client plugin: C# (.NET)
• Frontend: Vue.js / React (JS)
• Database: PostgreSQL 15+
• Infrastructure: Docker, Kubernetes
English     Русский Rules