Version 2 of BLT - stripchart - with realtime update

Updated 2007-01-08 18:38:45

# realtime stripchart $Hz Hz

 package require Tk
 package require BLT
 namespace import blt::*

 # vector and stripchart are blt components.
 # if you have a vector v, you can update it in realtime with
 # v set $list

 # init the vector to a fixed size.

 set Hz 200

 vector xvec($Hz) y1vec($Hz) y2vec($Hz)

 for {set i 0} {$i < $Hz} {incr i} {
        lappend xlist $i
 }

 xvec set $xlist

 stripchart .s1 -height 2i -width 8i -bufferelements no
 stripchart .s2 -height 2i -width 8i -bufferelements no

 pack .s1 .s2

 .s1 element create line1 -xdata xvec -ydata y1vec -symbol none
 .s2 element create line2 -xdata xvec -ydata y2vec -symbol none -color red

 # update $Hz Hz random data once per second

 proc proc1sec {} {
        set y1list {}
        set y2list {}
        for {set i 0} {$i < $::Hz} {incr i} {
                lappend y1list [expr {rand()}]
                lappend y2list [expr {rand()}]
        }
        y1vec set $y1list
        y2vec set $y2list

        after 1000 proc1sec
 }

 proc1sec

Andrew Tannenbaum


Category Plotting