From 77baf89d5c8b61e8f5b03665ea425ac5c47b28ea Mon Sep 17 00:00:00 2001 From: bunnie Date: Tue, 28 Jun 2022 03:25:14 +0800 Subject: [PATCH] have time server retry on I2C error --- services/status/src/time.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/services/status/src/time.rs b/services/status/src/time.rs index 4a35a709c..2c232c318 100644 --- a/services/status/src/time.rs +++ b/services/status/src/time.rs @@ -287,8 +287,19 @@ pub fn start_time_server() { ).expect("couldn't queue sync request"); }), Some(TimeOp::HwSync) => { - start_rtc_secs = llio.get_rtc_secs().expect("couldn't read RTC offset value"); - start_tt_ms = tt.elapsed_ms(); + match llio.get_rtc_secs() { + Ok(val) => { + start_rtc_secs = val; + start_tt_ms = tt.elapsed_ms(); + } + Err(e) => { + log::warn!("Error syncing time: {:?}; retrying!", e); + tt.sleep_ms(82).unwrap(); + send_message(self_cid, + Message::new_scalar(TimeOp::HwSync.to_usize().unwrap(), 0, 0, 0, 0) + ).expect("couldn't queue sync request"); + } + } }, Some(TimeOp::GetUtcTimeMs) => xous::msg_blocking_scalar_unpack!(msg, _, _, _, _, { let t =