#!/usr/bin/env ruby #------ PhidgetBrowser.rb: PhidgetでWeb閲覧 ---------------# #------------------- By Koji Tsukada 2005/11 --------------# require "socket" module PhidgetApplication class PhidgetBrowser LEVEL_MAX = 1024 def initialize(ip = "127.0.0.1", port = 4321, sleep_time = 0) main(ip, port, sleep_time) end def main(ip, port, sleep_time) url_list = load_url socket = TCPSocket.new(ip, port) while line = socket.gets level = parse(line.chomp) if(level != nil) p level.to_s if sleep_time == 0 set_url(url_list, level) else set_url_with_sleep(url_list, level, sleep_time) end end end socket.close end def load_url(file = "url.txt") urls = Array.new File.open(file) do |f| f.each do |line| if(line !~ /^#/) urls.push(line.chomp!) p line end end end urls end def parse(line) args = line.split(",") if args[0] == "In" and args[1] == "InterfaceKit" and args[2] == "Analog" case args[3] when "0" level = args[4].to_i end end level end def set_url(url_list, level) num = (level / (LEVEL_MAX / url_list.length)).to_i if num != @num_pre p url_list[num].to_s system "cygstart #{url_list[num]}" @num_pre = num end end def set_url_with_sleep(url_list, level, sleep_time = 1) @num = (level / (LEVEL_MAX / url_list.length)).to_i p @num.to_s if @num != @num_pre && !@sleeping Thread.start do @sleeping = true sleep(sleep_time) p url_list[@num].to_s system "cygstart #{url_list[@num]}" @sleeping = false end end @num_pre = @num end end ############################################# #プログラム開始 ############################################# case ARGV.length when 0: puts "Usage: PhidgetBrowser [ip] [port] [sleep_time]" PhidgetBrowser.new() # when 1: # PhidgetBrowser.new("127.0.0.1", 4321, ARGV[0].to_i) when 2: PhidgetBrowser.new(ARGV[0],ARGV[1].to_i) when 3: PhidgetBrowser.new(ARGV[0], ARGV[1].to_i, ARGV[2].to_i) else puts "Usage: PhidgetBrowser [ip] [port] [sleep_time]" exit(0) end end