Changeset 170 for trunk


Ignore:
Timestamp:
Oct 18, 2012, 5:52:36 PM (12 years ago)
Author:
demin
Message:

add information header to histogram file

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MultiChannelUSB/UserInterface.tcl

    r169 r170  
    116116# -------------------------------------------------------------------------
    117117
     118    UsbController instproc init {} {
     119
     120        my set ignore false
     121
     122        next
     123    }
     124
     125# -------------------------------------------------------------------------
     126
    118127    UsbController instproc usbConnect {} {
    119         my instvar handle
     128        my instvar handle ignore
    120129
    121130        puts usbConnect
     
    125134            unset handle
    126135        }
    127 if {0} {
    128         while {[catch {usb::connect 0x09FB 0x6001 1 1 0} result]} {
    129             set answer [tk_messageBox -icon error -type retrycancel \
    130                 -message {Cannot access USB device} -detail $result]
    131 #            puts $result
    132             if {[string equal $answer cancel]} exit
    133         }
    134 
    135         set handle $result
    136 
    137 }
     136        if {!$ignore} {
     137            while {[catch {usb::connect 0x09FB 0x6001 1 1 0} result]} {
     138                set answer [tk_messageBox -icon error -type abortretryignore \
     139                    -message {Cannot access USB device} -detail $result]
     140                if {[string equal $answer abort]} exit
     141                if {[string equal $answer ignore]} {
     142                    set ignore true
     143                    return
     144                }
     145            }
     146
     147            set handle $result
     148
     149        }
    138150    }
    139151
     
    141153
    142154    UsbController instproc usbHandle {} {
    143         my instvar handle
     155        my instvar handle ignore
    144156
    145157        if {[my exists handle]} {
    146158            return $handle
    147         } else {
     159        } elseif {!$ignore} {
    148160            my usbConnect
    149161        }
     
    458470        my set rate_val(mean) 0.0
    459471       
     472        my set date_val(start) {}
     473        my set date_val(stop) {}
     474   
    460475        ${config}.chan_frame.entr_value configure -text 0.0
    461476
     
    722737        }
    723738
    724         set val_addr [format %02x [expr {7 + ${number}}]]
     739        set val_addr [format {%02x} [expr {7 + ${number}}]]
    725740
    726741        if {$thrs} {
    727742            ${config}.thrs_field configure -state normal
    728             set value [format %03x $thrs_val]
     743            set value [format {%03x} $thrs_val]
    729744        } else {
    730745            ${config}.thrs_field configure -state disabled
     
    803818        my instvar controller number cntr_val
    804819
    805         set word0 [format %08x [expr {${cntr_val} & 0xFFFFFFFF}]]
    806         set word1 [format %08x [expr {${cntr_val} >> 32}]]
    807 
    808         set prefix [format %x [expr {5 + ${number}}]]
     820        set word0 [format {%08x} [expr {${cntr_val} & 0xFFFFFFFF}]]
     821        set word1 [format {%08x} [expr {${cntr_val} >> 32}]]
     822
     823        set prefix [format {%x} [expr {5 + ${number}}]]
    809824
    810825        set command {}
     
    818833
    819834        # load counter value
    820 #        set val_addr [format %02x [expr {12 + ${number}}]]
     835#        set val_addr [format {%02x} [expr {12 + ${number}}]]
    821836#        $controller usbCmd 000200${val_addr}00040001000200${val_addr}00040000
    822837    }
     
    825840
    826841    HstDisplay instproc cntr_reset {} {
    827         my instvar controller config number after_handle
    828         my instvar cntr_val cntr_bak cntr_old yvec_bak yvec_old rate_val
     842        my instvar controller config number
     843        my instvar cntr_val cntr_bak cntr_old yvec_bak yvec_old rate_val date_val
    829844
    830845        my cntr_stop
    831846
    832         set value [format %04x [expr {1 << (5 + ${number})}]]
     847        set value [format {%04x} [expr {1 << (5 + ${number})}]]
    833848        $controller usbCmd 000200000004${value}0002000000040000
    834849
     
    843858        set rate_val(mean) 0.0
    844859        ${config}.chan_frame.entr_value configure -text 0.0
    845 
     860       
     861        set date_val(start) {}
     862        set date_val(stop) {}
     863       
    846864        my acquire
    847865
     
    869887        my instvar config
    870888        my instvar cntr_h cntr_m cntr_s
    871         my instvar cntr_val cntr_bak cntr_old yvec_bak yvec_old
     889        my instvar cntr_val cntr_bak cntr_old yvec_bak yvec_old date_val
    872890
    873891        set h $cntr_h
     
    883901        if {[string equal $s {}]} {
    884902            set s 0
     903        }
     904        if {[string equal $date_val(start) {}]} {
     905            set date_val(start) [clock format [clock seconds] -format {%d/%m/%Y %H:%M:%S}]
    885906        }
    886907
     
    920941
    921942    HstDisplay instproc cntr_resume {} {
    922         my instvar controller config number auto
    923 
    924         set val_addr [format %02x [expr {13 + ${number}}]]
     943        my instvar controller config number auto after
     944
     945        set val_addr [format {%02x} [expr {13 + ${number}}]]
    925946
    926947        ${config}.start configure -text Pause -command [myproc cntr_pause]
     
    931952        set auto 1
    932953
    933         after 100 [myproc acquire_loop]
     954        set after [after 100 [myproc acquire_loop]]
    934955    }
    935956
     
    937958
    938959    HstDisplay instproc cntr_stop {} {
    939         my instvar controller config number auto
    940 
    941         set val_addr [format %02x [expr {13 + ${number}}]]
     960        my instvar controller config number auto after date_val
     961       
     962        set date_val(stop) [clock format [clock seconds] -format {%d/%m/%Y %H:%M:%S}]
     963
     964        set val_addr [format {%02x} [expr {13 + ${number}}]]
    942965
    943966        $controller usbCmd 000200${val_addr}00040000
    944967
    945968        set auto 0
     969       
     970        after cancel $after
    946971    }
    947972
     
    956981
    957982    HstDisplay instproc acquire_loop {} {
    958         my instvar cntr_val auto
     983        my instvar cntr_val auto after
    959984
    960985        my acquire
     
    964989            my cntr_ready
    965990        } elseif {$auto} {
    966             after 1000 [myproc acquire_loop]
     991            set after [after 1000 [myproc acquire_loop]]
    967992        }
    968993    }
     
    10061031    HstDisplay instproc save_data {data} {
    10071032        my instvar number
     1033        my instvar yvec_old rate_val date_val
    10081034
    10091035        set types {
     
    10121038        }
    10131039
    1014         set stamp [clock format [clock seconds] -format %Y%m%d_%H%M%S]
     1040        set stamp [clock format [clock seconds] -format {%Y%m%d_%H%M%S}]
    10151041        set fname spectrum_[expr {$number + 1}]_${stamp}.dat
    10161042
     
    10221048        set x [catch {
    10231049            set fid [open $fname w+]
     1050            puts $fid "info {"
     1051            puts $fid "start date: $date_val(start)"
     1052            if {[string equal $date_val(stop) {}]} {
     1053                puts $fid "stop date: [clock format [clock seconds] -format {%d/%m/%Y %H:%M:%S}]"
     1054            } else {
     1055                puts $fid "stop date: $date_val(stop)"
     1056            }
     1057            puts $fid "average rate: [format {%.2e} $rate_val(mean)] counts/s"
     1058            puts $fid "total counts: $yvec_old"
     1059            puts $fid "}"
     1060            puts $fid "data {"
    10241061            puts $fid $data
     1062            puts $fid "}"
    10251063            close $fid
    10261064        }]
     
    10501088        set x [catch {
    10511089            set fid [open $fname r+]
    1052             fconfigure $fid -translation binary -encoding binary
    1053             [myvar yvec] set [split [read $fid] \n]
     1090            set content [read $fid 131072]
     1091            set yvec_new [split [dict get $content data] \n]
    10541092            close $fid
    10551093        }]
     
    10611099            tk_messageBox -icon info \
    10621100                -message "File \"$fname\" read successfully"
     1101            my cntr_reset
     1102            [myvar yvec] set $yvec_new
    10631103        }
    10641104    }
     
    12851325
    12861326        set number 0
    1287         set val_addr [format %02x [expr {9 + ${number}}]]
     1327        set val_addr [format {%02x} [expr {9 + ${number}}]]
    12881328
    12891329        if {$thrs} {
    12901330            ${config}.thrs_field configure -state normal
    1291             set value [format %03x $thrs_val]
     1331            set value [format {%03x} $thrs_val]
    12921332        } else {
    12931333            ${config}.thrs_field configure -state disabled
     
    15171557        }
    15181558
    1519         set stamp [clock format [clock seconds] -format %Y%m%d_%H%M%S]
     1559        set stamp [clock format [clock seconds] -format {%Y%m%d_%H%M%S}]
    15201560        set fname counts_${stamp}.dat
    15211561
     
    18391879        if {$thrs} {
    18401880            ${config}.thrs_field configure -state normal
    1841             set value [format %03x $thrs_val]
     1881            set value [format {%03x} $thrs_val]
    18421882        } else {
    18431883            ${config}.thrs_field configure -state disabled
     
    19902030        }
    19912031
    1992         set stamp [clock format [clock seconds] -format %Y%m%d_%H%M%S]
     2032        set stamp [clock format [clock seconds] -format {%Y%m%d_%H%M%S}]
    19932033        set fname oscillogram_${stamp}.dat
    19942034
Note: See TracChangeset for help on using the changeset viewer.