diff options
author | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-25 15:02:05 +0000 |
---|---|---|
committer | yugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-08-25 15:02:05 +0000 |
commit | 0dc342de848a642ecce8db697b8fecd83a63e117 (patch) | |
tree | 2b7ed4724aff1f86073e4740134bda9c4aac1a39 /trunk/ext/tk/sample/tkextlib/vu/oscilloscope.rb | |
parent | ef70cf7138ab8034b5b806f466e4b484b24f0f88 (diff) |
added tag v1_9_0_4
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_9_0_4@18845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'trunk/ext/tk/sample/tkextlib/vu/oscilloscope.rb')
-rw-r--r-- | trunk/ext/tk/sample/tkextlib/vu/oscilloscope.rb | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/trunk/ext/tk/sample/tkextlib/vu/oscilloscope.rb b/trunk/ext/tk/sample/tkextlib/vu/oscilloscope.rb new file mode 100644 index 0000000000..2015e46645 --- /dev/null +++ b/trunk/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 |