Writing Drivers¶
1. Implement the interfaces¶
Implement:
arch_nav::platform::IPlatformDriverarch_nav::platform::ICommandDispatcher
The platform driver owns telemetry ingestion and lifecycle. The dispatcher owns command execution.
2. Register the driver¶
Use DriverRegistry::instance().register_driver("name", factory).
Registration is typically done in a translation unit with a static registration object.
3. Build as plugin¶
Build your driver as shared library:
- naming convention:
libarch_nav_<driver>.so - install destination:
.../lib/arch_nav/drivers
4. Select at runtime¶
Set:
ARCH_NAV_DRIVER=<driver_name>ARCH_NAV_DRIVER_CONFIG=<path_to_driver_config>(optional)
If only one driver is loaded, explicit selection is optional.