Skip to content

Commit ea705e8

Browse files
committed
review comments 2
1 parent 8141095 commit ea705e8

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

chime/src/service/chime_service.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ constexpr int kMqttLoopTimeoutMs = 100;
2323
constexpr int kReconnectDelaySeconds = 1;
2424
constexpr int kHealthLogIntervalSeconds = 60;
2525
constexpr int kStartupNotificationTimeoutSeconds = 10;
26+
constexpr int kStartupUnknownWifiTimeoutSeconds = 30;
2627
constexpr std::time_t kMinimumSaneEpoch = 1704067200;
2728
constexpr std::size_t kMaxPayloadLogBytes = 256;
2829
constexpr std::size_t kMaxObservedTopics = 256;
@@ -155,6 +156,7 @@ int ChimeService::Run(vc::runtime::SignalHandler &signal_handler) {
155156

156157
bool startup_notification_played = false;
157158
bool startup_notification_unknown_logged = false;
159+
std::optional<std::chrono::steady_clock::time_point> startup_unknown_wifi_begin;
158160
const auto startup_begin = std::chrono::steady_clock::now();
159161

160162
while (!signal_handler.ShouldStop()) {
@@ -224,8 +226,22 @@ int ChimeService::Run(vc::runtime::SignalHandler &signal_handler) {
224226
if (!startup_notification_unknown_logged) {
225227
logger_.Info("audio", "startup checks deferred: wifi state unknown");
226228
startup_notification_unknown_logged = true;
229+
startup_unknown_wifi_begin = now;
230+
}
231+
232+
if (startup_unknown_wifi_begin.has_value()) {
233+
const auto unknown_wifi_elapsed =
234+
std::chrono::duration_cast<std::chrono::seconds>(now - *startup_unknown_wifi_begin).count();
235+
if (unknown_wifi_elapsed >= kStartupUnknownWifiTimeoutSeconds) {
236+
logger_.Warn("audio", "startup wifi state remained unknown for " +
237+
std::to_string(kStartupUnknownWifiTimeoutSeconds) +
238+
"s after startup timeout, playing failure notification");
239+
PlayNotification(NotificationSoundType::kFailure);
240+
startup_notification_played = true;
241+
}
227242
}
228243
} else {
244+
startup_unknown_wifi_begin = std::nullopt;
229245
logger_.Warn("audio", "startup checks incomplete within " +
230246
std::to_string(kStartupNotificationTimeoutSeconds) +
231247
"s, playing failure notification");

0 commit comments

Comments
 (0)