Slight code cleanup, made (dis)connect message retained
This commit is contained in:
parent
fad275c1d2
commit
7cda449922
32
src/main.rs
32
src/main.rs
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
use core::str::FromStr;
|
use core::str::FromStr;
|
||||||
|
|
||||||
|
use cyw43::PowerManagementMode;
|
||||||
use cyw43_pio::PioSpi;
|
use cyw43_pio::PioSpi;
|
||||||
use defmt::{debug, info, warn, Format};
|
use defmt::{debug, info, warn, Format};
|
||||||
use dsmr5::Readout;
|
use dsmr5::Readout;
|
||||||
|
@ -35,7 +36,13 @@ use rand::{
|
||||||
rngs::{SmallRng, StdRng},
|
rngs::{SmallRng, StdRng},
|
||||||
RngCore, SeedableRng,
|
RngCore, SeedableRng,
|
||||||
};
|
};
|
||||||
use rust_mqtt::client::{client::MqttClient, client_config::ClientConfig};
|
use rust_mqtt::{
|
||||||
|
client::{
|
||||||
|
client::MqttClient,
|
||||||
|
client_config::{ClientConfig, MqttVersion},
|
||||||
|
},
|
||||||
|
packet::v5::publish_packet::QualityOfService,
|
||||||
|
};
|
||||||
use static_cell::make_static;
|
use static_cell::make_static;
|
||||||
|
|
||||||
use {defmt_rtt as _, panic_probe as _};
|
use {defmt_rtt as _, panic_probe as _};
|
||||||
|
@ -171,7 +178,7 @@ async fn main(spawner: Spawner) {
|
||||||
|
|
||||||
control.init(clm).await;
|
control.init(clm).await;
|
||||||
control
|
control
|
||||||
.set_power_management(cyw43::PowerManagementMode::PowerSave)
|
.set_power_management(PowerManagementMode::PowerSave)
|
||||||
.await;
|
.await;
|
||||||
|
|
||||||
// Turn LED on while trying to connect
|
// Turn LED on while trying to connect
|
||||||
|
@ -224,7 +231,7 @@ async fn main(spawner: Spawner) {
|
||||||
info!("TCP Connected!");
|
info!("TCP Connected!");
|
||||||
|
|
||||||
let mut config = ClientConfig::new(
|
let mut config = ClientConfig::new(
|
||||||
rust_mqtt::client::client_config::MqttVersion::MQTTv5,
|
MqttVersion::MQTTv5,
|
||||||
// Use fast and simple PRNG to generate packet identifiers, there is no need for this to be
|
// Use fast and simple PRNG to generate packet identifiers, there is no need for this to be
|
||||||
// cryptographically secure
|
// cryptographically secure
|
||||||
SmallRng::from_rng(&mut rng_rosc).unwrap(),
|
SmallRng::from_rng(&mut rng_rosc).unwrap(),
|
||||||
|
@ -232,10 +239,10 @@ async fn main(spawner: Spawner) {
|
||||||
|
|
||||||
config.add_username(env!("MQTT_USERNAME"));
|
config.add_username(env!("MQTT_USERNAME"));
|
||||||
config.add_password(env!("MQTT_PASSWORD"));
|
config.add_password(env!("MQTT_PASSWORD"));
|
||||||
config.add_max_subscribe_qos(rust_mqtt::packet::v5::publish_packet::QualityOfService::QoS1);
|
config.add_max_subscribe_qos(QualityOfService::QoS1);
|
||||||
config.add_client_id("pico");
|
config.add_client_id("pico");
|
||||||
// Leads to InsufficientBufferSize error
|
// Leads to InsufficientBufferSize error
|
||||||
config.add_will("pico/test", b"disconnected", false);
|
config.add_will("pico/test", b"disconnected", true);
|
||||||
|
|
||||||
let mut recv_buffer = [0; 4096];
|
let mut recv_buffer = [0; 4096];
|
||||||
let mut write_buffer = [0; 4096];
|
let mut write_buffer = [0; 4096];
|
||||||
|
@ -243,16 +250,12 @@ async fn main(spawner: Spawner) {
|
||||||
let mut client =
|
let mut client =
|
||||||
MqttClient::<_, 5, _>::new(socket, &mut write_buffer, &mut recv_buffer, config);
|
MqttClient::<_, 5, _>::new(socket, &mut write_buffer, &mut recv_buffer, config);
|
||||||
|
|
||||||
|
info!("Connecting to MQTT...");
|
||||||
client.connect_to_broker().await.unwrap();
|
client.connect_to_broker().await.unwrap();
|
||||||
info!("MQTT Connected!");
|
info!("MQTT Connected!");
|
||||||
|
|
||||||
client
|
client
|
||||||
.send_message(
|
.send_message("pico/test", b"connected", QualityOfService::QoS0, true)
|
||||||
"pico/test",
|
|
||||||
b"connected",
|
|
||||||
rust_mqtt::packet::v5::publish_packet::QualityOfService::QoS0,
|
|
||||||
false,
|
|
||||||
)
|
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
|
@ -274,12 +277,7 @@ async fn main(spawner: Spawner) {
|
||||||
info!("len: {}", msg.len());
|
info!("len: {}", msg.len());
|
||||||
|
|
||||||
client
|
client
|
||||||
.send_message(
|
.send_message("pico/test", &msg, QualityOfService::QoS0, false)
|
||||||
"pico/test",
|
|
||||||
&msg,
|
|
||||||
rust_mqtt::packet::v5::publish_packet::QualityOfService::QoS0,
|
|
||||||
false,
|
|
||||||
)
|
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user