
components
Hardware Components
W5500
X 1
details
https://github.com/newAM/w5500-hl-rs for high level socket with platform agnostic feature
low level registers drivers are contained in https://github.com/newAM/w5500-ll-rs
Examples
UDP sockets
use w5500_hl::ll::{
net::{Ipv4Addr, SocketAddrV4},
Registers,
Socket::Socket0,
};
use w5500_hl::Udp;
// open Socket0 as a UDP socket on port 1234
w5500.udp_bind(Socket0, 1234)?;
// send 4 bytes to 192.168.2.4:8080, and get the number of bytes transmitted
let data: [u8; 4] = [0, 1, 2, 3];
let destination = SocketAddrV4::new(Ipv4Addr::new(192, 168, 2, 4), 8080);
let tx_bytes = w5500.udp_send_to(Socket0, &data, &destination);
TCP streams (client)
use w5500_hl::ll::{
net::{Ipv4Addr, SocketAddrV4},
Registers, Socket,
};
use w5500_hl::Tcp;
const MQTT_SOCKET: Socket = Socket::Socket0;
const MQTT_SOURCE_PORT: u16 = 33650;
const MQTT_SERVER: SocketAddrV4 = SocketAddrV4::new(Ipv4Addr::new(192, 168, 2, 10), 1883);
// initiate a TCP connection to a MQTT server
w5500.tcp_connect(MQTT_SOCKET, MQTT_SOURCE_PORT, &MQTT_SERVER)?;
TCP listeners (server)
use w5500_hl::ll::{
net::{Ipv4Addr, SocketAddrV4},
Registers, Socket,
};
use w5500_hl::Tcp;
const HTTP_SOCKET: Socket = Socket::Socket1;
const HTTP_PORT: u16 = 80;
// serve HTTP
w5500.tcp_listen(HTTP_SOCKET, HTTP_PORT)?;
COMMENTS