switch back to tcp
This commit is contained in:
parent
21ae0e4968
commit
f0d7abdf0e
1 changed files with 26 additions and 18 deletions
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
use core::net::SocketAddrV4;
|
use core::net::SocketAddrV4;
|
||||||
use core::str::FromStr;
|
use core::str::FromStr;
|
||||||
|
use embassy_net::tcp::TcpSocket;
|
||||||
use embassy_net::udp::{PacketMetadata, UdpMetadata, UdpSocket};
|
use embassy_net::udp::{PacketMetadata, UdpMetadata, UdpSocket};
|
||||||
|
|
||||||
use crate::buffer::{WriteBuffer, wait_for_config};
|
use crate::buffer::{WriteBuffer, wait_for_config};
|
||||||
|
|
@ -95,15 +96,15 @@ async fn main(spawner: Spawner) {
|
||||||
let edelay = &mut Delay;
|
let edelay = &mut Delay;
|
||||||
|
|
||||||
let mut lcd: LcdDisplay<_, _> = LcdDisplay::new(
|
let mut lcd: LcdDisplay<_, _> = LcdDisplay::new(
|
||||||
Output::new(p.PIN_14, Level::Low),
|
|
||||||
Output::new(p.PIN_15, Level::Low),
|
Output::new(p.PIN_15, Level::Low),
|
||||||
|
Output::new(p.PIN_14, Level::Low),
|
||||||
edelay,
|
edelay,
|
||||||
)
|
)
|
||||||
.with_half_bus(
|
.with_half_bus(
|
||||||
Output::new(p.PIN_10, Level::Low),
|
|
||||||
Output::new(p.PIN_11, Level::Low),
|
|
||||||
Output::new(p.PIN_12, Level::Low),
|
|
||||||
Output::new(p.PIN_13, Level::Low),
|
Output::new(p.PIN_13, Level::Low),
|
||||||
|
Output::new(p.PIN_12, Level::Low),
|
||||||
|
Output::new(p.PIN_11, Level::Low),
|
||||||
|
Output::new(p.PIN_10, Level::Low),
|
||||||
)
|
)
|
||||||
.with_display(Display::On)
|
.with_display(Display::On)
|
||||||
.with_blink(Blink::On)
|
.with_blink(Blink::On)
|
||||||
|
|
@ -165,22 +166,29 @@ async fn main(spawner: Spawner) {
|
||||||
let in4 = Input::new(p.PIN_21, embassy_rp::gpio::Pull::Up);
|
let in4 = Input::new(p.PIN_21, embassy_rp::gpio::Pull::Up);
|
||||||
|
|
||||||
let mut rx_buffer = [0; 4096];
|
let mut rx_buffer = [0; 4096];
|
||||||
let mut rx_meta = [PacketMetadata::EMPTY; 16];
|
// let mut rx_meta = [PacketMetadata::EMPTY; 16];
|
||||||
let mut tx_buffer = [0; 4096];
|
let mut tx_buffer = [0; 4096];
|
||||||
let mut tx_meta = [PacketMetadata::EMPTY; 16];
|
// let mut tx_meta = [PacketMetadata::EMPTY; 16];
|
||||||
|
|
||||||
let mut socket = UdpSocket::new(
|
// let mut socket = UdpSocket::new(
|
||||||
stack,
|
// stack,
|
||||||
&mut rx_meta,
|
// &mut rx_meta,
|
||||||
&mut rx_buffer,
|
// &mut rx_buffer,
|
||||||
&mut tx_meta,
|
// &mut tx_meta,
|
||||||
&mut tx_buffer,
|
// &mut tx_buffer,
|
||||||
);
|
// );
|
||||||
socket.bind(7070).unwrap();
|
// socket.bind(7070).unwrap();
|
||||||
|
|
||||||
let host_addr = embassy_net::Ipv4Address::from_str("84.238.32.253").unwrap();
|
let host_addr = embassy_net::Ipv4Address::from_str("84.238.32.253").unwrap();
|
||||||
let target = UdpMetadata::from(SocketAddrV4::new(host_addr, 7070));
|
// let target = UdpMetadata::from(SocketAddrV4::new(host_addr, 7070));
|
||||||
uwrite!(lcd, "udp.");
|
let mut socket = TcpSocket::new(stack, &mut rx_buffer, &mut tx_buffer);
|
||||||
|
socket.set_timeout(Some(Duration::from_secs(10)));
|
||||||
|
if let Err(e) = socket.connect(SocketAddrV4::new(host_addr, 7070)).await {
|
||||||
|
uwrite!(lcd, "tcperr");
|
||||||
|
error!("tcp connect error: {}", e);
|
||||||
|
} else {
|
||||||
|
uwrite!(lcd, "tcpok");
|
||||||
|
}
|
||||||
|
|
||||||
let delay = Duration::from_millis(100);
|
let delay = Duration::from_millis(100);
|
||||||
let mut buffer = WriteBuffer::<1024>::new();
|
let mut buffer = WriteBuffer::<1024>::new();
|
||||||
|
|
@ -203,12 +211,12 @@ async fn main(spawner: Spawner) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
let _ = socket.send_to(&*buffer, target).await;
|
let _ = socket.write(&*buffer).await;
|
||||||
buffer.clear();
|
buffer.clear();
|
||||||
}
|
}
|
||||||
if socket.may_recv() {
|
if socket.may_recv() {
|
||||||
let mut rx_buffer = [0; 4096];
|
let mut rx_buffer = [0; 4096];
|
||||||
let (n, ep) = socket.recv_from(&mut rx_buffer).await.unwrap();
|
let n = socket.read(&mut rx_buffer).await.unwrap();
|
||||||
if n > 0 {
|
if n > 0 {
|
||||||
lcd.clear();
|
lcd.clear();
|
||||||
lcd.home();
|
lcd.home();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue