Class: Beaglebone::GPIOPin
- Inherits:
-
Object
- Object
- Beaglebone::GPIOPin
- Defined in:
- lib/beaglebone/gpio.rb
Overview
Object Oriented GPIO Implementation. This treats the pin as an object.
Instance Method Summary collapse
-
#digital_read ⇒ Symbol
Reads a pin’s input state and return that value.
-
#digital_write(state) ⇒ Object
Sets a pin’s output state.
-
#disable_gpio_pin ⇒ Object
Disable GPIO pin.
-
#get_gpio_edge ⇒ Symbol
Returns the GPIO edge trigger type.
-
#get_gpio_mode ⇒ Symbol
Returns mode from pin, reads mode if unknown.
-
#get_gpio_state ⇒ Symbol
Returns last known state from
pin
, reads state if unknown. -
#initialize(pin, mode, pullmode = nil, slewrate = nil) ⇒ GPIOPin
constructor
Initialize a GPIO pin Return’s a GPIOPin object, setting the pin mode on initialization.
-
#run_on_edge(callback, edge, timeout = nil, repeats = nil) ⇒ Object
Runs a callback on an edge trigger event.
-
#run_once_on_edge(callback, edge, timeout = nil) ⇒ Object
Runs a callback one time on an edge trigger event.
-
#set_gpio_edge(edge, force = nil) ⇒ Object
Set GPIO edge trigger type.
-
#set_gpio_mode(mode) ⇒ Object
Set GPIO mode on an initialized pin.
-
#stop_edge_wait ⇒ Object
Stops any threads waiting for data on this pin.
-
#wait_for_edge(edge, timeout = nil) ⇒ Symbol
Wait for an edge trigger.
Constructor Details
#initialize(pin, mode, pullmode = nil, slewrate = nil) ⇒ GPIOPin
Initialize a GPIO pin Return’s a GPIOPin object, setting the pin mode on initialization
612 613 614 615 616 |
# File 'lib/beaglebone/gpio.rb', line 612 def initialize(pin, mode, pullmode = nil, slewrate = nil) @pin = pin GPIO::pin_mode(@pin, mode, pullmode, slewrate) end |
Instance Method Details
#digital_read ⇒ Symbol
Reads a pin’s input state and return that value
637 638 639 |
# File 'lib/beaglebone/gpio.rb', line 637 def digital_read GPIO::digital_read(@pin) end |
#digital_write(state) ⇒ Object
Sets a pin’s output state
626 627 628 |
# File 'lib/beaglebone/gpio.rb', line 626 def digital_write(state) GPIO::digital_write(@pin, state) end |
#disable_gpio_pin ⇒ Object
Disable GPIO pin
726 727 728 |
# File 'lib/beaglebone/gpio.rb', line 726 def disable_gpio_pin GPIO::disable_gpio_pin(@pin) end |
#get_gpio_edge ⇒ Symbol
Returns the GPIO edge trigger type
698 699 700 |
# File 'lib/beaglebone/gpio.rb', line 698 def get_gpio_edge GPIO::get_gpio_edge(@pin) end |
#get_gpio_mode ⇒ Symbol
Returns mode from pin, reads mode if unknown
692 693 694 |
# File 'lib/beaglebone/gpio.rb', line 692 def get_gpio_mode GPIO::get_gpio_mode(@pin) end |
#get_gpio_state ⇒ Symbol
Returns last known state from pin
, reads state if unknown
686 687 688 |
# File 'lib/beaglebone/gpio.rb', line 686 def get_gpio_state GPIO::get_gpio_state(@pin) end |
#run_on_edge(callback, edge, timeout = nil, repeats = nil) ⇒ Object
Runs a callback on an edge trigger event. This creates a new thread that runs in the background
652 653 654 |
# File 'lib/beaglebone/gpio.rb', line 652 def run_on_edge(callback, edge, timeout=nil, repeats=nil) GPIO::run_on_edge(callback, @pin, edge, timeout, repeats) end |
#run_once_on_edge(callback, edge, timeout = nil) ⇒ Object
Runs a callback one time on an edge trigger event. this is a convenience method for run_on_edge
659 660 661 |
# File 'lib/beaglebone/gpio.rb', line 659 def run_once_on_edge(callback, edge, timeout=nil) GPIO::run_once_on_edge(callback, @pin, edge, timeout) end |
#set_gpio_edge(edge, force = nil) ⇒ Object
Set GPIO edge trigger type
721 722 723 |
# File 'lib/beaglebone/gpio.rb', line 721 def set_gpio_edge(edge, force=nil) GPIO::set_gpio_edge(@pin, edge, force) end |
#set_gpio_mode(mode) ⇒ Object
Set GPIO mode on an initialized pin
710 711 712 |
# File 'lib/beaglebone/gpio.rb', line 710 def set_gpio_mode(mode) GPIO::set_gpio_mode(@pin, mode) end |
#stop_edge_wait ⇒ Object
Stops any threads waiting for data on this pin
665 666 667 |
# File 'lib/beaglebone/gpio.rb', line 665 def stop_edge_wait GPIO::stop_edge_wait(@pin) end |
#wait_for_edge(edge, timeout = nil) ⇒ Symbol
Wait for an edge trigger. Returns the type that triggered the event, e.g. :RISING, :FALLING, :BOTH
680 681 682 |
# File 'lib/beaglebone/gpio.rb', line 680 def wait_for_edge(edge, timeout=nil) GPIO::wait_for_edge(@pin, edge, timeout) end |