[前][次][番号順一覧][スレッド一覧]

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について