From 2d0d246b56424c4048baad2b60aebf19dd1370bb Mon Sep 17 00:00:00 2001
From: Adam Wujek <dev_public@wujek.eu>
Date: Thu, 13 Apr 2023 22:00:18 +0200
Subject: [PATCH] userspace/tools: add estimated link length to wr_mon (and web
 interface)

Signed-off-by: Adam Wujek <dev_public@wujek.eu>
---
 userspace/tools/wr_mon.c | 57 ++++++++++++++++++++++++++++------------
 1 file changed, 40 insertions(+), 17 deletions(-)

diff --git a/userspace/tools/wr_mon.c b/userspace/tools/wr_mon.c
index ef190aa18..8cc5f1fdd 100644
--- a/userspace/tools/wr_mon.c
+++ b/userspace/tools/wr_mon.c
@@ -910,15 +910,6 @@ void show_servo(struct inst_servo_t *servo, int alive)
 			term_cprintf(C_WHITE,"%s\n",optimized_pp_time_toString(delayMM,buf));
 		}
 
-		//term_cprintf(C_BLUE, "Estimated link length:     ");
-		/* (RTT - deltas) / 2 * c / ri
-		 c = 299792458 - speed of light in m/s
-		 ri = 1.4682 - refractive index for fiber g.652. However,
-			       experimental measurements using long (~5km) and
-			       short (few m) fibers gave a value 1.4827
-		 */
-		//term_cprintf(C_WHITE, "%10.2f meters\n",
-		//	crtt / 2 / 1e6 * 299.792458 / 1.4827);
 
 
 		term_cprintf(C_CYAN," | ");term_cprintf(C_BLUE,  "delayAsymmetry   : ");
@@ -950,6 +941,17 @@ void show_servo(struct inst_servo_t *servo, int alive)
 
 			term_cprintf(C_CYAN," | ");term_cprintf(C_BLUE, "Skew             : ");
 			term_cprintf(C_WHITE, "%16.3f nsec\n",wr_servo->skew_ps/1000.0);
+			term_cprintf(C_CYAN," | "); term_cprintf(C_BLUE, "Estimated link len:      ");
+			/* crtt / 2 * c / ri
+			c = 299792458 - speed of light in m/s
+			ri = 1.4682 - refractive index for fiber g.652. However,
+				    experimental measurements using long (~5km) and
+				    short (few m) fibers gave a value 1.4688.
+				    For different wavelengths this value will be different
+				    Please note that this value is just an estimation.
+			*/
+			term_cprintf(C_WHITE, "%10.3f meters\n",
+				     wr_servo->delayMM_ps / 2 / 1e6 * 299.792458 / 1.4688);
 		}
 
 		if ( l1e_servo ) {
@@ -958,6 +960,17 @@ void show_servo(struct inst_servo_t *servo, int alive)
 
 			term_cprintf(C_CYAN," | ");term_cprintf(C_BLUE, "Skew             : ");
 			term_cprintf(C_WHITE, "%16.3f nsec\n",l1e_servo->skew_ps/1000.0);
+			term_cprintf(C_CYAN," | "); term_cprintf(C_BLUE, "Estimated link len:      ");
+			/* crtt / 2 * c / ri
+			c = 299792458 - speed of light in m/s
+			ri = 1.4682 - refractive index for fiber g.652. However,
+				    experimental measurements using long (~5km) and
+				    short (few m) fibers gave a value 1.4688.
+				    For different wavelengths this value will be different
+				    Please note that this value is just an estimation.
+			*/
+			term_cprintf(C_WHITE, "%10.3f meters\n",
+				     l1e_servo->delayMM_ps / 2 / 1e6 * 299.792458 / 1.4688);
 		}
 		term_cprintf(C_CYAN," | ");term_cprintf(C_BLUE, "Update counter   : ");
 		term_cprintf(C_WHITE, "%16u times\n", servo->servo_snapshot.update_count);
@@ -999,21 +1012,31 @@ void show_servo(struct inst_servo_t *servo, int alive)
 			printf("drxm:%s ", timeToString(&wr_servo_ext->delta_rxm,buf));
 			printf("dtxs:%s ", timeToString(&wr_servo_ext->delta_txs,buf));
 			printf("drxs:%s ", timeToString(&wr_servo_ext->delta_rxs,buf));
-		/* (RTT - deltas) / 2 * c / ri
-		 c = 299792458 - speed of light in m/s
-		 ri = 1.4682 - refractive index for fiber g.652. However,
-			       experimental measurements using long (~5km) and
-			       short (few m) fibers gave a value 1.4827
-		 */
-		//printf("ll:%d ",
-		//       (int) (crtt / 2 / 1e6 * 299.792458 / 1.4827 * 100));
 			printf("crtt:%lld ", wr_servo->delayMM_ps);
 			printf("setp:%d ", wr_servo->cur_setpoint_ps);
+			/* crtt / 2 * c / ri
+			c = 299792458 - speed of light in m/s
+			ri = 1.4682 - refractive index for fiber g.652. However,
+				      experimental measurements using long (~5km) and
+				      short (few m) fibers gave a value 1.4688.
+				      For different wavelengths this value will be different
+				      Please note that this value is just an estimation.
+			*/
+			printf("ll:%.3f ", wr_servo->delayMM_ps / 2 / 1e6 * 299.792458 / 1.4688);
 		}
 		if ( l1e_servo ) {
 			printf("lock:%i ", l1e_servo->tracking_enabled);
 			printf("crtt:%lld ", l1e_servo->delayMM_ps);
 			printf("setp:%d ", l1e_servo->cur_setpoint_ps);
+			/* crtt / 2 * c / ri
+			c = 299792458 - speed of light in m/s
+			ri = 1.4682 - refractive index for fiber g.652. However,
+				      experimental measurements using long (~5km) and
+				      short (few m) fibers gave a value 1.4688.
+				      For different wavelengths this value will be different
+				      Please note that this value is just an estimation.
+			*/
+			printf("ll:%.3f ", l1e_servo->delayMM_ps / 2 / 1e6 * 299.792458 / 1.4688);
 		}
 		printf("asym:%s ", timeIntervalToString(servo->delayAsymmetry,buf));
 		printf("cko:%s ", timeIntervalToString(servo->offsetFromMaster,buf));
-- 
GitLab