hp-core: use mqtt lib
Signed-off-by: Thomas Klaehn <thomas.klaehn@perinet.io>
This commit is contained in:
parent
ec58e9e268
commit
27294df811
@ -3,10 +3,6 @@
|
|||||||
|
|
||||||
extern crate alloc;
|
extern crate alloc;
|
||||||
|
|
||||||
use embedded_io::{
|
|
||||||
Read,
|
|
||||||
Write
|
|
||||||
};
|
|
||||||
use blocking_network_stack::Stack;
|
use blocking_network_stack::Stack;
|
||||||
use esp_backtrace as _;
|
use esp_backtrace as _;
|
||||||
use esp_hal::{
|
use esp_hal::{
|
||||||
@ -49,14 +45,7 @@ use esp_wifi::{
|
|||||||
WifiStaDevice,
|
WifiStaDevice,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
use mqttrust::encoding::v4::{
|
use mqtt::Mqtt;
|
||||||
encode_slice,
|
|
||||||
Connect,
|
|
||||||
Packet,
|
|
||||||
Protocol,
|
|
||||||
Publish,
|
|
||||||
QoS
|
|
||||||
};
|
|
||||||
|
|
||||||
use smoltcp::{
|
use smoltcp::{
|
||||||
iface::{
|
iface::{
|
||||||
@ -65,7 +54,6 @@ use smoltcp::{
|
|||||||
},
|
},
|
||||||
wire::{
|
wire::{
|
||||||
DhcpOption,
|
DhcpOption,
|
||||||
IpAddress,
|
|
||||||
Ipv4Address
|
Ipv4Address
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -154,60 +142,24 @@ fn main() -> ! {
|
|||||||
|
|
||||||
let mut rx_buffer = [0u8; 1536];
|
let mut rx_buffer = [0u8; 1536];
|
||||||
let mut tx_buffer = [0u8; 1536];
|
let mut tx_buffer = [0u8; 1536];
|
||||||
let mut socket = stack.get_socket(&mut rx_buffer, &mut tx_buffer);
|
let socket = stack.get_socket(&mut rx_buffer, &mut tx_buffer);
|
||||||
socket
|
|
||||||
.open(IpAddress::Ipv4(Ipv4Address::new(192, 168, 178, 143)), 1883) // p5
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
|
let address = Ipv4Address::new(192, 168, 178, 143);
|
||||||
sleep_millis(1_000);
|
let port: u16 = 1883;
|
||||||
println!("Trying to connect");
|
let mut mqtt = Mqtt::new(socket, address, port);
|
||||||
|
match mqtt.open() {
|
||||||
let connect = Packet::Connect(Connect {
|
Ok(()) => {},
|
||||||
protocol: Protocol::MQTT311,
|
Err(err) => panic!("unable to open mqtt connection: {:?}", err),
|
||||||
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]);
|
|
||||||
}
|
}
|
||||||
|
match mqtt.connect("stm32-c6") {
|
||||||
println!("Disconnecting");
|
Ok(_size) => {},
|
||||||
socket.disconnect();
|
Err(err) => panic!("unable to connect to mqtt broker: {:?}", err),
|
||||||
println!("Disconnected");
|
}
|
||||||
|
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 lp_pin = LowPowerOutput::new(peripherals.GPIO1);
|
||||||
let uart_cfg = Config::default();
|
let uart_cfg = Config::default();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user