Class: BeagleBoard::FreeBSD::Adc

Inherits:
Base::Adc show all
Extended by:
FFI::Library
Defined in:
lib/beagleboard/freebsd/adc.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base::Adc

#value

Constructor Details

#initialize(adc) ⇒ Adc

Returns a new instance of Adc.



36
37
38
39
40
41
42
43
44
45
# File 'lib/beagleboard/freebsd/adc.rb', line 36

def initialize(adc)
  @enable_mib = FFI::MemoryPointer.new(:int, 6)
  @input_mib = FFI::MemoryPointer.new(:int, 6)

  size = FFI::MemoryPointer.new(:int).write_int(6)
  Adc.sysctlnametomib("dev.ti_adc.0.ain.#{adc}.enable", @enable_mib, size)
  Adc.sysctlnametomib("dev.ti_adc.0.ain.#{adc}.input", @input_mib, size)

  super
end

Instance Attribute Details

#scaleObject

Returns the value of attribute scale.



59
60
61
# File 'lib/beagleboard/freebsd/adc.rb', line 59

def scale
  @scale
end

Class Method Details

.disable(mib) ⇒ Object

Raises:

  • (StandardError)


22
23
24
25
26
# File 'lib/beagleboard/freebsd/adc.rb', line 22

def self.disable(mib)
  buf = FFI::MemoryPointer.new(:int).write_int(0)
  res = sysctl(mib, 6, nil, nil, buf, buf.size)
  raise StandardError, 'Write error' if res < 0
end

.enable(mib) ⇒ Object

Raises:

  • (StandardError)


16
17
18
19
20
# File 'lib/beagleboard/freebsd/adc.rb', line 16

def self.enable(mib)
  buf = FFI::MemoryPointer.new(:int).write_int(1)
  res = sysctl(mib, 6, nil, nil, buf, buf.size)
  raise StandardError, 'Write error' if res < 0
end

.input(mib) ⇒ Object

Raises:

  • (StandardError)


28
29
30
31
32
33
34
# File 'lib/beagleboard/freebsd/adc.rb', line 28

def self.input(mib)
  buf = FFI::MemoryPointer.new(:int)
  bufsiz = FFI::MemoryPointer.new(:int).write_int(buf.size)
  res = sysctl(mib, 6, buf, bufsiz, nil, 0)
  raise StandardError, 'Read error' if res < 0
  buf.read_int
end

Instance Method Details

#disableObject



51
52
53
# File 'lib/beagleboard/freebsd/adc.rb', line 51

def disable
  Adc.disable(@enable_mib)
end

#enableObject



47
48
49
# File 'lib/beagleboard/freebsd/adc.rb', line 47

def enable
  Adc.enable(@enable_mib)
end

#raw_valueObject



55
56
57
# File 'lib/beagleboard/freebsd/adc.rb', line 55

def raw_value
  Adc.input(@input_mib)
end