@@ -256,6 +256,16 @@ pub fn resolve<'a, 'b, CK: ClockStateProvider, O: OrbitSource>(
256
256
257
257
// TODO: RTK
258
258
//candidate.set_remote_observations(remote);
259
+ let target = & ( * sv, observable. clone ( ) ) ;
260
+
261
+ let tracker = match trackers. get_mut ( target) {
262
+ None => {
263
+ // initialize new tracker
264
+ trackers. insert ( ( * sv, observable. clone ( ) ) , SVTracker :: default ( ) ) ;
265
+ trackers. get_mut ( target) . unwrap ( )
266
+ } ,
267
+ Some ( tracker) => tracker,
268
+ } ;
259
269
260
270
match solver. resolve ( * t, & vec ! [ candidate] ) {
261
271
Ok ( ( t, pvt_solution) ) => {
@@ -297,18 +307,6 @@ pub fn resolve<'a, 'b, CK: ClockStateProvider, O: OrbitSource>(
297
307
elevation,
298
308
} ;
299
309
300
- let target = & ( * sv, observable. clone ( ) ) ;
301
-
302
- let tracker = match trackers. get_mut ( target) {
303
- None => {
304
- // initialize new tracker
305
- trackers
306
- . insert ( ( * sv, observable. clone ( ) ) , SVTracker :: default ( ) ) ;
307
- trackers. get_mut ( target) . unwrap ( )
308
- } ,
309
- Some ( tracker) => tracker,
310
- } ;
311
-
312
310
// // verify buffer continuity
313
311
// if !tracker.no_gaps(dominant_sampling_period) {
314
312
// // on any discontinuity we need to reset
@@ -398,9 +396,6 @@ pub fn resolve<'a, 'b, CK: ClockStateProvider, O: OrbitSource>(
398
396
// TODO: most likely we should reset the SV signal tracker here
399
397
} ,
400
398
} //.fit()
401
-
402
- // reset so we start a new track
403
- tracker. reset ( ) ;
404
399
}
405
400
// time to release a track
406
401
else {
@@ -423,6 +418,10 @@ pub fn resolve<'a, 'b, CK: ClockStateProvider, O: OrbitSource>(
423
418
// }
424
419
} ,
425
420
} //.pvt resolve
421
+ // after release, reset so we start a new track
422
+ if should_release {
423
+ tracker. reset ( ) ;
424
+ }
426
425
} // for all OBS
427
426
} //.sv()
428
427
}
0 commit comments