Mercurial > hg > audiostuff
comparison intercom/wdisplay.tcl @ 2:13be24d74cd2
import intercom-0.4.1
| author | Peter Meerwald <pmeerw@cosy.sbg.ac.at> |
|---|---|
| date | Fri, 25 Jun 2010 09:57:52 +0200 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1:9cadc470e3da | 2:13be24d74cd2 |
|---|---|
| 1 #!/usr/bin/wish | |
| 2 | |
| 3 # wdisplay.tcl | |
| 4 # show vector w values | |
| 5 | |
| 6 proc fileRecv {fd} { | |
| 7 global sam | |
| 8 | |
| 9 # read 4*sam bytes (sam values) into list l | |
| 10 set r [read $fd [expr 4*$sam]] | |
| 11 | |
| 12 # detect eof only after read! | |
| 13 if {[eof $fd]} { | |
| 14 puts "fileRecv eof" | |
| 15 close $fd | |
| 16 return | |
| 17 } | |
| 18 | |
| 19 binary scan $r "f$sam" l | |
| 20 | |
| 21 # linear Scale | |
| 22 set yscale [expr 1.0] | |
| 23 | |
| 24 # erase canvas | |
| 25 .ca delete ttt | |
| 26 | |
| 27 set x 0 | |
| 28 foreach y $l { | |
| 29 set y [expr 99 - $y * $yscale] | |
| 30 .ca create line $x 100 $x $y -tags ttt | |
| 31 incr x | |
| 32 } | |
| 33 } | |
| 34 | |
| 35 proc UserOpen {fd chost cport} { | |
| 36 fconfigure $fd -translation binary -encoding binary | |
| 37 fileevent $fd readable [list fileRecv $fd] | |
| 38 } | |
| 39 | |
| 40 # ############################################################## | |
| 41 # main | |
| 42 | |
| 43 # check Programm Args | |
| 44 if {$argc < 1} { | |
| 45 puts "usage: wdisplay.tcl samples" | |
| 46 exit | |
| 47 } | |
| 48 | |
| 49 set sam [lindex $argv 0] ;# vector length - see aec.cpp | |
| 50 # puts "sam =$sam" | |
| 51 | |
| 52 # create a canvas to draw the graphical objects on | |
| 53 canvas .ca -width $sam -height 200 | |
| 54 pack .ca | |
| 55 | |
| 56 # Open Server part of TCP connection | |
| 57 socket -server UserOpen 50999 |
