Module: DhtSensor

Extended by:
FFI::Library
Defined in:
lib/dht-sensor-ffi.rb,
lib/dht-sensor/app.rb,
lib/dht-sensor/reading.rb

Defined Under Namespace

Classes: App, Reading

Class Method Summary collapse

Class Method Details

.read(pin, type = 22, tries = 50) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/dht-sensor-ffi.rb', line 14

def self.read(pin, type=22, tries=50)

  temperature = FFI::MemoryPointer.new(:float)
  humidity = FFI::MemoryPointer.new(:float)

  ret = nil
  1.upto(tries) do
    ret = DhtSensor.readDHT(type, pin, temperature, humidity)
    break if ret == 0 && !(temperature.read_float == 0.0 && humidity.read_float == 0.0)
    sleep 0.1
  end

  if ret != 0 then
    raise "Failed to read from sensor (read call returned #{ret})"
  end

  Reading.new(temperature.read_float, humidity.read_float)
end