ということで、先日からGenTLの規格書を眺めているのですが、かなり苦戦中...、
今回は、いつも以上にざっくりした概要だけになるかもしれません。
その前におさらい、GenICamの最新版はGenICamTM package Version3.0なのですが、
いつものダウンロードページを見ると、下記6つの組合せだと判ります。
- GenApi3.0 → ほぼGenICam本体(GenApiのバージョン=GenICamバージョン)
- GenTL 1.5 → 今回説明するもの
- SFNC2.2 → その2で説明
- GenTL SFNC1.0
- GenCP 1.1
- CLProtocol1.1
以前1~3が主な要素だと言いましたが、なんと他にも4~6の3つが有ります。
ここまで細分化&個別バージョンにするのは、当然何か理由が有るのでしょうが、
規格を初めて見る人(私のような)からすると、ホント判りづらいですね。
(前回、規格を決める側優先になってる気が...とか言ったのも、この辺りです)
ちなみにGenApiは3.0ですが、下の方を見ていくと、
"new major release of the GenApi reference implementation: complete re-implementation (faster, smaller footprint, additional platforms), still based on the GenApi standard 2.0."
と有るので、その2で説明したGenApi2.0と基本は同じと考えて良さそうです。
(規格書のpdfも2.0が最新です)
前置きが長くなりました、ではGenTLの中身を見てみましょう。
GenTLとは
最新バージョンは1.5で、規格書はダウンロードページに有ります、下記参照。
http://www.emva.org/wp-content/uploads/GenICam_GenTL_1_5.pdf
GenTLは、実際のカメラへの読み書きだとか、画像データを転送する部分になります、
以前載せた下記の図で言うと、"Transport Layer" の部分です。
GenTLには、概念として"Producer"と"Consumer"の2つが定義されています、
下記は上記規格書の13ページより抜粋。
GenTL Producer
ハードウェア(カメラ)の制御や、画像データを転送するためのライブラリ、
もしくはドライバーソフトウェア
GenTL Consumer
GenTL Producerを参照する上位のアプリケーションなど
上図で判るように、インターフェイスやVendorが異なるGenTL Producerを、
ひとつのGenTL Consumerから参照出来ますよ、ということですね。
カメラや画像処理ボードがProducerで、SDKなどがConsumerですかね。
ということで、今回はここまでです。(いきなりですが)
規格書を見ていったのですが、あとは実際のAPIの説明が中心でした、
例えばデバイスへのアクセスだと、こういうサンプルが出てきます。
(興味の有る方は、規格書を見てみて下さい)
この辺りは、実際にソフトを開発する場合の話になってきますので、
いずれ機会が有れば、サンプルソフトを作りながら調べるつもり。
あと最初の4〜6、GenTL SFNC(何じゃこりゃ)だとか、GenCP、
CL Protocol等々は、調べてネタに出来そうなら載せようと思います。
なんとなくGenICamの雰囲気は判ったので、いったん良しとしましょう。