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_std]
|
||||||
#![no_main]
|
#![no_main]
|
||||||
|
|
||||||
use embedded_io::{Read, Write};
|
use embedded_io::{Read, ReadReady, Write};
|
||||||
use esp_backtrace as _;
|
use esp_backtrace as _;
|
||||||
use esp_hal::{delay::Delay, prelude::*, rng::Rng, time::{self, Duration}};
|
use esp_hal::{delay::Delay, prelude::*, rng::Rng, time::{self, Duration}};
|
||||||
use esp_println::{print, println};
|
use esp_println::{print, println};
|
||||||
|
@ -108,7 +108,15 @@ fn main() -> ! {
|
||||||
let mut buffer = [0u8; 1024];
|
let mut buffer = [0u8; 1024];
|
||||||
let mut pos = 0;
|
let mut pos = 0;
|
||||||
log::info!("connected");
|
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)]) };
|
let to_print = unsafe { core::str::from_utf8_unchecked(&buffer[..(pos + len)]) };
|
||||||
|
|
||||||
if to_print.contains("\r\n") {
|
if to_print.contains("\r\n") {
|
||||||
|
@ -124,6 +132,9 @@ fn main() -> ! {
|
||||||
time_out = true;
|
time_out = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue