<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BobinkQtOpcUa/src/CMakeLists.txt, branch master</title>
<subtitle>High-level C++/QML library for making OPC UA applications with Qt Quick</subtitle>
<id>http://git.tvcloud.fr/BobinkQtOpcUa/atom/src/CMakeLists.txt?h=master</id>
<link rel='self' href='http://git.tvcloud.fr/BobinkQtOpcUa/atom/src/CMakeLists.txt?h=master'/>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/'/>
<updated>2026-02-24T17:18:31Z</updated>
<entry>
<title>Make build system usable as a git submodule</title>
<updated>2026-02-24T17:18:31Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-24T16:41:35Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/commit/?id=3e8111aaee070dc9b5d51cab3fd44ff88841f63e'/>
<id>urn:sha1:3e8111aaee070dc9b5d51cab3fd44ff88841f63e</id>
<content type='text'>
Replace CMAKE_SOURCE_DIR/CMAKE_BINARY_DIR with PROJECT_SOURCE_DIR/
PROJECT_BINARY_DIR so paths resolve correctly from add_subdirectory().
Guard global settings (CMAKE_CXX_STANDARD, CMAKE_BUILD_RPATH,
qt_standard_project_setup, demo) behind PROJECT_IS_TOP_LEVEL.
Export OPEN62541_INSTALL_DIR and QTOPCUA_INSTALL_DIR as CACHE INTERNAL
so parent projects can set up RPATH and plugin paths.
</content>
</entry>
<entry>
<title>Rename classes to OpcUa* prefix, replace BobinkNode with OpcUaMonitoredNode boilerplate</title>
<updated>2026-02-20T09:41:09Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-20T09:41:09Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/commit/?id=0012cb312e92c33f5263478d318eb82da22ee879'/>
<id>urn:sha1:0012cb312e92c33f5263478d318eb82da22ee879</id>
<content type='text'>
Rename BobinkAuth → OpcUaAuth, BobinkClient → OpcUaClient (C++ class
names only; QML module URI and singleton name stay as Bobink).
Remove BobinkNode (QQuickItem-based) and add OpcUaMonitoredNode
skeleton using QObject + QQmlParserStatus, following Qt convention
for non-visual QML types.
</content>
</entry>
<entry>
<title>Rename QML singleton to Bobink and simplify singleton lifecycle</title>
<updated>2026-02-19T17:00:52Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-19T17:00:52Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/commit/?id=e73fe498e86dbb20d74f8d6ca13b541642676b82'/>
<id>urn:sha1:e73fe498e86dbb20d74f8d6ca13b541642676b82</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Add BobinkNode QML type and two-page demo for node monitoring</title>
<updated>2026-02-19T05:18:29Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-19T05:18:29Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/commit/?id=0c1df583acba434e2d7f6905a30fdefe288d0f9d'/>
<id>urn:sha1:0c1df583acba434e2d7f6905a30fdefe288d0f9d</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>Rename targets, route messages to debug console, clean up</title>
<updated>2026-02-19T04:38:24Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-19T04:13:42Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/commit/?id=a0c7f2a7ef04dbe2e7491eabf828e26423d1bd10'/>
<id>urn:sha1:a0c7f2a7ef04dbe2e7491eabf828e26423d1bd10</id>
<content type='text'>
- 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()
</content>
</entry>
<entry>
<title>Refactor and document: fix cert filenames, add Doxygen, improve demo</title>
<updated>2026-02-17T23:18:33Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-17T23:18:33Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/commit/?id=1a79ab468d8cc23cfdf28ddfa85d3e03ffddf44c'/>
<id>urn:sha1:1a79ab468d8cc23cfdf28ddfa85d3e03ffddf44c</id>
<content type='text'>
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
</content>
</entry>
<entry>
<title>Initial Bobink library: BobinkAuth, BobinkClient, and demo app</title>
<updated>2026-02-17T22:58:08Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-17T22:58:08Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/commit/?id=343169dff6b062074fd3c4a5e240b449ffc4a449'/>
<id>urn:sha1:343169dff6b062074fd3c4a5e240b449ffc4a449</id>
<content type='text'>
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
</content>
</entry>
</feed>
