class PulseMeter::DygraphsVisualize::Sensor

Public Instance Methods

annotation() click to toggle source
# File lib/pulse_meter/dygraphs_visualize/sensor.rb, line 33
def annotation
  real_sensor.annotation || ''
end
extractor() click to toggle source
# File lib/pulse_meter/dygraphs_visualize/sensor.rb, line 49
def extractor
  PulseMeter::DygraphsVisualize.extractor(self)
end
interval() click to toggle source
# File lib/pulse_meter/dygraphs_visualize/sensor.rb, line 41
def interval
  real_sensor.interval
end
last_point_data(now, need_incomplete=false) click to toggle source
# File lib/pulse_meter/dygraphs_visualize/sensor.rb, line 22
def last_point_data(now, need_incomplete=false)
  extractor.point_data(last_value(now, need_incomplete))
end
last_value(now, need_incomplete=false) click to toggle source
# File lib/pulse_meter/dygraphs_visualize/sensor.rb, line 6
def last_value(now, need_incomplete=false)
  sensor = real_sensor

  sensor_data = if need_incomplete
    sensor.timeline_within(now - sensor.interval, now).first
  else
    sensor.timeline_within(now - sensor.interval * 2, now).first
  end

  if sensor_data.is_a?(PulseMeter::SensorData)
    sensor_data.value
  else
    nil
  end
end
timeline_data(from, till, need_incomplete = false) click to toggle source
# File lib/pulse_meter/dygraphs_visualize/sensor.rb, line 26
def timeline_data(from, till, need_incomplete = false)
  sensor = real_sensor
  timeline_data = sensor.timeline_within(from, till)
  timeline_data.pop unless need_incomplete
  extractor.series_data(timeline_data)
end
type() click to toggle source
# File lib/pulse_meter/dygraphs_visualize/sensor.rb, line 37
def type
  real_sensor.class
end
valid?() click to toggle source
# File lib/pulse_meter/dygraphs_visualize/sensor.rb, line 53
def valid?
  real_sensor
  true
rescue PulseMeter::RestoreError
  false
end
value() click to toggle source
# File lib/pulse_meter/dygraphs_visualize/sensor.rb, line 45
def value
  real_sensor.value
end

Protected Instance Methods

real_sensor() click to toggle source
# File lib/pulse_meter/dygraphs_visualize/sensor.rb, line 62
def real_sensor
  # TODO add !temporarily! caching if this will be called too frequently
  PulseMeter::Sensor::Base.restore(name)
end