From 3fb028a239037bc4b80a4f78c1f29dccbc27d7ba Mon Sep 17 00:00:00 2001 From: lkoester Date: Mon, 30 Jan 2023 09:52:11 +0100 Subject: [PATCH] small changes to scheduler and main --- satrs-core/src/pus/scheduling.rs | 16 +++++++--------- satrs-example/src/main.rs | 2 -- satrs-example/src/tmtc.rs | 2 ++ 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/satrs-core/src/pus/scheduling.rs b/satrs-core/src/pus/scheduling.rs index a5a2083..9c77e2d 100644 --- a/satrs-core/src/pus/scheduling.rs +++ b/satrs-core/src/pus/scheduling.rs @@ -19,9 +19,9 @@ use std::time::SystemTimeError; pub enum ScheduleError { PusError(PusError), TimeMarginTooShort(UnixTimestamp, UnixTimestamp), - NestedScheduledTC, + NestedScheduledTc, StoreError(StoreError), - TCDataEmpty, + TcDataEmpty, TimestampError(TimestampError), WrongSubservice, WrongService, @@ -40,14 +40,14 @@ impl Display for ScheduleError { current_time, timestamp ) } - ScheduleError::NestedScheduledTC => { + ScheduleError::NestedScheduledTc => { write!(f, "Error: nested scheduling is not allowed") } ScheduleError::StoreError(e) => { write!(f, "Store Error: {}", e) } - ScheduleError::TCDataEmpty => { - write!(f, "Error: empty TC Data field") + ScheduleError::TcDataEmpty => { + write!(f, "Error: empty Tc Data field") } ScheduleError::TimestampError(e) => { write!(f, "Timestamp Error: {}", e) @@ -134,7 +134,6 @@ impl PusScheduler { } /// Like [Self::new], but sets the `init_current_time` parameter to the current system time. - #[cfg(feature = "std")] #[cfg_attr(doc_cfg, doc(cfg(feature = "std")))] pub fn new_with_current_init_time(time_margin: Duration) -> Result { @@ -221,8 +220,7 @@ impl PusScheduler { ) -> Result { let check_tc = PusTc::from_bytes(tc)?; if PusPacket::service(&check_tc.0) == 11 && PusPacket::subservice(&check_tc.0) == 4 { - // TODO: should not be able to schedule a scheduled tc - return Err(ScheduleError::NestedScheduledTC); + return Err(ScheduleError::NestedScheduledTc); } match pool.add(tc) { @@ -254,7 +252,7 @@ impl PusScheduler { let stamp_len = stamp.len_as_bytes(); self.insert_unwrapped_tc(unix_stamp, &user_data[stamp_len..], pool) } else { - Err(ScheduleError::TCDataEmpty) + Err(ScheduleError::TcDataEmpty) }; } diff --git a/satrs-example/src/main.rs b/satrs-example/src/main.rs index 549ffce..32cc6e6 100644 --- a/satrs-example/src/main.rs +++ b/satrs-example/src/main.rs @@ -1,5 +1,3 @@ -extern crate core; - mod ccsds; mod hk; mod pus; diff --git a/satrs-example/src/tmtc.rs b/satrs-example/src/tmtc.rs index 67e01e6..f653736 100644 --- a/satrs-example/src/tmtc.rs +++ b/satrs-example/src/tmtc.rs @@ -229,6 +229,7 @@ fn core_tmtc_loop( scheduler .release_telecommands(releaser, pool.as_mut()) .expect("error releasing tc"); + drop(pool); while poll_tc_server(udp_tmtc_server) {} match tc_args.tc_receiver.try_recv() { @@ -263,6 +264,7 @@ fn core_tmtc_loop( } fn poll_tc_server(udp_tmtc_server: &mut UdpTmtcServer) -> bool { + match udp_tmtc_server.udp_tc_server.try_recv_tc() { Ok(_) => true, Err(e) => match e {