on *:START:bw.check
alias bwcheck {
.timerbw 1 5 bwcheck
var %r, %c = 0, %cc = $numtok($dll($scriptdir $+ moo.dll,interfaceinfo,_),35)
if (!$hget(bw)) hmake bw 1
else hdel -w bw t.*
while (%c < %cc) {
inc %c
%r = $gettok($dll($scriptdir $+ moo.dll,interfaceinfo,_),%c,35)
%r = $regex(d.i,%r,/([\d.]+)MB In/i) $regex(d.o,%r,/([\d.]+)MB Out/i)
if (!$hget(bw,first)) {
hadd -m bw $+(I.,%c) $regml(d.i,1)
hadd -m bw $+(O.,%c) $regml(d.o,1)
}
hadd -m bw t.i $calc($hget(bw,t.i) + ($regml(d.i,1) - $hget(bw,$+(I.,%c))))
hadd -m bw t.o $calc($hget(bw,t.o) + ($regml(d.o,1) - $hget(bw,$+(O.,%c))))
hadd -m bw $+(I.,%c) $regml(d.i,1)
hadd -m bw $+(O.,%c) $regml(d.o,1)
}
var %time = $calc($ticks - $hget(bw,time))
hadd -m bw time $ticks
hadd -m bw first 1
;returns <IN> <OUT> <unit>
return $round($calc($hget(bw,t.i) * 10^6 / %time),3) $round($calc($hget(bw,t.o) * 10^6 / %time),3) kb/s
}