WIL説明書(.NET)  3.1.0
デバイスコントローラを使用した例 (その2)

画像処理アプリケーションフレームワークを使用して前述の その1 と同等の処理を記述した例です。
CFviVideoRICE001 の代わりに GrabberThread を使用し、CFviDioFIO01 の代わりに DioThread を使用しています。 前述の その1 との違いは、GUI との連携が容易なこと、機能依存のコードを減らせることです。 それにより、ユーザーアプリケーションの開発コストを低減することができます。

関連:
画像処理アプリケーションフレームワークについては、FVIL リファレンスの以下のネームスペースの説明をご参照ください。


コード例:

1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4 using System.Drawing;
5 using System.Windows.Forms;
6 using System.Reflection;
7 using fvalgcli;
8 
9 namespace User.SampleCode
10 {
11  partial class MyClass
12  {
16  public void Test5()
17  {
18  FVIL.Imaging.GrabberThread grabber = null;
19  FVIL.IO.DioThread dio = null;
20  FVIL.Data.CFviImage src = null;
21 
22  try
23  {
24  // 準備.
25  FVIL.Imaging.GrabberInfo grabber_info =
26  new FVIL.Imaging.GrabberInfo(
27  @"C:\FAST\WIL\3.0.0\CameraFiles\RICE-001\rice_640.ini",
28  2
29  );
30  grabber = FVIL.Imaging.GrabberThread.Create(grabber_info);
31 
32  FVIL.IO.DioInfo dio_info = new FVIL.IO.DioInfo(
33  FVIL.IO.DioKind.FIO01, -1, FVIL.IO.SimulatorOption.Auto);
34  dio = FVIL.IO.DioThread.Create(dio_info);
35  dio.Start();
36 
37  const uint DO_SUCCESS = 0x01;
38  const uint DO_FAILURE = 0x02;
39 
40  // 入力.
41  src = new FVIL.Data.CFviImage();
42  grabber.Validate(src);
43 
44  FVIL.Imaging.IGrabImageSync grab_sync = (FVIL.Imaging.IGrabImageSync)grabber;
45  grab_sync.Grab(src);
46 
47  // 処理.
48  FVIL.Measure.CFviStatistics parser = new FVIL.Measure.CFviStatistics(src);
49  parser.Execute();
50 
51  // 出力.
52  if (32 <= parser.Average && parser.Average <= 200)
53  {
54  dio.DO = DO_SUCCESS;
55  }
56  else
57  {
58  dio.DO = DO_FAILURE;
59  }
60  }
61  finally
62  {
63  // 解放.
64  if (grabber != null)
65  grabber.Dispose();
66  if (dio != null)
67  dio.Dispose();
68  if (src != null)
69  src.Dispose();
70  }
71  }
72  }
73 }

Documentation copyright © 2008 FAST Corporation. [B-001864]
Generated on 2024年10月10日(木) 10時07分53秒 for WIL説明書(.NET) by doxygen 1.8.11