rubyでpatliteを鳴らす。

今回つかったのはPATLITE社のPHN-3FBっていうLAN型のパトライト。
細かい仕様はマニュアルをみてくれなはれ。

・patlite.rb

#!/usr/bin/ruby
require 'socket'

#control command
COMMANDS = {
  'req_cmd' => 87,
  'R' => 1,
  'Y' => 2,
  'G' => 4,
  's' => 8,
  'l' => 16,
  'r' => 32,
  'y' => 64,
  'g' => 128
}

class Patlite
  def initialize(host, port)
    @host = host
    @port = port
    @time = 3
  end

  def alert(opt)
    byte_data = 0
    opt.split(//).each {|c|
      byte_data += COMMANDS[c]
    }

    begin
      s = TCPSocket.open(@host, @port)
    rescue
      p $!
    else
      s.write([COMMANDS['req_cmd'], byte_data].pack('c*'))
      sleep @time
      s.write([COMMANDS['req_cmd'], 0].pack('c*'))
      s.close
    end
  end
end


・使い方はこんな感じ。

#!/usr/bin/ruby
require 'patlite'

pat = Patlite.new(アドレス, ポート番号)
pat.alert('Rs') 

alertに渡すオプションは以下のとおり

  • R 赤点灯
  • Y 黄点灯
  • G 緑点灯
  • s 短いビープ(ピピピッ)
  • l 長いビープ(ピーピー)
  • r 赤点滅
  • y 黄点滅
  • g 緑点滅

まぁ、荒い作りなのでもし必要な方がいたら、良い感じに作り直して使ってください。