gainer.rbのデジタル・アナログ入力処理を読んでみた

公開日: : 最終更新日:2014/01/29 Gainer

記事内に広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

以下、該当部分。


@analog_input = []
@digital_input = []

attr_reader :led, :analog_input, :digital_input, :analog_output, :digital_output

def peek_digital_input
command('R')
end

def peek_analog_input
command('I')
end

def process_next_event(wait = nil)
reply = next_event
sleep(wait) if wait
process_event(reply)
end

private
def command(cmd, args = {})
command_send(cmd + '*')
process_next_event(args[:wait])
end

def process_event(event)
case event
when '!*'
raise
when 'h*'
@led = true
when 'l*'
@led = false
when 'N*'
@on_pressed.call
when 'F*'
@on_released.call
when /^I([0-9A-F]+)\*$/
s = $1
s.scan(/../).each_with_index do |s, i|
@analog_input[i] = s.to_i(16)
end
when /^R([0-9A-F]+)\*$/
s = $1
s.reverse.scan(/./).each_with_index do |s, i|
@digital_input[i] = s.to_i(16)
end
end
end

思ったよりもかなり簡単。

関連記事

サンフランシスコのピア39にあるチャウダーズでクラムチャウダーを食す!

lolipop アップルの開発者向けイベント「WWDC2014」

ミスドのカルピスドーナツとカルピスポンデリングを食べてみた!

ミスドで期間限定のカルピスコラボ商品「カルピスドーナツ」と「カルピ

十三カレー計画で牛すじカレーネギのせを食す!(大阪・十三)

「iPhoneアプリ開発キャンプ@大阪」のランチで、十三カレー計画

大阪・難波の加寿屋 法善寺でかすうどんを食す。ランチタイムはおにぎり2個まで無料!

大阪・難波の加寿屋 法善寺 (かすうどん KASUYA)で、かす

ライブドアブログで運営していた「あきお商店」を「卵は世界である」に改名しました

少し前からライブドアブログで「あきお商店」というブログをやって

→もっと見る

PAGE TOP ↑