

### 追記

私が”Socket”と”割り込み”に関して知識がこんがらがっていて、下記の質問内容がおかしくなっています。割り込みを使ってGPIOの値の取得を行う方法を教えて下さい。

\---- 以下元の質問文 ---

Raspberry
Piでボタンを繋げて押した時に特定の動作をするように以下の様なコードで行っているのですが、自分から`value`ファイルを読みにいくのではなくSocketを使い、変更があった時にだけ受け取るような書き方のほうが良いとアドバイスされました。

[code]

    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
    
[/code]

それでドキュメントの`[Socket][1]`項目を読んでみて`Socket.sockaddr_un`を使うのかというアタリはつけたのですが、具体的な使い方がわかりません…。

今回のような場合はどのように`Socket`が使えるのでしょうか？


CC BY-SA 3.0
2015-11-24T12:11:48.570
19251
2018-05-11T03:52:11.093
2018-05-11T03:52:11.093
3060
3271
question
ruby raspberry-pi gpio
Raspberry Pi でGPIOの値の取得を割り込みを使って行う方法