commit e7535f5b332088f166ebf551f9bad4bcce0d5a5e from: Thomas Böhler date: Tue Nov 29 17:24:47 2022 UTC Only start timer when packets have been sent commit - 3f782f677ce34ad5676fc8492afa58c513082b07 commit + e7535f5b332088f166ebf551f9bad4bcce0d5a5e blob - 0f7d620753ebbcb11fa104d2ffa32d19a5250b37 blob + 499e27b3f76019313572798cc3e480095a955f2b --- sdkconfig.release +++ sdkconfig.release @@ -2,5 +2,5 @@ CONFIG_LOG_DEFAULT_LEVEL_NONE=y CONFIG_LOG_DEFAULT_LEVEL_ERROR=y CONFIG_LOG_DEFAULT_LEVEL_WARN=n CONFIG_LOG_DEFAULT_LEVEL_INFO=n -CONFIG_LOG_DEFAULT_LEVEL_DEBUG=n +CONFIG_LOG_DEFAULT_LEVEL_DEBUG=y CONFIG_LOG_DEFAULT_LEVEL_VERBOSE=n blob - 19515e2fdecbf22ce1e5442cb93ce377ebc7cfbd blob + 8f8f5ce9e6aba78afae7e8fee28a5ccf16b0b479 --- src/main.rs +++ src/main.rs @@ -15,6 +15,7 @@ const BUFFER_LEN_UUID: [u8; 16] = 0x3e0fb4716b176bbc63 static STATE: Lazy> = Lazy::new(|| Mutex::new(ThroughputState::new())); +// TODO: include possibility to check payload for steadily increasing numbers struct ThroughputState { time_passed: Instant, write_len: usize, @@ -42,7 +43,6 @@ impl ThroughputState { } fn handle_buffer_write(payload: Vec) { - log::info!("handle_buffer_write {}", payload.len()); let mut state = STATE.lock().unwrap(); state.add_write_len(payload.len()); } @@ -95,13 +95,12 @@ fn main() { } loop { - if ble_esp32c3::Ble::rssi().is_none() { - log::info!("Currently not connected."); - } else { - // TODO: can't handle different connections (will reuse previous STATE) - let s = STATE.lock().unwrap(); + // TODO: can't handle different connections (will reuse previous STATE) + if let Some(state) = once_cell::sync::Lazy::get(&STATE) { + let s = state.lock().unwrap(); let passed = s.get_time_passed().as_secs().max(1); let len = s.get_write_len(); + drop(s); log::info!( "Throughput: {} kbit/s ({} / {})", @@ -109,6 +108,8 @@ fn main() { len, passed ); + } else { + log::info!("Not connected"); } std::thread::sleep(std::time::Duration::from_millis(1000));