Skip to content

MAYER-Ti/SiriusScope

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SiriusScope

SiriusScope — настольное приложение на Qt/C++ для изделия «Сириус», комплекса радиотехнической разведки.

Текущая итерация продукта сосредоточена на приеме сигналов, визуализации в реальном времени, непрерывном хранении данных, секторном сканировании, расчете пеленга и работе как с реальной аппаратурой, так и с симулятором через общие интерфейсы прикладного уровня.

Подробные требования находятся в docs/. Для разработки используйте docs/README.md как карту документации.

Текущий состав работ

Входит в текущую итерацию:

  • прием отсчетов сигнала БЦО по UDP;
  • прием азимута антенны / поворотного устройства по TCP;
  • поддержка симулятора через те же интерфейсы, что и реальная аппаратура;
  • SpectrumView с 5 объектами BandItem;
  • WaterfallView с сохраняемой частотно-временной историей;
  • AntennaIndicator с выбором сектора и отображением результатов пеленгации;
  • итоговая таблица ResultTable только для чтения;
  • StatusBar для состояния программы, аппаратуры, записи и диагностики;
  • непрерывное хранение строк Waterfall, строк результатов, метаданных, настроек, технических логов и индексов/кэша при необходимости;
  • тесты для нетривиальной доменной логики, обработки, протоколов, хранения и расчетов, связанных с пеленгацией.

Не входит в текущую итерацию без отдельного задания:

  • распознавание типа РТС;
  • картографический фон;
  • экспорт во внешние системы;
  • расширенная фильтрация, сортировка и экспорт итоговой таблицы;
  • полная пользовательская настройка компоновки интерфейса;
  • реализация 8-лучевой антенны;
  • долговременное сопровождение целей.

Технологический стек

  • C++20
  • Boost
  • Qt 6 с Qt Quick / QML
  • минимально допустимая версия Qt для разработки: 6.8+
  • CMake
  • Conan
  • CTest
  • Qt Test или Catch2 для модульных тестов

Boost и Conan входят в целевой стек разработки. Boost следует использовать там, где он дает понятное преимущество перед стандартным C++ или Qt. Conan используется для управления внешними зависимостями, когда сторонние зависимости вводятся или формализуются.

Архитектура

SiriusScope использует слоистую архитектуру:

UI Layer
Presentation / Application Layer
Core / Domain Layer
Processing Layer
Infrastructure Layer
Hardware Adapter Layer

Ключевые правила:

  • QML только отображает интерфейс и вызывает команды прикладного уровня.
  • QML не должен разбирать протоколы, рассчитывать пеленг, писать архивы, агрегировать высокочастотные потоки или напрямую обращаться к аппаратуре.
  • Обработка, хранение, аппаратный обмен и тяжелая подготовка данных для отрисовки не должны блокировать GUI-поток.
  • Реальная аппаратура, симулятор и replay-источники должны оставаться за общими интерфейсами прикладного уровня.

Авторитетные правила архитектуры описаны в docs/architecture/layers.md и docs/architecture/data-flow.md.

Сборка

Сгенерированные деревья сборки должны создаваться внутри build/. Не используйте корневую директорию build/ как саму CMake build tree.

Стандартная локальная debug-сборка:

cmake --preset qt-win-mingw-debug
cmake --build build/win-mingw-debug

В Windows при текущей сборке через Qt Installer MinGW/Ninja исполняемый файл ожидается здесь:

build/win-mingw-debug/appSiriusScope.exe

Тесты

Запуск CTest из настроенной директории сборки:

ctest --test-dir build/win-mingw-debug --output-on-failure

Документация

Основные точки входа:

  • docs/README.md — карта документации и приоритет источников истины.
  • docs/spec/scope.md — текущий состав продукта.
  • docs/spec/SiriusScope_TZ_v0.1.md — полное техническое задание.
  • docs/architecture/layers.md — границы архитектурных слоев.
  • docs/development/build-and-test.md — команды сборки, тестов и проверки качества.

About

Desktop-приложение для потоковой обработки, регистрации и визуализации данных радиотехнической аппаратуры (РТР/РЭР профиль). Проект выполняется как дипломная работа на базе Qt6 и C++20.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors