diff options
Diffstat (limited to 'ckt0.awk')
| -rw-r--r-- | ckt0.awk | 58 |
1 files changed, 33 insertions, 25 deletions
@@ -167,7 +167,7 @@ BEGIN { "uname" | getline uname close("uname") - # check ARGV for previous estimates + ## check ARGV for previous estimates if (ARGC) { ARGV[1] ? t_prev[1] = ARGV[1] : t_prev[1] = 0.0 ARGV[2] ? t_prev[2] = ARGV[2] : t_prev[2] = ck_time(uname) @@ -177,12 +177,12 @@ BEGIN { ARGV[6] ? t0_prev[2] = ARGV[6] : split(ck_boottime(uname), t0_prev) } - # check systime, check uptime, check systime again + ## check systime, check uptime, check systime again t_meas[1] = ck_time(uname) split(ck_uptime(), t_up_meas) t_meas[2] = ck_time(uname) - # convert to [val, unc] vector + ## convert to [val, unc] vector t_meas[2] -= t_meas[1] t_meas[1] += 0.5*t_meas[2] if ( t_meas[2] == 0.0 ) { @@ -191,44 +191,52 @@ BEGIN { } t_meas_str = sigfig(t_meas[1], t_meas[2]) - # estimate dt + ## estimate dt dt[1] = t_meas[1] - t_prev[1] dt[2] = t_meas[2] + t_prev[2] - # predict uptime based on dt, t_up(new) = t_up(old) + dt + ## predict uptime based on dt, t_up(new) = t_up(old) + dt t_up_est[1] = t_up_prev[1] + dt[1] t_up_est[2] = t_up_prev[2] + dt[2] + + ## check for difference between dt and dt_up t_up_est[2] += sqrt((t_up_est[1] - t_up_prev[1] - dt[1])^2.0) t_up_prev[2] += sqrt((t_up_est[1] - t_up_prev[1] - dt[1])^2.0) - # alt. prediction based on t0 - # t_up_alt[1] = t_meas[1] - t0_prev[1] - # t_up_alt[2] = t_meas[2] + t0_prev[2] + ## alt. t_up prediction based on t0_prev + t_up_alt[1] = t_meas[1] - t0_prev[1] + t_up_alt[2] = t_meas[2] + t0_prev[2] + + ## dt_up_alt + dt_up_alt[1] = t_up_alt[1] - t_up_prev[1] + dt_up_alt[2] = t_up_alt[2] + t_up_prev[2] - # dt_up_alt - # dt_up_alt[1] = t_up_alt[1] - (t_prev[1] - t0_prev[1]) - # dt_up_alt[2] = t_up_alt[2] + (t_prev[2] + t0_prev[2]) + ## additional error terms + t_up_alt[2] += sqrt((dt_up_alt[1] - dt[1])^2.0) + t_up_alt[2] += sqrt((t_up_alt[1] - t_up_est[1])^2.0) + t_up_est[2] += sqrt((t_up_est[1] - t_up_alt[1])^2.0) - # merge alt. prediction - # t_up_alt[2] += sqrt((dt_up_alt[1] - dt[1])^2.0) - # t_up_alt[2] += sqrt((t_up_alt[1] - t_up_est[1])^2.0) - # t_up_est[2] += sqrt((t_up_est[1] - t_up_alt[1])^2.0) + ## merge alt. prediction + split(merge_meas(t_up_est[1], t_up_est[2], t_up_alt[1], t_up_alt[2]), t_up_est) - # split(merge_meas(t_up_est[1], t_up_est[2], t_up_alt[1], t_up_alt[2]), t_up_est) - # t_up_est[2] += (1.0E-3*rand())^2.0 + ## predict boot time, t0 + t0_est[1] = t_meas[1] - t_up_est[1] + t0_est[2] = t_meas[2] + t_up_est[2] - # merge predicted and measured uptimes + ## merge predicted and measured uptimes split(merge_meas(t_up_est[1], t_up_est[2], t_up_meas[1], t_up_meas[2]), t_up_est) t_up_est_str = sigfig(t_up_est[1], t_up_est[2]) - # evaluate measured boot time, t0 - t0_est[1] = t_meas[1] - t_up_est[1] - t0_est[2] = t_meas[2] + t_up_est[2] - t0_est[2] += sqrt((t0_est[1] - t0_prev[1])^2.0) - t0_prev[2] += sqrt((t0_est[1] - t0_prev[1])^2.0) + ## evaluate measured boot time, t0 + t0_meas[1] = t_meas[1] - t_up_est[1] + t0_meas[2] = t_meas[2] + t_up_est[2] + + ## additional error terms + t0_meas[2] += sqrt((t0_meas[1] - t0_est[1])^2.0) + t0_est[2] += sqrt((t0_meas[1] - t0_est[1])^2.0) - # merge previous and updated boot time, t0 - split(merge_meas(t0_est[1], t0_est[2], t0_prev[1], t0_prev[2]), t0_est) + ## merge previous and updated boot time, t0 + split(merge_meas(t0_meas[1], t0_meas[2], t0_est[1], t0_est[2]), t0_est) t0_est_str = sigfig(t0_est[1], t0_est[2]) |
