switch back to tcp

This commit is contained in:
Daniel Bulant 2026-05-05 14:55:30 +02:00
parent 21ae0e4968
commit f0d7abdf0e
No known key found for this signature in database

View file

@ -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();