diff options
| author | Dario Nieuwenhuis <[email protected]> | 2023-05-31 01:01:30 +0200 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2023-05-31 01:01:30 +0200 |
| commit | d70994e4a8ea695f07b777fa99d7db4e5d4a7122 (patch) | |
| tree | e40d00e3f5493cce9ef65e8daa524a174f5fc407 /examples/rp/src | |
| parent | 82d765689aa0f922d0b43e402eaa3d911b2d461d (diff) | |
net-w5500: integrate into main repo.
Diffstat (limited to 'examples/rp/src')
| -rw-r--r-- | examples/rp/src/bin/ethernet_w5500_multisocket.rs | 25 | ||||
| -rw-r--r-- | examples/rp/src/bin/ethernet_w5500_tcp_client.rs | 13 | ||||
| -rw-r--r-- | examples/rp/src/bin/ethernet_w5500_tcp_server.rs | 13 | ||||
| -rw-r--r-- | examples/rp/src/bin/ethernet_w5500_udp.rs | 22 |
4 files changed, 19 insertions, 54 deletions
diff --git a/examples/rp/src/bin/ethernet_w5500_multisocket.rs b/examples/rp/src/bin/ethernet_w5500_multisocket.rs index eb3b8de81..c8e6d46a6 100644 --- a/examples/rp/src/bin/ethernet_w5500_multisocket.rs +++ b/examples/rp/src/bin/ethernet_w5500_multisocket.rs | |||
| @@ -15,6 +15,7 @@ use embassy_rp::clocks::RoscRng; | |||
| 15 | use embassy_rp::gpio::{Input, Level, Output, Pull}; | 15 | use embassy_rp::gpio::{Input, Level, Output, Pull}; |
| 16 | use embassy_rp::peripherals::{PIN_17, PIN_20, PIN_21, SPI0}; | 16 | use embassy_rp::peripherals::{PIN_17, PIN_20, PIN_21, SPI0}; |
| 17 | use embassy_rp::spi::{Async, Config as SpiConfig, Spi}; | 17 | use embassy_rp::spi::{Async, Config as SpiConfig, Spi}; |
| 18 | use embassy_time::Duration; | ||
| 18 | use embedded_hal_async::spi::ExclusiveDevice; | 19 | use embedded_hal_async::spi::ExclusiveDevice; |
| 19 | use embedded_io::asynch::Write; | 20 | use embedded_io::asynch::Write; |
| 20 | use rand::RngCore; | 21 | use rand::RngCore; |
| @@ -62,14 +63,8 @@ async fn main(spawner: Spawner) { | |||
| 62 | 63 | ||
| 63 | let mac_addr = [0x02, 0x00, 0x00, 0x00, 0x00, 0x00]; | 64 | let mac_addr = [0x02, 0x00, 0x00, 0x00, 0x00, 0x00]; |
| 64 | let state = singleton!(State::<8, 8>::new()); | 65 | let state = singleton!(State::<8, 8>::new()); |
| 65 | let (device, runner) = embassy_net_w5500::new( | 66 | let (device, runner) = |
| 66 | mac_addr, | 67 | embassy_net_w5500::new(mac_addr, state, ExclusiveDevice::new(spi, cs), w5500_int, w5500_reset).await; |
| 67 | state, | ||
| 68 | ExclusiveDevice::new(spi, cs), | ||
| 69 | w5500_int, | ||
| 70 | w5500_reset, | ||
| 71 | ) | ||
| 72 | .await; | ||
| 73 | unwrap!(spawner.spawn(ethernet_task(runner))); | 68 | unwrap!(spawner.spawn(ethernet_task(runner))); |
| 74 | 69 | ||
| 75 | // Generate random seed | 70 | // Generate random seed |
| @@ -103,18 +98,14 @@ async fn listen_task(stack: &'static Stack<Device<'static>>, id: u8, port: u16) | |||
| 103 | let mut buf = [0; 4096]; | 98 | let mut buf = [0; 4096]; |
| 104 | loop { | 99 | loop { |
| 105 | let mut socket = embassy_net::tcp::TcpSocket::new(stack, &mut rx_buffer, &mut tx_buffer); | 100 | let mut socket = embassy_net::tcp::TcpSocket::new(stack, &mut rx_buffer, &mut tx_buffer); |
| 106 | socket.set_timeout(Some(embassy_net::SmolDuration::from_secs(10))); | 101 | socket.set_timeout(Some(Duration::from_secs(10))); |
| 107 | 102 | ||
| 108 | info!("SOCKET {}: Listening on TCP:{}...", id, port); | 103 | info!("SOCKET {}: Listening on TCP:{}...", id, port); |
| 109 | if let Err(e) = socket.accept(port).await { | 104 | if let Err(e) = socket.accept(port).await { |
| 110 | warn!("accept error: {:?}", e); | 105 | warn!("accept error: {:?}", e); |
| 111 | continue; | 106 | continue; |
| 112 | } | 107 | } |
| 113 | info!( | 108 | info!("SOCKET {}: Received connection from {:?}", id, socket.remote_endpoint()); |
| 114 | "SOCKET {}: Received connection from {:?}", | ||
| 115 | id, | ||
| 116 | socket.remote_endpoint() | ||
| 117 | ); | ||
| 118 | 109 | ||
| 119 | loop { | 110 | loop { |
| 120 | let n = match socket.read(&mut buf).await { | 111 | let n = match socket.read(&mut buf).await { |
| @@ -128,11 +119,7 @@ async fn listen_task(stack: &'static Stack<Device<'static>>, id: u8, port: u16) | |||
| 128 | break; | 119 | break; |
| 129 | } | 120 | } |
| 130 | }; | 121 | }; |
| 131 | info!( | 122 | info!("SOCKET {}: rxd {}", id, core::str::from_utf8(&buf[..n]).unwrap()); |
| 132 | "SOCKET {}: rxd {}", | ||
| 133 | id, | ||
| 134 | core::str::from_utf8(&buf[..n]).unwrap() | ||
| 135 | ); | ||
| 136 | 123 | ||
| 137 | if let Err(e) = socket.write_all(&buf[..n]).await { | 124 | if let Err(e) = socket.write_all(&buf[..n]).await { |
| 138 | warn!("write error: {:?}", e); | 125 | warn!("write error: {:?}", e); |
diff --git a/examples/rp/src/bin/ethernet_w5500_tcp_client.rs b/examples/rp/src/bin/ethernet_w5500_tcp_client.rs index e166e0f35..9a7c3ad19 100644 --- a/examples/rp/src/bin/ethernet_w5500_tcp_client.rs +++ b/examples/rp/src/bin/ethernet_w5500_tcp_client.rs | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | #![feature(type_alias_impl_trait)] | 7 | #![feature(type_alias_impl_trait)] |
| 8 | 8 | ||
| 9 | use core::str::FromStr; | 9 | use core::str::FromStr; |
| 10 | |||
| 10 | use defmt::*; | 11 | use defmt::*; |
| 11 | use embassy_executor::Spawner; | 12 | use embassy_executor::Spawner; |
| 12 | use embassy_futures::yield_now; | 13 | use embassy_futures::yield_now; |
| @@ -65,14 +66,8 @@ async fn main(spawner: Spawner) { | |||
| 65 | 66 | ||
| 66 | let mac_addr = [0x02, 0x00, 0x00, 0x00, 0x00, 0x00]; | 67 | let mac_addr = [0x02, 0x00, 0x00, 0x00, 0x00, 0x00]; |
| 67 | let state = singleton!(State::<8, 8>::new()); | 68 | let state = singleton!(State::<8, 8>::new()); |
| 68 | let (device, runner) = embassy_net_w5500::new( | 69 | let (device, runner) = |
| 69 | mac_addr, | 70 | embassy_net_w5500::new(mac_addr, state, ExclusiveDevice::new(spi, cs), w5500_int, w5500_reset).await; |
| 70 | state, | ||
| 71 | ExclusiveDevice::new(spi, cs), | ||
| 72 | w5500_int, | ||
| 73 | w5500_reset, | ||
| 74 | ) | ||
| 75 | .await; | ||
| 76 | unwrap!(spawner.spawn(ethernet_task(runner))); | 71 | unwrap!(spawner.spawn(ethernet_task(runner))); |
| 77 | 72 | ||
| 78 | // Generate random seed | 73 | // Generate random seed |
| @@ -98,7 +93,7 @@ async fn main(spawner: Spawner) { | |||
| 98 | let mut tx_buffer = [0; 4096]; | 93 | let mut tx_buffer = [0; 4096]; |
| 99 | loop { | 94 | loop { |
| 100 | let mut socket = embassy_net::tcp::TcpSocket::new(stack, &mut rx_buffer, &mut tx_buffer); | 95 | let mut socket = embassy_net::tcp::TcpSocket::new(stack, &mut rx_buffer, &mut tx_buffer); |
| 101 | socket.set_timeout(Some(embassy_net::SmolDuration::from_secs(10))); | 96 | socket.set_timeout(Some(Duration::from_secs(10))); |
| 102 | 97 | ||
| 103 | led.set_low(); | 98 | led.set_low(); |
| 104 | info!("Connecting..."); | 99 | info!("Connecting..."); |
diff --git a/examples/rp/src/bin/ethernet_w5500_tcp_server.rs b/examples/rp/src/bin/ethernet_w5500_tcp_server.rs index ffd664d15..f02543246 100644 --- a/examples/rp/src/bin/ethernet_w5500_tcp_server.rs +++ b/examples/rp/src/bin/ethernet_w5500_tcp_server.rs | |||
| @@ -16,6 +16,7 @@ use embassy_rp::clocks::RoscRng; | |||
| 16 | use embassy_rp::gpio::{Input, Level, Output, Pull}; | 16 | use embassy_rp::gpio::{Input, Level, Output, Pull}; |
| 17 | use embassy_rp::peripherals::{PIN_17, PIN_20, PIN_21, SPI0}; | 17 | use embassy_rp::peripherals::{PIN_17, PIN_20, PIN_21, SPI0}; |
| 18 | use embassy_rp::spi::{Async, Config as SpiConfig, Spi}; | 18 | use embassy_rp::spi::{Async, Config as SpiConfig, Spi}; |
| 19 | use embassy_time::Duration; | ||
| 19 | use embedded_hal_async::spi::ExclusiveDevice; | 20 | use embedded_hal_async::spi::ExclusiveDevice; |
| 20 | use embedded_io::asynch::Write; | 21 | use embedded_io::asynch::Write; |
| 21 | use rand::RngCore; | 22 | use rand::RngCore; |
| @@ -64,14 +65,8 @@ async fn main(spawner: Spawner) { | |||
| 64 | 65 | ||
| 65 | let mac_addr = [0x02, 0x00, 0x00, 0x00, 0x00, 0x00]; | 66 | let mac_addr = [0x02, 0x00, 0x00, 0x00, 0x00, 0x00]; |
| 66 | let state = singleton!(State::<8, 8>::new()); | 67 | let state = singleton!(State::<8, 8>::new()); |
| 67 | let (device, runner) = embassy_net_w5500::new( | 68 | let (device, runner) = |
| 68 | mac_addr, | 69 | embassy_net_w5500::new(mac_addr, state, ExclusiveDevice::new(spi, cs), w5500_int, w5500_reset).await; |
| 69 | state, | ||
| 70 | ExclusiveDevice::new(spi, cs), | ||
| 71 | w5500_int, | ||
| 72 | w5500_reset, | ||
| 73 | ) | ||
| 74 | .await; | ||
| 75 | unwrap!(spawner.spawn(ethernet_task(runner))); | 70 | unwrap!(spawner.spawn(ethernet_task(runner))); |
| 76 | 71 | ||
| 77 | // Generate random seed | 72 | // Generate random seed |
| @@ -98,7 +93,7 @@ async fn main(spawner: Spawner) { | |||
| 98 | let mut buf = [0; 4096]; | 93 | let mut buf = [0; 4096]; |
| 99 | loop { | 94 | loop { |
| 100 | let mut socket = embassy_net::tcp::TcpSocket::new(stack, &mut rx_buffer, &mut tx_buffer); | 95 | let mut socket = embassy_net::tcp::TcpSocket::new(stack, &mut rx_buffer, &mut tx_buffer); |
| 101 | socket.set_timeout(Some(embassy_net::SmolDuration::from_secs(10))); | 96 | socket.set_timeout(Some(Duration::from_secs(10))); |
| 102 | 97 | ||
| 103 | led.set_low(); | 98 | led.set_low(); |
| 104 | info!("Listening on TCP:1234..."); | 99 | info!("Listening on TCP:1234..."); |
diff --git a/examples/rp/src/bin/ethernet_w5500_udp.rs b/examples/rp/src/bin/ethernet_w5500_udp.rs index 08ffeb244..2c54f711e 100644 --- a/examples/rp/src/bin/ethernet_w5500_udp.rs +++ b/examples/rp/src/bin/ethernet_w5500_udp.rs | |||
| @@ -9,8 +9,8 @@ | |||
| 9 | use defmt::*; | 9 | use defmt::*; |
| 10 | use embassy_executor::Spawner; | 10 | use embassy_executor::Spawner; |
| 11 | use embassy_futures::yield_now; | 11 | use embassy_futures::yield_now; |
| 12 | use embassy_net::udp::UdpSocket; | 12 | use embassy_net::udp::{PacketMetadata, UdpSocket}; |
| 13 | use embassy_net::{PacketMetadata, Stack, StackResources}; | 13 | use embassy_net::{Stack, StackResources}; |
| 14 | use embassy_net_w5500::*; | 14 | use embassy_net_w5500::*; |
| 15 | use embassy_rp::clocks::RoscRng; | 15 | use embassy_rp::clocks::RoscRng; |
| 16 | use embassy_rp::gpio::{Input, Level, Output, Pull}; | 16 | use embassy_rp::gpio::{Input, Level, Output, Pull}; |
| @@ -62,14 +62,8 @@ async fn main(spawner: Spawner) { | |||
| 62 | 62 | ||
| 63 | let mac_addr = [0x02, 0x00, 0x00, 0x00, 0x00, 0x00]; | 63 | let mac_addr = [0x02, 0x00, 0x00, 0x00, 0x00, 0x00]; |
| 64 | let state = singleton!(State::<8, 8>::new()); | 64 | let state = singleton!(State::<8, 8>::new()); |
| 65 | let (device, runner) = embassy_net_w5500::new( | 65 | let (device, runner) = |
| 66 | mac_addr, | 66 | embassy_net_w5500::new(mac_addr, state, ExclusiveDevice::new(spi, cs), w5500_int, w5500_reset).await; |
| 67 | state, | ||
| 68 | ExclusiveDevice::new(spi, cs), | ||
| 69 | w5500_int, | ||
| 70 | w5500_reset, | ||
| 71 | ) | ||
| 72 | .await; | ||
| 73 | unwrap!(spawner.spawn(ethernet_task(runner))); | 67 | unwrap!(spawner.spawn(ethernet_task(runner))); |
| 74 | 68 | ||
| 75 | // Generate random seed | 69 | // Generate random seed |
| @@ -98,13 +92,7 @@ async fn main(spawner: Spawner) { | |||
| 98 | let mut tx_meta = [PacketMetadata::EMPTY; 16]; | 92 | let mut tx_meta = [PacketMetadata::EMPTY; 16]; |
| 99 | let mut buf = [0; 4096]; | 93 | let mut buf = [0; 4096]; |
| 100 | loop { | 94 | loop { |
| 101 | let mut socket = UdpSocket::new( | 95 | let mut socket = UdpSocket::new(stack, &mut rx_meta, &mut rx_buffer, &mut tx_meta, &mut tx_buffer); |
| 102 | stack, | ||
| 103 | &mut rx_meta, | ||
| 104 | &mut rx_buffer, | ||
| 105 | &mut tx_meta, | ||
| 106 | &mut tx_buffer, | ||
| 107 | ); | ||
| 108 | socket.bind(1234).unwrap(); | 96 | socket.bind(1234).unwrap(); |
| 109 | 97 | ||
| 110 | loop { | 98 | loop { |
