Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add default argument for mavlink #370

Merged
merged 3 commits into from Mar 27, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
10 changes: 7 additions & 3 deletions src/cli/manager.rs
Expand Up @@ -11,8 +11,12 @@ use clap::Parser;
#[command(version = env!("CARGO_PKG_VERSION"), author = env!("CARGO_PKG_AUTHORS"), about = env!("CARGO_PKG_DESCRIPTION"))]
struct Args {
/// Sets the mavlink connection string
#[arg(long, value_name = "TYPE>:<IP/SERIAL>:<PORT/BAUDRATE")]
mavlink: Option<String>,
#[arg(
long,
value_name = "TYPE>:<IP/SERIAL>:<PORT/BAUDRATE",
default_value = "udpin:0.0.0.0:14550"
)]
mavlink: String,

/// Default settings to be used for different vehicles or environments.
#[arg(long, value_name = "NAME")]
Expand Down Expand Up @@ -131,7 +135,7 @@ pub fn is_tracy() -> bool {

#[allow(dead_code)]
// Return the mavlink connection string
pub fn mavlink_connection_string() -> Option<String> {
pub fn mavlink_connection_string() -> String {
MANAGER.clap_matches.mavlink.clone()
}

Expand Down
4 changes: 1 addition & 3 deletions src/main.rs
Expand Up @@ -30,9 +30,7 @@ async fn main() -> Result<(), std::io::Error> {
mavlink::manager::Manager::init();

stream::manager::init();
if let Some(endpoint) = cli::manager::mavlink_connection_string() {
settings::manager::set_mavlink_endpoint(&endpoint);
}
settings::manager::set_mavlink_endpoint(&cli::manager::mavlink_connection_string());

if cli::manager::enable_thread_counter() {
helper::threads::start_thread_counter_thread();
Expand Down
3 changes: 1 addition & 2 deletions src/mavlink/manager.rs
Expand Up @@ -33,8 +33,7 @@ pub enum Message {
impl Default for Manager {
#[instrument(level = "debug")]
fn default() -> Self {
let address =
settings::manager::mavlink_endpoint().expect("No configured mavlink endpoint");
let address = settings::manager::mavlink_endpoint();

let (sender, _receiver) = broadcast::channel(100);

Expand Down
8 changes: 4 additions & 4 deletions src/settings/manager.rs
Expand Up @@ -19,7 +19,7 @@ pub struct HeaderSettingsFile {
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct SettingsStruct {
pub header: HeaderSettingsFile,
pub mavlink_endpoint: Option<String>, //TODO: Move to URL
pub mavlink_endpoint: String, //TODO: Move to URL
pub streams: Vec<VideoAndStreamInformation>,
}

Expand All @@ -44,7 +44,7 @@ impl Default for SettingsStruct {
name: "Camera Manager".to_string(),
version: 0,
},
mavlink_endpoint: cli::manager::mavlink_connection_string().map(String::from),
mavlink_endpoint: cli::manager::mavlink_connection_string(),
streams: custom::create_default_streams(),
}
}
Expand Down Expand Up @@ -175,7 +175,7 @@ pub fn header() -> HeaderSettingsFile {
manager.content.as_ref().unwrap().config.header.clone()
}

pub fn mavlink_endpoint() -> Option<String> {
pub fn mavlink_endpoint() -> String {
let manager = MANAGER.read().unwrap();
return manager
.content
Expand All @@ -191,7 +191,7 @@ pub fn set_mavlink_endpoint(endpoint: &str) {
{
let mut manager = MANAGER.write().unwrap();
let mut content = manager.content.as_mut();
content.as_mut().unwrap().config.mavlink_endpoint = Some(endpoint.into());
content.as_mut().unwrap().config.mavlink_endpoint = endpoint.into();
}
save();
}
Expand Down