From 623f3eaec4adfea95f5683c4544a37a39fa97cb3 Mon Sep 17 00:00:00 2001 From: pelgraine <140762863+pelgraine@users.noreply.github.com> Date: Thu, 26 Feb 2026 02:35:55 +1100 Subject: [PATCH] fix screen refresh when modem ready indicated --- examples/companion_radio/ui-new/SMSScreen.h | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/examples/companion_radio/ui-new/SMSScreen.h b/examples/companion_radio/ui-new/SMSScreen.h index 61cf725..e69b3c7 100644 --- a/examples/companion_radio/ui-new/SMSScreen.h +++ b/examples/companion_radio/ui-new/SMSScreen.h @@ -354,17 +354,25 @@ public: display.print(countHint); } - // Modem status if not ready + // Modem status indicator ModemState ms = modemManager.getState(); - if (ms != ModemState::READY && ms != ModemState::SENDING_SMS) { - display.setTextSize(0); + display.setTextSize(0); + display.setCursor(4, y + lineHeight + 8); + if (ms == ModemState::OFF || ms == ModemState::POWERING_ON || + ms == ModemState::INITIALIZING) { + display.setColor(DisplayDriver::YELLOW); + display.print("Please wait..."); + } else if (ms == ModemState::ERROR) { display.setColor(DisplayDriver::YELLOW); - display.setCursor(4, y + lineHeight + 8); char statBuf[40]; snprintf(statBuf, sizeof(statBuf), "Modem: %s", ModemManager::stateToString(ms)); display.print(statBuf); - display.setTextSize(1); + } else if (ms == ModemState::REGISTERING || ms == ModemState::READY || + ms == ModemState::SENDING_SMS) { + display.setColor(DisplayDriver::GREEN); + display.print("Ready!"); } + display.setTextSize(1); // Footer display.setTextSize(1); @@ -377,6 +385,9 @@ public: display.setCursor(display.width() - display.getTextWidth(rt) - 2, footerY); display.print(rt); + if (ms != ModemState::READY && ms != ModemState::SENDING_SMS) { + return 1000; + } return 5000; }