Sha256: b17e3b88952c4e265d23d2c9492d536982e8972e898402ff6a3e75a71126d4b4
Contents?: true
Size: 1.44 KB
Versions: 3
Compression:
Stored size: 1.44 KB
Contents
module PulseMeter module Visualize class Sensor attr_reader :name attr_reader :color def initialize(args) raise ArgumentError unless args.respond_to?('[]') @name = args[:sensor] or raise ArgumentError, ":sensor_name not specified" @color = args[:color] end def last_value(need_incomplete=false) sensor = real_sensor sensor_data = if need_incomplete sensor.timeline(sensor.interval).first else sensor.timeline(sensor.interval * 2).first end if sensor_data.is_a?(PulseMeter::SensorData) sensor_data.value else nil end end def last_point_data(need_incomplete=false) res = { name: real_sensor.annotation, y: last_value(need_incomplete) } res[:color] = color if color res end def timeline_data(time_span, need_incomplete = false) sensor = real_sensor data = sensor.timeline(time_span).map{|sd| {x: sd.start_time.to_i*1000, y: sd.value}} data.pop unless need_incomplete res = { name: sensor.annotation, data: data } res[:color] = color if color res end protected def real_sensor # TODO add !temporarily! caching if this will be called too frequently PulseMeter::Sensor::Base.restore(@name) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
pulse-meter-0.1.1 | lib/pulse-meter/visualize/sensor.rb |
pulse-meter-0.1.0 | lib/pulse-meter/visualize/sensor.rb |
pulse-meter-0.0.1 | lib/pulse-meter/visualize/sensor.rb |