ru Project Structure - SEB103/QtOpcUaManager GitHub Wiki
English · Deutsch · Français · Italiano · Русский · Українська
Структура проекта
Эта глава — карта от вопроса «Где реализовано X?» к дереву исходников. Это намеренно не исчерпывающий список файлов; она указывает на каталог и несколько ключевых файлов каждой области, каждый со ссылкой в OpcUaManager API Reference.
Верхний уровень
| Каталог | Назначение |
|---|---|
app/ |
Исполняемый файл GUI: запуск, обёртка QML-движка, сервисы приложения. |
src/ |
Переиспользуемые C++-библиотеки (ядро клиента, модели, персистентность, проекты, фасады). |
runtime/ |
Автономный исполняемый файл OPC UA-сервера на open62541. |
qml/ |
QML-модуль приложения (экраны/диалоги) и переиспользуемый модуль qml/Base. |
resources/ |
Поставляемые изображения/SVG и конфигурация стиля QML. |
doc/ |
Эта документация (страницы руководства QDoc, темы API, конфигурация). |
packaging/, installer/ |
Конвейер релиза, инсталлятор и метаданные продукта. |
Где находится каждая функция
| Чтобы работать над… | Смотрите в… | Ключевые типы |
|---|---|---|
| Подключение клиента / обнаружение / подписки | src/core/opcuaservice.* |
OpcUaService |
| Объект клиента, с которым говорит QML | src/qmlapi/opcuamanager.* |
OpcUaManager |
| Дерево адресного пространства (просмотр) | src/models/opcuamodel.*, treeitem.* |
OpcUaModel, TreeItem |
| Атрибуты узлов / значения / тренды | src/models/ |
AttributesModel, DataAccessModel, TrendModel |
| Декодирование структурированных (CODESYS) значений | src/core/structurednodereader.* |
StructuredNodeReader |
| Проектирование сервера + управление средой исполнения | src/qmlapi/serverstudio.*, serverruntimecontroller.* |
ServerStudio, ServerRuntimeController |
| Модель / файл / валидация серверного проекта / NodeSet2 | src/serverproject/ |
ServerProject::* |
| Сам автономный сервер | runtime/ |
ProjectBuilder, SimulationEngine, SecuritySetup, DiagnosticsServer, RuleEngine |
Клиентский проект (.uaproj) |
src/project/ |
ProjectData, ProjectSerializer |
| Персистентность отслеживаемых узлов | src/persistence/nodedatabase.* |
NodeDatabase |
| Установленные/портативные пути | src/core/apppaths.* |
AppPaths |
| Запуск приложения / сервисы | app/ |
AppCore, AppEngine, AppInfo, LocaleController |
| Оболочка UI и экраны | qml/Main.qml, qml/*Screen*.qml |
OpcUaManager QML Types |
| Переиспользуемые элементы управления UI | qml/Base/ |
Base QML Types |
Библиотеки и их границы
- OpcUaCore (
src/core,src/models,src/persistence,src/project) — клиентский стек; связывает Qt Core/Network/OpcUa/Sql. - ServerProjectCore (
src/serverproject) — только Qt Core, поэтому используется совместно GUI и автономной средой исполнения. - OpcUaQmlApi (
src/qmlapi) — QML-фасады; зависит от обоих ядер.
Обоснование этих границ, потоков и процессов см. в Архитектура.