|
1 | 1 | use log::debug; |
2 | | -use sbp::messages::GpsTime; |
| 2 | +use sbp::time::GpsTime; |
3 | 3 | use std::{result::Result, thread::sleep, time::Instant}; |
4 | 4 |
|
5 | 5 | use crate::observation_tab::ObservationTab; |
@@ -37,25 +37,8 @@ impl<'a, S: MessageSender> MainTab<'a, S> { |
37 | 37 | /// # Parameters |
38 | 38 | /// - `gps_time`: The GpsTime corresponding to a message. |
39 | 39 | pub fn realtime_delay<T>(&mut self, gps_time: Option<Result<GpsTime, T>>) { |
40 | | - if let Some(Ok(mut g_time)) = gps_time { |
41 | | - if let Some(mut l_time) = self.last_gps_time { |
42 | | - let gps_time_tow = g_time.tow(); |
43 | | - let gps_time_week = g_time.wn(); |
44 | | - let last_gps_time_tow = l_time.tow(); |
45 | | - let last_gps_time_week = l_time.wn(); |
46 | | - |
47 | | - if gps_time_week != 0 && last_gps_time_week == 0 { |
48 | | - let l_time_ = GpsTime::new(gps_time_week, last_gps_time_tow); |
49 | | - if let Ok(l_time_ok) = l_time_ { |
50 | | - l_time = l_time_ok; |
51 | | - } |
52 | | - } else if gps_time_week == 0 && last_gps_time_week != 0 { |
53 | | - let g_time_ = GpsTime::new(last_gps_time_week, gps_time_tow); |
54 | | - if let Ok(g_time_ok) = g_time_ { |
55 | | - g_time = g_time_ok; |
56 | | - } |
57 | | - } |
58 | | - |
| 40 | + if let Some(Ok(g_time)) = gps_time { |
| 41 | + if let Some(l_time) = self.last_gps_time { |
59 | 42 | if l_time < g_time { |
60 | 43 | let diff = g_time - l_time; |
61 | 44 | let elapsed = self.last_gps_update.elapsed(); |
@@ -122,46 +105,6 @@ mod tests { |
122 | 105 | > Duration::from_secs_f64(gps_s.later_gps_tow_good - gps_s.early_gps_tow_good) |
123 | 106 | ); |
124 | 107 | } |
125 | | - #[test] |
126 | | - fn realtime_delay_bad_last_test() { |
127 | | - let shared_state = SharedState::new(); |
128 | | - let (client_send_, _) = mpsc::channel::<Vec<u8>>(); |
129 | | - let client_send = ClientSender { |
130 | | - inner: client_send_, |
131 | | - }; |
132 | | - let gps_s = GpsTimeTests::new(); |
133 | | - let mut main = MainTab::new(shared_state, client_send); |
134 | | - let early_gps_time_good = GpsTime::new(gps_s.zero_week, gps_s.early_gps_tow_good).unwrap(); |
135 | | - let later_gps_time_good = GpsTime::new(gps_s.good_week, gps_s.later_gps_tow_good); |
136 | | - main.last_gps_time = Some(early_gps_time_good); |
137 | | - let now = Instant::now(); |
138 | | - main.last_gps_update = Instant::now(); |
139 | | - main.realtime_delay(Some(later_gps_time_good)); |
140 | | - assert!( |
141 | | - now.elapsed() |
142 | | - > Duration::from_secs_f64(gps_s.later_gps_tow_good - gps_s.early_gps_tow_good) |
143 | | - ); |
144 | | - } |
145 | | - #[test] |
146 | | - fn realtime_delay_bad_current_test() { |
147 | | - let shared_state = SharedState::new(); |
148 | | - let (client_send_, _) = mpsc::channel::<Vec<u8>>(); |
149 | | - let client_send = ClientSender { |
150 | | - inner: client_send_, |
151 | | - }; |
152 | | - let gps_s = GpsTimeTests::new(); |
153 | | - let mut main = MainTab::new(shared_state, client_send); |
154 | | - let early_gps_time_good = GpsTime::new(gps_s.good_week, gps_s.early_gps_tow_good).unwrap(); |
155 | | - let later_gps_time_good = GpsTime::new(gps_s.zero_week, gps_s.later_gps_tow_good); |
156 | | - main.last_gps_time = Some(early_gps_time_good); |
157 | | - let now = Instant::now(); |
158 | | - main.last_gps_update = Instant::now(); |
159 | | - main.realtime_delay(Some(later_gps_time_good)); |
160 | | - assert!( |
161 | | - now.elapsed() |
162 | | - > Duration::from_secs_f64(gps_s.later_gps_tow_good - gps_s.early_gps_tow_good) |
163 | | - ); |
164 | | - } |
165 | 108 |
|
166 | 109 | #[test] |
167 | 110 | fn realtime_delay_no_last_test() { |
|
0 commit comments