timeout between packets
This commit is contained in:
parent
6f5efa3e18
commit
78a43fd82f
1 changed files with 23 additions and 12 deletions
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue