8月 10 2008
Daily Archives: 2008年8月10日
8月 10 2008
ruby (thread/http)
thread処理の中でカードリーダ読取データを鯖へ送信します。送信済みフラグが’0’のモノを持ってきて、パラメータを組み、鯖へPOST。その後、送信済みフラグを’1’に更新すれば処理は終了です。通信エラー時は送信済みフラグは更新されないので、次回のthreadでリトライする事になります。これで完成。ついでに汎用的に使えるように、鯖系のパラメータやCOMのポート等、定数にマトメマシタ。
require "wincons" require "wincom" require 'sqlite3' require 'net/http' class INI @server @php @plc @comm attr_accessor :server, :php, :plc, :comm def initialize @server = "192.168.1.100" @php = "/barcode/recv.php" @plc = "0001" @comm = 5 end end $initial_c = INI.new class BCR @db @bcd def initialize @bcd = "" @con1 = Console.new @com5 = Serial.new end def Open ir = @com5.open($initial_c.comm, 0x1807, 9600, 8, 0, 0, 256, 256) return ir end def Close @com5.close end def main rc = @com5.receive if rc != nil for ia in 0..(rc.length - 1) do if rc[ia].chr == "\r" day = Time.now printf("%s %s\r\n", day.strftime("%Y-%m-%d %H:%M:%S"), @bcd) $db.execute(sprintf("INSERT INTO BCR01 (INFO01, INFO02) VALUES ('%s', '%s') ", day.strftime("%Y-%m-%d %H:%M:%S"), @bcd)) @bcd = "" else @bcd += rc[ia].chr end end end ca, = @con1.keyin if ca == "e" || ca == "E" return 1 end return nil end end $db = SQLite3::Database.new('bcr.db') Thread.start { while true day = Time.now printf("%s -> \r\n", day.strftime("%Y-%m-%d %H:%M:%S")) Net::HTTP.version_1_2 begin Net::HTTP.start($initial_c.server, 80) { |http| rc = $db.execute("SELECT * FROM BCR01 WHERE INFO03 = 0 ORDER BY KEYCD "); rc.each do |obj| buf = sprintf("PLC=%s&TIM=%s&COD=%s", $initial_c.plc, obj[1], obj[2]) rc2 = http.post($initial_c.php, buf) case rc2 when Net::HTTPSuccess puts rc2.body $db.execute(sprintf("UPDATE BCR01 SET INFO03 = 1 WHERE KEYCD = %d ", obj[0])) else puts "error ..." end end } rescue Errno::ECONNREFUSED puts "ECONNREFUSED" rescue Timeout::Error puts "TIMEOUT" end sleep 60 end } b = BCR.new c = b.Open if c != nil print "open error" end while c == nil c = b.main sleep 0.01 end b.Close
By admin • computer(windows) •
8月 10 2008
お疲れさん。
東川口・一徳にて暑気払い。ビールに枝豆は基本ですか。後は串焼きとサンマ塩焼、サラダ等。16:00頃、フレッシュネスバーガーを食べたので、大ビール3つしか呑めなかったっす。



鎌倉観光 深谷霊園 インターンシップ
By admin • foods • 0