diff sw/sniff-rx/byteproc.c @ 46:43f678895a3a

simtrace3-sniff-rx: add some annotations to output
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 31 Aug 2023 10:01:40 +0000
parents b112c2df6c43
children
line wrap: on
line diff
--- a/sw/sniff-rx/byteproc.c	Thu Aug 31 09:32:48 2023 +0000
+++ b/sw/sniff-rx/byteproc.c	Thu Aug 31 10:01:40 2023 +0000
@@ -15,6 +15,26 @@
 
 static int byte_pending_flag, byte_pending_val;
 
+static void
+annotate(new_byte)
+{
+	if (new_byte & 0x80) {
+		fprintf(main_outf, " RST %s", new_byte & 0x40 ? "high" : "low");
+		return;
+	}
+	switch (new_byte & 0x18) {
+	case 0x08:
+		fputs(" PPS1", main_outf);
+		return;
+	case 0x10:
+		fputs(" PPS spenh trigger", main_outf);
+		return;
+	case 0x18:
+		fputs(" Bad PPS catcher bits!", main_outf);
+		return;
+	}
+}
+
 void
 rx_byte_in(new_byte)
 {
@@ -24,9 +44,11 @@
 		return;
 	}
 	/* received complete 2-byte message from the FPGA */
-	fprintf(main_outf, "[%02d:%02d:%02d.%06u] %02X%02X\n", cur_tm->tm_hour,
+	fprintf(main_outf, "[%02d:%02d:%02d.%06u] %02X%02X", cur_tm->tm_hour,
 		cur_tm->tm_min, cur_tm->tm_sec, (unsigned) curtime.tv_usec,
 		new_byte, byte_pending_val);
+	annotate(new_byte);
+	putc('\n', main_outf);
 	byte_pending_flag = 0;
 	if (logfile_flag && (new_byte & 0x80))
 		printf("SIM RST is %s\n", new_byte & 0x40 ? "high" : "low");