refclock: set default precision to precision of system clock

This commit is contained in:
Miroslav Lichvar 2017-06-16 13:39:01 +02:00
parent 018a1c42b0
commit 0dbfe020ad
2 changed files with 4 additions and 9 deletions

View file

@ -505,9 +505,8 @@ algorithm. Increasing the delay is useful to avoid having no majority in the
source selection or to make it prefer other sources. The default is 1e-9 (1 source selection or to make it prefer other sources. The default is 1e-9 (1
nanosecond). nanosecond).
*precision* _precision_::: *precision* _precision_:::
This option sets the refclock precision (in seconds). The default is 1e-6 (1 This option sets the precision of the reference clock (in seconds). The default
microsecond) for SHM refclock, and 1e-9 (1 nanosecond) for SOCK, PPS and PHC value is the estimated precision of the system clock.
refclocks.
*maxdispersion* _dispersion_::: *maxdispersion* _dispersion_:::
Maximum allowed dispersion for filtered samples (in seconds). Samples with Maximum allowed dispersion for filtered samples (in seconds). Samples with
larger estimated dispersion are ignored. By default, this limit is disabled. larger estimated dispersion are ignored. By default, this limit is disabled.

View file

@ -173,16 +173,12 @@ RCL_AddRefclock(RefclockParameters *params)
if (strcmp(params->driver_name, "SHM") == 0) { if (strcmp(params->driver_name, "SHM") == 0) {
inst->driver = &RCL_SHM_driver; inst->driver = &RCL_SHM_driver;
inst->precision = 1e-6;
} else if (strcmp(params->driver_name, "SOCK") == 0) { } else if (strcmp(params->driver_name, "SOCK") == 0) {
inst->driver = &RCL_SOCK_driver; inst->driver = &RCL_SOCK_driver;
inst->precision = 1e-9;
} else if (strcmp(params->driver_name, "PPS") == 0) { } else if (strcmp(params->driver_name, "PPS") == 0) {
inst->driver = &RCL_PPS_driver; inst->driver = &RCL_PPS_driver;
inst->precision = 1e-9;
} else if (strcmp(params->driver_name, "PHC") == 0) { } else if (strcmp(params->driver_name, "PHC") == 0) {
inst->driver = &RCL_PHC_driver; inst->driver = &RCL_PHC_driver;
inst->precision = 1e-9;
} else { } else {
LOG_FATAL("unknown refclock driver %s", params->driver_name); LOG_FATAL("unknown refclock driver %s", params->driver_name);
return 0; return 0;
@ -207,8 +203,8 @@ RCL_AddRefclock(RefclockParameters *params)
inst->lock_ref = params->lock_ref_id; inst->lock_ref = params->lock_ref_id;
inst->offset = params->offset; inst->offset = params->offset;
inst->delay = params->delay; inst->delay = params->delay;
if (params->precision > 0.0) inst->precision = LCL_GetSysPrecisionAsQuantum();
inst->precision = params->precision; inst->precision = MAX(inst->precision, params->precision);
inst->pulse_width = params->pulse_width; inst->pulse_width = params->pulse_width;
inst->timeout_id = -1; inst->timeout_id = -1;
inst->source = NULL; inst->source = NULL;