diff options
| author | chemicstry <[email protected]> | 2023-07-31 13:24:10 +0300 |
|---|---|---|
| committer | chemicstry <[email protected]> | 2023-07-31 13:24:50 +0300 |
| commit | 83ab8e057a759ac76c8cddeec1ebdc28c4516b2b (patch) | |
| tree | 3b2dfc5b2f6dde1cbb392b33d9850646cdb55773 /tests | |
| parent | ad85beb6779cf4e970ab91bb0229b9fdf3c2a8ba (diff) | |
stm32/can: Fix latency measurement in tests
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/stm32/src/bin/can.rs | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/tests/stm32/src/bin/can.rs b/tests/stm32/src/bin/can.rs index 93253ab84..8737ca8ee 100644 --- a/tests/stm32/src/bin/can.rs +++ b/tests/stm32/src/bin/can.rs | |||
| @@ -67,15 +67,25 @@ async fn main(_spawner: Spawner) { | |||
| 67 | let tx_ts = Instant::now(); | 67 | let tx_ts = Instant::now(); |
| 68 | can.write(&tx_frame).await; | 68 | can.write(&tx_frame).await; |
| 69 | 69 | ||
| 70 | info!("Receiving frame..."); | ||
| 71 | let envelope = can.read().await.unwrap(); | 70 | let envelope = can.read().await.unwrap(); |
| 71 | info!("Frame received!"); | ||
| 72 | 72 | ||
| 73 | info!("loopback time {}", envelope.ts); | 73 | info!("loopback time {}", envelope.ts); |
| 74 | info!("loopback frame {=u8}", envelope.frame.data().unwrap()[0]); | 74 | info!("loopback frame {=u8}", envelope.frame.data().unwrap()[0]); |
| 75 | 75 | ||
| 76 | // Theoretical minimum latency is 55us, actual is usually ~80us | ||
| 77 | let latency = envelope.ts.saturating_duration_since(tx_ts); | 76 | let latency = envelope.ts.saturating_duration_since(tx_ts); |
| 78 | assert!(Duration::from_micros(50) < latency && latency < Duration::from_micros(100)); | 77 | info!("loopback latency {} us", latency.as_micros()); |
| 78 | |||
| 79 | // Theoretical minimum latency is 55us, actual is usually ~80us | ||
| 80 | const MIN_LATENCY: Duration = Duration::from_micros(50); | ||
| 81 | const MAX_LATENCY: Duration = Duration::from_micros(150); | ||
| 82 | assert!( | ||
| 83 | MIN_LATENCY < latency && latency < MAX_LATENCY, | ||
| 84 | "{} < {} < {}", | ||
| 85 | MIN_LATENCY, | ||
| 86 | latency, | ||
| 87 | MAX_LATENCY | ||
| 88 | ); | ||
| 79 | 89 | ||
| 80 | i += 1; | 90 | i += 1; |
| 81 | if i > 10 { | 91 | if i > 10 { |
