ruby:456
From: Kazuhiro Yoshida <moriq@m...>
Date: Mon, 18 Oct 2004 07:19:53 +0900
Subject: [ruby:456] Re: Ruby 活用事例募集(Re: 関西オープンソース2004について)
もりきゅうです。 SASADA Koichi <ko1@a...> wrote: > どなたか、いらっしゃいませんか? それとも、Ruby って使われ > てないのかなあ。 では、私のお仕事からひとつ紹介します。 組織名: 株式会社ミッタシステム 対象とする問題の概要: プラスチック射出成型機のエラー信号を受けて ネットワークカメラの向きを変更、画像を保存し、メールを送信する。 特に難しいところ * 開発に時間をかけられない。 * 現物なしに開発する必要がある (実地で調整する必要がある)。 Rubyによる解決の概要: 射出成型機のエラー信号を TCP ソケットで受け取れるようにしておく (Hello Device 1100 を利用)。 WinXP 機上に仕掛けを用意するため Apollo (Delphi/Ruby) を導入した。 最初は Apollo で管理画面を用意したが、その後、外部から管理したい との要望を受け、設定ファイルをサーバに置き、CGI(Ruby) を用意した。 これはその場で実装できた :) エラー信号の受信部 Ruby の TCPSocket を用いると数行で実装できた。 # エラーチェックは省略 s = TCPSocket.open("192.168.11.20", 6001) s.write "\x75\x00\x00\x00" str = s.read(4) i0 = str[0] i1 = str[1] puts "%04d: %08b %08b" % [cnt, i0,i1] ネットワークカメラの操作 Net::HTTP を用いた。 画像の保存 ネットワークカメラが MJPEG で画像を流すので、以下のように処理した。 HEADER = "--myboundary\nContent-type: image\/jpeg\n\n" IMAGE_DIR = "/cam/images" @camera_host = "192.168.11.18" @camera_port = 8080 def capture(host=@camera_host, port=@camera_port, user='', passwd='') request = Net::HTTP::Get.new('nphMotionJpeg?Resolution=160x120 &Quality=Standard') request.basic_auth(user, passwd) cnt = 0 buf = '' Net::HTTP.start(host, port){|http| http.request(request){|response| response.read_body{|body| idx = body.index(HEADER) if idx.nil? buf << body else buf << body[0, idx-1] if idx != 0 unless buf.empty? time = Time.now fname = time.strftime('%Y%m%d%H%M%S') + '.jpg' open(File.join(IMAGE_DIR,fname),'wb') do |o| o.print buf[buf.index("\xFF\xD8") ... buf.rindex("\xFF\xD9")+2] end return fname end buf[0..-1] = body[idx+HEADER.size .. -1] end }}} nil end メールの送信 Net::SMTP を用いた。 サーバへ画像をアップロードし、メールにURLを記すようにした。 アップロードもメールで行った。 # 画像をメールに添付しメールサーバで処理した。 おわりに Ruby (言語と有用なライブラリ群) のおかげで容易に開発できた。 上記のプロジェクトの成功を受けQRコードを用いた管理システムを 受注できたのだが、これも Ruby で開発する予定である。 ---- YOSHIDA Kazuhiro moriq@m... http://www.moriq.com/ -- ML: ruby@m... 使い方: http://QuickML.com/
434 2004-10-14 12:59 [ko1@a... ] 関西オープンソース2004について 435 2004-10-14 16:47 ┗[o-fukui@p... ] 437 2004-10-15 06:51 ┣[adzumi@d... ] 438 2004-10-15 08:24 ┃┗[o-fukui@p... ] 439 2004-10-15 08:40 ┣[o-fukui@p... ] 444 2004-10-16 21:18 ┣[maki@r... ] 474 2004-10-19 08:43 ┃┣[o-fukui@p... ] 475 2004-10-19 08:45 ┃┗[o-fukui@p... ] 476 2004-10-19 08:49 ┃ ┣[o-fukui@p... ] 479 2004-10-19 09:18 ┃ ┣[shugo@r... ] 発表希望 481 2004-10-19 09:38 ┃ ┃┣[o-fukui@p... ] 503 2004-10-20 21:52 ┃ ┃┗[maki@r... ] 511 2004-10-21 18:17 ┃ ┃ ┗[shugo@r... ] 513 2004-10-22 00:50 ┃ ┃ ┗[o-fukui@p... ] 520 2004-10-22 07:27 ┃ ┃ ┗[maki@r... ] 490 2004-10-20 03:34 ┃ ┗[takahashi@t... ] 507 2004-10-21 15:10 ┃ ┗[o-fukui@p... ] 508 2004-10-21 15:19 ┃ ┣[usa@g... ] ブースの看板(?)(was Re: 関西オープンソース2004について) 512 2004-10-22 00:44 ┃ ┃┗[o-fukui@p... ] 514 2004-10-22 03:58 ┃ ┃ ┗[o-fukui@p... ] 523 2004-10-22 14:15 ┃ ┗[kjana@d... ] 526 2004-10-22 18:41 ┃ ┣[o-fukui@p... ] 531 2004-10-23 19:25 ┃ ┗[kjana@d... ] 532 2004-10-24 08:59 ┃ ┗[konami@k... ] 534 2004-10-24 18:55 ┃ ┗[kazuhiko@f... ] 445 2004-10-16 21:41 ┣[maki@r... ] 448 2004-10-17 02:55 ┃┣[ko1@a... ] 449 2004-10-17 05:07 ┃┃┗[konami@k... ] 453 2004-10-17 17:59 ┃┃ ┗[ko1@a... ] Ruby 活用事例募集(Re: 関西オープンソース2004について) 454 2004-10-17 18:57 ┃┃ ┣[konami@k... ] -> 456 2004-10-18 00:19 ┃┃ ┣[moriq@m... ] 457 2004-10-18 03:26 ┃┃ ┣[konami@k... ] 459 2004-10-18 09:14 ┃┃ ┃┣[ko1@a... ] 460 2004-10-18 10:01 ┃┃ ┃┃┣[nagai@a... ] Re: Ruby 活用事例募集 461 2004-10-18 11:22 ┃┃ ┃┃┗[konami@k... ] 462 2004-10-18 13:10 ┃┃ ┃┃ ┣[konami@k... ] 463 2004-10-18 14:22 ┃┃ ┃┃ ┃┣[ko1@a... ] 468 2004-10-19 01:24 ┃┃ ┃┃ ┃┃┗[konami@k... ] 470 2004-10-19 04:58 ┃┃ ┃┃ ┃┗[zophos@D... ] 515 2004-10-22 04:14 ┃┃ ┃┃ ┗[konami@k... ] 516 2004-10-22 04:35 ┃┃ ┃┃ ┗[o-fukui@p... ] 467 2004-10-18 22:15 ┃┃ ┃┗[maki@r... ] Re: Ruby 活用事例募集 458 2004-10-18 04:17 ┃┃ ┣[shimurahiroyuki@o...] 473 2004-10-19 08:31 ┃┃ ┣[gollum@h... ] 483 2004-10-19 11:01 ┃┃ ┃┗[konami@k... ] 493 2004-10-20 04:53 ┃┃ ┃ ┗[gollum@h... ] 496 2004-10-20 11:51 ┃┃ ┗[shin@f... ] 471 2004-10-19 07:46 ┃┗[o-fukui@p... ] 451 2004-10-17 16:33 ┣[o-fukui@p... ] CD-R ラベル(Re: 関西オープンソース2004について 472 2004-10-19 08:31 ┃┗[o-fukui@p... ] CD中味(Re: CD-R ラベル(Re: 関西オープンソース2004について 477 2004-10-19 08:52 ┃ ┣[nagai@a... ] 478 2004-10-19 09:20 ┃ ┃┗[o-fukui@p... ] 482 2004-10-19 10:05 ┃ ┣[moriq@m... ] 486 2004-10-19 15:23 ┃ ┃┗[o-fukui@p... ] 492 2004-10-20 03:35 ┃ ┃ ┗[takahashi@t... ] 494 2004-10-20 06:58 ┃ ┃ ┗[ko1@a... ] 495 2004-10-20 09:14 ┃ ┃ ┗[o-fukui@p... ] 485 2004-10-19 15:06 ┃ ┗[o-fukui@p... ] 487 2004-10-19 15:57 ┃ ┣[moonwolf@m... ] 489 2004-10-19 18:57 ┃ ┃┗[o-fukui@p... ] 488 2004-10-19 18:29 ┃ ┗[o-fukui@p... ] 536 2004-10-25 15:42 ┗[o-fukui@p... ] 盛会御礼(Re: 関西オープンソース2004について