#![doc = include_str!("../README.md")]
pub mod client;
pub mod context;
pub mod drivers;
pub mod http;
pub mod lifecycle;
pub mod msp;
pub mod testing;
pub mod vision;
pub use ados_protocol::camera_control::{CameraControlRequest, CameraControlResult};
pub use client::{
ClientError, EventCallback, OffloadAdvertisement, PluginIpcClient, ToolHandler, WhepAnswer,
};
pub use context::{
CameraClient, CloudClient, ConfigClient, EventsClient, LifecycleClient, MavlinkClient,
MdnsClient, NodeClient, PeripheralClient, PluginContext, ProcessClient, SensorsClient,
TelemetryClient, ToolsClient, VideoClient,
};
pub use lifecycle::{run_plugin, run_plugin_with, Plugin, RunnerArgs, RunnerError};
pub use vision::{Frame, FrameCallback, Odometry, Pose, VisionClient, VIO_COMPONENT_ID};
pub const NODE_PROFILE_ENV: &str = "ADOS_NODE_PROFILE";
pub fn node_profile() -> String {
std::env::var(NODE_PROFILE_ENV)
.ok()
.map(|p| p.trim().to_string())
.filter(|p| !p.is_empty())
.unwrap_or_else(|| "drone".to_string())
}
pub mod capabilities {
pub use ados_protocol::capabilities::*;
}
pub mod node_info {
pub use ados_protocol::node_info::{
BoardInfo, CameraInfo, GroundStationInfo, NodeInfo, StreamGeometry,
};
}
pub mod mdns {
pub use ados_protocol::plugin_mdns::{Advertised, DiscoveredService, RESERVED_SERVICE_TYPES};
}