xref: /freebsd-src/contrib/ntp/scripts/stats/tdata.awk (revision cfe30d02adda7c3b5c76156ac52d50d8cab325d9)
1*c0b746e5SOllivier Robert# program to produce loran tdata statistics from clockstats files
2*c0b746e5SOllivier Robert#
3*c0b746e5SOllivier Robert# usage: awk -f tdata.awk clockstats
4*c0b746e5SOllivier Robert#
5*c0b746e5SOllivier Robert# format of input record (missing replaced by -40.0)
6*c0b746e5SOllivier Robert# 49228 36.852 127.127.10.1 93:241:00:00:20.812 LORAN TDATA
7*c0b746e5SOllivier Robert# M OK 0 0 1169.14 -7.4 3.16E-07 .424
8*c0b746e5SOllivier Robert# W CV 0 0 3329.30 -16.4 1.81E-06
9*c0b746e5SOllivier Robert# X OK 0 0 1737.19 -10.5 3.44E-07 .358
10*c0b746e5SOllivier Robert# Y OK 0 0 2182.07 -9.0 4.41E-07 .218
11*c0b746e5SOllivier Robert#
12*c0b746e5SOllivier Robert# format of output record (time in nanoseconds, signal values in dB)
13*c0b746e5SOllivier Robert#  MJD      sec      time     M      W      X      Y      Z
14*c0b746e5SOllivier Robert# 49228    36.852   175.0   -7.4  -16.4  -10.5   -9.0
15*c0b746e5SOllivier Robert#
16*c0b746e5SOllivier Robert# select LORAN TDATA records with valid format
17*c0b746e5SOllivier Robert{
18*c0b746e5SOllivier Robert	if (NF >= 7 && $6 == "TDATA") {
19*c0b746e5SOllivier Robert		m = w = x = y = z = -40.0
20*c0b746e5SOllivier Robert		for (i = 7; i < NF - 5; i++) {
21*c0b746e5SOllivier Robert			if ($i == "M" && $(i+1) == "OK") {
22*c0b746e5SOllivier Robert				i += 5
23*c0b746e5SOllivier Robert				m = $i
24*c0b746e5SOllivier Robert			}
25*c0b746e5SOllivier Robert			else if ($i == "W" && $(i+1) == "OK") {
26*c0b746e5SOllivier Robert				i += 5
27*c0b746e5SOllivier Robert				w = $i
28*c0b746e5SOllivier Robert			}
29*c0b746e5SOllivier Robert			else if ($i == "X" && $(i+1) == "OK") {
30*c0b746e5SOllivier Robert				i += 5
31*c0b746e5SOllivier Robert				x = $i
32*c0b746e5SOllivier Robert			}
33*c0b746e5SOllivier Robert			else if ($i == "Y" && $(i+1) == "OK") {
34*c0b746e5SOllivier Robert				i += 5
35*c0b746e5SOllivier Robert				y = $i
36*c0b746e5SOllivier Robert			}
37*c0b746e5SOllivier Robert			else if ($i == "Z" && $(i+1) == "OK") {
38*c0b746e5SOllivier Robert				i += 5
39*c0b746e5SOllivier Robert				z = $i
40*c0b746e5SOllivier Robert			}
41*c0b746e5SOllivier Robert                }
42*c0b746e5SOllivier Robert		printf "%5s %9.3f %6.1f %6.1f %6.1f %6.1f %6.1f\n", $1, $2, m, w, x, y, z
43*c0b746e5SOllivier Robert	}
44*c0b746e5SOllivier Robert}
45*c0b746e5SOllivier Robert
46