@@ -131,7 +131,7 @@ pack .fDetail -side bottom -fill x
131131font create font_flp -family monospace -size [expr -int($szx / $nix )]
132132font 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"
136136pack .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
436457proc 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 \n Last update: [ clock format [expr int($t )] ]\n State: $s \n bytesReadout = $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 \n Last update: ${st} \n State: $s \n bytesReadout = $sb \n FMQ stats:\t pending=$pagesPendingFMQ \t release rate=${nRFMQ} Hz\t latency=:${savgtFMQ} s\n Buffer 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