8月 9 2008
Daily Archives: 2008年8月9日
8月 9 2008
ruby (http/rescue)
鯖への転送処理を組み込む前にエラー処理を入れておく。これが無いとデータ転送時、エラーが発生したらプログラムが落ちてしまう。
[http2.rb] require 'net/http' Net::HTTP.version_1_2 begin Net::HTTP.start('192.168.1.100', 80) { |http| rc = http.post('/barcode/recv.php', 'COD=xxxxxxxxxxxxy&TIM=2008-08-08 00:00:00') case rc when Net::HTTPSuccess puts rc.body else puts "error ..." end } rescue Errno::ECONNREFUSED puts "ECONNREFUSED" rescue Timeout::Error puts "TIMEOUT" end
↓エラー処理が無い場合、rubyで落ちてしまうが、エラー処理を入れるときちんとメッセージが表示される。
鎌倉観光 深谷霊園 インターンシップ
By admin • computer(windows) •
8月 9 2008
ruby (thread)
thread処理はとても簡単。b = BCR.newの前に以下を入れ込む。
Thread.start { while true day = Time.now printf("%s -> \r\n", day.strftime("%Y-%m-%d %H:%M:%S")) sleep 60 end }
60秒毎に時間が表示される様になる。ここに鯖へのデータ転送処理を入れ込む事でバーコードリーダからのデータを受信しつつ、データ転送が行える。完成まで後、ちょっと。
鎌倉観光 深谷霊園 インターンシップ
By admin • computer(windows) • 0
8月 9 2008
ruby (sqlite3)
やはりcsvファイルでは鯖へ送信したデータの更新がやりにくいって事で、sqlite3を使うことにする。用意するものはsqlite3-ruby-1.2.0-msvcrt-bin.zipと、sqlitedll-3_6_1.zip。sqlite3-rubyは、1.2.2があるみたいだけど、msvcrt版がないのでしょうがない。解凍後、sqllite3-rubyはruby install.rbし、sqlitedllはrubyをインスコしたbinディレクトリにcopyする。
dbの初期化をしなければいけないので、別に初期化プログラムを作成。
[bcr_initdb.rb]
require ‘sqlite3’
db = SQLite3::Database.new(“bcr.db”).execute_batch(<<-'EOD')
CREATE TABLE BCR01 (
KEYCD INTEGER PRIMARY KEY,
INFO01 VARCHAR(20) NOT NULL,
INFO02 VARCHAR(20) NOT NULL,
INFO03 INTEGER DEFAULT 0
);
EOD
KEYCD 登録番号
INFO01 日時
INFO02 バーコード
INFO03 送信済フラグ(0:未送信・1:送信済)
作成できたらテストしてみる。以下のプログラムはINSERT文をコメントアウトするとテーブルのダンププログラムとして使用できる。
[sqlite.rb]
require 'sqlite3'
db = SQLite3::Database.new('bcr.db')
db.execute("INSERT INTO BCR01 (INFO01, INFO02) VALUES ('2008-08-08 00:00:00', 'xxxxxxxxxxxxx') ");
rc = db.execute("SELECT * FROM BCR01 WHERE INFO03 = 0 ORDER BY KEYCD ");
rc.each do |obj|
p obj
end
で、最後にバーコードリーダ処理ソフトを変更する。変更点は以下の3つ。
require ‘fastercsv’
↓
require ‘sqlite3’
# CSV write
FasterCSV.open(“recv.log”, “a”) { |csv|
csv << [day.strftime("%Y-%m-%d %H:%M:%S"), @bcd, '0']
}
↓
$db.execute(sprintf("INSERT INTO BCR01 (INFO01, INFO02) VALUES ('%s', '%s') ",day.strftime("%Y-%m-%d %H:%M:%S"), @bcd))
b = BCR.new
↓
$db = SQLite3::Database.new('bcr.db')
b = BCR.new
鎌倉観光 深谷霊園 インターンシップ
By admin • computer(windows) • 0
8月 9 2008
東扇島・西公園
ほんとは金曜日から出撃したかったんだけど、色々あってですね、人生大変ですよ。結局、土曜日11:00〜17:00(テトラ近辺)。木曜日を教訓に仕掛けを作成すると、幸先良く、2つ。があ、後が続かず、これだけ。隣ではちょこちょこ良い型が4〜5匹上がってました。敗因は、ポイントだなww。ポイントが数メートル違うと全然喰ってこないですよ。


鎌倉観光 深谷霊園 インターンシップ
By admin • fishing(diary) • 0