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— команды сборки, тестов и проверки качества.