1#![doc = include_str!("../README.md")]
2
3pub mod client;
4pub mod context;
5pub mod drivers;
6pub mod http;
7pub mod lifecycle;
8pub mod msp;
9pub mod testing;
10pub mod vision;
11
12pub use ados_protocol::camera_control::{CameraControlRequest, CameraControlResult};
16pub use client::{
17 ClientError, EventCallback, OffloadAdvertisement, PluginIpcClient, ToolHandler, WhepAnswer,
18};
19pub use context::{
20 CameraClient, CloudClient, ConfigClient, EventsClient, LifecycleClient, MavlinkClient,
21 MdnsClient, NodeClient, PeripheralClient, PluginContext, ProcessClient, SensorsClient,
22 TelemetryClient, ToolsClient, VideoClient,
23};
24pub use lifecycle::{run_plugin, run_plugin_with, Plugin, RunnerArgs, RunnerError};
25pub use vision::{Frame, FrameCallback, Odometry, Pose, VisionClient, VIO_COMPONENT_ID};
26
27pub const NODE_PROFILE_ENV: &str = "ADOS_NODE_PROFILE";
29
30pub fn node_profile() -> String {
35 std::env::var(NODE_PROFILE_ENV)
36 .ok()
37 .map(|p| p.trim().to_string())
38 .filter(|p| !p.is_empty())
39 .unwrap_or_else(|| "drone".to_string())
40}
41
42pub mod capabilities {
46 pub use ados_protocol::capabilities::*;
47}
48
49pub mod node_info {
52 pub use ados_protocol::node_info::{
53 BoardInfo, CameraInfo, GroundStationInfo, NodeInfo, StreamGeometry,
54 };
55}
56
57pub mod mdns {
60 pub use ados_protocol::plugin_mdns::{Advertised, DiscoveredService, RESERVED_SERVICE_TYPES};
61}