Project Structure - SEB103/QtOpcUaManager GitHub Wiki
English · Deutsch · Français · Italiano · Русский · Українська
Project Structure
This chapter is a map from "where is X implemented?" to the source tree. It is deliberately not an exhaustive file list; it points at the directory and the few key files for each area, each linking into the OpcUaManager API Reference.
Top-level layout
| Directory | Role |
|---|---|
app/ |
GUI executable: startup, QML engine wrapper, app services. |
src/ |
Reusable C++ libraries (client core, models, persistence, projects, facades). |
runtime/ |
Headless open62541 OPC UA server executable. |
qml/ |
Application QML module (screens/dialogs) and the qml/Base reusable module. |
resources/ |
Bundled images/SVG and QML style configuration. |
doc/ |
This documentation (QDoc manual pages, API topics, config). |
packaging/, installer/ |
Release pipeline, installer, and product metadata. |
Where each feature lives
| To work on… | Look in… | Key types |
|---|---|---|
| Client connection / discovery / subscriptions | src/core/opcuaservice.* |
OpcUaService |
| The client object QML talks to | src/qmlapi/opcuamanager.* |
OpcUaManager |
| Address-space (browse) tree | src/models/opcuamodel.*, treeitem.* |
OpcUaModel, TreeItem |
| Node attributes / values / trends | src/models/ |
AttributesModel, DataAccessModel, TrendModel |
| Structured (CODESYS) value decoding | src/core/structurednodereader.* |
StructuredNodeReader |
| Server design + runtime control | src/qmlapi/serverstudio.*, serverruntimecontroller.* |
ServerStudio, ServerRuntimeController |
| Server project model / file / validation / NodeSet2 | src/serverproject/ |
ServerProject::* |
| The headless server itself | runtime/ |
ProjectBuilder, SimulationEngine, SecuritySetup, DiagnosticsServer, RuleEngine |
Client project (.uaproj) |
src/project/ |
ProjectData, ProjectSerializer |
| Monitored-node persistence | src/persistence/nodedatabase.* |
NodeDatabase |
| Installed/portable paths | src/core/apppaths.* |
AppPaths |
| App startup / services | app/ |
AppCore, AppEngine, AppInfo, LocaleController |
| UI shell and screens | qml/Main.qml, qml/*Screen*.qml |
OpcUaManager QML Types |
| Reusable UI controls | qml/Base/ |
Base QML Types |
Libraries and their boundaries
- OpcUaCore (
src/core,src/models,src/persistence,src/project) — the client stack; links Qt Core/Network/OpcUa/Sql. - ServerProjectCore (
src/serverproject) — Qt Core only, so it is shared by the GUI and the headless runtime. - OpcUaQmlApi (
src/qmlapi) — the QML facades; depends on both cores.
For the reasoning behind these boundaries, threads, and processes, see Architecture.