embassy-net

Crates

git

Versions

default

Flavors

Module ping

Source
Expand description

Ping utilities.

This module allows for an easy ICMP Echo message interface used to ping devices with an ICMP Socket.

§Usage

use core::net::Ipv4Addr;
use core::str::FromStr;

use embassy_net::icmp::ping::{PingManager, PingParams};
use embassy_net::icmp::PacketMetadata;

let mut rx_buffer = [0; 256];
let mut tx_buffer = [0; 256];
let mut rx_meta = [PacketMetadata::EMPTY];
let mut tx_meta = [PacketMetadata::EMPTY];

let mut ping_manager = PingManager::new(stack, &mut rx_meta, &mut rx_buffer, &mut tx_meta, &mut tx_buffer);
let addr = "192.168.8.1";
let mut ping_params = PingParams::new(Ipv4Addr::from_str(addr).unwrap());
ping_params.set_payload(b"Hello, router!");
match ping_manager.ping(&ping_params).await {
    Ok(time) => info!("Ping time of {}: {}ms", addr, time.as_millis()),
    Err(ping_error) => warn!("{:?}", ping_error),
};

Structs§

PingManager
Manages ICMP ping operations.
PingParams
Parameters for configuring the ping operation.

Enums§

PingError
Error returned by ping().