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
|
void
|
||||||
LCL_GetOffsetCorrection(struct timeval *raw, double *correction, double *err)
|
LCL_GetOffsetCorrection(struct timeval *raw, double *correction, double *err)
|
||||||
{
|
{
|
||||||
double e;
|
|
||||||
|
|
||||||
/* Call system specific driver to get correction */
|
/* Call system specific driver to get correction */
|
||||||
(*drv_offset_convert)(raw, correction, &e);
|
(*drv_offset_convert)(raw, correction, err);
|
||||||
|
|
||||||
if (err)
|
|
||||||
*err = e;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ================================================== */
|
/* ================================================== */
|
||||||
|
|
|
@ -800,7 +800,6 @@ get_offset_correction(struct timeval *raw,
|
||||||
slow_slewing = 0;
|
slow_slewing = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
update_slow_slew_error(offset);
|
|
||||||
|
|
||||||
if (!nano_slewing) {
|
if (!nano_slewing) {
|
||||||
noffset = 0;
|
noffset = 0;
|
||||||
|
@ -812,7 +811,6 @@ get_offset_correction(struct timeval *raw,
|
||||||
nano_slewing = 0;
|
nano_slewing = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
update_nano_slew_error(noffset, 0);
|
|
||||||
|
|
||||||
if (fast_slewing) {
|
if (fast_slewing) {
|
||||||
UTI_DiffTimevalsToDouble(&fast_slew_duration, raw, &slew_start_tv);
|
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;
|
*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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -271,7 +271,8 @@ get_offset_correction(struct timeval *raw,
|
||||||
stop_adjust();
|
stop_adjust();
|
||||||
*corr = -offset_register;
|
*corr = -offset_register;
|
||||||
start_adjust();
|
start_adjust();
|
||||||
*err = 0.0;
|
if (err)
|
||||||
|
*err = 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ================================================== */
|
/* ================================================== */
|
||||||
|
|
|
@ -300,7 +300,8 @@ get_offset_correction(struct timeval *raw,
|
||||||
stop_adjust();
|
stop_adjust();
|
||||||
*corr = -offset_register;
|
*corr = -offset_register;
|
||||||
start_adjust();
|
start_adjust();
|
||||||
*err = 0.0;
|
if (err)
|
||||||
|
*err = 0.0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -287,7 +287,8 @@ get_offset_correction(struct timeval *raw,
|
||||||
stop_adjust();
|
stop_adjust();
|
||||||
*corr = -offset_register;
|
*corr = -offset_register;
|
||||||
start_adjust();
|
start_adjust();
|
||||||
*err = 0.0;
|
if (err)
|
||||||
|
*err = 0.0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue