class Touchberrypi::Keyboard
Constants
- KEY_MAP
Public Class Methods
new(i2c)
click to toggle source
# File lib/touchberrypi/Keyboard.rb, line 13 def initialize i2c sensor = Qt1070.new i2c # read sensor status to reset 'change' pin sensor.detection_status @previous_status = sensor.key_status this = self watch :pin => 4, :pull => :up, :trigger => :falling do detection = sensor.detection_status status = sensor.key_status this.call_block status end end
Public Instance Methods
call_block(status)
click to toggle source
# File lib/touchberrypi/Keyboard.rb, line 42 def call_block status status.length.times do |i| if status[i] != @previous_status[i] key = KEY_MAP[i] @on_key_up_block.call key if status[i] == "released" unless @on_key_up_block.nil? @on_key_down_block.call key if status[i] == "pressed" unless @on_key_down_block.nil? @on_key_change_block.call key, status[i] unless @on_key_change_block.nil? end end @previous_status = status end
on_key_change(&block)
click to toggle source
# File lib/touchberrypi/Keyboard.rb, line 30 def on_key_change &block @on_key_change_block = block end
on_key_down(&block)
click to toggle source
# File lib/touchberrypi/Keyboard.rb, line 38 def on_key_down &block @on_key_down_block = block end
on_key_up(&block)
click to toggle source
# File lib/touchberrypi/Keyboard.rb, line 34 def on_key_up &block @on_key_up_block = block end