lorawan_device/async_device/
embassy_time.rs1use embassy_time::{Duration, Instant};
2
3use super::radio::Timer;
4
5pub struct EmbassyTimer {
7 start: Instant,
8}
9
10impl EmbassyTimer {
11 pub fn new() -> Self {
12 Self { start: Instant::now() }
13 }
14}
15
16impl Default for EmbassyTimer {
17 fn default() -> Self {
18 Self::new()
19 }
20}
21
22impl Timer for EmbassyTimer {
23 fn reset(&mut self) {
24 self.start = Instant::now();
25 }
26
27 async fn at(&mut self, millis: u64) {
28 embassy_time::Timer::at(self.start + Duration::from_millis(millis)).await
29 }
30
31 async fn delay_ms(&mut self, millis: u64) {
32 embassy_time::Timer::after_millis(millis).await
33 }
34}