diff options
author | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-07-01 09:38:48 +0000 |
---|---|---|
committer | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-07-01 09:38:48 +0000 |
commit | ffcedd79505ea2e99f859c7cea2fb2221c948d4c (patch) | |
tree | 02232516faf0e1959ecb5d5b7aca25a52f9f87ca /ext/tk/sample/tkextlib/vu/oscilloscope.rb | |
parent | 73cf1d02bac2dbdd5d7f673a33d81444a00c865e (diff) | |
download | ruby-ffcedd79505ea2e99f859c7cea2fb2221c948d4c.tar.gz |
* ext/tk/lib/tcltklib : bug fix
* ext/tk/lib/tk : bug fix and add Tcl/Tk extension support libraries
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6559 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/tk/sample/tkextlib/vu/oscilloscope.rb')
-rw-r--r-- | ext/tk/sample/tkextlib/vu/oscilloscope.rb | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/ext/tk/sample/tkextlib/vu/oscilloscope.rb b/ext/tk/sample/tkextlib/vu/oscilloscope.rb new file mode 100644 index 0000000000..43254c9b2e --- /dev/null +++ b/ext/tk/sample/tkextlib/vu/oscilloscope.rb @@ -0,0 +1,68 @@ +#!/usr/bin/env ruby + +require 'tk' +require 'tkextlib/vu/charts' + +#---USAGE +info = "...the heart of a Realtime Oscilloscope, where the PCIs +joystick port gives 4 digtal inputs and 4 analog 8 bit +values with an resolution of ~1 millisecond (!!!) +running Realtime Linux. +<p> creates DEMO.ps +<B1-Motion> see what happens" +puts info + +#---GEOMETRY +geo_fr = [10, 10, 210, 180] +geo_ch0 = [10, 10, 210, 90] +geo_ch1 = [10, 90, 210, 180] +geo_t1 = [15, 88] + +#---GUI +c = TkCanvas.new(:width=>220, :height=>190).pack(:fill=>:both, :expand=>true) + +#---background +TkcRectangle.new(c, geo_fr, :width=>4, :fill=>'aquamarine3', + :tags=>['osc', 'frbg']) + +#---channel 0 +ch0 = Tk::Vu::TkcStripchart.new(c, geo_ch0, + :fill=>'', :jumpscroll=>false, + :outline=>'', :scaleline=>'', + :stripline=>'cyan', :tags=>['osc', 'ch0']) + +#---channel 1 +ch1 = Tk::Vu::TkcStripchart.new(c, geo_ch1, + :fill=>'', :jumpscroll=>0, + :outline=>'', :scaleline=>'', + :stripline=>'red', :tags=>['osc', 'ch1']) + +#---frame +TkcRectangle.new(c, geo_fr, :width=>4, :tags=>['osc', 'frfg']) + +#---position +txt1 = TkcText.new(c, geo_t1, :text=>"B1-Motion: X:%X\tY:%Y", + :anchor=>:nw, :tags=>['osc', 'txt1']) + +#---BINDINGS +c.bind('B1-Motion', proc{|x, y, xx, yy| + ch0[:values] = x + ch1[:values] = y + txt1[:text] = "B1-Motion: X:#{xx}\tY:#{yy}" + }, '%x %y %X %Y') + +Tk.root.bind('v', proc{ + puts ch0[:values].join(' ') + puts ch0[:values].size + }) + +Tk.root.bind('p', proc{ + c.postscript(:file=>'DEMO.ps') + puts "DEMO.ps printed" + }) + +Tk.root.bind('q', proc{exit}) + +##################### + +Tk.mainloop |