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