diff --git a/userspace/tools/wr_mon.c b/userspace/tools/wr_mon.c index 2a1d345db1e437a13ed2168ae1d8f91526f8c622..73566beae0d693db7c6dbfc3f118b684feb0b119 100644 --- a/userspace/tools/wr_mon.c +++ b/userspace/tools/wr_mon.c @@ -268,6 +268,20 @@ int64_t pp_time_to_picos(struct pp_time *ts) + ((ts->scaled_nsecs * 1000 + 0x8000) >> TIME_INTERVAL_FRACBITS); } +TimeInterval pp_time_to_interval (struct pp_time *pptime) { + return pptime->scaled_nsecs; +} + +char *optimized_pp_time_toString(struct pp_time *pptime, char *buf ) { + char lbuf[128]; + + if ( pptime->secs ) + sprintf(buf,"%16s sec",timeToString(pptime,lbuf)); + else + sprintf(buf,"%16s nsec",timeIntervalToString(pp_time_to_interval(pptime),lbuf)); + return buf; +} + #if 0 static double alpha_to_double(int32_t alpha) { double f ; @@ -852,6 +866,7 @@ void show_servo(struct inst_servo_t *servo, int alive) } if (mode == SHOW_GUI) { + if (!(servo->servo_snapshot.flags & PP_SERVO_FLAG_VALID)) { term_cprintf(C_RED, "Master mode or sync info not valid\n"); @@ -879,7 +894,10 @@ void show_servo(struct inst_servo_t *servo, int alive) term_cprintf(C_WHITE, "%16s nsec\n", timeIntervalToString(servo->meanDelay,buf) ); term_cprintf(C_CYAN," | ");term_cprintf(C_BLUE, "delayMS : "); - term_cprintf(C_WHITE, "%16s sec\n",timeToString(&servo->servo_snapshot.delayMS,buf)); + term_cprintf(C_WHITE,"%s\n",optimized_pp_time_toString(&servo->servo_snapshot.delayMS,buf)); + + term_cprintf(C_CYAN," | ");term_cprintf(C_BLUE, "delayMM : "); + term_cprintf(C_WHITE,"%s\n",optimized_pp_time_toString(&servo->servo_snapshot.delayMM,buf)); //term_cprintf(C_BLUE, "Estimated link length: "); /* (RTT - deltas) / 2 * c / ri @@ -917,10 +935,10 @@ void show_servo(struct inst_servo_t *servo, int alive) if ( wr_servo ) { term_cprintf(C_CYAN," | ");term_cprintf(C_BLUE, "Phase setpoint : "); - term_cprintf(C_WHITE, "%15.3f nsec\n",wr_servo->cur_setpoint_ps/1000.0); + term_cprintf(C_WHITE, "%16.3f nsec\n",wr_servo->cur_setpoint_ps/1000.0); term_cprintf(C_CYAN," | ");term_cprintf(C_BLUE, "Skew : "); - term_cprintf(C_WHITE, "%15.3f nsec\n",wr_servo->skew_ps/1000.0); + term_cprintf(C_WHITE, "%16.3f nsec\n",wr_servo->skew_ps/1000.0); } if ( l1e_servo ) { @@ -940,15 +958,16 @@ void show_servo(struct inst_servo_t *servo, int alive) if ( wr_servo ) { term_cprintf(C_CYAN," | ");term_cprintf(C_BLUE, "Master PHY delays "); term_cprintf(C_BLUE, "TX: "); - term_cprintf(C_WHITE, "%s sec, ", timeToString(&wr_servo_ext->delta_txm,buf)); - term_cprintf(C_BLUE, "RX: "); - term_cprintf(C_WHITE, "%s sec\n", timeToString(&wr_servo_ext->delta_rxm,buf)); + term_cprintf(C_WHITE,"%s",optimized_pp_time_toString(&wr_servo_ext->delta_txm,buf)); + term_cprintf(C_BLUE, " RX: "); + term_cprintf(C_WHITE,"%s\n",optimized_pp_time_toString(&wr_servo_ext->delta_rxm,buf)); term_cprintf(C_CYAN," | ");term_cprintf(C_BLUE, "Slave PHY delays "); term_cprintf(C_BLUE, "TX: "); - term_cprintf(C_WHITE, "%s sec, ", timeToString(&wr_servo_ext->delta_txs,buf)); - term_cprintf(C_BLUE, "RX: "); - term_cprintf(C_WHITE, "%s sec\n",timeToString(&wr_servo_ext->delta_rxs,buf)); + term_cprintf(C_WHITE,"%s",optimized_pp_time_toString(&wr_servo_ext->delta_txs,buf)); + term_cprintf(C_BLUE, " RX: "); + term_cprintf(C_WHITE,"%s\n",optimized_pp_time_toString(&wr_servo_ext->delta_rxs,buf)); + printf("\n"); } } else { /* TJP: commented out fields are present on the SPEC,