Class: Artoo::Adaptors::Littlewire
- Inherits:
-
Adaptor
- Object
- Adaptor
- Artoo::Adaptors::Littlewire
- Defined in:
- lib/artoo/adaptors/littlewire.rb
Overview
Connect to Digispark or Littlewire device using Little Wire protocol
Instance Attribute Summary collapse
-
#littlewire ⇒ Object
readonly
Returns the value of attribute littlewire.
-
#product ⇒ Object
readonly
Returns the value of attribute product.
-
#usb ⇒ Object
readonly
Returns the value of attribute usb.
-
#vendor ⇒ Object
readonly
Returns the value of attribute vendor.
Instance Method Summary collapse
-
#connect ⇒ Boolean
Creates connection with littlewire board.
- #connect_to_usb ⇒ Object
- #digital_read(pin) ⇒ Object
-
#disconnect ⇒ Boolean
Closes connection with littlewire board.
-
#firmware_name ⇒ String
Returns firmware name of littlewire board.
-
#initialize(params = {}) ⇒ Littlewire
constructor
A new instance of Littlewire.
-
#method_missing(method_name, *arguments, &block) ⇒ Object
Uses method missing to call Littlewire methods.
- #pwm_write(pin, level) ⇒ Object
Constructor Details
#initialize(params = {}) ⇒ Littlewire
Returns a new instance of Littlewire.
10 11 12 13 14 15 16 |
# File 'lib/artoo/adaptors/littlewire.rb', line 10 def initialize(params={}) super params[:additional_params] ||= {} @vendor = params[:additional_params][:vendor] || 0x1781 @product = params[:additional_params][:product] || 0x0c9f end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *arguments, &block) ⇒ Object
Uses method missing to call Littlewire methods
58 59 60 |
# File 'lib/artoo/adaptors/littlewire.rb', line 58 def method_missing(method_name, *arguments, &block) littlewire.send(method_name, *arguments, &block) end |
Instance Attribute Details
#littlewire ⇒ Object (readonly)
Returns the value of attribute littlewire.
8 9 10 |
# File 'lib/artoo/adaptors/littlewire.rb', line 8 def littlewire @littlewire end |
#product ⇒ Object (readonly)
Returns the value of attribute product.
8 9 10 |
# File 'lib/artoo/adaptors/littlewire.rb', line 8 def product @product end |
#usb ⇒ Object (readonly)
Returns the value of attribute usb.
8 9 10 |
# File 'lib/artoo/adaptors/littlewire.rb', line 8 def usb @usb end |
#vendor ⇒ Object (readonly)
Returns the value of attribute vendor.
8 9 10 |
# File 'lib/artoo/adaptors/littlewire.rb', line 8 def vendor @vendor end |
Instance Method Details
#connect ⇒ Boolean
Creates connection with littlewire board
20 21 22 23 24 25 |
# File 'lib/artoo/adaptors/littlewire.rb', line 20 def connect require 'littlewire' unless defined?(::LittleWire) @littlewire = ::LittleWire.new(connect_to_usb) super return true end |
#connect_to_usb ⇒ Object
49 50 51 52 53 54 |
# File 'lib/artoo/adaptors/littlewire.rb', line 49 def connect_to_usb @usb = LIBUSB::Context.new.devices( :idVendor => vendor, :idProduct => product ).first end |
#digital_read(pin) ⇒ Object
40 41 42 43 |
# File 'lib/artoo/adaptors/littlewire.rb', line 40 def digital_read(pin) littlewire.digital_write(pin, true) littlewire.digital_read(pin) end |
#disconnect ⇒ Boolean
Closes connection with littlewire board
29 30 31 32 |
# File 'lib/artoo/adaptors/littlewire.rb', line 29 def disconnect littlewire.finished super end |
#firmware_name ⇒ String
Returns firmware name of littlewire board
36 37 38 |
# File 'lib/artoo/adaptors/littlewire.rb', line 36 def firmware_name "Little Wire" end |
#pwm_write(pin, level) ⇒ Object
45 46 47 |
# File 'lib/artoo/adaptors/littlewire.rb', line 45 def pwm_write(pin, level) littlewire.software_pwm_write(pin, level) end |