diff options
Diffstat (limited to 'src/lib.rs')
| -rw-r--r-- | src/lib.rs | 14 |
1 files changed, 8 insertions, 6 deletions
| @@ -28,6 +28,8 @@ use heapless::{ | |||
| 28 | }; | 28 | }; |
| 29 | use serde::Serialize; | 29 | use serde::Serialize; |
| 30 | 30 | ||
| 31 | mod mqtt; | ||
| 32 | |||
| 31 | pub mod log; | 33 | pub mod log; |
| 32 | pub use log::Format; | 34 | pub use log::Format; |
| 33 | 35 | ||
| @@ -215,7 +217,7 @@ pub struct DeviceResources { | |||
| 215 | waker: AtomicWaker, | 217 | waker: AtomicWaker, |
| 216 | entities: [RefCell<Option<EntityData>>; Self::ENTITY_LIMIT], | 218 | entities: [RefCell<Option<EntityData>>; Self::ENTITY_LIMIT], |
| 217 | 219 | ||
| 218 | mqtt_resources: embedded_mqtt::ClientResources, | 220 | mqtt_resources: mqtt::ClientResources, |
| 219 | publish_buffer: Vec<u8, 2048>, | 221 | publish_buffer: Vec<u8, 2048>, |
| 220 | subscribe_buffer: Vec<u8, 128>, | 222 | subscribe_buffer: Vec<u8, 128>, |
| 221 | discovery_buffer: Vec<u8, 2048>, | 223 | discovery_buffer: Vec<u8, 2048>, |
| @@ -422,7 +424,7 @@ pub struct Device<'a> { | |||
| 422 | waker: &'a AtomicWaker, | 424 | waker: &'a AtomicWaker, |
| 423 | entities: &'a [RefCell<Option<EntityData>>], | 425 | entities: &'a [RefCell<Option<EntityData>>], |
| 424 | 426 | ||
| 425 | mqtt_resources: &'a mut embedded_mqtt::ClientResources, | 427 | mqtt_resources: &'a mut mqtt::ClientResources, |
| 426 | publish_buffer: &'a mut VecView<u8>, | 428 | publish_buffer: &'a mut VecView<u8>, |
| 427 | subscribe_buffer: &'a mut VecView<u8>, | 429 | subscribe_buffer: &'a mut VecView<u8>, |
| 428 | discovery_buffer: &'a mut VecView<u8>, | 430 | discovery_buffer: &'a mut VecView<u8>, |
| @@ -585,8 +587,8 @@ pub async fn run<T: Transport>(device: &mut Device<'_>, transport: &mut T) -> Re | |||
| 585 | .expect("device availability buffer too small"); | 587 | .expect("device availability buffer too small"); |
| 586 | let availability_topic = device.availability_topic_buffer.as_str(); | 588 | let availability_topic = device.availability_topic_buffer.as_str(); |
| 587 | 589 | ||
| 588 | let mut client = embedded_mqtt::Client::new(device.mqtt_resources, transport); | 590 | let mut client = mqtt::Client::new(device.mqtt_resources, transport); |
| 589 | let connect_params = embedded_mqtt::ConnectParams { | 591 | let connect_params = mqtt::ConnectParams { |
| 590 | will_topic: Some(availability_topic), | 592 | will_topic: Some(availability_topic), |
| 591 | will_payload: Some(NOT_AVAILABLE_PAYLOAD.as_bytes()), | 593 | will_payload: Some(NOT_AVAILABLE_PAYLOAD.as_bytes()), |
| 592 | will_retain: true, | 594 | will_retain: true, |
| @@ -744,7 +746,7 @@ pub async fn run<T: Transport>(device: &mut Device<'_>, transport: &mut T) -> Re | |||
| 744 | client.publish_with( | 746 | client.publish_with( |
| 745 | availability_topic, | 747 | availability_topic, |
| 746 | AVAILABLE_PAYLOAD.as_bytes(), | 748 | AVAILABLE_PAYLOAD.as_bytes(), |
| 747 | embedded_mqtt::PublishParams { | 749 | mqtt::PublishParams { |
| 748 | retain: true, | 750 | retain: true, |
| 749 | ..Default::default() | 751 | ..Default::default() |
| 750 | }, | 752 | }, |
| @@ -858,7 +860,7 @@ pub async fn run<T: Transport>(device: &mut Device<'_>, transport: &mut T) -> Re | |||
| 858 | .await | 860 | .await |
| 859 | { | 861 | { |
| 860 | Ok(embassy_futures::select::Either::First(packet)) => match packet { | 862 | Ok(embassy_futures::select::Either::First(packet)) => match packet { |
| 861 | Ok(embedded_mqtt::Packet::Publish(publish)) => publish, | 863 | Ok(mqtt::Packet::Publish(publish)) => publish, |
| 862 | Err(err) => { | 864 | Err(err) => { |
| 863 | crate::log::error!( | 865 | crate::log::error!( |
| 864 | "mqtt receive failed with: {:?}", | 866 | "mqtt receive failed with: {:?}", |
