w5500-mqtt

Crates.iow5500-mqtt
lib.rsw5500-mqtt
version0.4.0
sourcesrc
created_at2022-03-20 19:39:29.986753
updated_at2024-06-09 20:15:33.280679
descriptionMQTT client for the Wiznet W5500 internet offload chip.
homepagehttps://github.com/newAM/w5500-rs
repositoryhttps://github.com/newAM/w5500-rs
max_upload_size
id553705
size118,680
Alex Martens (newAM)

documentation

README

w5500-mqtt

MQTT v5 client for the Wiznet W5500 SPI internet offload chip.

Limitations

This is very basic at the moment, and will be expanded in the future.

  • Does not support password protected MQTT servers.
  • Only supports QoS 0: At most once delivery.

Example

use w5500_mqtt::{
    ll::{
        net::{Ipv4Addr, SocketAddrV4},
        Sn,
    },
    Client, ClientId, Event, DST_PORT, SRC_PORT,
};

let mut client: Client = Client::new(
    Sn::Sn2,
    SRC_PORT,
    SocketAddrV4::new(Ipv4Addr::new(192, 168, 5, 6), DST_PORT),
);

// wait for a connection or die trying
while !matches!(client.process(&mut w5500, monotonic_secs())?, Event::None) {}

// publish to "duck" with a payload "quack"
client.publish(&mut w5500, "duck", b"quack")?;

// subscribe to "cow"
client.subscribe(&mut w5500, "cow")?;

Relevant Specifications

Feature Flags

All features are disabled by default.

  • eh0: Passthrough to w5500-hl.
  • eh1: Passthrough to w5500-hl.
  • defmt: Enable logging with defmt. Also a passthrough to w5500-hl.
  • log: Enable logging with log.
  • w5500-tls: Enable MQTT over TLS.
  • p256-cm4: Passthrough to w5500-tls.
Commit count: 382

cargo fmt