From 27294df8110965aff754eda6426b04d615a9adca Mon Sep 17 00:00:00 2001 From: Thomas Klaehn Date: Wed, 26 Feb 2025 08:10:10 +0100 Subject: [PATCH] hp-core: use mqtt lib Signed-off-by: Thomas Klaehn --- hp-core/src/main.rs | 82 ++++++++++----------------------------------- 1 file changed, 17 insertions(+), 65 deletions(-) diff --git a/hp-core/src/main.rs b/hp-core/src/main.rs index 282065c..52b71a0 100644 --- a/hp-core/src/main.rs +++ b/hp-core/src/main.rs @@ -3,10 +3,6 @@ extern crate alloc; -use embedded_io::{ - Read, - Write -}; use blocking_network_stack::Stack; use esp_backtrace as _; use esp_hal::{ @@ -49,14 +45,7 @@ use esp_wifi::{ WifiStaDevice, } }; -use mqttrust::encoding::v4::{ - encode_slice, - Connect, - Packet, - Protocol, - Publish, - QoS -}; +use mqtt::Mqtt; use smoltcp::{ iface::{ @@ -65,7 +54,6 @@ use smoltcp::{ }, wire::{ DhcpOption, - IpAddress, Ipv4Address } }; @@ -154,60 +142,24 @@ fn main() -> ! { let mut rx_buffer = [0u8; 1536]; let mut tx_buffer = [0u8; 1536]; - let mut socket = stack.get_socket(&mut rx_buffer, &mut tx_buffer); - socket - .open(IpAddress::Ipv4(Ipv4Address::new(192, 168, 178, 143)), 1883) // p5 - .unwrap(); + let socket = stack.get_socket(&mut rx_buffer, &mut tx_buffer); - - sleep_millis(1_000); - println!("Trying to connect"); - - let connect = Packet::Connect(Connect { - protocol: Protocol::MQTT311, - keep_alive: 10, - client_id: "tmp", - clean_session: true, - last_will: None, - username: None, - password: None, - }); - let mut buf = [0u8; 1024]; - let len = encode_slice(&connect, &mut buf).unwrap(); - - let _ = match socket.write(&buf[..len]) { - Ok(value) => value, - Err(err) => panic!("Error connection mqtt: {:?}",err), - }; - - println!("Connected to MQTT broker"); - - let packet = Publish { - dup: false, - qos: QoS::AtMostOnce, - pid: None, - retain: false, - topic_name: "topic", - payload: b"hello", - }.into(); - let len = encode_slice(&packet, &mut buf).unwrap(); - let _ = match socket.write(&buf[..len]) { - Ok(value) => value, - Err(err) => panic!("Error publishing mqtt: {:?}",err), - }; - // read back result (?!?) - let len = match socket.read(&mut buf) { - Ok(value) => value, - Err(err) => panic!("Error reading socket: {:?}", err), - }; - if len > 0 { - println!("got {} bytes: {:02x?}", len, &buf[..len]); + let address = Ipv4Address::new(192, 168, 178, 143); + let port: u16 = 1883; + let mut mqtt = Mqtt::new(socket, address, port); + match mqtt.open() { + Ok(()) => {}, + Err(err) => panic!("unable to open mqtt connection: {:?}", err), } - - println!("Disconnecting"); - socket.disconnect(); - println!("Disconnected"); - + match mqtt.connect("stm32-c6") { + Ok(_size) => {}, + Err(err) => panic!("unable to connect to mqtt broker: {:?}", err), + } + match mqtt.publish("testtopic", b"testpayload") { + Ok(_size) => {}, + Err(err) => panic!("unable to publish to mqtt broker: {:?}", err), + } + mqtt.disconnect(); let lp_pin = LowPowerOutput::new(peripherals.GPIO1); let uart_cfg = Config::default();