W5500-hl-rs

W5500 driver written by Rust
ORIGINAL POST
By Alex(newAM)
components
Hardware Components
W5500
X 1
details

보물-W5500-hl-rs_newAM.png infrared_over_ethernet_arduino

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)?;

 

보물-W5500-hl-rs_newAM.png infrared_over_ethernet_arduino

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

Please Login to comment
  Subscribe  
Notify of