44 lines
1.0 KiB
Rust
44 lines
1.0 KiB
Rust
use satrs::spacepackets::time::cds::CdsTime;
|
|
use satrs::spacepackets::time::TimeWriter;
|
|
|
|
pub mod config;
|
|
|
|
#[derive(Debug)]
|
|
pub struct TimeStampHelper {
|
|
stamper: CdsTime,
|
|
time_stamp: [u8; 7],
|
|
}
|
|
|
|
impl TimeStampHelper {
|
|
pub fn stamp(&self) -> &[u8] {
|
|
&self.time_stamp
|
|
}
|
|
|
|
pub fn update_from_now(&mut self) {
|
|
self.stamper
|
|
.update_from_now()
|
|
.expect("Updating timestamp failed");
|
|
self.stamper
|
|
.write_to_bytes(&mut self.time_stamp)
|
|
.expect("Writing timestamp failed");
|
|
}
|
|
}
|
|
|
|
impl Default for TimeStampHelper {
|
|
fn default() -> Self {
|
|
Self {
|
|
stamper: CdsTime::now_with_u16_days().expect("creating time stamper failed"),
|
|
time_stamp: Default::default(),
|
|
}
|
|
}
|
|
}
|
|
|
|
pub fn update_time(time_provider: &mut CdsTime, timestamp: &mut [u8]) {
|
|
time_provider
|
|
.update_from_now()
|
|
.expect("Could not get current time");
|
|
time_provider
|
|
.write_to_bytes(timestamp)
|
|
.expect("Writing timestamp failed");
|
|
}
|