SDKC++ SDK

Core objects & lifecycle

Understand C++ Sdk, Exo, ExoDevice, channels, and their RAII handle relationships.

Current version · 1.0.0

Core objects & lifecycle

Object hierarchy

qnbot::Sdk
└── qnbot::Exo
    └── qnbot::ExoDevice
        ├── ReadChannel<ExoTelemetry>
        ├── ReadChannel<ExoStatus>
        └── HapticsState

Sdk owns the native runtime, Exo owns domain lifecycle, ExoDevice selects one logical device, and channels expose reads or capability writes.

Lifecycle and ownership

For one device, use exo.start(), a runtime driver, exo.stop(), and exo.close(). Use device.start()/stop() only for independent multi-device control. Closing a parent invalidates children and later calls throw ClosedHandleError.

C++ wrappers are lightweight handles, but applications should still stop execution, clear haptics, and close explicitly instead of treating destruction as the business stop signal.