Make use of UTI_AdjustTimeval in slew handlers
This commit is contained in:
parent
f851e1f90e
commit
40d82675bd
7 changed files with 18 additions and 35 deletions
7
manual.c
7
manual.c
|
@ -232,12 +232,11 @@ slew_samples(struct timeval *raw,
|
|||
int is_step_change,
|
||||
void *not_used)
|
||||
{
|
||||
double elapsed, delta_time;
|
||||
double delta_time;
|
||||
int i;
|
||||
for (i=0; i<n_samples; i++) {
|
||||
UTI_DiffTimevalsToDouble(&elapsed, cooked, &samples[i].when);
|
||||
delta_time = elapsed * dfreq - doffset;
|
||||
UTI_AddDoubleToTimeval(&samples[i].when, delta_time, &samples[i].when);
|
||||
UTI_AdjustTimeval(&samples[i].when, cooked, &samples[i].when, &delta_time,
|
||||
dfreq, doffset);
|
||||
samples[i].offset += delta_time;
|
||||
}
|
||||
return;
|
||||
|
|
|
@ -1630,14 +1630,15 @@ void
|
|||
NCR_SlewTimes(NCR_Instance inst, struct timeval *when, double dfreq, double doffset)
|
||||
{
|
||||
struct timeval prev;
|
||||
double delta;
|
||||
prev = inst->local_rx;
|
||||
UTI_AdjustTimeval(&inst->local_rx, when, &inst->local_rx, dfreq, doffset);
|
||||
UTI_AdjustTimeval(&inst->local_rx, when, &inst->local_rx, &delta, dfreq, doffset);
|
||||
#ifdef TRACEON
|
||||
LOG(LOGS_INFO, LOGF_NtpCore, "rx prev=[%s] new=[%s]",
|
||||
UTI_TimevalToString(&prev), UTI_TimevalToString(&inst->local_rx));
|
||||
#endif
|
||||
prev = inst->local_tx;
|
||||
UTI_AdjustTimeval(&inst->local_tx, when, &inst->local_tx, dfreq, doffset);
|
||||
UTI_AdjustTimeval(&inst->local_tx, when, &inst->local_tx, &delta, dfreq, doffset);
|
||||
#ifdef TRACEON
|
||||
LOG(LOGS_INFO, LOGF_NtpCore, "tx prev=[%s] new=[%s]",
|
||||
UTI_TimevalToString(&prev), UTI_TimevalToString(&inst->local_tx));
|
||||
|
|
|
@ -859,16 +859,12 @@ static void
|
|||
filter_slew_samples(struct MedianFilter *filter, struct timeval *when, double dfreq, double doffset)
|
||||
{
|
||||
int i;
|
||||
double elapsed, delta_time, prev_offset;
|
||||
double delta_time, prev_offset;
|
||||
struct timeval *sample;
|
||||
|
||||
for (i = 0; i < filter->used; i++) {
|
||||
sample = &filter->samples[i].sample_time;
|
||||
|
||||
UTI_DiffTimevalsToDouble(&elapsed, when, sample);
|
||||
delta_time = elapsed * dfreq - doffset;
|
||||
UTI_AddDoubleToTimeval(sample, delta_time, sample);
|
||||
|
||||
UTI_AdjustTimeval(sample, when, sample, &delta_time, dfreq, doffset);
|
||||
prev_offset = filter->samples[i].offset;
|
||||
filter->samples[i].offset -= delta_time;
|
||||
#if 0
|
||||
|
|
|
@ -307,17 +307,12 @@ slew_samples
|
|||
void *anything)
|
||||
{
|
||||
int i;
|
||||
double elapsed;
|
||||
double delta_time;
|
||||
double old_seconds_fast, old_gain_rate;
|
||||
|
||||
for (i=0; i<n_samples; i++) {
|
||||
UTI_DiffTimevalsToDouble(&elapsed, cooked, system_times + i);
|
||||
|
||||
delta_time = elapsed * dfreq - doffset;
|
||||
|
||||
UTI_AddDoubleToTimeval(system_times + i, delta_time, system_times + i);
|
||||
|
||||
UTI_AdjustTimeval(system_times + i, cooked, system_times + i, &delta_time,
|
||||
dfreq, doffset);
|
||||
}
|
||||
|
||||
old_seconds_fast = coef_seconds_fast;
|
||||
|
|
|
@ -635,7 +635,6 @@ void
|
|||
SST_SlewSamples(SST_Stats inst, struct timeval *when, double dfreq, double doffset)
|
||||
{
|
||||
int n, i;
|
||||
double elapsed;
|
||||
double delta_time;
|
||||
struct timeval *sample, prev;
|
||||
double prev_offset, prev_freq;
|
||||
|
@ -645,13 +644,7 @@ SST_SlewSamples(SST_Stats inst, struct timeval *when, double dfreq, double doffs
|
|||
for (i=0; i<n; i++) {
|
||||
sample = &(inst->sample_times[i]);
|
||||
prev = *sample;
|
||||
#if 0
|
||||
UTI_AdjustTimeval(sample, when, sample, dfreq, doffset);
|
||||
/* Can't easily use this because we need to slew offset */
|
||||
#endif
|
||||
UTI_DiffTimevalsToDouble(&elapsed, when, sample);
|
||||
delta_time = elapsed * dfreq - doffset;
|
||||
UTI_AddDoubleToTimeval(sample, delta_time, sample);
|
||||
UTI_AdjustTimeval(sample, when, sample, &delta_time, dfreq, doffset);
|
||||
prev_offset = inst->offsets[i];
|
||||
inst->offsets[i] += delta_time;
|
||||
#ifdef TRACEON
|
||||
|
@ -662,12 +655,11 @@ SST_SlewSamples(SST_Stats inst, struct timeval *when, double dfreq, double doffs
|
|||
}
|
||||
|
||||
/* Do a half-baked update to the regression estimates */
|
||||
UTI_DiffTimevalsToDouble(&elapsed, when, &(inst->offset_time));
|
||||
prev = inst->offset_time;
|
||||
delta_time = elapsed * dfreq - doffset;
|
||||
UTI_AddDoubleToTimeval(&(inst->offset_time), delta_time, &(inst->offset_time));
|
||||
prev_offset = inst->estimated_offset;
|
||||
prev_freq = inst->estimated_frequency;
|
||||
UTI_AdjustTimeval(&(inst->offset_time), when, &(inst->offset_time),
|
||||
&delta_time, dfreq, doffset);
|
||||
inst->estimated_offset += delta_time;
|
||||
inst->estimated_frequency -= dfreq;
|
||||
|
||||
|
|
8
util.c
8
util.c
|
@ -442,13 +442,13 @@ UTI_TimeToLogForm(time_t t)
|
|||
/* ================================================== */
|
||||
|
||||
void
|
||||
UTI_AdjustTimeval(struct timeval *old_tv, struct timeval *when, struct timeval *new_tv, double dfreq, double doffset)
|
||||
UTI_AdjustTimeval(struct timeval *old_tv, struct timeval *when, struct timeval *new_tv, double *delta_time, double dfreq, double doffset)
|
||||
{
|
||||
double elapsed, delta_time;
|
||||
double elapsed;
|
||||
|
||||
UTI_DiffTimevalsToDouble(&elapsed, when, old_tv);
|
||||
delta_time = elapsed * dfreq - doffset;
|
||||
UTI_AddDoubleToTimeval(old_tv, delta_time, new_tv);
|
||||
*delta_time = elapsed * dfreq - doffset;
|
||||
UTI_AddDoubleToTimeval(old_tv, *delta_time, new_tv);
|
||||
}
|
||||
|
||||
/* ================================================== */
|
||||
|
|
2
util.h
2
util.h
|
@ -89,7 +89,7 @@ extern int UTI_CompareIPs(IPAddr *a, IPAddr *b, IPAddr *mask);
|
|||
extern char *UTI_TimeToLogForm(time_t t);
|
||||
|
||||
/* Adjust time following a frequency/offset change */
|
||||
extern void UTI_AdjustTimeval(struct timeval *old_tv, struct timeval *when, struct timeval *new_tv, double dfreq, double doffset);
|
||||
extern void UTI_AdjustTimeval(struct timeval *old_tv, struct timeval *when, struct timeval *new_tv, double *delta, double dfreq, double doffset);
|
||||
|
||||
|
||||
extern void UTI_TimevalToInt64(struct timeval *src, NTP_int64 *dest);
|
||||
|
|
Loading…
Reference in a new issue