Skip to content

Commit

Permalink
Refactor mavlink-dump. Change from [[bin]] to [[example]].
Browse files Browse the repository at this point in the history
Splitting the example has the following benefits:
- Faster normal compilation for library use
- Easier to retain compilation incremental files (faster re-compilation times)
- Cleaner library src/ directory
- no_std/std definitions and imports can be removed from the mavlink-dump example
- Executable name changes from mavlink -> mavlink-dump. More precise to locate and guess what it is for

Disadvantage:
- Installation time for the example is increased, but it is something rarely done
  • Loading branch information
antonio-sc66 committed Jan 3, 2024
1 parent 76a2813 commit 48c015f
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 9 deletions.
3 changes: 2 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,9 @@ proc-macro2 = "1.0.43"
lazy_static = "1.2.0"
serde = { version = "1.0.115", optional = true, features = ["derive"] }

[[bin]]
[[example]]
name = "mavlink-dump"
path = "examples/mavlink-dump/src/main.rs"
required-features = ["ardupilotmega"]

[dependencies]
Expand Down
15 changes: 15 additions & 0 deletions examples/mavlink-dump/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[package]
name = "mavlink-dump"
authors = [
"Patrick José Pereira <[email protected]>",
]
license = "MIT/Apache-2.0"
edition = "2018"
version = "0.1.0"

[profile.release]
opt-level = 3
lto = true # Performs "fat" LTO which attempts to perform optimizations across all crates within the dependency graph

[dependencies.mavlink] # MAVLink library
path = "../../"
8 changes: 0 additions & 8 deletions src/bin/mavlink-dump.rs → examples/mavlink-dump/src/main.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
use mavlink::error::MessageReadError;
#[cfg(feature = "std")]
use std::{env, sync::Arc, thread, time::Duration};

#[cfg(not(feature = "std"))]
fn main() {}

#[cfg(feature = "std")]
fn main() {
let args: Vec<_> = env::args().collect();

Expand Down Expand Up @@ -65,7 +60,6 @@ fn main() {
}

/// Create a heartbeat message using 'ardupilotmega' dialect
#[cfg(feature = "std")]
pub fn heartbeat_message() -> mavlink::ardupilotmega::MavMessage {
mavlink::ardupilotmega::MavMessage::HEARTBEAT(mavlink::ardupilotmega::HEARTBEAT_DATA {
custom_mode: 0,
Expand All @@ -78,7 +72,6 @@ pub fn heartbeat_message() -> mavlink::ardupilotmega::MavMessage {
}

/// Create a message requesting the parameters list
#[cfg(feature = "std")]
pub fn request_parameters() -> mavlink::ardupilotmega::MavMessage {
mavlink::ardupilotmega::MavMessage::PARAM_REQUEST_LIST(
mavlink::ardupilotmega::PARAM_REQUEST_LIST_DATA {
Expand All @@ -89,7 +82,6 @@ pub fn request_parameters() -> mavlink::ardupilotmega::MavMessage {
}

/// Create a message enabling data streaming
#[cfg(feature = "std")]
pub fn request_stream() -> mavlink::ardupilotmega::MavMessage {
mavlink::ardupilotmega::MavMessage::REQUEST_DATA_STREAM(
mavlink::ardupilotmega::REQUEST_DATA_STREAM_DATA {
Expand Down

0 comments on commit 48c015f

Please sign in to comment.