timeout between packets

This commit is contained in:
Andy Killorin 2024-11-13 11:42:06 -05:00
parent 6f5efa3e18
commit 78a43fd82f
Signed by: ank
GPG key ID: 23F9463ECB67FE8C

View file

@ -1,7 +1,7 @@
#![no_std]
#![no_main]
use embedded_io::{Read, Write};
use embedded_io::{Read, ReadReady, Write};
use esp_backtrace as _;
use esp_hal::{delay::Delay, prelude::*, rng::Rng, time::{self, Duration}};
use esp_println::{print, println};
@ -108,7 +108,15 @@ fn main() -> ! {
let mut buffer = [0u8; 1024];
let mut pos = 0;
log::info!("connected");
while let Ok(len) = socket.read(&mut buffer[pos..]) {
'read: loop {
while !socket.read_ready().unwrap_or(true) {
if time::now() > deadline {
println!("Timeout");
time_out = true;
break 'read;
}
}
if let Ok(len) = socket.read(&mut buffer[pos..]) {
let to_print = unsafe { core::str::from_utf8_unchecked(&buffer[..(pos + len)]) };
if to_print.contains("\r\n") {
@ -124,6 +132,9 @@ fn main() -> ! {
time_out = true;
break;
}
} else {
break;
}
}