From 90040628fd1a3fbf0280103ec69b2d66d737970f Mon Sep 17 00:00:00 2001
From: Adam Wujek <adam.wujek@cern.ch>
Date: Fri, 20 Feb 2015 18:30:44 +0100
Subject: [PATCH] monitor: remove getting data from servo via cur_servo_state

Signed-off-by: Adam Wujek <adam.wujek@cern.ch>
---
 monitor/monitor_ppsi.c | 105 ++++++++---------------------------------
 ppsi                   |   2 +-
 2 files changed, 21 insertions(+), 86 deletions(-)

diff --git a/monitor/monitor_ppsi.c b/monitor/monitor_ppsi.c
index 374a01b..95522c8 100644
--- a/monitor/monitor_ppsi.c
+++ b/monitor/monitor_ppsi.c
@@ -23,8 +23,6 @@
 #include "hal_exports.h"
 #include "lib/ipv4.h"
 
-struct ptpdexp_sync_state_t;
-extern ptpdexp_sync_state_t cur_servo_state;
 extern int wrc_man_phase;
 
 extern struct pp_servo servo;
@@ -51,6 +49,8 @@ char* print64(uint64_t x)
 
 int wrc_mon_status()
 {
+	struct wr_servo_state_t *s =
+			&((struct wr_data_t *)ppi->ext_data)->servo_state;
 	struct pp_state_table_item *ip = NULL;
 	for (ip = pp_state_table; ip->state != PPS_END_OF_TABLE; ip++) {
 		if (ip->state == ppi->state)
@@ -60,7 +60,7 @@ int wrc_mon_status()
 	cprintf(C_BLUE, "\n\nPTP status: ");
 	cprintf(C_WHITE, "%s", ip ? ip->name : "unknown");
 
-	if ((!cur_servo_state.valid) || (ppi->state != PPS_SLAVE)) {
+	if ((!s->valid) || (ppi->state != PPS_SLAVE)) {
 		cprintf(C_RED,
 			"\n\nSync info not valid\n\n");
 		return 0;
@@ -155,23 +155,16 @@ void wrc_mon_gui(void)
 		if (wrc_mon_status() == 0)
 			return;
 
-		cprintf(C_GREY, "Servo state:               ");
-		cprintf(C_WHITE, "%s\n", cur_servo_state.slave_servo_state);
 		cprintf(C_GREY, "Servo state:               ");
 		cprintf(C_WHITE, "%s\n", s->servo_state_name);
 		cprintf(C_GREY, "Phase tracking:            ");
-		if (cur_servo_state.tracking_enabled)
-			cprintf(C_GREEN, "ON\n");
-		else
-			cprintf(C_RED, "OFF\n");
-		cprintf(C_GREY, "Phase tracking:            ");
 		if (s->tracking_enabled)
 			cprintf(C_GREEN, "ON\n");
 		else
 			cprintf(C_RED, "OFF\n");
-		cprintf(C_GREY, "Synchronization source:    ");
-		cprintf(C_WHITE, "%s\n", cur_servo_state.sync_source);
-
+		/* sync source not implemented */
+		/*cprintf(C_GREY, "Synchronization source:    ");
+		cprintf(C_WHITE, "%s\n", cur_servo_state.sync_source);*/
 		cprintf(C_GREY, "Aux clock status:          ");
 
 		aux_stat = spll_get_aux_status(0);
@@ -185,78 +178,45 @@ void wrc_mon_gui(void)
 
 		cprintf(C_BLUE, "\nTiming parameters:\n\n");
 
-		cprintf(C_GREY, "Round-trip time (mu):    ");
-		cprintf(C_WHITE, "%s ps\n", print64(cur_servo_state.mu));
 		cprintf(C_GREY, "Round-trip time (mu):    ");
 		cprintf(C_WHITE, "%s ps\n", print64(s->picos_mu));
 		cprintf(C_GREY, "Master-slave delay:      ");
-		cprintf(C_WHITE, "%s ps\n", print64(cur_servo_state.delay_ms));
-		cprintf(C_GREY, "Master-slave delay:      ");
 		cprintf(C_WHITE, "%s ps\n", print64(s->delta_ms));
 
-		cprintf(C_GREY, "Master PHY delays:       ");
-		cprintf(C_WHITE, "TX: %d ps, RX: %d ps\n",
-			(int32_t) cur_servo_state.delta_tx_m,
-			(int32_t) cur_servo_state.delta_rx_m);
 		cprintf(C_GREY, "Master PHY delays:       ");
 		cprintf(C_WHITE, "TX: %d ps, RX: %d ps\n",
 			(int32_t) s->delta_tx_m,
 			(int32_t) s->delta_rx_m);
 
 		cprintf(C_GREY, "Slave PHY delays:        ");
-		cprintf(C_WHITE, "TX: %d ps, RX: %d ps\n",
-			(int32_t) cur_servo_state.delta_tx_s,
-			(int32_t) cur_servo_state.delta_rx_s);
-		cprintf(C_GREY, "Slave PHY delays:        ");
 		cprintf(C_WHITE, "TX: %d ps, RX: %d ps\n",
 			(int32_t) s->delta_tx_s,
 			(int32_t) s->delta_rx_s);
-		cprintf(C_GREY, "Total link asymmetry:    ");
-		cprintf(C_WHITE, "%9d ps\n",
-			(int32_t) (cur_servo_state.total_asymmetry));
 		total_asymmetry = s->picos_mu - 2LL * s->delta_ms;
 		cprintf(C_GREY, "Total link asymmetry:    ");
 		cprintf(C_WHITE, "%9d ps\n",
 			(int32_t) (total_asymmetry));
 
-		cprintf(C_GREY, "Cable rtt delay:         ");
-		cprintf(C_WHITE, "%s ps\n", print64(cur_servo_state.mu -
-					cur_servo_state.delta_tx_m -
-					cur_servo_state.delta_rx_m -
-					cur_servo_state.delta_tx_s -
-					cur_servo_state.delta_rx_s));
 		crtt = s->picos_mu - s->delta_tx_m - s->delta_rx_m
 		       - s->delta_tx_s - s->delta_rx_s;
 		cprintf(C_GREY, "Cable rtt delay:         ");
 		cprintf(C_WHITE, "%s ps\n", print64(crtt));
 
-		cprintf(C_GREY, "Clock offset:            ");
-		cprintf(C_WHITE, "%9d ps\n",
-			(int32_t) (cur_servo_state.cur_offset));
 		cprintf(C_GREY, "Clock offset:            ");
 		cprintf(C_WHITE, "%9d ps\n",
 			(int32_t) (s->offset));
 
 		cprintf(C_GREY, "Phase setpoint:          ");
-		cprintf(C_WHITE, "%9d ps\n",
-			(int32_t) (cur_servo_state.cur_setpoint));
-		cprintf(C_GREY, "Phase setpoint:          ");
 		cprintf(C_WHITE, "%9d ps\n",
 			(s->cur_setpoint));
 
 		cprintf(C_GREY, "Skew:                    ");
-		cprintf(C_WHITE, "%9d ps\n",
-			(int32_t) (cur_servo_state.cur_skew));
-		cprintf(C_GREY, "Skew:                    ");
 		cprintf(C_WHITE, "%9d ps\n",
 			(int32_t) (s->skew));
 
 		cprintf(C_GREY, "Manual phase adjustment: ");
 		cprintf(C_WHITE, "%9d ps\n", (int32_t) (wrc_man_phase));
 
-		cprintf(C_GREY, "Update counter:          ");
-		cprintf(C_WHITE, "%9d\n",
-			(int32_t) (cur_servo_state.update_count));
 		cprintf(C_GREY, "Update counter:          ");
 		cprintf(C_WHITE, "%9d\n",
 			(int32_t) (s->update_count));
@@ -326,45 +286,6 @@ int wrc_log_stats(uint8_t onetime)
 	shw_pps_gen_get_time(&sec, &nsec);
 	wrpc_get_port_state(&state, NULL);
 	minic_get_stats(&tx, &rx);
-	pp_printf("lnk:%d rx:%d tx:%d ", state.state, rx, tx);
-	pp_printf("lock:%d ", state.locked ? 1 : 0);
-	pp_printf("sv:%d ", cur_servo_state.valid ? 1 : 0);
-	pp_printf("ss:'%s' ", cur_servo_state.slave_servo_state);
-	aux_stat = spll_get_aux_status(0);
-	pp_printf("aux:%x ", aux_stat);
-	pp_printf("sec:%d nsec:%d ", (uint32_t) sec, nsec);	/* fixme: clock is not always 125 MHz */
-	pp_printf("mu:%s ", print64(cur_servo_state.mu));
-	pp_printf("dms:%s ", print64(cur_servo_state.delay_ms));
-	pp_printf("dtxm:%d drxm:%d ", (int32_t) cur_servo_state.delta_tx_m,
-		(int32_t) cur_servo_state.delta_rx_m);
-	pp_printf("dtxs:%d drxs:%d ", (int32_t) cur_servo_state.delta_tx_s,
-		(int32_t) cur_servo_state.delta_rx_s);
-	pp_printf("asym:%d ", (int32_t) (cur_servo_state.total_asymmetry));
-	pp_printf("crtt:%s ", print64(cur_servo_state.mu -
-				cur_servo_state.delta_tx_m -
-				cur_servo_state.delta_rx_m -
-				cur_servo_state.delta_tx_s -
-				cur_servo_state.delta_rx_s));
-	pp_printf("cko:%d ", (int32_t) (cur_servo_state.cur_offset));
-	pp_printf("setp:%d ", (int32_t) (cur_servo_state.cur_setpoint));
-	pp_printf("hd:%d md:%d ad:%d ", spll_get_dac(-1), spll_get_dac(0),
-		spll_get_dac(1));
-	pp_printf("ucnt:%d ", (int32_t) cur_servo_state.update_count);
-
-	if (1) {
-		int32_t temp;
-
-		//first read the value from previous measurement,
-		//first one will be random, I know
-		temp = w1_read_temp_bus(&wrpc_w1_bus, W1_FLAG_COLLECT);
-		//then initiate new conversion for next loop cycle
-		w1_read_temp_bus(&wrpc_w1_bus, W1_FLAG_NOWAIT);
-		pp_printf("temp: %d.%04d C", temp >> 16,
-			  (int)((temp & 0xffff) * 10 * 1000 >> 16));
-	}
-
-	pp_printf("\n");
-
 	pp_printf("lnk:%d rx:%d tx:%d ", state.state, rx, tx);
 	pp_printf("lock:%d ", state.locked ? 1 : 0);
 	pp_printf("sv:%d ", s->valid ? 1 : 0);
@@ -392,6 +313,20 @@ int wrc_log_stats(uint8_t onetime)
 	pp_printf("hd:%d md:%d ad:%d ", spll_get_dac(-1), spll_get_dac(0),
 		spll_get_dac(1));
 	pp_printf("ucnt:%d ", (int32_t) s->update_count);
+
+	if (1) {
+		int32_t temp;
+
+		//first read the value from previous measurement,
+		//first one will be random, I know
+		temp = w1_read_temp_bus(&wrpc_w1_bus, W1_FLAG_COLLECT);
+		//then initiate new conversion for next loop cycle
+		w1_read_temp_bus(&wrpc_w1_bus, W1_FLAG_NOWAIT);
+		pp_printf("temp: %d.%04d C", temp >> 16,
+			  (int)((temp & 0xffff) * 10 * 1000 >> 16));
+	}
+
 	pp_printf("\n");
+
 	return 0;
 }
diff --git a/ppsi b/ppsi
index 770cbd9..ea68c73 160000
--- a/ppsi
+++ b/ppsi
@@ -1 +1 @@
-Subproject commit 770cbd9a31229617f2a802707226278e03ba0782
+Subproject commit ea68c737c6049f6fbe75827f3be236956c2207bc
-- 
GitLab