Commit c35f000f authored by Alessandro Rubini's avatar Alessandro Rubini

diag: fix output of negative time internals

Servo logs show strings like "0.-00071881". We already had an unused
display_TimeInternal, which is correct. This turns it into an sprintf
and uses it as a static function in servo.c (only printer of
TimeInternals, it seems).

Meanwhile, this also removes the last pp_Vprintf.
Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
parent d7904dd2
......@@ -304,7 +304,6 @@ extern int from_TimeInternal(TimeInternal *internal, Timestamp *external);
extern int to_TimeInternal(TimeInternal *internal, Timestamp *external);
extern void add_TimeInternal(TimeInternal *r, TimeInternal *x, TimeInternal *y);
extern void sub_TimeInternal(TimeInternal *r, TimeInternal *x, TimeInternal *y);
extern void display_TimeInternal(const char *label, TimeInternal *t);
extern void div2_TimeInternal(TimeInternal *r);
/*
......
......@@ -73,6 +73,7 @@ int to_TimeInternal(TimeInternal *internal, Timestamp *external)
}
}
/* A negative TimeInternal has both secs and nsecs <= 0 */
static void normalize_TimeInternal(TimeInternal *r)
{
r->seconds += r->nanoseconds / PP_NSEC_PER_SEC;
......@@ -111,11 +112,3 @@ void div2_TimeInternal(TimeInternal *r)
normalize_TimeInternal(r);
}
void display_TimeInternal(const char *label, TimeInternal *t)
{
pp_Vprintf("%s: %s%d.%09d\n", label,
(t->seconds < 0 || (t->seconds == 0 && t->nanoseconds < 0))
? "-" : " ",
(int)abs(t->seconds), (int)abs(t->nanoseconds));
}
......@@ -235,20 +235,28 @@ static void __pp_update_clock(struct pp_instance *ppi)
}
}
static void format_TimeInternal(char *s, TimeInternal *t)
{
pp_sprintf(s, "%s%d.%09d",
(t->seconds < 0 || (t->seconds == 0 && t->nanoseconds < 0))
? "-" : " ",
(int)abs(t->seconds), (int)abs(t->nanoseconds));
}
/* called only *exactly* after calling pp_update_offset above */
void pp_update_clock(struct pp_instance *ppi)
{
char s[24];
__pp_update_clock(ppi);
pp_diag(ppi, servo, 2, "Raw offset from master: %9i.%09i\n",
(int)SRV(ppi)->m_to_s_dly.seconds,
(int)SRV(ppi)->m_to_s_dly.nanoseconds);
pp_diag(ppi, servo, 2, "One-way delay averaged: %9i.%09i\n",
(int)DSCUR(ppi)->meanPathDelay.seconds,
(int)DSCUR(ppi)->meanPathDelay.nanoseconds);
pp_diag(ppi, servo, 2, "Offset from master: %9i.%09i\n",
(int)DSCUR(ppi)->offsetFromMaster.seconds,
(int)DSCUR(ppi)->offsetFromMaster.nanoseconds);
format_TimeInternal(s, &SRV(ppi)->m_to_s_dly);
pp_diag(ppi, servo, 2, "Raw offset from master: %s\n", s);
format_TimeInternal(s, &DSCUR(ppi)->meanPathDelay);
pp_diag(ppi, servo, 2, "One-way delay averaged: %s\n", s);
format_TimeInternal(s, &DSCUR(ppi)->offsetFromMaster);
pp_diag(ppi, servo, 2, "Offset from master: %s\n", s);
pp_diag(ppi, servo, 2, "Observed drift: %9i\n",
(int)SRV(ppi)->obs_drift);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment