Rebase on current master, replace subscribe example, use display instead of debug
diff --git a/examples/now.rs b/examples/now.rs index b14b081..9ed0112 100644 --- a/examples/now.rs +++ b/examples/now.rs
@@ -6,19 +6,29 @@ use core::fmt::Write; use libtock::console::Console; use libtock::result::TockResult; -use libtock::timer; +use libtock::timer::DriverContext; use libtock::timer::Duration; +use libtock::Drivers; const DELAY_MS: usize = 500; #[libtock::main] async fn main() -> TockResult<()> { - let mut console = Console::new(); + let Drivers { + mut timer_context, + console_driver, + .. + } = libtock::retrieve_drivers()?; + let mut console = console_driver.create_console(); + let mut previous_ticks = None; for i in 0.. { - print_now(&mut console, &mut previous_ticks, i)?; - timer::sleep(Duration::from_ms(DELAY_MS as isize)).await?; + print_now(&mut console, &mut timer_context, &mut previous_ticks, i)?; + let mut driver = timer_context.create_timer_driver(); + let timer_driver = driver.activate()?; + + timer_driver.sleep(Duration::from_ms(DELAY_MS)).await?; } Ok(()) @@ -26,24 +36,25 @@ fn print_now( console: &mut Console, + timer_context: &mut DriverContext, previous_ticks: &mut Option<isize>, i: usize, ) -> TockResult<()> { - let mut timer_with_callback = timer::with_callback(|_, _| {}); + let mut timer_with_callback = timer_context.with_callback(|_, _| {}); let timer = timer_with_callback.init()?; let current_clock = timer.get_current_clock()?; let ticks = current_clock.num_ticks(); let frequency = timer.clock_frequency().hz(); writeln!( - console, - "[{}] Waited roughly {:?}. Now is {:?} = {:#010x} ticks ({:?} ticks since last time at {} Hz)", - i, - PrettyTime::from_ms(i * DELAY_MS), - PrettyTime::from_ms(current_clock.ms_f64() as usize), - ticks, - previous_ticks.map(|previous| ticks - previous), - frequency - )?; + console, + "[{}] Waited roughly {}. Now is {} = {:#010x} ticks ({:?} ticks since last time at {} Hz)", + i, + PrettyTime::from_ms(i * DELAY_MS), + PrettyTime::from_ms(current_clock.ms_f64() as usize), + ticks, + previous_ticks.map(|previous| ticks - previous), + frequency + )?; *previous_ticks = Some(ticks); Ok(()) } @@ -64,7 +75,7 @@ } } -impl core::fmt::Debug for PrettyTime { +impl core::fmt::Display for PrettyTime { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { if self.mins != 0 { write!(f, "{}m", self.mins)?
diff --git a/examples/timer_subscribe.rs b/examples/timer_subscribe.rs deleted file mode 100644 index f7e158c..0000000 --- a/examples/timer_subscribe.rs +++ /dev/null
@@ -1,29 +0,0 @@ -#![no_std] - -use core::fmt::Write; -use futures::future; -use libtock::result::TockResult; -use libtock::timer::Duration; -use libtock::Drivers; - -#[libtock::main] -async fn main() -> TockResult<()> { - let Drivers { - console_driver, - mut timer_context, - .. - } = libtock::retrieve_drivers()?; - let mut console = console_driver.create_console(); - let mut with_callback = timer_context.with_callback(|_, _| { - writeln!( - console, - "This line is printed 2 seconds after the start of the program.", - ) - .unwrap(); - }); - - let mut timer = with_callback.init()?; - timer.set_alarm(Duration::from_ms(2000))?; - - future::pending().await -}