Class: PulseMeter::Visualize::Sensor
- Inherits:
-
Object
- Object
- PulseMeter::Visualize::Sensor
- Defined in:
- lib/pulse-meter/visualize/sensor.rb
Instance Attribute Summary collapse
-
#color ⇒ Object
readonly
Returns the value of attribute color.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
-
#initialize(args) ⇒ Sensor
constructor
A new instance of Sensor.
- #last_point_data(need_incomplete = false) ⇒ Object
- #last_value(need_incomplete = false) ⇒ Object
- #timeline_data(time_span, need_incomplete = false) ⇒ Object
Constructor Details
#initialize(args) ⇒ Sensor
Returns a new instance of Sensor.
7 8 9 10 11 |
# File 'lib/pulse-meter/visualize/sensor.rb', line 7 def initialize(args) raise ArgumentError unless args.respond_to?('[]') @name = args[:sensor] or raise ArgumentError, ":sensor_name not specified" @color = args[:color] end |
Instance Attribute Details
#color ⇒ Object (readonly)
Returns the value of attribute color.
5 6 7 |
# File 'lib/pulse-meter/visualize/sensor.rb', line 5 def color @color end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
4 5 6 |
# File 'lib/pulse-meter/visualize/sensor.rb', line 4 def name @name end |
Instance Method Details
#last_point_data(need_incomplete = false) ⇒ Object
29 30 31 32 33 34 35 36 |
# File 'lib/pulse-meter/visualize/sensor.rb', line 29 def last_point_data(need_incomplete=false) res = { name: real_sensor.annotation, y: to_float(last_value(need_incomplete)) } res[:color] = color if color res end |
#last_value(need_incomplete = false) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/pulse-meter/visualize/sensor.rb', line 13 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 |
#timeline_data(time_span, need_incomplete = false) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/pulse-meter/visualize/sensor.rb', line 38 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: to_float(sd.value)}} data.pop unless need_incomplete res = { name: sensor.annotation, data: data } res[:color] = color if color res end |