#! /bin/sh # # This script counts for the requested number of seconds and then # reads out the scalers. # # \ exec mxtclsh_script "$0" ${1+"$@"} proc main { record_list argv } { if { [ llength $argv ] <= 2 } { puts stderr "" puts stderr \ "Usage: mt_count time timer_name scaler1 scaler2..." puts stderr "" exit } set counting_time [ lindex $argv 0 ] set timer_name [ lindex $argv 1 ] set timer [ $record_list get_record $timer_name ] $timer stop puts "Counting with timer $timer_name for $counting_time seconds." set scaler_name_list [ lrange $argv 2 end ] # Find and clear all the scalers. set scaler_list [ list ] foreach scaler_name $scaler_name_list { set scaler [ $record_list get_record $scaler_name ] $scaler clear lappend scaler_list $scaler } # Start the timer. $timer start $counting_time # Wait for the timer to finish counting down. while {1} { if { [ $timer is_busy ] == 0 } { break } after 1000 } # Now read out all of the scalers. foreach scaler_name $scaler_name_list scaler $scaler_list { set value [ $scaler read ] puts " $scaler_name = $value" } }