Skip to content

Commit 99128b8

Browse files
committed
wip: add device id in answer payload
1 parent f764f60 commit 99128b8

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

mqtt_example/src/main.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ fn main() -> anyhow::Result<()> {
2626
let nvs = EspDefaultNvsPartition::take()?;
2727
let peripherals = Peripherals::take()?;
2828

29-
let wifi = wifi::configure(&event_loop, &nvs, peripherals.modem)?;
29+
let mut wifi = wifi::configure(&event_loop, &nvs, peripherals.modem)?;
30+
let device_id = wifi::get_mac(&mut wifi);
3031
std::mem::forget(wifi);
3132

3233
let (mut mqtt_client, mqtt_connection) = mqtt::configure()?;
@@ -91,8 +92,7 @@ fn main() -> anyhow::Result<()> {
9192
if question_id.is_empty() {
9293
continue;
9394
}
94-
// TODO: add device id (from MAC?)
95-
let payload = format!("{}|{}", question_id, data);
95+
let payload = format!("{}|{}|{}", device_id, question_id, data);
9696
mqtt_client.enqueue("answer", QoS::AtLeastOnce, false, payload.as_bytes())?;
9797

9898
display.clear();

mqtt_example/src/wifi.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use embedded_svc::wifi::{ClientConfiguration, Configuration};
44
use esp_idf_svc::eventloop::EspSystemEventLoop;
55
use esp_idf_svc::hal::modem::Modem;
66
use esp_idf_svc::nvs::EspDefaultNvsPartition;
7-
use esp_idf_svc::wifi::{BlockingWifi, EspWifi};
7+
use esp_idf_svc::wifi::{BlockingWifi, EspWifi, WifiDeviceId};
88
use log::info;
99

1010
pub fn configure(
@@ -28,3 +28,8 @@ pub fn configure(
2828
info!("[WIFI] Connected");
2929
Ok(wifi)
3030
}
31+
32+
pub fn get_mac(wifi: &mut BlockingWifi<EspWifi>) -> String {
33+
let mac_bytes = wifi.wifi_mut().get_mac(WifiDeviceId::Sta).unwrap();
34+
mac_bytes.map(|b| format!("{:X}", b)).join(":")
35+
}

0 commit comments

Comments
 (0)