class Artoo::Adaptors::Wandboard
Connect to a wandboard device @see device documentation for more information
Constants
- I2C0
- I2C1
- PINS
Attributes
camera[R]
device[R]
i2c1[R]
i2c2[R]
lvds[R]
pins[R]
spdif[R]
spi[R]
ttl[R]
uart[R]
Public Class Methods
gpio(bank, number)
click to toggle source
# File lib/artoo/adaptors/wandboard.rb, line 14 def self.gpio(bank, number) (bank - 1) * 32 + number end
Public Instance Methods
connect()
click to toggle source
Creates a connection with device @return [Boolean]
Calls superclass method
# File lib/artoo/adaptors/wandboard.rb, line 32 def connect @pins ||= {} super end
digital_read(pin)
click to toggle source
# File lib/artoo/adaptors/wandboard.rb, line 62 def digital_read(pin) pin = wandboard_pin(pin, 'r') pin.digital_read end
digital_write(pin, val)
click to toggle source
# File lib/artoo/adaptors/wandboard.rb, line 57 def digital_write(pin, val) pin = wandboard_pin(pin, 'w') pin.digital_write(val) end
disconnect()
click to toggle source
Closes connection with device @return [Boolean]
Calls superclass method
# File lib/artoo/adaptors/wandboard.rb, line 39 def disconnect @pins.each { |n, p| p.close } if @pins @pins = {} super end
i2c1_read(len)
click to toggle source
# File lib/artoo/adaptors/wandboard.rb, line 76 def i2c1_read(len) raise 'Not started' unless @i2c1 @i2c1.read(len) end
i2c1_start(address)
click to toggle source
# File lib/artoo/adaptors/wandboard.rb, line 67 def i2c1_start(address) @i2c1 = I2c.new(I2C0, address) end
i2c1_write(*data)
click to toggle source
# File lib/artoo/adaptors/wandboard.rb, line 71 def i2c1_write(*data) raise 'Not started' unless @i2c1 @i2c1.write(*data) end
i2c2_read(len)
click to toggle source
# File lib/artoo/adaptors/wandboard.rb, line 90 def i2c2_read(len) raise 'Not started' unless @i2c2 @i2c2.read(len) end
i2c2_start(address)
click to toggle source
# File lib/artoo/adaptors/wandboard.rb, line 81 def i2c2_start(address) @i2c2 = I2c.new(I2C1, address) end
i2c2_write(*data)
click to toggle source
# File lib/artoo/adaptors/wandboard.rb, line 85 def i2c2_write(*data) raise 'Not started' unless @i2c2 @i2c2.write(*data) end
method_missing(method_name, *arguments, &block)
click to toggle source
Uses method missing to call device actions @see device documentation
# File lib/artoo/adaptors/wandboard.rb, line 97 def method_missing(method_name, *arguments, &block) device.send(method_name, *arguments, &block) end
name()
click to toggle source
Name of device @return [String]
# File lib/artoo/adaptors/wandboard.rb, line 47 def name 'wandboard' end
version()
click to toggle source
Version of device @return [String]
# File lib/artoo/adaptors/wandboard.rb, line 53 def version Artoo::Wandboard::VERSION end
Private Instance Methods
translate_pin(pin)
click to toggle source
# File lib/artoo/adaptors/wandboard.rb, line 103 def translate_pin(pin) PINS.fetch(pin) rescue KeyError raise 'Not a valid pin' end
wandboard_pin(pin, mode)
click to toggle source
# File lib/artoo/adaptors/wandboard.rb, line 109 def wandboard_pin(pin, mode) raise 'Not connected' unless connected? pin = translate_pin(pin) @pins[pin] = DigitalPin.new(pin, mode) if @pins[pin].nil? or @pins[pin].mode != mode @pins[pin] end