summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Reorganize BobinkClient by domain and make s_instance privateThomas Vanbesien11 hours3-225/+232
| | | | | | | Group header and source by domain (Connection, Discovery, PKI) so properties, methods, and signal handlers live together. Move enums before constructor, move s_instance to private, and add a public instance() accessor used by BobinkNode.
* Rename QML singleton to Bobink and simplify singleton lifecycleThomas Vanbesien16 hours4-49/+25
| | | | | | | | Replace QML_ELEMENT with QML_NAMED_ELEMENT(Bobink) so QML references use `Bobink` instead of `BobinkClient`. Remove instance()/create() factory in favor of inline s_instance set in the constructor. Import BobinkPlugin statically in demo, link demo to BobinkQtOpcUaplugin, and make library link dependencies PUBLIC. Add .qtcreator to gitignore.
* Log attribute reads to debug console and replace raw C++ types with Qt ↵Thomas Vanbesien21 hours4-33/+160
| | | | | | | | | | | | equivalents Connect QOpcUaNode::attributeRead signal to new handler that logs read results (value or error code) to the debug console via BobinkClient::statusMessage. Add nameFromAttribute() helper. Replace const char* arrays with QLatin1StringView, bare string literals with QStringLiteral, uint with quint32, int with qint32. Rename statusLog to debugLog in Main.qml for consistency.
* Add BobinkNode QML type and two-page demo for node monitoringThomas Vanbesien28 hours3-0/+404
| | | | | | | | | | | | | BobinkNode (QQuickItem) monitors a single OPC UA node with automatic lifecycle: monitoring starts/stops based on item visibility (StackView page switches, Loader, etc.). Properties: nodeId, value (r/w), status, sourceTimestamp, serverTimestamp. On-demand readAttribute() for metadata. writeError signal for failed writes. Demo restructured with StackView: connection page → two node pages demonstrating the visibility-based monitoring lifecycle.
* Rename targets, route messages to debug console, clean upThomas Vanbesien28 hours3-287/+434
| | | | | | | | - Rename CMake project and library target to BobinkQtOpcUa (URI stays Bobink) - Rename demo target to BobinkDemo, output binary to build/bin/ - Route all QML status/error messages to the in-app debug console - Remove discoveryInterval QML property, default to 30s internally - Add errorChanged handler, PKI file validation in applyPki()
* Add direct connect, auto-detect PKI, and rework demo flowThomas Vanbesien46 hours2-0/+99
| | | | | | | | | | | - connectDirect(policy, mode): connect without endpoint discovery, for servers with no unencrypted endpoint. Sets user identity token policy matching the auth mode. - autoDetectPki(): scan own/certs/*.der and own/private/*.pem|crt, called automatically at startup. - Demo: discovery auto-starts, PKI section hidden behind toggle with auto-detected cert summary, direct connect appears on connect failure. File/folder dialogs for manual PKI override.
* Refactor and document: fix cert filenames, add Doxygen, improve demoThomas Vanbesien2 days5-46/+158
| | | | | | | | | | | | | | | | | | | Refactoring (issues 1,3,4,5,7,8,9,10 from review): - Replace hardcoded cert filenames with certFile/keyFile properties - Add 30s timeout to certificate trust QEventLoop - Cache servers() QVariantList instead of rebuilding per call - Validate URLs before passing to QtOpcUa - Use ComboBox valueRole for robust enum mapping - Add certificate trust dialog to demo - Remove unnecessary RowLayout wrapper - Remove debug output from BuildDeps.cmake Documentation: - Add Doxygen file blocks to all C++ files - Document AuthMode enum, toAuthenticationInformation(), key Q_INVOKABLE methods, certificateTrustRequested signal contract - Convert section banners to standard format - Add file/target comments to CMake and QML files
* Initial Bobink library: BobinkAuth, BobinkClient, and demo appThomas Vanbesien2 days5-0/+583
Implements the core OPC UA wrapper library with: - Build system with automatic dep building (open62541, QtOpcUa) - BobinkAuth: QML auth component (anonymous/userpass/certificate) - BobinkClient: QML singleton managing connection, LDS discovery, PKI configuration, endpoint selection, and certificate trust flow - Demo app for manual testing of the full connection flow