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.