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); ...@@ -304,7 +304,6 @@ extern int from_TimeInternal(TimeInternal *internal, Timestamp *external);
extern int to_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 add_TimeInternal(TimeInternal *r, TimeInternal *x, TimeInternal *y);
extern void sub_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); extern void div2_TimeInternal(TimeInternal *r);
/* /*
......
...@@ -73,6 +73,7 @@ int to_TimeInternal(TimeInternal *internal, Timestamp *external) ...@@ -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) static void normalize_TimeInternal(TimeInternal *r)
{ {
r->seconds += r->nanoseconds / PP_NSEC_PER_SEC; r->seconds += r->nanoseconds / PP_NSEC_PER_SEC;
...@@ -111,11 +112,3 @@ void div2_TimeInternal(TimeInternal *r) ...@@ -111,11 +112,3 @@ void div2_TimeInternal(TimeInternal *r)
normalize_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) ...@@ -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 */ /* called only *exactly* after calling pp_update_offset above */
void pp_update_clock(struct pp_instance *ppi) void pp_update_clock(struct pp_instance *ppi)
{ {
char s[24];
__pp_update_clock(ppi); __pp_update_clock(ppi);
pp_diag(ppi, servo, 2, "Raw offset from master: %9i.%09i\n", format_TimeInternal(s, &SRV(ppi)->m_to_s_dly);
(int)SRV(ppi)->m_to_s_dly.seconds, pp_diag(ppi, servo, 2, "Raw offset from master: %s\n", s);
(int)SRV(ppi)->m_to_s_dly.nanoseconds); format_TimeInternal(s, &DSCUR(ppi)->meanPathDelay);
pp_diag(ppi, servo, 2, "One-way delay averaged: %9i.%09i\n", pp_diag(ppi, servo, 2, "One-way delay averaged: %s\n", s);
(int)DSCUR(ppi)->meanPathDelay.seconds, format_TimeInternal(s, &DSCUR(ppi)->offsetFromMaster);
(int)DSCUR(ppi)->meanPathDelay.nanoseconds); pp_diag(ppi, servo, 2, "Offset from master: %s\n", s);
pp_diag(ppi, servo, 2, "Offset from master: %9i.%09i\n",
(int)DSCUR(ppi)->offsetFromMaster.seconds,
(int)DSCUR(ppi)->offsetFromMaster.nanoseconds);
pp_diag(ppi, servo, 2, "Observed drift: %9i\n", pp_diag(ppi, servo, 2, "Observed drift: %9i\n",
(int)SRV(ppi)->obs_drift); (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