Raspberry Pi でGPIOの値の取得を割り込みを使って行う方法
追記
私が”Socket”と”割り込み”に関して知識がこんがらがっていて、下記の質問内容がおかしくなっています。割り込みを使ってGPIOの値の取得を行う方法を教えて下さい。
---- 以下元の質問文 ---
Raspberry Piでボタンを繋げて押した時に特定の動作をするように以下の様なコードで行っているのですが、自分からvalue
ファイルを読みにいくのではなくSocketを使い、変更があった時にだけ受け取るような書き方のほうが良いとアドバイスされました。
class Switch
def initialize(gpio:)
@gpio = gpio
end
def update_status
case File.read("/sys/class/gpio/gpio#{@gpio}/value").to_i
when 0 then
unpush
when 1 then
push
end
end
def unpush
end
def push
end
end
switch = Switch.new(gpio: 24)
loop do
switch.update_status
sleep(0.1)
end
それでドキュメントの[Socket][1]
項目を読んでみてSocket.sockaddr_un
を使うのかというアタリはつけたのですが、具体的な使い方がわかりません…。
今回のような場合はどのようにSocket
が使えるのでしょうか?