Skip to content

Commit 056ba97

Browse files
committed
buffer status
1 parent fe86e50 commit 056ba97

File tree

1 file changed

+39
-5
lines changed

1 file changed

+39
-5
lines changed

src/readoutStatus.tcl

Lines changed: 39 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ pack .fDetail -side bottom -fill x
131131
font create font_flp -family monospace -size [expr -int($szx / $nix)]
132132
font create font_det -family verdana -size [expr -int($szx / $nix)] -weight bold
133133

134-
label .fDetail.descr -textvariable description -height 10
134+
label .fDetail.descr -textvariable description -height 10 -justify left
135135
# -bg "#BBBBBB"
136136
pack .fDetail.descr -fill both
137137

@@ -431,10 +431,31 @@ if {1} {
431431
}
432432

433433

434+
proc NumberOfBytesToString {value suffix} {
435+
set prefixes { " " "k" "M" "G" "T" "P" }
436+
set maxPrefixIndex [llength $prefixes]
437+
set prefixIndex [expr int(floor(log($value) / log(1024)))]
438+
if {$prefixIndex > $maxPrefixIndex} {
439+
set prefixIndex $maxPrefixIndex
440+
}
441+
if {$prefixIndex < 0} {
442+
set prefixIndex 0
443+
}
444+
set scaledValue [expr $value / pow(1024, $prefixIndex)]
445+
set l [expr int(floor(log10(abs($scaledValue))))]
446+
if {$l < 0} {
447+
set l 3
448+
} elseif {$l <= 3} {
449+
set l [expr 3 - $l]
450+
} else {
451+
set l 0
452+
}
453+
return [format "%.*f %s%s" $l $scaledValue [lindex $prefixes $prefixIndex] $suffix];
454+
}
434455

435456
# parse output of readoutMonitor
436457
proc updateNode {metrics} {
437-
foreach {t nn s nstf bytesReadout bytesRecorded bytesFMQ pagesPendingFMQ nRFMQ avgtFMQ tfidFMQ} $metrics {
458+
foreach {t nn s nstf bytesReadout bytesRecorded bytesFMQ pagesPendingFMQ nRFMQ avgtFMQ tfidFMQ bufferUsage} $metrics {
438459
global v_x v_ix
439460
global cw rowh y0_states
440461
global v_color bgcolor_highlight activeC
@@ -460,8 +481,18 @@ proc updateNode {metrics} {
460481
set ll ""
461482
}
462483

463-
global description
464-
set description "FLP $n $ll\nLast update: [clock format [expr int($t)]]\nState: $s\nbytesReadout = $bytesReadout"
484+
global description
485+
set st [clock format [expr int($t)] -format "%d-%m-%Y %H:%M:%S"]
486+
set sb [NumberOfBytesToString $bytesReadout "bytes"]
487+
set sbuf {}
488+
set i 0
489+
foreach v [split $bufferUsage ","] {
490+
if {$v!=""} {lappend sbuf "\[$i\]:$v%"}
491+
incr i
492+
}
493+
set sbuf [join $sbuf " "]
494+
set savgtFMQ [format "%.2f" $avgtFMQ]
495+
set description "FLP $n $ll\nLast update: ${st}\nState: $s\nbytesReadout = $sb\nFMQ stats:\t pending=$pagesPendingFMQ\t release rate=${nRFMQ} Hz\t latency=:${savgtFMQ}s\nBuffer stats: $sbuf"
465496
}
466497
}
467498
}
@@ -490,7 +521,10 @@ proc processInput {} {
490521
puts "Msg: $msg"
491522
}
492523
set lm [split $msg "\t"]
493-
if {[llength $lm]!=11} {break}
524+
if {[llength $lm]!=12} {
525+
puts "Warning: input data has wrong number of columns"
526+
break
527+
}
494528
updateNode $lm
495529
}
496530
fileevent $server_fd readable processInput

0 commit comments

Comments
 (0)