class Artoo::Drivers::MakeyButton
MakeyButton
driver behaviors
Constants
- COMMANDS
- DOWN
- UP
Attributes
data[RW]
Public Class Methods
new(params={})
click to toggle source
Calls superclass method
# File lib/artoo/drivers/makey_button.rb, line 14 def initialize(params={}) super @data = [] end
Public Instance Methods
is_pressed?()
click to toggle source
@return [Boolean] True if pressed
# File lib/artoo/drivers/makey_button.rb, line 21 def is_pressed? (@pressed_val == 1) ? true : false end
start_driver()
click to toggle source
Calls superclass method
# File lib/artoo/drivers/makey_button.rb, line 25 def start_driver @pressed_val = 0 every(0.1) do new_value = connection.digital_read(pin) unless new_value.nil? @data << new_value @data.shift if @data.size > 5 update(new_value) end end super end
Private Instance Methods
average_data()
click to toggle source
Averages data received
# File lib/artoo/drivers/makey_button.rb, line 55 def average_data return 0 unless @data.any? @data.inject(:+) / @data.size.to_f end
update(new_val)
click to toggle source
Publishes events according to the button feedback
# File lib/artoo/drivers/makey_button.rb, line 42 def update(new_val) if average_data <= 0.5 and not is_pressed? @pressed_val = 1 publish(event_topic_name("update"), "push", new_val) publish(event_topic_name("push"), new_val) elsif average_data > 0.5 and is_pressed? @pressed_val = 0 publish(event_topic_name("update"), "release", new_val) publish(event_topic_name("release"), new_val) end end