hp-core: use mqtt lib

Signed-off-by: Thomas Klaehn <thomas.klaehn@perinet.io>
This commit is contained in:
Thomas Klaehn 2025-02-26 08:10:10 +01:00
parent ec58e9e268
commit 27294df811

View File

@ -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();