From 3c4213265df3dd5d7b9da8183cb75982adcbb64f Mon Sep 17 00:00:00 2001 From: LastExceed Date: Mon, 3 Jun 2024 18:27:49 +0200 Subject: [PATCH] update display update messages to account for protocol change --- src/state/announcer.rs | 31 +++++++++++++++++++------------ src/utils.rs | 5 +---- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/state/announcer.rs b/src/state/announcer.rs index 1185d9f..8b3611a 100644 --- a/src/state/announcer.rs +++ b/src/state/announcer.rs @@ -8,7 +8,7 @@ use tap::Pipe; use tokio::time::sleep; use crate::MACHINE_IDS; -use crate::utils::{create_display_update_message, minute_mark}; +use crate::utils::{create_display_time_string, minute_mark}; use crate::{Announcer, State}; impl State { @@ -48,17 +48,24 @@ impl State { } async fn update_runtime_display(&self, machine_id: &str, runtime: Duration) { - self.client - .read() - .await - .publish( - format!("/cmnd/reader/{machine_id}"), - QoS::AtMostOnce, - false, - create_display_update_message(runtime) - ) - .await - .expect("failed to publish display update"); + let client = self.client.read().await; + + let messages = [ + ("title", "Dauer".into()), + ("info", create_display_time_string(runtime)), + ]; + + for (route, payload) in messages { + client + .publish( + format!("fabreader/{machine_id}/display/{route}"), + QoS::AtMostOnce, + false, + payload + ) + .await + .expect("failed to publish display update"); + } } async fn perform_scheduled_shutdowns(&self) { diff --git a/src/utils.rs b/src/utils.rs index d676686..91d60f4 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -34,14 +34,11 @@ pub fn minute_mark(duration: Duration) -> bool { duration.as_secs() % 60 == 0 } -pub fn create_display_update_message(runtime: Duration) -> String { +pub fn create_display_time_string(runtime: Duration) -> String { let hours = runtime.as_secs() / 3600; let minutes = runtime.as_secs() / 60 % 60; json::object! { - Cmd: "message", - MssgID: 12, - ClrTxt: "Nutzungsdauer", AddnTxt: format!("{hours:.0}:{minutes:0>2.0}") }.to_string() } \ No newline at end of file