class GerbilCharts::Models::SampledTimeSeriesGraphModel
SampledTimeSeriesGraphModel
¶ ↑
Time series graph model with sample polling interval we expect discrete points at approx regular intervals a missing interval implies zero value !
This class is mainly used for its sweep methods. TODO: Example here
Attributes
bucketsize[R]
Public Class Methods
new(name,bucketsize,opt={})
click to toggle source
Calls superclass method
# File lib/gerbilcharts/models/sampled_timeseries_graph_model.rb, line 16 def initialize(name,bucketsize,opt={}) super(name,opt) raise "Sampled time series model : required param bucketsize missing" unless opt[:bucketsize] @bucketsize = opt[:bucketsize] end
Public Instance Methods
begin_sweep()
click to toggle source
begin a sweep session
# File lib/gerbilcharts/models/sampled_timeseries_graph_model.rb, line 27 def begin_sweep @last_sweep_pos=0 end
bucket_diff(tv1,tv2)
click to toggle source
how many buckets separate the two buckettimes
# File lib/gerbilcharts/models/sampled_timeseries_graph_model.rb, line 73 def bucket_diff(tv1,tv2) return (tv2-tv1).abs / @bucketsize end
bucket_size_secs()
click to toggle source
# File lib/gerbilcharts/models/sampled_timeseries_graph_model.rb, line 77 def bucket_size_secs return @bucketsize end
sweep(tval)
click to toggle source
sweep this bucket
# File lib/gerbilcharts/models/sampled_timeseries_graph_model.rb, line 49 def sweep(tval) return 0 if @xarr.length == 0 return 0 if @last_sweep_pos >= @xarr.length xv=@xarr[@last_sweep_pos] if tval < xv return 0 end nBucks=bucket_diff(xv,tval) if nBucks <= 1 @last_sweep_pos+=1 rval = @yarr[@last_sweep_pos-1] else @last_sweep_pos+= nBucks end return rval.nil? ? 0:rval end
sweep2(tval)
click to toggle source
sweep this bucket
# File lib/gerbilcharts/models/sampled_timeseries_graph_model.rb, line 32 def sweep2(tval) return 0 if @xarr.length == 0 return 0 if @last_sweep_pos >= @xarr.length p "Sweep at tval = #{tval}" xv=@xarr[@last_sweep_pos] if bucket_diff(tval,xv) < 1 @last_sweep_pos+=1 return @yarr[@last_sweep_pos-1] else return 0 end end
sweep_interval()
click to toggle source
# File lib/gerbilcharts/models/sampled_timeseries_graph_model.rb, line 22 def sweep_interval return @bucketsize end