Class: SAAL::Sensor
- Inherits:
-
Object
- Object
- SAAL::Sensor
- Defined in:
- lib/sensor.rb
Instance Attribute Summary collapse
-
#description ⇒ Object
readonly
Returns the value of attribute description.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#numreads ⇒ Object
readonly
Returns the value of attribute numreads.
-
#underlying ⇒ Object
Returns the value of attribute underlying.
Instance Method Summary collapse
- #average(from, to) ⇒ Object
-
#initialize(dbstore, name, underlying, defs, opts = {}) ⇒ Sensor
constructor
A new instance of Sensor.
- #last_value ⇒ Object
- #maximum(from, to) ⇒ Object
- #minimum(from, to) ⇒ Object
- #mock_set(opts) ⇒ Object
- #read ⇒ Object
- #read_uncached ⇒ Object
- #sensor_type ⇒ Object
- #store_value ⇒ Object
- #write(value) ⇒ Object
- #writeable? ⇒ Boolean
Constructor Details
#initialize(dbstore, name, underlying, defs, opts = {}) ⇒ Sensor
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/sensor.rb', line 16 def initialize(dbstore, name, , defs, opts={}) @dbstore = dbstore @name = name = @description = defs['name'] @mock_opts = {} if defs['altitude'] && .sensor_type == :pressure @read_offset = defs['altitude'].to_f/9.2 elsif defs['linear_offset'] @read_offset = defs['linear_offset'].to_f else @read_offset = 0.0 end if defs['linear_multiplier'] @read_multiplier = defs['linear_multiplier'].to_f else @read_multiplier = 1.0 end @set_type = defs['type'] ? defs['type'].to_sym : nil @numreads = (defs['numreads']||1).to_i @numreads = 1 if @numreads == 0 @numreads += 1 if @numreads.even? end |
Instance Attribute Details
#description ⇒ Object (readonly)
Returns the value of attribute description.
14 15 16 |
# File 'lib/sensor.rb', line 14 def description @description end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
14 15 16 |
# File 'lib/sensor.rb', line 14 def name @name end |
#numreads ⇒ Object (readonly)
Returns the value of attribute numreads.
14 15 16 |
# File 'lib/sensor.rb', line 14 def numreads @numreads end |
#underlying ⇒ Object
Returns the value of attribute underlying.
15 16 17 |
# File 'lib/sensor.rb', line 15 def end |
Instance Method Details
#average(from, to) ⇒ Object
70 71 72 73 |
# File 'lib/sensor.rb', line 70 def average(from, to) return @mock_opts[:average] if @mock_opts[:average] apply_offset @dbstore.average(@name, from, to) end |
#last_value ⇒ Object
85 86 87 88 |
# File 'lib/sensor.rb', line 85 def last_value return @mock_opts[:last_value] if @mock_opts[:last_value] apply_offset @dbstore.last_value(@name) end |
#maximum(from, to) ⇒ Object
80 81 82 83 |
# File 'lib/sensor.rb', line 80 def maximum(from, to) return @mock_opts[:maximum] if @mock_opts[:maximum] apply_offset @dbstore.maximum(@name, from, to) end |
#minimum(from, to) ⇒ Object
75 76 77 78 |
# File 'lib/sensor.rb', line 75 def minimum(from, to) return @mock_opts[:minimum] if @mock_opts[:minimum] apply_offset @dbstore.minimum(@name, from, to) end |
#mock_set(opts) ⇒ Object
95 96 97 |
# File 'lib/sensor.rb', line 95 def mock_set(opts) @mock_opts.merge!(opts) end |
#read ⇒ Object
52 53 54 |
# File 'lib/sensor.rb', line 52 def read real_read(false) end |
#read_uncached ⇒ Object
56 57 58 |
# File 'lib/sensor.rb', line 56 def read_uncached real_read(true) end |
#sensor_type ⇒ Object
48 49 50 |
# File 'lib/sensor.rb', line 48 def sensor_type @set_type || .sensor_type end |
#store_value ⇒ Object
90 91 92 93 |
# File 'lib/sensor.rb', line 90 def store_value value = real_read(true,false) @dbstore.write(@name, Time.now.utc.to_i, value) if value end |
#write(value) ⇒ Object
60 61 62 63 64 65 66 67 68 |
# File 'lib/sensor.rb', line 60 def write(value) if @mock_opts[:value] @mock_opts[:value] = value else ret = .write(value) store_value ret end end |
#writeable? ⇒ Boolean
44 45 46 |
# File 'lib/sensor.rb', line 44 def writeable? .writeable? end |