Update offset correction errors only when needed
This commit is contained in:
parent
fa84496423
commit
1faeb45063
5 changed files with 13 additions and 12 deletions
7
local.c
7
local.c
|
@ -349,13 +349,8 @@ LCL_CookTime(struct timeval *raw, struct timeval *cooked, double *err)
|
|||
void
|
||||
LCL_GetOffsetCorrection(struct timeval *raw, double *correction, double *err)
|
||||
{
|
||||
double e;
|
||||
|
||||
/* Call system specific driver to get correction */
|
||||
(*drv_offset_convert)(raw, correction, &e);
|
||||
|
||||
if (err)
|
||||
*err = e;
|
||||
(*drv_offset_convert)(raw, correction, err);
|
||||
}
|
||||
|
||||
/* ================================================== */
|
||||
|
|
|
@ -800,7 +800,6 @@ get_offset_correction(struct timeval *raw,
|
|||
slow_slewing = 0;
|
||||
}
|
||||
}
|
||||
update_slow_slew_error(offset);
|
||||
|
||||
if (!nano_slewing) {
|
||||
noffset = 0;
|
||||
|
@ -812,7 +811,6 @@ get_offset_correction(struct timeval *raw,
|
|||
nano_slewing = 0;
|
||||
}
|
||||
}
|
||||
update_nano_slew_error(noffset, 0);
|
||||
|
||||
if (fast_slewing) {
|
||||
UTI_DiffTimevalsToDouble(&fast_slew_duration, raw, &slew_start_tv);
|
||||
|
@ -824,7 +822,12 @@ get_offset_correction(struct timeval *raw,
|
|||
}
|
||||
|
||||
*corr = - (offset_register + fast_slew_remaining) + offset / 1.0e6 + noffset / 1.0e9;
|
||||
*err = get_slow_slew_error(raw) + get_fast_slew_error(raw) + get_nano_slew_error();;
|
||||
|
||||
if (err) {
|
||||
update_slow_slew_error(offset);
|
||||
update_nano_slew_error(noffset, 0);
|
||||
*err = get_slow_slew_error(raw) + get_fast_slew_error(raw) + get_nano_slew_error();;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -271,7 +271,8 @@ get_offset_correction(struct timeval *raw,
|
|||
stop_adjust();
|
||||
*corr = -offset_register;
|
||||
start_adjust();
|
||||
*err = 0.0;
|
||||
if (err)
|
||||
*err = 0.0;
|
||||
}
|
||||
|
||||
/* ================================================== */
|
||||
|
|
|
@ -300,7 +300,8 @@ get_offset_correction(struct timeval *raw,
|
|||
stop_adjust();
|
||||
*corr = -offset_register;
|
||||
start_adjust();
|
||||
*err = 0.0;
|
||||
if (err)
|
||||
*err = 0.0;
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -287,7 +287,8 @@ get_offset_correction(struct timeval *raw,
|
|||
stop_adjust();
|
||||
*corr = -offset_register;
|
||||
start_adjust();
|
||||
*err = 0.0;
|
||||
if (err)
|
||||
*err = 0.0;
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue