Commit ddbbda41 authored by Alessandro Rubini's avatar Alessandro Rubini Committed by Grzegorz Daniluk

general: fix for new time data structures

Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
parent 8f71d69a
...@@ -866,9 +866,9 @@ static int get_servo(uint8_t *buf, struct snmp_oid *obj) ...@@ -866,9 +866,9 @@ static int get_servo(uint8_t *buf, struct snmp_oid *obj)
tmp_uint64 = wr_s_state->picos_mu - 2LL * wr_s_state->delta_ms; tmp_uint64 = wr_s_state->picos_mu - 2LL * wr_s_state->delta_ms;
return get_value(buf, obj->asn, &tmp_uint64); return get_value(buf, obj->asn, &tmp_uint64);
case (int)SERVO_UPDATE_TIME: case (int)SERVO_UPDATE_TIME:
tmp_uint64 = ((uint64_t) wr_s_state->update_time.seconds) * tmp_uint64 = ((uint64_t) wr_s_state->update_time.secs) *
1000000000LL 1000000000LL
+ wr_s_state->update_time.nanoseconds; + (wr_s_state->update_time.scaled_nsecs >> 16);
return get_value(buf, obj->asn, &tmp_uint64); return get_value(buf, obj->asn, &tmp_uint64);
default: default:
break; break;
......
...@@ -246,18 +246,20 @@ int wrc_mon_gui(void) ...@@ -246,18 +246,20 @@ int wrc_mon_gui(void)
return 1; return 1;
} }
static inline void cprintf_ti(int color, struct TimeInternal *ti) static inline void cprintf_time(int color, struct pp_time *time)
{ {
if ((ti->seconds > 0) || int s, ns;
((ti->seconds == 0) && (ti->nanoseconds >= 0)))
cprintf(color, "%2i.%09i s", ti->seconds, ti->nanoseconds); s = (int)time->secs;
else { ns = (int)(time->scaled_nsecs >> 16);
if (ti->seconds == 0) if (s > 0 || (s == 0 && ns >= 0)) {
cprintf(color, "-%i.%09i s", ti->seconds, -ti->nanoseconds); cprintf(color, "%2i.%09i s", s, ns);
} else { /* negative */
if (time->secs == 0)
cprintf(color, "-%i.%09i s", s, -ns);
else else
cprintf(color, "%2i.%09i s", ti->seconds, -ti->nanoseconds); cprintf(color, "%i.%09i s", s, -ns);
} }
} }
static void wrc_mon_std_servo(void) static void wrc_mon_std_servo(void)
...@@ -269,16 +271,18 @@ static void wrc_mon_std_servo(void) ...@@ -269,16 +271,18 @@ static void wrc_mon_std_servo(void)
cprintf(C_GREY, "Clock offset: "); cprintf(C_GREY, "Clock offset: ");
if (DSCUR(ppi)->offsetFromMaster.seconds) if (DSCUR(ppi)->offsetFromMaster.secs)
cprintf_ti(C_WHITE, &DSCUR(ppi)->offsetFromMaster); cprintf_time(C_WHITE, &DSCUR(ppi)->offsetFromMaster);
else { else {
cprintf(C_WHITE, "%9i ns", DSCUR(ppi)->offsetFromMaster.nanoseconds); cprintf(C_WHITE, "%9i ns",
(int)(DSCUR(ppi)->offsetFromMaster.scaled_nsecs >> 16));
cprintf(C_GREY, "\nOne-way delay averaged: "); cprintf(C_GREY, "\nOne-way delay averaged: ");
cprintf(C_WHITE, "%9i ns", DSCUR(ppi)->meanPathDelay.nanoseconds); cprintf(C_WHITE, "%9i ns",
(int)(DSCUR(ppi)->meanPathDelay.scaled_nsecs >> 16));
cprintf(C_GREY, "\nObserved drift: "); cprintf(C_GREY, "\nObserved drift: ");
cprintf(C_WHITE, "%9i ns", SRV(ppi)->obs_drift); cprintf(C_WHITE, "%9i ns",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