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);
}
/* ================================================== */
slow_slewing = 0;
}
}
- update_slow_slew_error(offset);
if (!nano_slewing) {
noffset = 0;
nano_slewing = 0;
}
}
- update_nano_slew_error(noffset, 0);
if (fast_slewing) {
UTI_DiffTimevalsToDouble(&fast_slew_duration, raw, &slew_start_tv);
}
*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;
}
stop_adjust();
*corr = -offset_register;
start_adjust();
- *err = 0.0;
+ if (err)
+ *err = 0.0;
}
/* ================================================== */
stop_adjust();
*corr = -offset_register;
start_adjust();
- *err = 0.0;
+ if (err)
+ *err = 0.0;
return;
}
stop_adjust();
*corr = -offset_register;
start_adjust();
- *err = 0.0;
+ if (err)
+ *err = 0.0;
return;
}