Posted to tcl by bjorkintosh at Tue Apr 17 13:08:04 GMT 2012view raw
- package require Tk
- package require Ttk
- package require img::jpeg
- ttk::style theme use clam
- wm withdraw .
- set main .scoreboard
- toplevel $main
- bind .scoreboard <KeyPress-F11> { wm attributes .ieee -fullscreen 1 }
- wm title .scoreboard "Score Board"
- tk_setPalette background white activeBackground gray activeForeground black
- #tk_bisque
- set windevice {com1 com2 com3 com4 com5 com6 com7 com8 com9}
- set nixdevice {/dev/ttyACM0 /dev/ttyACM1 /dev/ttyACM2 /dev/ttyACM3 /dev/ttyACM4}
- set nixdevice2 {/dev/ttyACM0 /dev/ttyACM1 /dev/ttyACM2 /dev/ttyACM3 /dev/ttyACM4}
- set devport1 /dev/ttyACM0
- set devport2 /dev/ttyACM1
- set comm1 [open $devport1 r+]
- set comm2 [open $devport2 r+]
- set sourcer1 .scoreboard.middle.field1.timer
- set sourcer2 .scoreboard.middle.field2.timer
- chan configure $comm1 -mode 9600,n,8,1 -blocking 1 -buffering none
- chan event $comm1 readable [list Reader $comm1 $sourcer1]
- chan configure $comm2 -mode 9600,n,8,1 -blocking 1 -buffering none
- chan event $comm2 readable [list Reader $comm2 $sourcer2]
- proc Reader {fid sourcer} {
- if {[chan gets $fid odata] < 0} {
- if {[chan eof $fid]} {
- catch {chan close $fid}
- set done 1
- return
- }
- }
- #set data [string range $odata 2 6]
- set data [lindex [split $odata _ ] 0 ]
- $sourcer configure -state normal
- $sourcer insert end $data {} \n {}
- $sourcer see end
- $sourcer configure -state disabled
- }
- proc msgall {msg chanl} {
- foreach chan $chanl {
- puts -nonewline $chanl $msg
- }
- }
- frame .scoreboard.top -relief groove -borderwidth 1
- labelframe .scoreboard.top.imgleft
- set solar [image create photo solar -file rsrcs/solar.jpg]
- pack [label .scoreboard.top.imgleft.solar -image solar]
- pack [label .scoreboard.top.imgleft.flag1 -text "Field1"] -side left
- pack [label .scoreboard.top.imgleft.flag2 -text "Field2"] -side right
- pack .scoreboard.top.imgleft -side left -padx 10
- #pack [label .scoreboard.top.solar -image solar] -side left
- set logo [image create photo logo -file rsrcs/logo.gif]
- pack [label .scoreboard.top.logo -image logo] -ipadx 55m
- labelframe .scoreboard.top.imgright
- set wind [image create photo wind -file rsrcs/wind.jpg]
- pack [label .scoreboard.top.imgright.wind -image wind ]
- pack [label .scoreboard.top.imgright.flag1 -text "Field1"] -side left
- pack [label .scoreboard.top.imgright.flag2 -text "Field2"] -side right
- pack .scoreboard.top.imgright -side right -padx 10
- #set wind [image create photo wind -file rsrcs/wind.jpg]
- #pack [label .scoreboard.top.wind -image wind] -side right -pady 5m
- pack .scoreboard.top -expand true -side top -fill x
- frame .scoreboard.middle -borderwidth 1
- set splash [image create photo splash -file rsrcs/splash.jpg]
- #pack [label .scoreboard.middle.splash -image splash]
- #pack [button .scoreboard.middle.timer -image splash -font {Helvetica 90} -text "Timer Info" -command exit -compound center ]
- #pack [label .scoreboard.middle.timer -font {Helvetica 90} -textvariable timerdatum ]
- labelframe .scoreboard.middle.field1 -text Field1
- pack [text .scoreboard.middle.field1.timer -font {Helvetica 30} -height 2 -width 5 -state disabled -state disabled]
- pack .scoreboard.middle.field1 -side left -padx 10
- labelframe .scoreboard.middle.field2 -text Field2
- pack [text .scoreboard.middle.field2.timer -font {Helvetica 30} -height 2 -width 5 -state disabled -state disabled]
- pack .scoreboard.middle.field2 -side right -padx 8
- pack .scoreboard.middle -fill x
- frame .scoreboard.bottom -relief groove -borderwidth 1
- labelframe .scoreboard.bottom.power
- labelframe .scoreboard.bottom.power.left -text "Field 1"
- pack [spinbox .scoreboard.bottom.power.left.dev1 -width 10 -textvariable devport1 -values $nixdevice]
- pack [button .scoreboard.bottom.power.left.start1 -text "Start" -command [list chan puts -nonewline $comm1 " "]] -fill x
- pack [button .scoreboard.bottom.power.left.reset1 -text "Reset" -command [list chan puts -nonewline $comm1 "r"]] -fill x
- pack .scoreboard.bottom.power.left -side left
- labelframe .scoreboard.bottom.power.right -text "Field 2"
- pack [spinbox .scoreboard.bottom.power.right.dev2 -width 10 -textvariable devport2 -values $nixdevice]
- pack [button .scoreboard.bottom.power.right.start2 -text "Start" -command [list chan puts -nonewline $comm2 " "]] -fill x
- pack [button .scoreboard.bottom.power.right.reset2 -text "Reset" -command [list chan puts -nonewline $comm2 "r"]] -fill x
- pack .scoreboard.bottom.power.right -side left
- labelframe .scoreboard.bottom.power.all -text "Both"
- #pack [button .scoreboard.bottom.power.all.start -text TestAll -command [list chan puts -nonewline $comm2 "t"]] -fill x
- #pack [button .scoreboard.bottom.power.all.reset -text ResetAll -command [list chan puts -nonewline $comm2 "r"]] -fill x
- pack [button .scoreboard.bottom.power.all.start -text TestAll -command [list msgall " " [list $comm1 $comm2]]] -fill x
- pack [button .scoreboard.bottom.power.all.reset -text ResetAll -command [list msgall "r" [list $comm1 $comm2]]] -fill x
- pack [button .scoreboard.bottom.power.all.exit -text Exit -command exit] -fill x
- pack .scoreboard.bottom.power.all -side right
- pack .scoreboard.bottom.power -side right -padx 8
- labelframe .scoreboard.bottom.img
- set barrel [image create photo barrel -file rsrcs/biofuel.jpg]
- pack [label .scoreboard.bottom.img.barrel -image barrel] -side top
- pack [label .scoreboard.bottom.img.flag1 -text "Field1"] -side left
- pack [label .scoreboard.bottom.img.flag2 -text "Field2"] -side right
- pack .scoreboard.bottom.img -side left
- pack .scoreboard.bottom -expand true -side bottom -fill x
- #grid .scoreboard.bottom -expand true -side bottom -fill x