WIL説明書(C++)  3.1.0
全メンバ一覧 | 公開メンバ関数 | 静的公開メンバ関数 | 限定公開メンバ関数 | 限定公開変数類
FVCL::Video::CFvVideoFVC07 クラス

FVC07クラス [詳解]

詳解

FVC07クラス

namespace FVCL::Video

PCI Express×4 仕様 カメラリンク対応画像入力ボード(FVC07)を操作する為のクラスです。

必要条件:
ヘッダー: FVCLvideo.h
解説:
FVC07は、カメラリンク規格のBase/Medium/Full コンフィグレーションに対応した、画像入力ボードです。
Base ConfigurationとMedium Configuration、Full Configuration
FVC07では、Base Configurationカメラの場合、CH0とCH1の両方に接続することが可能です。 この際、CH0とCH1は非同期で使用することが可能です。 また、CH0とCH1は同じカメラである必要はありません。 CH0とCH1にカメラを2台接続する場合は、必ず、 CFvVideoFVC07 のインスタンスが二つ必要となります。 同一カメラを2台接続する場合にも CFvVideoFVC07 のインスタンスは二つ必要で、チャネルごとに オープンする必要があります。
CFvVideoFVC07_base.png
Meduim/Full Configurationカメラの場合、カメラ1台を2本のケーブルで接続するため、FVC07ボード1枚に対して、1カメラ接続することが可能です。 CFvVideoFVC07 のインスタンスは1つ必要となります。
CFvVideoFVC07_medium.png
使用ボードの指定
FVC07が複数枚装着されている画像処理装置の場合、FVC07上のディップスイッチによるID指定(SW1)と Open() でのID指定での組み合わせでオープンされるボードが決定します。
(注)FV2300などの画像処理装置において、複数枚のFVC07が搭載されて出荷される場合、 IDは0, 1, 2・・・と順番に割り振られて出荷されます。
Open() にて、id引数に-1を指定した場合、オープン可能なFVC07の中でディップスイッチの IDが最も若いものをオープンするという意味になります。
id引数に、0~15を指定した場合、その値と同じディップスイッチIDのFVC07をオープンします。
指定したIDと一致するFVC07がオープン不可能だった場合、エラーが返されます。
チャネルの指定
Base Configurationカメラの場合、チャネルの指定オープン時に行われます。 Open() のch引数に-1を指定した場合、オープン可能なチャネルをCH0→CH1に探します。
chに0~1を指定した場合、、その値のチャネルをオープンします。 指定したチャネルが既にオープン済みの場合、エラーが返されます。

Medium/Full Configurationカメラの場合、CH0とCH1の両方のコネクタを使用するため、 チャネルの指定は行えません。 Open() のch引数は無視されます。
画像取込方法(単発取込)
単発取込とは、カメラから1フレーム入力することです。
GrabImageSync() は、画像を1枚取り込むための関数です。 GrabImageSync() 呼び出し後、画像取込が完了するまで、関数から抜けてきません。
GrabImageASync() は、画像を1枚取り込むための関数で、 GrabImageASync() 呼び出し後、即関数から抜けてきます。
GrabImageASync() は画像取込中に別の操作を行うことが可能となっております。 画像取込が完了したことを確認するために、 GrabWait() または GrabStatus() を使用します。 前者は、取込が完了するまで戻ってきません。 後者は現在の取込状況を調べ、現在取込中なのか、取込が完了したのかを取得できます。
両関数ともの他の画像入力ボードでも実装されており、もっとも使いやすい画像取込 関数です。しかしながら、画像メモリのロックを画像入力ごとに行うため、 大きな画像サイズの場合、オーバーヘッドが生じてしまう場合があります。
エリアカメラ、ラインセンサのどちらも同様に使用することができます。
CFvVideoFVC07_grabsync.png
画像取込方法(連続取込)
連続取込とは取込開始時点からフレーム抜けすることなく、連続で画像を入力することです。 ContinuousGrab() は連続取込を行うための関数です。取込枚数を1枚にすることで、単発取込を行うことが可能です。 実際に使用する際は、画像メモリのロック→連続取込の開始→取込完了待ち→画像メモリのアンロックという手順 を踏まなければなりません。
  1. FVC07を オープン します。
  2. 画像メモリ( CFvImage() )の画像サイズ、BPP、画像タイプを設定( ChangeImageSize() )し、 CFvMultiData に格納します。
  3. 画像メモリをロック( MemoryLock() )する。ロックに成功するとハンドルが返されます。
    画像メモリのロックはメモリの許す限り行うことが可能で、返されるハンドルによって識別されます。
  4. 3で取得したハンドルを引数に指定し、画像取込の開始( ContinuousGrab() )を呼び出してください。 引数で同期取込を指定した場合、画像取込が終わるか、 画像取込終了関数( StopCapture() , AbortCapture() ) が呼ばれるまで、この関数から抜けてきません。 非同期取込を指定した場合、取込開始を行ったら即この関数から抜けてきます。
  5. 非同期取込を行った場合、GrabWait()GrabStatus() で取込が終了したことを確認するか、 画像取込終了関数( StopCapture() , AbortCapture() )で取込を終わらせてください。 取込を正しく停止させなかった場合、次の画像入力開始が行えません。
  6. 画像取込が終了し、画像メモリのロックが必要なくなった場合は、画像メモリのアンロック( MemoryUnlock() )を 行ってください。尚、ロックされたまま、画像入力ボードをクローズした場合、自動的にアンロックを行うようになっています。
    エリアカメラ、ラインセンサのどちらも同様に使用することができます。


「連続取込開始までの手順」
CFvVideoFVC07_continuousgrab.png

「連続取り込み中の動作」
CFvVideoFVC07_continuousgrab2.png
トリガ動作
トリガモードは SetTrigger() で行い、ノーマル、内部トリガ、外部トリガを切り替えることが可能です。 ノーマルモードとは、カメラから常に映像出力される画像を入力するモードのことを言います。 最も基本的な取込で、静止した物体の単発取込や通常の連続取込を行うのに最適です。 移動している物体の単発取込は、タイミングを制御するのが難しく、あまり得意ではありません。

内部トリガモードとは、画像入力ボードからトリガ信号をカメラに送り、そのタイミングでカメラが 露光を開始するモードのことを言います。カメラはトリガモードに設定されていなければなりません。 移動している物体の画像取込を得意としていますが、連続取込はフルフレームの速度が出ないためあまり 得意ではありません。

外部トリガモードとは、画像入力ボードに対して外部信号(外部センサーなど:TTLレベル)が入ったときに、 カメラに対してトリガ信号を出力し、そのタイミングでカメラが露光を開始するモードのことを言います。 内部トリガはCPUから取込開始命令を出すのに対し、外部トリガは外部装置から取込開始命令を出す点が 違っています。移動している物体の画像取込を得意としていますが、連続取込はフルフレームの 速度が出ないためあまり得意ではありません。
「内部トリガモード」

取込開始命令( ContinuousGrab() )が呼び出されると、即、最初のトリガ信号が カメラに対して出力されます。 2回目以降のトリガはサイクルタイム設定( SetTriggerCycleTime() )で設定されている値 によって、トリガ信号とトリガ信号の間隔が変わってきます。
CFvVideoFVC07_cycletime.png
CycleTimeMode=0は、カメラの設定がパルス幅トリガモードであることを前提に考えられております。 ほぼ全てのカメラ設定ファイルは、CycleTimeMode=0をデフォルトとしております。 そのため、カメラの設定を「パルス幅トリガモード」に指定する必要があります。 カメラ設定ファイルの[Trigger]CycleTimeには、最小トリガ周期が設定されております。

CycleTimeMode=1は、FIXトリガモード(エッジプリセレクトモード、スタンダードトリガモードなど、 呼び方は各カメラメーカーによって変わります)を前提としたモードで、カメラに設定したシャッター 時間を考慮して CycleTime を設定する必要があります。 CycleTime が短すぎると、FVC07から出力された トリガ信号はカメラ側で無視されてしまう(または、現在取込中の画像に問題が発生してしまう) といった現象が起こってしまうため、最適な時間を設定する必要があります。
「外部トリガモード(設定値:2)」

SetTrigger=2を指定した場合、各フレームごとに外部トリガ信号を入力して連続取込を行います。 外部トリガ信号は、タイムアウト時間以内に入力しないとエラーとなります。 タイムアウト時間はカメラ設定ファイルVideo-Timeoutで設定可能で、デフォルト5秒となっています。 0を設定するとタイムアウトなしになります。タイムアウト時間は、1フレーム単位での最大入力時間の事を言います。 注)ラインセンサの場合、外部トリガモードは、外部トリガモード2(設定値:3)と同じ動作となります。
CFvVideoFVC07_settrigger2.png
「外部トリガモード2(設定値:3)」

SetTrigger=3を指定した場合、最初の取込開始は外部トリガ信号を待ち、2フレーム目以降は、 サイクルタイムで指定した時間で画像入力を行います。設定値3は、カメラ設定ファイルでは指定できないため、 SetTrigger() で設定する必要があります。 外部トリガ信号は、タイムアウト時間以内に入力しないとエラーとなります。タイムアウト時間は カメラ設定ファイルVideo-Timeoutで設定可能で、デフォルト5秒となっています。 0を設定するとタイムアウトなしになります。
CFvVideoFVC07_settrigger3.png
「外部トリガモード3(設定値:4)」

SetTrigger=4は、WIL Ver.3.0.0.9で追加しました。本設定を使用するには、FVC07ドライバ(fvc07.sys) Ver.1.2.0.26以上とFVC07 ボードリビジョン4以上が必要です。 このモードはラインセンサカメラ(エンコーダ未使用時)、連続取込時にフレーム毎に外部トリガ入力 を待つモードです。 それ以外(エリアセンサ、単発取込、エンコーダ使用時)には使用できませんのでご注意ください。 また、本設定を4:外部トリガ3に指定した場合、必ず、SetEncoderParam() のエンコーダ種類を0:無効にする必要があります。 SetLineSensorMode() のエンコーダの使用モードも併せて0:エンコーダを使用しないにしてください。
「トリガマスク期間中のトリガ動作について」

単発取込み外部トリガモード時、トリガマスク期間中に入力されたトリガ(画像取込み命令)は 無効になります。 単発取込み内部トリガモード時、トリガマスク期間中でも入力されたトリガ(画像取込み命令)は 有効となります。
カメラによって次のトリガを受け付けるまでの期間が異なります。 どちらにしてもカメラ仕様より早く次のトリガを入れない様にご注意ください。
※WIL Ver.3.0.0.11以上は、トリガマスク期間はカメラ設定ファイル[Trigger]MaskLineNumで決まります。 MaskLineNumの項目がない、MaskLineNum=0、WIL Ver.3.0.0.10以前は、SetTriggerCycleTime () の設定によって決まります。
CycleTimeMode = 0 の場合は、トリガマスク期間 = ExposureTime + CycleTime
CycleTimeMode = 1 の場合は、トリガマスク期間 = CycleTime
となります。
ラインセンサ画像入力
FVC07でのラインセンサカメラ画像入力は、1フレーム単位での単発取込と連続取込の2種類をサポートしております。
ラインセンサカメラからは1ライン単位での画像出力が行われ、設定されたライン数を画像メモリに取り込まれると1フレームとします。
単発取込とは、カメラから1フレーム分入力することです。
連続取込は連続で複数フレームの画像を入力することで、基本的にはフレームとフレームの間のライン抜けはありません。連続取り込みでは無限枚数を指定することが可能です。

1フレームの入力ライン数は、カメラ設定ファイルの[Video]VerticalSizeの値で設定することが可能です。 この値を変更することによって、1フレーム最大65534ラインまで指定することが可能です。(値は2の倍数で指定してください。 また、大きい画像サイズを指定し、メモリの空き連続容量が少ない場合、メモリロックに失敗する場合があります。)
弊社提供のカメラ設定ファイルでは、[Video]VerticalSizeの値が比較的小さな値となっていますので、 ご使用になられるシステムに合わせて設定してください。
「フレーム概念」
CFvVideoFVC07_frameimage.png
「ラインセンサ連続取込」
CFvVideoFVC07_linesensor_continuousgrab.png
ラインセンサにおける、ノーマルモードとトリガモード
「カメラ内部同期モードによる取込」
カメラの内部同期モードで画像入力する場合、SetTriggerメソッドに0を指定してください。
カメラの内部同期モードでは、一定周期のLVALにあわせてデータ出力されます。FVC07はそのLVALに合わせて画像入力を行います
CFvVideoFVC07_linesensor_insync.png


「カメラの外部同期モードによる取込(ライン周期モード)」
カメラの外部同期モード(トリガ動作)を使用する場合は、SetTriggerメソッドで1~3の値を指定します。 FVC07から出力されるライントリガ(以下、LT)に合わせて露光を行い画像を転送します。
ライン周期モードでは、LTとLTの間だけ露光が行われます。
エンコーダと組み合わせてラインセンサを使用する場合は、カメラを外部同期モードにてご使用ください。
CFvVideoFVC07_linesensor_exsync_lt.png


「カメラの外部同期モードによる取込(パルス幅モード)」
カメラの外部同期モード(トリガ動作)を使用する場合は、SetTriggerメソッドで1~3の値を指定します。 FVC07から出力されるライントリガ(以下、LT)に合わせて露光を行い画像を転送します。
パルス幅モードでは、LTのHi(またはLow)の期間だけ露光が行われます。(カメラによっては本設定が存在しないものもございます)
CFvVideoFVC07_linesensor_exsync_pulsewidth.png
エンコーダ信号入力
ラインセンサカメラの外部同期モードでは、FVC07からライン単位でトリガを出力する必要があります。
トリガ出力の方法は、大きく分けて二つあり、FVC07から一定周期で出力するモードと、 エンコーダ信号をFVC07に入力して、エンコーダ信号の間隔を元にFVC07からトリガ信号を出力する方法があります。
エンコーダ信号を元にLTを出力することで、画像入力対象物の移動速度が変化した場合でも、 検査対象物の移動速度に合わせ画像入力がおこなえます。 WIL Ver3.0.0.9よりエリアカメラでもエンコーダをご使用いただけます。エリアカメラで使用する場合、 FVC07ドライバ(fvc07.sys) Ver.1.2.0.26以上とFVC07 ボードリビジョン4以上が必要です。

「設置例」
CFvVideoFVC07_encoder_systemimage.png

FVC07はエンコーダ信号をA相B相の状態で加算、減算を行います。 また、サンプリング速度はA相(1倍、2倍サンプリング)、A相およびB相(4倍サンプリング)から選択可能です。
本ボードでは下図のタイミングでCW方向、CCW方向としております。ただし、1倍、2倍サンプリング時はB相の入力を参照しないためCW/CCW方向の検出が行えません。
CW方向は、B相がA相より90°遅延して入力される場合とします。この時カウント値は加算されます。
CFvVideoFVC07_encoder_cw.png

CCW方向は、A相がB相より90°遅延して入力される場合とします。この時カウント値は減算されます。
CFvVideoFVC07_encoder_ccw.png

Z相の検出は、Z相のレベルがHである時にA相の立ち上がりエッジが最初に入ったタイミングになります。
CFvVideoFVC07_encoder_z.png



「エンコーダ使用時の注意点」
エンコーダを使用してトリガ出力を行う際、カメラの最低トリガ周期を上回るような早さでトリガ出力を行ってはいけません。
必ずカメラには最低トリガ周期が存在し、最低トリガ周期よりも早い間隔でトリガが入った場合、そのトリガは無効となる場合がほとんどですが、 カメラによっては、正常に動作しなくなる場合もあります。




絶対位置エンコーダ
この機能はFVC07で追加された物です。CW方向に取込を行った後、継続してCCW方向の取込を行う際に使用します。
この為、従来のモード(相対エンコーダ・モード)と異なり、エンコーダカウントは画像取込開始時、画像取り込み終了時共に値が保持されています。
絶対位置エンコーダ選択時、ClearEncdCounter() を実行することにより、絶対位置カウントをリセットします。
絶対位置エンコーダ選択時、StartAbsEncoder()により、絶対位置カウントの開始と停止を行えます。
符号付き32bitの絶対位置カウンタの値を超えて変化する信号が入力された場合は、絶対位置カウント値はクリップし、範囲外を示す信号を出力します。



「絶対位置エンコーダ使用時の注意点」
CW方向の取り込みから、継続してCCW方向の取り込みを行う(もしくは、その逆)場合は、絶対位置エンコーダを選択したまま方向を変える際に、一旦、絶対位置カウントを停止し、比較レジスタ1 、比較レジスタ2 、および、パルスの方向を設定し、画像取込を開始し、その後、絶対位置カウントを開始する必要があります。
なお、方向切り替え時に、エンコーダからパルスが発生しないことが保証されていれば、絶対位置カウントの停止、開始を操作する必要はありません。
絶対位置エンコーダカウント値は、32bit符号つきのカウンタが使用され、その範囲を超えるエンコーダ・パルスが入力された場合はカウントしません。ただし、逆のカウントが発生する場合はカウント値が更新され ますが、その場合、範囲超えによってカウント値はずれます。
絶対位置エンコーダ選択時は、オーバーフロー・フラグ/アンダーフロー・フラグにより判断できます。
相対位置エンコーダ選択時は、フラグが無効な仕様となっています。


「動作例」
CFvVideoFVC07_encoder_abs_cw.png

CFvVideoFVC07_encoder_abs_ccw.png




ライン選択モード
この機能はFVC07で追加された物です。ライン周期露光のライン・センサー・カメラ用に使用します。
FVC07内蔵のパルス・ジェネレータにより、一定間隔のライン・トリガをCC1等に出力しつつ、 エンコーダ一致パルスが発生した次のラインを取り込むという動作を行います。
エリアカメラの場合、ライン選択モードはサポートしておりませんので、ご注意ください。




外部トリガ入力信号のノイズ除去機能
FVC07 ボードリビジョン4以上から、外部トリガ入力信号ノイズ除去機能を追加しました。 この機能を使用するには、WIL Ver3.0.0.9以上、FVC07ドライバ(fvc07.sys) Ver.1.2.0.26以上とFVC07 ボードリビジョン4以上が必要です。 この機能はカメラINIファイルにアサート時間とネゲート時間を設定することにより設定値以上、 外部トリガ入力信号の状態が安定していればその状態を外部トリガの有効とみなします。 設定値未満の場合、リセットされます。 本機能を使用した場合、その特性上、設定値分の遅延を伴いますのでご注意ください。 カメラ設定ファイル[Trigger]Assert項目にアサート時間(100ns単位)を、[Trigger]Negate項目にネゲート時間(100ns単位)を設定してください。 デフォルトはともに0で、0~65535の範囲で設定可能です。
+ FVCL::Video::CFvVideoFVC07 の継承関係図

公開メンバ関数

 CFvVideoFVC07 ()
 コンストラクタ [詳解]
 
virtual ~CFvVideoFVC07 ()
 デストラクタ [詳解]
 
virtual bool Open (INT id, INT option)
 デバイスのオープン [詳解]
 
virtual bool Close ()
 デバイスのクローズ [詳解]
 
virtual bool LoadIniFile (const FVCL::Data::CFvString &paramfile)
 カメラ設定ファイルのロード [詳解]
 
virtual INT GetDeviceType ()
 デバイスタイプの取得 [詳解]
 
virtual INT GetDeviceID ()
 デバイスIDの取得 [詳解]
 
virtual bool IsOpen ()
 オープン確認 [詳解]
 
virtual bool GrabImageSync (FVCL::Data::CFvImage *img)
 同期式画像入力 [詳解]
 
virtual bool GrabImageASync (FVCL::Data::CFvImage *img)
 非同期式画像入力 [詳解]
 
virtual bool GrabImageSync (FVCL::Data::CFvImage *img0, FVCL::Data::CFvImage *img1)
 同期式画像入力 [詳解]
 
virtual bool GrabImageASync (FVCL::Data::CFvImage *img0, FVCL::Data::CFvImage *img1)
 非同期式画像入力 [詳解]
 
virtual bool GrabWait ()
 画像取込 完了待機 [詳解]
 
virtual INT GrabStatus ()
 画像取込 状態取得 [詳解]
 
virtual bool SetInputChannel (UINT channel)
 チャネル変更 [詳解]
 
virtual bool GetInputChannel (UINT *channel)
 チャネル取得 [詳解]
 
virtual bool SetSimGrab (UINT sim)
 同時取込設定 [詳解]
 
virtual bool GetSimGrab (UINT *sim)
 同時取込設定の取得 [詳解]
 
virtual bool SetTrigger (UINT trg)
 トリガモードの設定 [詳解]
 
virtual bool GetTrigger (UINT *trg)
 トリガモードの取得 [詳解]
 
virtual bool SetExposureTime (UINT time)
 露光時間設定 [詳解]
 
virtual bool GetExposureTime (UINT *time)
 露光時間取得 [詳解]
 
virtual bool SetVideoOffset (INT offset)
 ビデオオフセット設定 [詳解]
 
virtual bool GetVideoOffset (INT *offset)
 ビデオオフセット設定取得 [詳解]
 
virtual bool SetBinarize (UINT mode, UINT threshold)
 2値化設定 [詳解]
 
virtual bool GetBinarize (UINT *mode, UINT *threshold)
 2値化設定の取得 [詳解]
 
virtual bool GetImageSize (UINT *horz, UINT *vert)
 入力画像サイズの取得 [詳解]
 
virtual bool ChangeImageSize (FVCL::Data::CFvImage *img)
 画像オブジェクトの変更 [詳解]
 
virtual bool Open (INT id, INT configuration, INT ch)
 デバイスのオープン [詳解]
 
virtual INT GetDeviceCH ()
 チャネル番号の取得 [詳解]
 
virtual INT GetConfiguration ()
 コンフィグレーションの取得 [詳解]
 
virtual bool CheckCameraAlive ()
 カメラの確認 [詳解]
 
virtual bool SetLateDMA (UINT lateDMA)
 LateDMA設定 [詳解]
 
virtual bool GetLateDMA (UINT *lateDMA)
 LateDMAの設定の取得 [詳解]
 
virtual bool SetCC (UINT no, bool positive, UINT enable, UINT mode)
 CCの設定 [詳解]
 
virtual bool GetCC (UINT no, bool *positive, UINT *enable, UINT *mode)
 CCの取得 [詳解]
 
virtual bool SetSimTrigger (UINT mode)
 同時トリガの設定 [詳解]
 
virtual bool GetSimTrigger (UINT *mode)
 同時トリガの取得 [詳解]
 
virtual bool SetTriggerRetry (UINT mode)
 トリガリトライモードの設定 [詳解]
 
virtual bool GetTriggerRetry (UINT *mode)
 トリガリトライモードの取得 [詳解]
 
virtual bool SetTriggerCycleTime (UINT mode, DOUBLE time)
 トリガリトライ期間の設定 [詳解]
 
virtual bool GetTriggerCycleTime (UINT *mode, DOUBLE *time)
 トリガリトライ期間の取得 [詳解]
 
virtual bool SetLineSensorMode (UINT lsEnable, UINT encEnable)
 ラインセンサモードの設定 [詳解]
 
virtual bool GetLineSensorMode (UINT *lsEnable, UINT *encEnable)
 ラインセンサモードの取得 [詳解]
 
virtual bool SetLSDelayLine (UINT linenum, UINT md)
 ラインセンサ垂直方向遅延設定 [詳解]
 
virtual bool GetLSDelayLine (UINT *linenum, UINT *md)
 ラインセンサ垂直方向遅延設定の取得 [詳解]
 
virtual bool SetEncoderParam (UINT signal, UINT mlt, UINT start, UINT pulse, INT comp1, UINT comp2, UINT init, UINT cntenb=1, UINT swapab=0)
 エンコーダパラメータの設定 [詳解]
 
virtual bool GetEncoderParam (UINT *signal, UINT *mlt, UINT *start, UINT *pulse, INT *comp1, UINT *comp2, UINT *init, UINT *cntenb, UINT *swapab)
 エンコーダパラメータの取得 [詳解]
 
virtual bool GetEncoderParam (UINT *signal, UINT *mlt, UINT *start, UINT *pulse, INT *comp1, UINT *comp2, UINT *init)
 エンコーダパラメータの取得 [詳解]
 
virtual bool SetPackingMode (UINT mode)
 パッキングモードの設定 [詳解]
 
virtual bool GetPackingMode (UINT *mode)
 パッキングモードの取得 [詳解]
 
virtual UINT MemoryLock (CFvMultiData< FVCL::Data::CFvImage > *imgs, UINT num)
 画像メモリロック [詳解]
 
virtual bool MemoryUnlock (UINT handle)
 画像メモリロックの解除 [詳解]
 
virtual bool ContinuousGrab (UINT handle, UINT capture_num, bool ASync)
 連続取込実行 [詳解]
 
virtual bool NotifyCaptureNo (tagWAIT_FRAME *wait_frame)
 連続取込の情報を取得(フレーム待機) [詳解]
 
virtual bool QueryCaptureNo (tagWAIT_FRAME *wait_frame)
 連続取込の情報を取得(即取得) [詳解]
 
virtual bool AbortCapture ()
 画像取込の即停止 [詳解]
 
virtual bool StopCapture ()
 連続取り込みの停止(フレーム待機) [詳解]
 
virtual bool ForcedTrigger ()
 トリガの発行 [詳解]
 
virtual bool SioOpen ()
 SIOのオープン [詳解]
 
virtual bool SioClose ()
 SIOのクローズ [詳解]
 
virtual bool SioPurgeBuff (bool rx, bool tx)
 SIO バッファのクリア [詳解]
 
virtual bool SioSendData (const FVCL::Data::CFvStringA &str_tx, FVCL::Data::CFvStringA *str_rx, UINT option)
 カメラに対して通信を行う [詳解]
 
virtual bool SioSetData (const CFvMultiData< CHAR > &datas)
 SIO データ列設定 [詳解]
 
virtual bool SioGetData (CFvMultiData< CHAR > *datas, UINT length)
 SIO データ列取得 [詳解]
 
virtual bool SioSetDataByte (CHAR data)
 SIO データ設定 [詳解]
 
virtual bool SioGetDataByte (CHAR *data)
 SIO データ受信 [詳解]
 
virtual bool SioAbort ()
 SIO 送受信中止 [詳解]
 
virtual UINT SioGetSizeInRxQueue ()
 受信キューデータサイズ取得 [詳解]
 
virtual UINT SioGetSizeInTxQueue ()
 送信キューデータサイズ取得 [詳解]
 
virtual UINT SioNotifyEvent ()
 SIOイベント待機 [詳解]
 
virtual UINT SioQueryEvent ()
 SIOイベント確認 [詳解]
 
virtual bool GetDriverVersion (UINT *major, UINT *minor, UINT *release, UINT *build)
 デバイスドライババージョンの取得 [詳解]
 
virtual bool GetEncoderCount (INT *encdCounter)
 エンコーダ・カウンタのカウント値の取得 [詳解]
 
virtual bool GetRelEncoderCount (UINT *encdCounter)
 相対位置エンコーダ・カウンタのカウント値の取得 [詳解]
 
virtual bool StartAbsEncoder (const bool tStartEncoder)
 絶対位置エンコーダの開始、終了 [詳解]
 
virtual bool GetEncoderStatus (UINT *piOverflow, UINT *piUnderflow)
 エンコーダ・ステータスの取得 [詳解]
 
virtual bool GetEncoderMatchCount (UINT *matchCount)
 エンコーダ一致パルス数の取得 [詳解]
 
virtual bool ClearEncdCounter ()
 エンコーダ・カウンタのクリア [詳解]
 
virtual bool ClearMatchCount ()
 エンコーダ一致パルス数カウンタのクリア [詳解]
 
virtual bool ClearOverFlow ()
 内部カウンタのオーバーフロー・フラグのクリア [詳解]
 
virtual bool ClearUnderFlow ()
 内部カウンタのアンダーフロー・フラグのクリア [詳解]
 
virtual bool SetExTriggerSrcSel (UINT ExTriggerSrcSel)
 (外部トリガモード時) 取込開始信号の設定 [詳解]
 
virtual bool GetExTriggerSrcSel (UINT *ExTriggerSrcSel)
 (外部トリガモード時) 取込開始信号の設定の取得 [詳解]
 
- 基底クラス FVCL::Video::CFvVideo に属する継承公開メンバ関数
 CFvVideo ()
 コンストラクタ [詳解]
 
virtual ~CFvVideo ()
 デストラクタ [詳解]
 
- 基底クラス FVCL::CFvObject に属する継承公開メンバ関数
 CFvObject ()
 標準のコンストラクタ [詳解]
 
virtual ~CFvObject ()
 デストラクタ [詳解]
 
INT SetErrorCode (INT err)
 エラーコードの設定 [詳解]
 
INT SetErrorCode (INT err) const
 エラーコードの設定 [詳解]
 
INT GetErrorCode () const
 エラーコードの取得 [詳解]
 
bool SetAllocateOption (INT value)
 画像領域確保時のオプションの設定 [詳解]
 
INT GetAllocateOption () const
 画像領域確保時のオプションの取得 [詳解]
 
void * operator new (size_t uiSize)
 new オペレータ [詳解]
 
void * operator new[] (size_t uiSize)
 new[] オペレータ [詳解]
 
void operator delete (void *pvObject)
 delete オペレータ [詳解]
 
void operator delete[] (void *pvObject)
 delete[] オペレータ [詳解]
 
void * operator new (size_t uiSize, LPCSTR szFileName, INT iLine)
 new オペレータ [詳解]
 
void * operator new[] (size_t uiSize, LPCSTR szFileName, INT iLine)
 new[] オペレータ [詳解]
 
void operator delete (void *pvObject, LPCSTR szFileName, INT iLine)
 delete オペレータ [詳解]
 
void operator delete[] (void *pvObject, LPCSTR szFileName, INT iLine)
 delete[] オペレータ [詳解]
 
virtual CFvObjectoperator= (const CFvObject &src)
 代入オペレータ [詳解]
 
virtual bool operator== (const CFvObject &src) const
 比較オペレータ (==) [詳解]
 
virtual bool operator!= (const CFvObject &src) const
 比較オペレータ (!=) [詳解]
 

静的公開メンバ関数

static bool SetOtherInfo (FVCL::Video::CFvVideoFVC07 &video, UINT mode, UINT no, UINT data)
 その他の情報設定 [詳解]
 
static bool GetOtherInfo (FVCL::Video::CFvVideoFVC07 &video, UINT mode, UINT no, UINT *data)
 その他の情報取得 [詳解]
 
static bool SetMaskLineNum (FVCL::Video::CFvVideoFVC07 &video, UINT time)
 トリガマスク期間設定 [詳解]
 
static bool GetMaskLineNum (FVCL::Video::CFvVideoFVC07 &video, UINT *time)
 トリガマスク期間取得 [詳解]
 
static bool SetEventMask (FVCL::Video::CFvVideoFVC07 &video, UINT mask)
 待機用通知イベント設定 [詳解]
 
static bool GetEventMask (FVCL::Video::CFvVideoFVC07 &video, UINT *mask)
 待機用取込通知イベント取得 [詳解]
 
static bool NotifyEvent (FVCL::Video::CFvVideoFVC07 &video, UINT *value, tagWAIT_FRAME *wait_frame)
 取込イベント通知(指定イベント待機) [詳解]
 
static bool QueryEvent (FVCL::Video::CFvVideoFVC07 &video, UINT clear, UINT *value, tagWAIT_FRAME *wait_frame)
 取込イベント問い合わせ [詳解]
 
static bool SetLineNum (FVCL::Video::CFvVideoFVC07 &video, UINT num)
 ラインセンサカメラ取込ライン数設定 [詳解]
 
- 基底クラス FVCL::CFvObject に属する継承静的公開メンバ関数
static bool SetDefaultAllocateOption (INT value)
 既定の画像領域確保時のオプションの設定 [詳解]
 
static INT GetDefaultAllocateOption ()
 既定の画像領域確保時のオプションの取得 [詳解]
 

限定公開メンバ関数

INT fnGetImageInfo (UINT *horz, UINT *vert, UINT *type, UINT *ch, UINT *bpp)
 画像メモリのチェック [詳解]
 
INT fnCapture (FVCL::Data::CFvImage *img, bool sync)
 画像入力(実体) [詳解]
 
INT fnCheckImage (FVCL::Data::CFvImage *img)
 画像メモリのチェック [詳解]
 
bool fnEncoderClear (UINT clearOverFlow, UINT clearUnderFlow, UINT clearMatchCount, UINT clearEncdCounter)
 エンコーダ情報のクリア [詳解]
 
- 基底クラス FVCL::Video::CFvVideo に属する継承限定公開メンバ関数
virtual INT fnConvErrCode (INT nErr)
 エラーコード変換 [詳解]
 
virtual INT fnGetCHARLen (const FVCL::Data::CFvString &src)
 文字列の長さ取得 [詳解]
 
virtual VOID fnConvCFvStringtoCHAR (const FVCL::Data::CFvString &src, CHAR *dst, UINT sz)
 CHARに変換 [詳解]
 
virtual INT fnCheckFileExistance (const FVCL::Data::CFvString &file)
 ファイル存在チェック [詳解]
 
- 基底クラス FVCL::CFvObject に属する継承限定公開メンバ関数
INT fnCPUCheck ()
 CPU情報の取得 [詳解]
 

限定公開変数類

void * m_device
 デバイスコントローラオブジェクト [詳解]
 
- 基底クラス FVCL::CFvObject に属する継承限定公開変数類
INT m_ErrorCode
 エラーコード [詳解]
 
INT m_AllocateOption
 画像領域確保時のオプション [詳解]
 

構築子と解体子

FVCL::Video::CFvVideoFVC07::CFvVideoFVC07 ( )

コンストラクタ

標準のコンストラクタです。

FVCL::Video::CFvVideoFVC07::~CFvVideoFVC07 ( )
virtual

デストラクタ

デバイスがオープンされていた場合、クローズ処理を行います。

関数詳解

FVCL::Video::CFvVideoFVC07::SetOtherInfo ( FVCL::Video::CFvVideoFVC07 video,
UINT  mode,
UINT  no,
UINT  data 
)
static

その他の情報設定

その他の情報を設定します。

引数
[in]video対象のCFvVideoFVC07クラス
[in]modeモード
[in]no番号
[in]dataデータ
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
解説:
その他の情報を変更します。 本関数は、WIL Ver.3.0.0.12で追加しました。
WIL Ver.3.0.0.16以降、エンコーダの入力チャネルを変更できるようになりました。
エンコーダの入力チャネルを変更するには、WIL Ver.3.0.0.16、FVC07 ボードリビジョン5、FVC07ドライバ(fvc07.sys) Ver.1.4.0.35以上が必要です。
以下の表のパラメータを設定して変更してください。
その他の設定情報
mode モード no 番号(関数ID) data データ(設定値)
2常に2 1エンコーダ入力チャネル設定 0 or 10=自チャネル 1=他チャネル
2常に2 3取込タイムアウト値 0~0:[無限待機]、1000~[Timeout値] ※msec単位(精度は秒)
参照
Open
GetOtherInfo
FVCL::Video::CFvVideoFVC07::GetOtherInfo ( FVCL::Video::CFvVideoFVC07 video,
UINT  mode,
UINT  no,
UINT data 
)
static

その他の情報取得

その他の情報を取得します。

引数
[in]video対象のCFvVideoFVC07クラス
[in]modeモード
[in]no番号
[out]dataデータ
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
その他の情報を取得します。
本関数は、WIL Ver.3.0.0.12で追加しました。
WIL Ver.3.0.0.16以降、エンコーダの入力チャネルを変更できるようになりました。
エンコーダの入力チャネルを変更するには、WIL Ver.3.0.0.16、FVC07 ボードリビジョン5、FVC07ドライバ(fvc07.sys) Ver.1.4.0.35以上が必要です。
以下の表のパラメータを設定すると現在の設定値を取得できます。
その他の設定情報
mode モード no 番号(関数ID) data データ(設定値)
2常に2 1エンコーダ入力チャネル設定 0 or 10=自チャネル 1=他チャネル
2常に2 2ベイヤーカラーモード(フィルタータイプ) 0~40:Disable 1:RGGB 2:GRBG 3:GBRG 4:BGGR
2常に2 3取込タイムアウト値 0~0:[無限待機]、1000~[Timeout値] ※msec単位
参照
Open
SetOtherInfo
FVCL::Video::CFvVideoFVC07::SetMaskLineNum ( FVCL::Video::CFvVideoFVC07 video,
UINT  time 
)
static

トリガマスク期間設定

トリガマスク期間を設定します。

引数
[in]video対象のCFvVideoFVC07クラス
[in]timeトリガマスク期間(μs)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31054 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
解説:
トリガマスク期間を変更します。 初期値は、カメラ設定ファイル[Trigger]MaskLineNumになります。設定した時間分、外部トリガモード時に、トリガがマスクされます。
エリアカメラの場合は、基本的には、露光時間 + 画像転送時間を設定してください。
ラインセンサカメラの場合は、1ライン分の転送時間を設定してください。 SetTrigger=4(ラインセンサカメラ+連続取込時にフレーム毎に外部トリガ入力を待つモード)のときのみ、トリガマスク期間は、time x 取込ライン数を内部的に設定します。
トリガマスク期間を無限に設定するには、time=0xFFFFFFFFを設定してください。 トリガマスク期間を無限にすると、外部トリガでの連続取込は、1枚取込完了後、外部トリガマスク状態になり2枚目の取込ができませんので、ご注意ください。
本関数は、WIL Ver.3.0.0.11で追加しました。カメラ設定ファイル[Trigger]MaskLineNumの値が有効になるのも WIL Ver3.0.0.11以降になります。
※本関数で、time=0にした場合、カメラ設定ファイル[Trigger]MaskLineNumの値が0もしくは項目がない場合、WIL Ver.3.0.0.10以前のトリガマスク期間が設定されます。
CycleTimeMode = 0 の場合は、トリガマスク期間 = ExposureTime + CycleTime
CycleTimeMode = 1 の場合は、トリガマスク期間 = CycleTime
となります
参照
Open
SetTriggerCycleTime
GetMaskLineNum
SetTrigger
FVCL::Video::CFvVideoFVC07::GetMaskLineNum ( FVCL::Video::CFvVideoFVC07 video,
UINT time 
)
static

トリガマスク期間取得

トリガマスク期間を取得します。

引数
[in]video対象のCFvVideoFVC07クラス
[out]timeトリガマスク期間(μs)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
解説:
トリガマスク期間を取得します。
SetTrigger=4(ラインセンサカメラ+連続取込時にフレーム毎に外部トリガ入力を待つモード)のときは、 トリガマスク期間は、time x 取込ライン数を内部的に設定しますので、本関数で取得できる値と実際のトリガマスク期間は異なります。
本関数は、WIL Ver.3.0.0.11で追加しました。
初期値は、カメラ設定ファイル[Trigger]MaskLineNumになります。カメラ設定ファイル[Trigger]MaskLineNumの値が0もしくは項目がない場合、 SetMaskLineNum() でトリガマスク期間に0を設定した場合、取得できるトリガマスク期間は0ですが、内部的に、WIL Ver.3.0.0.10以前のトリガマスク期間が設定されてます。
※WIL Ver.3.0.0.10以前のトリガマスク期間
CycleTimeMode = 0 の場合は、トリガマスク期間 = ExposureTime + CycleTime
CycleTimeMode = 1 の場合は、トリガマスク期間 = CycleTime
となります
参照
Open
SetTrigger
SetMaskLineNum
FVCL::Video::CFvVideoFVC07::SetEventMask ( FVCL::Video::CFvVideoFVC07 video,
UINT  mask 
)
static

待機用通知イベント設定

待機する取込イベントを設定します。

引数
[in]video対象のCFvVideoFVC07クラス
[in]mask待機イベント(bit組み合わせ)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
解説:
NotifyEvent() で待機する取込通知イベントを設定します。設定はbitの組み合わせで設定します。 待機したいイベントのbitを1にしてください。 将来拡張される可能性があります。下記以外のbitは指定しないてください。
下位0bit:Exposure completion 1bit:Frame In 2bit:Frame Out 3bit:なし 4bit:External Trigger
本関数は、WIL Ver.3.0.0.9で追加しました。本関数を使用するには、FVC07 ボードリビジョン4以上、FVC07ドライバ(fvc07.sys) Ver.1.2.0.26以上が必要です。
参照
Open
GetEventMask \ QueryEvent
NotifyEvent
FVCL::Video::CFvVideoFVC07::GetEventMask ( FVCL::Video::CFvVideoFVC07 video,
UINT mask 
)
static

待機用取込通知イベント取得

待機用取込イベントの設定値を取得します。

引数
[in]video対象のCFvVideoFVC07クラス
[out]mask取得イベント(bit組み合わせ)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
解説:
現在設定されている待機用の取込イベントを返します。設定されているイベントはbitが1になります。
下位0bit:Exposure completion 1bit:Frame In 2bit:Frame Out 3bit:なし 4bit:External Trigger
本関数は、WIL Ver.3.0.0.9で追加しました。本関数を使用するには、FVC07 ボードリビジョン4以上、 FVC07ドライバ(fvc07.sys) Ver.1.2.0.26以上が必要です。
参照
Open
SetEventMask
QueryEvent
NotifyEvent
FVCL::Video::CFvVideoFVC07::NotifyEvent ( FVCL::Video::CFvVideoFVC07 video,
UINT value,
tagWAIT_FRAME wait_frame 
)
static

取込イベント通知(指定イベント待機)

指定した取込イベントが発生するまで待機します。

引数
[in]video対象のCFvVideoFVC07クラス
[out]valueイベント情報(bit組み合わせ)
[out]wait_frame連続取込情報
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。指定されたvalueまはたwait_frameがNULLです。
解説:
SetEventMask() 設定した取込イベントを待機し、発生したイベントと取込情報を取得します。 イベント情報はbitの組み合わせで取得できます。イベントが発生したbitが1になります。
下位0bit:Exposure completion 1bit:Frame In 2bit:Frame Out 3bit:なし 4bit:External Trigger
イベント待機を終了するには、 AbortCapture() を呼び出してください。
イベントが発生済みの場合、待機せずに終了します。常に待機させるには、 QueryEvent() の クリアフラグを設定しイベントをクリアしてから本関数を実行してください。
ライン数(LineCount)は、TAP毎のライン数になります。カメラによっては、取得できる最大ライン数が画像メモリの半分となる場合があります。
本関数は、取込中にご使用ください。取込中以外の挙動につきましてはサポートしておりませんので、 ご注意ください。
本関数は、WIL Ver.3.0.0.9で追加しました。本関数を使用するには、FVC07 ボードリビジョン4以上、 FVC07ドライバ(fvc07.sys) Ver.1.2.0.26以上が必要です。未対応ボードリビジョンの場合、 FVCL_ErrorCode::INVALID_PARAMETERが発生します。
留意事項:
本関数は、画像取込中に行うため、画像転送(DMA)中にキャプチャボードのレジスタから値を参照することになります。 バスに大きな負担がかかる画像転送(DMA)中に更にレジスタ参照による負荷をかけることになりますので速度の速いカメラをご使用の場合などに頻繁に参照するとご使用条件によっては画像入力の転送性能等に悪影響を及ぼす可能性もあります。 そのため頻繁に参照を行う事はお勧めいたしません。
参照
Open
SetEventMask
QueryEvent
tagWAIT_FRAME
FVCL::Video::CFvVideoFVC07::QueryEvent ( FVCL::Video::CFvVideoFVC07 video,
UINT  clear,
UINT value,
tagWAIT_FRAME wait_frame 
)
static

取込イベント問い合わせ

取込イベントが発生しているか確認します。

引数
[in]video対象のCFvVideoFVC07クラス
[in]clearクリアフラグ(bit組み合わせ)
[out]valueイベント情報(bit組み合わせ)
[out]wait_frame連続取込情報
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。指定されたvalueまはたwait_frameがNULLです。
解説:
取込イベントが発生しているか確認します。確認後、本関数から、即抜けてきます。 取込イベント情報はbitの組み合わせです。イベントが発生したbitが1になります。
下位0bit:Exposure completion 1bit:Frame In 2bit:Frame Out 3bit:なし 4bit:External Trigger
クリアフラグも同様にbitの組み合わせです。指定イベントのbitに0を指定すると問い合わせ後、発生した イベントをクリアします。1を指定すると、イベントはクリアしません。
ライン数(LineCount)は、TAP毎のライン数になります。カメラによっては、取得できる最大ライン数が画像メモリの半分となる場合があります。
本関数は、WIL Ver.3.0.0.9で追加しました。本関数を使用するには、FVC07 ボードリビジョン4以上、 FVC07ドライバ(fvc07.sys) Ver.1.2.0.26以上が必要です。未対応ボードリビジョンの場合、 FVCL_ErrorCode::INVALID_PARAMETERが発生します。
留意事項:
本関数は、画像取込中に行うため、画像転送(DMA)中にキャプチャボードのレジスタから値を参照することになります。 バスに大きな負担がかかる画像転送(DMA)中に更にレジスタ参照による負荷をかけることになりますので速度の速いカメラをご使用の場合などに頻繁に参照するとご使用条件によっては画像入力の転送性能等に悪影響を及ぼす可能性もあります。 そのため頻繁に参照を行う事はお勧めいたしません。
参照
Open
NotifyEvent
tagWAIT_FRAME
FVCL::Video::CFvVideoFVC07::SetLineNum ( FVCL::Video::CFvVideoFVC07 video,
UINT  line 
)
static

ラインセンサカメラ取込ライン数設定

ラインセンサカメラの取込ライン数を設定します。

引数
[in]video対象のCFvVideoFVC07クラス
[in]lineライン数
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31054 FVCL_ErrorCode::Video::SET_SIZE 取込サイズ設定に失敗しました。画像サイズが不正かメモリロックされています。
21 FVCL_ErrorCode::NOT_SUPPORTED エリアカメラです。サポートされていません。
解説:
ラインセンサカメラの取込ライン数を変更します。 現在設定されているライン数を確認するには、 GetImageSize() 関数を使用してください。 本関数は変更できるのはラインセンサカメラのライン数のみです。エリアカメラや横サイズは変更できません。 MemoryLock() された画像がある場合、本関数はエラーを返します。 MemoryUnLock() してから再度本関数を コールしてください。 取込ライン数を変更した場合、 ChangeImageSize() などで取込用画像メモリを正規化してください。
指定できる最大ライン数は65535になります。
取込ライン数が極端に少ない場合、カメラのスペックによっては取込エラーが発生する場合があります。 そういった場合、取込ライン数を増やしてください。
本関数は、WIL Ver.3.0.0.9で追加しました。本関数を使用するには、FVC07 ボードリビジョン4以上、 FVC07ドライバ(fvc07.sys) Ver.1.2.0.26以上が必要です。
参照
Open
ChangeImageSize
GetImageSize
FVCL::Video::CFvVideoFVC07::Open ( INT  id,
INT  option 
)
virtual

デバイスのオープン

デバイスをオープンします。

引数
[in]idボードID
  • -1: オープン可能で最も小さいIDを持つボード
  • 0~15: ボードID (デバイス上にあるディップスイッチを指定して下さい。)

[in]optionオプション
本クラスでは使用しません。常に0を指定して下さい。
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリの確保に失敗しました。
55 FVCL_ErrorCode::ALREADY_OPENED 既にオープンされています。2重オープンは出来ません。
31032 FVCL_ErrorCode::Video::DEVICE_ID デバイスIDが間違っています。
2 FVCL_ErrorCode::FAILED_TO_OPEN キャプチャボードのオープンに失敗しました。デバイスドライバが正常に動作しているか確認してください。
解説:
当関数は、Baseコンフィグレーションの指定されたデバイスIDのキャプチャボードのオープンを行います。 Medium/Full コンフィグレーションの指定、チャネルの設定はできません。 コンフィグレーション、チャネルの指定をする場合は、CFvVideoFVC07::Open( INT id, INT configuration, INT ch ) 関数 を使用してください。
参照
Open( INT, INT, INT )

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::Close ( )
virtual

デバイスのクローズ

デバイスをクローズします。

戻り値
true正常
false異常
解説:
デバイスがオープンされていた場合、終了処理を行います。画像取込中やパラメータ設定・取得中に、クローズを行わないでください。 クローズ処理が正常に行われた場合、再度オープンされるまで、画像取込関数やパラメータ設定・取得関数を使用することはできません。
デバイスがオープンされていない状態でクローズを行った場合でも trueを返します。
参照
Open

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::LoadIniFile ( const FVCL::Data::CFvString paramfile)
virtual

カメラ設定ファイルのロード

カメラ設定ファイル(INIファイル形式)をロードし、デバイスにパラメータを設定します。

引数
[in]paramfileカメラ設定ファイルのパスとファイル名
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
6 FVCL_ErrorCode::FAILED_TO_LOAD ファイルのロードに失敗しました。
31100 FVCL_ErrorCode::Video::NOT_FOUND_PARAM_FILE パラメータファイルが見つかりません。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
31056 FVCL_ErrorCode::Video::SET_OFFSET オフセットの設定に失敗しました。
31054 FVCL_ErrorCode::Video::SET_SIZE 取込サイズ設定に失敗しました。
31062 FVCL_ErrorCode::Video::SET_TIMEOUT タイムアウト設定に失敗しました。
31080 FVCL_ErrorCode::Video::SET_CC カメラコントロールの設定に失敗しました。
31300 FVCL_ErrorCode::Video::NOT_ENOUGH メモリ確保領域が十分ではありません。
解説:
カメラ設定ファイルをロードします。使用するカメラに合ったパラメータファイルを指定して下さい。 必ず絶対パスで指定して下さい。
参照
Open

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::GetDeviceType ( )
virtual

デバイスタイプの取得

戻り値
常に FVCL::Video::DeviceType::FVC07 を返します。
参照
FVCL::Video::DeviceType

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::GetDeviceID ( )
virtual

デバイスIDの取得

オープンされているデバイスのIDを取得します。

戻り値
0以上デバイスID
-1エラー
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
解説:
デバイス上のDIPスイッチの値を取得します。 デバイスがオープンされていなければいけません。
参照
Open

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::IsOpen ( )
virtual

オープン確認

本クラスのインスタンスがデバイスをオープンしているかどうかを取得します。

戻り値
trueオープン中
false未オープン
参照
Open

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::GrabImageSync ( FVCL::Data::CFvImage img)
virtual

同期式画像入力

カメラから画像を取り込みます。
画像取込が完了するか、エラーが発生するまで本関数から返ってきません。

引数
[out]img取り込み先画像
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
53 FVCL_ErrorCode::TIMEOUT タイムアウトが発生しました。
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。imgがNULLです。
18 FVCL_ErrorCode::INVALID_CHANNEL 画像チャネル数が、デバイスの設定と一致しません。
17 FVCL_ErrorCode::INVALID_IMAGESIZE 画像サイズが、デバイスの設定と一致しません。
16 FVCL_ErrorCode::INVALID_IMAGETYPE 画像タイプが、デバイスの設定と一致しません。
31050 FVCL_ErrorCode::Video::INVALID_IMAGE_DEPTH 画像ビット深度が、デバイスの設定と一致しません。
31079 FVCL_ErrorCode::Video::GET_PARAMETER ボードから情報を取得できません。
31078 FVCL_ErrorCode::Video::SET_PARAMETER 画像情報を設定できません。
31046 FVCL_ErrorCode::Video::MEMORY_LOCK 画像メモリのロックに失敗しました。メモリ不足の可能性があります。
31047 FVCL_ErrorCode::Video::MEMORY_UNLOCK 画像メモリのアンロックに失敗しました。
31037 FVCL_ErrorCode::Video::NOW_CAPTURING 現在、画像入力中のため画像取込を行えません。
31042 FVCL_ErrorCode::Video::INVALID_IMAGE 画像オブジェクトが不正です。
31040 FVCL_ErrorCode::Video::GRAB_FAILED 画像取込に失敗しました。
解説:
デバイスがオープンされていない場合、画像取込を行うことができません。
デバイスから出力される画像情報と、引数に渡された画像オブジェクトの情報が一致しない場合エラーになります。 画像取込を行う前に、 ChangeImageSize() を用いて、画像オブジェクトの情報の変更を行うようにしてください。 ChangeImageSize() を用いると、画像タイプ、画像サイズ、画像チャネル数、画像ビット深度がデバイスから出力される情報で正規化されます。
カメラ設定ファイルで Video-Timeoutの項を0に指定した場合、タイムアウト設定はOFFになります。1以上の値が設定された 場合にのみ、タイムアウト機能がONになり、指定時間以内に画像入力が行われなかった場合、エラーとなります。
以下の関数のパラメータに従って、画像取込を実行します。
  • SetTrigger()
  • SetExposureTime()
  • SetLateDMA()
  • SetCC()
  • SetSimTrigger()
  • SetTriggerRetry()
  • SetTriggerCycleTime()
  • SetPackingMode()

参照
Open
GrabImageASync

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::GrabImageASync ( FVCL::Data::CFvImage img)
virtual

非同期式画像入力

カメラから画像を取り込みます。
取り込みを開始し始めると、即、関数から抜けてきます。

引数
[out]img取り込み先画像
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
53 FVCL_ErrorCode::TIMEOUT タイムアウトが発生しました。
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。imgがNULLです。
18 FVCL_ErrorCode::INVALID_CHANNEL 画像チャネル数が、デバイスの設定と一致しません。
17 FVCL_ErrorCode::INVALID_IMAGESIZE 画像サイズが、デバイスの設定と一致しません。
16 FVCL_ErrorCode::INVALID_IMAGETYPE 画像タイプが、デバイスの設定と一致しません。
31050 FVCL_ErrorCode::Video::INVALID_IMAGE_DEPTH 画像ビット深度が、デバイスの設定と一致しません。
31079 FVCL_ErrorCode::Video::GET_PARAMETER ボードから情報を取得できません。
31078 FVCL_ErrorCode::Video::SET_PARAMETER 画像情報を設定できません。
31046 FVCL_ErrorCode::Video::MEMORY_LOCK 画像メモリのロックに失敗しました。メモリ不足の可能性があります。
31047 FVCL_ErrorCode::Video::MEMORY_UNLOCK 画像メモリのアンロックに失敗しました。
31037 FVCL_ErrorCode::Video::NOW_CAPTURING 現在、画像入力中のため画像取込を行えません。
31042 FVCL_ErrorCode::Video::INVALID_IMAGE 画像オブジェクトが不正です。
31040 FVCL_ErrorCode::Video::GRAB_FAILED 画像取込に失敗しました。
解説:
デバイスがオープンされていない場合、画像取込を行うことができません。
本関数は、デバイスに対し画像取込開始命令を行った後、即、関数から抜けてきます。画像取込が完了したかどうかは、 GrabWait() か GrabStatus() 関数を用いて調べます。 GrabImageASync() をコールした後は、必ず、 GrabWait() で 画像取込が完了するまで待機するか、 GrabStatus() で、0が返されるのを確認しなければなりません。
確認を怠った場合、次の取り込みを行うことが出来ません。このとき、エラーコード : FVCL_ErrorCode::Video::NOW_CAPTURING が発生します。
デバイスから出力される画像情報と、引数に渡された画像オブジェクトの情報が一致しない場合エラーになります。 画像取込を行う前に、 ChangeImageSize() を用いて、画像オブジェクトの情報の変更を行うようにしてください。 ChangeImageSize() を用いると、画像タイプ、画像サイズ、画像チャネル数、画像ビット深度がデバイスから出力される情報で正規化されます。
カメラ設定ファイルで Video-Timeoutの項を0に指定した場合、タイムアウト設定はOFFになります。1以上の値が設定された 場合にのみ、タイムアウト機能がONになり、指定時間以内に画像入力が行われなかった場合、エラーとなります。
以下の関数のパラメータにしたがって、画像取込を実行します。
  • SetTrigger()
  • SetExposureTime()
  • SetLateDMA()
  • SetCC()
  • SetSimTrigger()
  • SetTriggerRetry()
  • SetTriggerCycleTime()
  • SetPackingMode()

参照
Open
GrabImageSync

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::GrabImageSync ( FVCL::Data::CFvImage img0,
FVCL::Data::CFvImage img1 
)
virtual

同期式画像入力

本関数はサポートしておりません。

戻り値
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
21 FVCL_ErrorCode::NOT_SUPPORTED サポートされていません。

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::GrabImageASync ( FVCL::Data::CFvImage img0,
FVCL::Data::CFvImage img1 
)
virtual

非同期式画像入力

本関数はサポートしておりません。

戻り値
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
21 FVCL_ErrorCode::NOT_SUPPORTED サポートされていません。

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::GrabWait ( )
virtual

画像取込 完了待機

非同期取込を行った際に、画像が取込終わるまで待機します。

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
53 FVCL_ErrorCode::TIMEOUT タイムアウトが発生しました。
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31040 FVCL_ErrorCode::Video::GRAB_FAILED 画像取込に失敗しました。
解説:
非同期取込を行った際に、画像が取込終わるまで待機します。非同期取り込みを行った場合は、本関数で、 取り込みが終わったことを確認するか、 GrabStatus() で、取込が終わったことを確認しなければなりません。 確認を怠った場合、次の取り込みを行うことが出来ません。このとき、エラーコード : FVCL_ErrorCode::Video::NOW_CAPTURING が発生します。
本関数は以下の画像取込関数を使用した場合に使用することが出来ます。
  • GrabImageSync()
  • GrabImageASync()
  • ContinuousGrab()

参照
GrabImageSync
GrabImageASync
ContinuousGrab

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::GrabStatus ( )
virtual

画像取込 状態取得

非同期取込を行った際に、画像取込中か、完了したかを取得します。

戻り値
0完了
1画像入力中
-1エラー
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
53 FVCL_ErrorCode::TIMEOUT タイムアウトが発生しました。
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31040 FVCL_ErrorCode::Video::GRAB_FAILED 画像取込に失敗しました。
解説:
非同期取込を行った際に、画像取込中か、完了したかを取得します。非同期取り込みを行った場合は、本関数で、 取り込みが終わったこと(戻り値が0)を確認するか、 GrabWait() で、取込が終わるまで待機しなければなりません。 確認を怠った場合、次の取り込みを行うことが出来ません。このとき、エラーコード : FVCL_ErrorCode::Video::NOW_CAPTURING が発生します。
本関数は以下の画像取込関数を使用した場合に使用することが出来ます。
  • GrabImageSync()
  • GrabImageASync()
  • ContinuousGrab()

参照
GrabImageSync
GrabImageASync
ContinuousGrab

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::SetInputChannel ( UINT  channel)
virtual

チャネル変更

本関数はサポートしておりません。

戻り値
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
21 FVCL_ErrorCode::NOT_SUPPORTED サポートされていません。

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::GetInputChannel ( UINT channel)
virtual

チャネル取得

オープンされているチャネル番号を取得します。

引数
[out]channelチャネル番号(0~1)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。channelがNULLです。
参照
Open

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::SetSimGrab ( UINT  sim)
virtual

同時取込設定

本関数はサポートしておりません。

戻り値
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
21 FVCL_ErrorCode::NOT_SUPPORTED サポートされていません。

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::GetSimGrab ( UINT sim)
virtual

同時取込設定の取得

本関数はサポートしておりません。

戻り値
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
21 FVCL_ErrorCode::NOT_SUPPORTED サポートされていません。

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::SetTrigger ( UINT  trg)
virtual

トリガモードの設定

トリガモードの設定を行います。

引数
[in]trgトリガモード
  • 0:ノーマルモード
  • 1:内部トリガ
  • 2:外部トリガ
  • 3:外部トリガ2
  • 4:外部トリガ3(ボードリビジョン4以上)

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。0~4の間で指定しなければいけません。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
31056 FVCL_ErrorCode::Video::SET_OFFSET オフセットの設定に失敗しました。
解説:
  • ノーマルモード:カメラに対してトリガ出力を行わないモードです。
  • 内部トリガモード:カメラに対してトリガ出力を行います。 GrabImageSync(), GrabImageASync() がコールされた瞬間に、トリガ出力します。 トリガモードによる連続取込 ContinuousGrab() を行う場合、CycleTime設定( SetTriggerCycleTime() )の間隔でトリガを出し続けます。
  • 外部トリガモード: 単発取込の場合、画像取込関数が呼び出された後、画像入力ボードに外部信号が入力されるまで待機し、外部信号が入力された瞬間にカメラに対してトリガ信号を出力します。連続取込 ContinuousGrab() で外部トリガモードを使用する場合、外部トリガ信号が入力される度にカメラに対しトリガ信号を出力し、1フレーム画像入力します。注)ラインセンサの場合、外部トリガモードは、外部トリガモード2と同じ動作となります。
  • 外部トリガモード2: 画像取込関数が呼び出された後、画像入力ボードに外部信号が入力されるまで待機し、外部信号が入力された瞬間にカメラに対してトリガ信号を出力します。 その後、CycleTime設定( SetTriggerCycleTime() )の間隔でトリガを出し続けます。

外部トリガモードを使用時でタイムアウトが設定されている場合、タイムアウト期間内に外部信号が入らなかった場合、タイムアウトエラーとなります。
タイムアウト設定は、カメラ設定ファイルで行い、0が指定されているとタイムアウトが解除され、1以上の数値が指定されている場合、 タイムアウトが設定されます。カメラ設定ファイルに指定する単位はミリ秒ですが、実際にタイムアウトが発生するのは1秒単位です。
ラインセンサの場合、外部トリガモードは、外部トリガモード2と同じ動作となります。 指定枚数の取込が完了するまでライントリガを出し続けますのでフレーム単位で外部トリガを入力することは出来ません。
エンコーダを使用する場合、エンコーダパラメータの設定( SetEncoderParam() )のエンコーダ起動モードと トリガモードの組み合わせに制限があります。 エンコーダー起動モードで外部トリガを指定する場合は、トリガモードは外部トリガモードにしてください。エンコーダー起動モードでCPU、 Z相を指定する場合は、トリガモードは内部トリガにしてください。
4:外部トリガ3は、WIL Ver.3.0.0.9で追加しました。本設定を使用するには、FVC07ドライバ(fvc07.sys) Ver.1.2.0.26以上とFVC07 ボードリビジョン4以上が必要です。 このモードはラインセンサカメラ(エンコーダ未使用時)、連続取込時にフレーム毎に外部トリガ入力を待つモードです。 それ以外(エリアセンサ、単発取込、エンコーダ使用時)には使用できませんのでご注意ください。 また、本設定を4:外部トリガ3に指定した場合、必ず、 SetEncoderParam() のエンコーダ種類を0:無効にする必要があります。 INIファイルで設定する場合は、EncType=0 に設定して再ロードしてください。 SetLineSensorMode() のエンコーダの使用モードも併せて0:エンコーダを使用しないにしてください。
参照
Open
GrabImageSync
GrabImageASync
GetTrigger

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::GetTrigger ( UINT trg)
virtual

トリガモードの取得

トリガモードを取得します。

引数
[out]trgトリガモード
  • 0:ノーマルモード
  • 1:内部トリガ
  • 2:外部トリガ
  • 3:外部トリガ2
  • 4:外部トリガ3(ボードリビジョン4以上)

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。trgがNULLです。
解説:
現在設定されているトリガモードが返されます。
参照
Open
SetTrigger

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::SetExposureTime ( UINT  time)
virtual

露光時間設定

トリガのパルス幅を設定します。パルス幅トリガ対応のカメラの場合、トリガ時のカメラ露光時間が変更されます。

引数
[in]time露光時間(μs)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
31060 FVCL_ErrorCode::Video::SET_EXPOSURE_TIME 露光時間設定に失敗しました。
解説:
本関数は、トリガモード取り込み時の設定( SetTrigger() で、設定値1 or 2 or 3)です。 ノーマルモードに関しては、この関数の設定値は無視されます。
トリガモード時の取り込みの場合、カメラに対して、ボードからトリガパルスを入力します。このパルスの幅を 本関数で設定します。カメラがパルス幅シャッターモード設定されている場合、ボードから出力されるトリガパルス幅が 露光時間となります。
カメラには最大露光時間が存在します。そのため、カメラの最大露光時間を越えた値を設定しても、 カメラが受け付けない場合があります。
FVC07に対して設定可能な時間は、1~ 48000000(μs)です。
参照
Open
GrabImageSync
GrabImageASync
SetTrigger
GetExposureTime

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::GetExposureTime ( UINT time)
virtual

露光時間取得

トリガのパルス幅を取得します。

引数
[out]time露光時間(μs)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。timeがNULLです。
31061 FVCL_ErrorCode::Video::GET_EXPOSURE_TIME 露光時間の取得に失敗しました。
参照
Open
SetExposureTime

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::SetVideoOffset ( INT  offset)
virtual

ビデオオフセット設定

本関数はサポートしておりません。

戻り値
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
21 FVCL_ErrorCode::NOT_SUPPORTED サポートされていません。

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::GetVideoOffset ( INT offset)
virtual

ビデオオフセット設定取得

本関数はサポートしておりません。

戻り値
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
21 FVCL_ErrorCode::NOT_SUPPORTED サポートされていません。

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::SetBinarize ( UINT  mode,
UINT  threshold 
)
virtual

2値化設定

本関数はサポートしておりません。

戻り値
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
21 FVCL_ErrorCode::NOT_SUPPORTED サポートされていません。

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::GetBinarize ( UINT mode,
UINT threshold 
)
virtual

2値化設定の取得

本関数はサポートしておりません。

戻り値
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
21 FVCL_ErrorCode::NOT_SUPPORTED サポートされていません。

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::GetImageSize ( UINT horz,
UINT vert 
)
virtual

入力画像サイズの取得

カメラから入力される画像サイズを取得します。

引数
[out]horz水平方向サイズ
[out]vert垂直方向サイズ
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。horzまたはvertがNULLです。
31055 FVCL_ErrorCode::Video::GET_SIZE サイズの取得に失敗しました。
解説:
デバイスに設定されている、画像入力サイズを取得します。 画像入力サイズは、カメラ設定ファイルで設定を行い、関数からの設定は行えないようになっています。
参照
Open
LoadIniFile

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::ChangeImageSize ( FVCL::Data::CFvImage img)
virtual

画像オブジェクトの変更

引数に指定された画像オブジェクトの画像情報を、カメラ入力に合わせて変更します。

引数
[out]img画像オブジェクト
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。imgがNULLです。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリの確保に失敗しました。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
本関数はデバイスがオープンされた状態でなければ使用できません。
また、 LoadIniFile() でデバイスにパラメータの設定が行われている必要があります。
参照
Open
LoadIniFile
CFvObject::SetAllocateOption

FVCL::Video::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC07::Open ( INT  id,
INT  configuration,
INT  ch 
)
virtual

デバイスのオープン

デバイスをオープンします。
本関数以外の関数は、デバイスがオープンされていないとエラーが返されます。 必ず、本関数でデバイスをオープンした後、パラメータ設定や画像取込を行ってください。

引数
[in]idボードID
  • -1: オープン可能で最も小さいIDを持つボード
  • 0~15: ボードID (デバイス上にあるディップスイッチを指定して下さい。)

[in]configurationコンフィグレーション
  • 0: Base Configrationカメラ
  • 1: Medium Configurationカメラ
  • 2: Full Configuration(8bit) カメラ
  • 3: Full Configuration(10bit) カメラ

[in]chビデオ入力チャネルの設定
  • -1: オープン可能で最も小さいチャネル
  • 0: 0ch
  • 1: 1ch(Baseカメラのみ設定できます)

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリの確保に失敗しました。
55 FVCL_ErrorCode::ALREADY_OPENED 既にオープンされています。2重オープンは出来ません。
31032 FVCL_ErrorCode::Video::DEVICE_ID デバイスIDが間違っています。
2 FVCL_ErrorCode::FAILED_TO_OPEN キャプチャボードのオープンに失敗しました。デバイスドライバが正常に動作しているか確認してください。
解説:
当クラスの関数は、キャプチャボードのオープンが完了していない場合、エラーを返します。 パラメータ設定や画像取込を行う場合は、必ず当関数でキャプチャボードのオープンを行ってください。
FVC07 はBase コンフィグレーション2ch または、Medium/Full コンフィグレーション1ch 入力可能なキャプチャボードです。 コンフィグレーションの指定はオープン時に行います。
デバイスをオープンするためには、デバイスドライバがインストールされ起動している必要があります。 デバイスドライバが起動するには、対応するデバイスがPCに実装されていなければいけません。
デバイス上にはディップスイッチ(SW1)があり、このスイッチでデバイスIDを指定できます。 本関数で-1以外のIDを指定した場合、 デバイスIDと一致するボードをオープンします。この時指定したIDのデバイスが見つからなかった場合、 エラーとなります。 本関数でIDに-1を指定した場合、最も数字の少ないIDを持つデバイスをオープンします。
チャネルに-1以外を指定した場合、指定したチャネルをオープンします。 この時指定したチャネルがオープンできなかった場合、エラーとなります。 本関数でチャネルに-1を指定した場合、最も数字の小さいチャネルをオープンします。 Medium/Full コンフィグレーションを指定した場合、チャネルの値は無視されます。
オープン後、パラメータ設定をしないで取り込みを行った場合、正常に取り込みは行えません。 当クラスでは、カメラ設定ファイル(*.ini)から、パラメータを読み込み設定を行います。 キャプチャボードをオープン後、カメラ設定ファイルからパラメータを設定を行うようにしてください。
  • INIファイルの場合、 LoadIniFile()関数でロードを行います。

FVCL::CFvVideoFVC07 video;
if( video.Open( -1, 0 , -1 ) ) {
if( video.LoadIniFile( _T("C:\\FVC07_IK-TF7C.ini") ) )
::MessageBox( NULL, _T("パラメータ設定成功"), _T("Success"), MB_OK );
else
::MessageBox( NULL, _T("パラメータ設定失敗"), _T("Error"), MB_OK );
}
else
::MessageBox( NULL, _T("オープン失敗"), _T("Error"), MB_OK );

参照
Close
FVCL::Video::CFvVideoFVC07::GetDeviceCH ( )
virtual

チャネル番号の取得

オープンされているチャネル番号を取得します。

戻り値
0以上チャネル番号
-1エラー
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
解説:
オープンされているチャネル番号を取得します。 デバイスがオープンされていなければいけません。
参照
Open
FVCL::Video::CFvVideoFVC07::GetConfiguration ( )
virtual

コンフィグレーションの取得

コンフィグレーションを取得します。

戻り値
0Base Configuration
1Medium Configuration
2Full Configuration(8bit)
3Full Configuration(10bit)
-1エラー
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
解説:
コンフィグレーションを取得します。 デバイスがオープンされていなければいけません。
参照
Open
FVCL::Video::CFvVideoFVC07::CheckCameraAlive ( )
virtual

カメラの確認

カメラが接続され、電源が入っているか確認します。

戻り値
true接続中
false未接続またはオープンされてません
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
解説:
カメラが接続され、電源が入っているか確認します。 デバイスがオープンされていなければいけません。
参照
Open
FVCL::Video::CFvVideoFVC07::SetLateDMA ( UINT  lateDMA)
virtual

LateDMA設定

LateDMAの設定を行います。

引数
[in]lateDMA(0:LateDMAをしない 1:LateDMAをする)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31052 FVCL_ErrorCode::Video::SET_MODE モードの変更に失敗しました。
解説:
lateDMAを0にした場合、カメラから入力された画像は、FVC07のSDRAMに溜め込みながら、PCIバスからメインメモリへDMA転送されます。
lateDMAを1にした場合、カメラから入力された画像を1枚分FVC07のSDRAMに溜め込んだ後、PCIバスからメインメモリへDMA転送します。 通常は0を指定して下さい。
参照
Open
GetLateDMA
FVCL::Video::CFvVideoFVC07::GetLateDMA ( UINT lateDMA)
virtual

LateDMAの設定の取得

LateDMA設定を取得します。

引数
[out]lateDMA(0:LateDMAをしない 1:LateDMAをする)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。lateDMAがNULLです。
参照
Open
SetLateDMA
FVCL::Video::CFvVideoFVC07::SetCC ( UINT  no,
bool  positive,
UINT  enable,
UINT  mode 
)
virtual

CCの設定

カメラコントロールの設定を行います。

引数
[in]noCCの番号 (1~4:CC 5:EXP)
[in]positiveトリガ極性設定 (true:立上り false:立下り)
[in]enableトリガenable (0:OFF 1:ON)
[in]modeトリガ接続モード (0:自ch-α 1:自ch-β 2:自ch-EXT 3:他ch-α 4:他ch-β 5:他ch-EXT)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。設定値が範囲外です。
31081 FVCL_ErrorCode::Video::GET_CC CCの取得に失敗しました。
31080 FVCL_ErrorCode::Video::SET_CC CCの設定に失敗しました。
解説:
トリガ極性設定は、CCまたは露光期間出力(EXP)から出力される、信号が立ち上がりなのか、立ち下がりなのかを指定します。
CCは、Trueを指定した場合、通常状態はLOWで、信号出力時にHIになります。Falseを指定した場合は、通常状態はHIで、信号出力時にLOWになります。
EXPも同様に、Trueを指定した場合、通常状態はLOWで、信号出力時にHIになります。Falseを指定した場合は、通常状態はHIで、信号出力時にLOWになります。
トリガEnable設定がONのCCまたは露光期間出力(EXP)から、トリガ信号が出力されます。 SetTrigger() で トリガモードに設定されている場合、トリガ信号は、画像取込動作に合わせて出力されます。
弊社提供のカメラ設定ファイルでは、カメラの工場出荷設定でトリガ信号を受け付けるCCに対してトリガを 出力するように設定されています。 また、露光期間出力はEnable設定となっており、立ち下がり信号を出力します。
参照
Open
GetCC
FVCL::Video::CFvVideoFVC07::GetCC ( UINT  no,
bool *  positive,
UINT enable,
UINT mode 
)
virtual

CCの取得

カメラコントロールの設定を取得します。

引数
[in]noCCの番号 (1~4:CC 5:EXP)
[out]positiveトリガ極性設定 (true:立上り false:立下り)
[out]enableトリガenable (0:OFF 1:ON)
[out]modeトリガ接続モード (0:自ch-α 1:自ch-β 2:自ch-EXT 3:他ch-α 4:他ch-β 5:他ch-EXT)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。設定値が範囲外です。
31081 FVCL_ErrorCode::Video::GET_CC CCの取得に失敗しました。
参照
Open
SetCC
FVCL::Video::CFvVideoFVC07::SetSimTrigger ( UINT  mode)
virtual

同時トリガの設定

同時トリガの設定を行います。

引数
[in]mode(0:単chトリガ信号出力 1:全chトリガ信号出力)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。設定値が範囲外です。
31301 FVCL_ErrorCode::Video::CANNOT_BE_OPERATED 操作できません。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
解説:
CH0、CH1から同時にトリガ信号が出力されます。これによって、2ch同時取り込みを行うことが可能です。 本関数は必ず、CH0側で行う必要があります。CH1側から操作するとエラーとなります。
同時取込を行う場合は次のように実装してください。

1.CH0を内部トリガ・外部トリガのどちらかに設定する。
2.CH1を外部トリガに設定する。
3.CH0を本メソッドで同時トリガ出力設定にする。
4.CH1を非同期で画像取込を開始する。
5.CH0の画像取込を開始する。CH0が内部トリガの場合、画像取込メソッドが呼ばれた時点で、トリガ出力され、カメラから画像が送られてきます。CH0が外部トリガの場合、画像取込メソッドが呼ばれた後に、画像入力ボードに外部信号が入力された瞬間にカメラに対してトリガ信号が出力されます。
6.CH1の非同期取込完了待ちを行う。
参照
Open
GetSimTrigger
FVCL::Video::CFvVideoFVC07::GetSimTrigger ( UINT mode)
virtual

同時トリガの取得

同時トリガの取得を行います。

引数
[out]mode(0:単chトリガ信号出力 1:全chトリガ信号出力)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31301 FVCL_ErrorCode::Video::CANNOT_BE_OPERATED 操作できません。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
参照
Open
SetSimTrigger
FVCL::Video::CFvVideoFVC07::SetTriggerRetry ( UINT  mode)
virtual

トリガリトライモードの設定

カメラに対するトリガ信号の繰り返しに関するモードを設定します。

引数
[in]mode(0:自動設定モード 1:画像入力中のみ連続出力 2:設定の瞬間から連続出力)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。設定値が範囲外です。
解説:
エンコーダスキャンモードをご使用の場合は、常に0:自動設定モードにしてください。
参照
Open
GetTriggerRetry
FVCL::Video::CFvVideoFVC07::GetTriggerRetry ( UINT mode)
virtual

トリガリトライモードの取得

カメラに対するトリガ信号の繰り返しに関するモードを取得します。

引数
[out]mode(0:自動設定モード 1:画像入力中のみ連続出力 2:設定の瞬間から連続出力)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
参照
Open
SetTriggerRetry
FVCL::Video::CFvVideoFVC07::SetTriggerCycleTime ( UINT  mode,
DOUBLE  time 
)
virtual

トリガリトライ期間の設定

トリガリトライ期間の設定をします。

引数
[in]modeモード (0:トリガ幅を含まない時間を設定する 1:トリガ幅を含む時間を設定する)
[in]timeトリガ間隔時間(μs)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。設定値が範囲外です。
解説:
トリガ信号とトリガ信号の間隔を指定します。 エリアカメラの連続取込または、ラインセンサのエンコーダを使用しないライントリガモードの場合、 トリガ信号が連続して出力され、その場合に本設定が使用されます。
モードによって、timeの意味する間隔が変わってきます。

CFvVideoFVC07_cycletime.png
Mode=0の場合、パルス幅トリガモードで使用することを前提として考えられています。 dTimeにはトリガ信号後から次のトリガが入力できる最短期間を指定することで、 SetExposureTime() でトリガのパルス幅を動的に変更した場合でも、常に最短時間で次のトリガが出力されます。
Mode=1の場合、FIXトリガモード(エッジプリセレクトモード、スタンダードトリガモードなど)や ライン周期モードで使用することを前提として考えられています。 timeにはトリガ信号が出力されたタイミングから、次のトリガ信号までの時間を指定します。 エリアカメラのFIXトリガモードでは、カメラに設定されている期間だけ露光するため、 最短でトリガ信号を連続出力するためには (カメラのシャッタースピード設定値+次のトリガ受付ま での最短時間)を指定しなければいけません。ラインセンサのライン周期モードの場合、 トリガとトリガの間隔で露光が変化し、 time の値で露光時間が変化することとなります。 このとき、カメラの最低周期を下回る値を指定してはいけません。
参照
Open
GetTriggerCycleTime
FVCL::Video::CFvVideoFVC07::GetTriggerCycleTime ( UINT mode,
DOUBLE time 
)
virtual

トリガリトライ期間の取得

トリガリトライ期間の設定値を取得します。

引数
[out]modeモード (0:トリガ幅を含まない時間を設定する 1:トリガ幅を含む時間を設定する)
[out]timeトリガ間隔時間(μs)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。modeまたはtimeがNULLです。
参照
Open
SetTriggerCycleTime
FVCL::Video::CFvVideoFVC07::SetLineSensorMode ( UINT  lsEnable,
UINT  encEnable 
)
virtual

ラインセンサモードの設定

エリアカメラから入力するか、ラインセンサとエンコーダから入力するかを設定します。

引数
[in]lsEnableラインセンサモード (0:OFF 1:ON)
[in]encEnableエンコーダの使用モード (0:エンコーダを使用しない 1:エンコーダスキャンモード 2:エンコーダライン選択モード(ラインセンサカメラのみ対応))
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。設定値が範囲外です。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
参照
Open
GetLineSensorMode
FVCL::Video::CFvVideoFVC07::GetLineSensorMode ( UINT lsEnable,
UINT encEnable 
)
virtual

ラインセンサモードの取得

エリアカメラから入力するか、ラインセンサとエンコーダから入力するかを取得します。

引数
[out]lsEnableラインセンサモード (0:OFF 1:ON)
[out]encEnableエンコーダの使用モード (0:エンコーダを使用しない 1:エンコーダスキャンモード 2:エンコーダライン選択モード)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。lsEnableまたはencEnableがNULLです。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
参照
Open
SetLineSensorMode
FVCL::Video::CFvVideoFVC07::SetLSDelayLine ( UINT  linenum,
UINT  md 
)
virtual

ラインセンサ垂直方向遅延設定

ラインセンサ垂直方向遅延設定を行います。

引数
[in]linenum遅延ライン数
[in]md遅延設定モード (0:連続取込の全フレームで遅延 1:連続取込の最初のフレームだけ遅延)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。設定値が範囲外です。
31056 FVCL_ErrorCode::Video::SET_OFFSET オフセットの設定に失敗しました。
解説:
ラインセンサにおける、取り込み開始入力ラインの遅延設定を行います。 本設定はカメラ設定ファイルのVideo-VerticalOffsetの設定と同義となります。 ラインセンサカメラで連続取り込みを行う場合、最初のフレームは指定ライン遅延し、2フレーム目移行は指定ラインの遅延は必要が無い場合があります。 その際は、md引数に1を指定して下さい。
参照
Open
GetLSDelayLine
FVCL::Video::CFvVideoFVC07::GetLSDelayLine ( UINT linenum,
UINT md 
)
virtual

ラインセンサ垂直方向遅延設定の取得

ラインセンサ垂直方向遅延設定を取得します。

引数
[out]linenum遅延ライン数
[out]md遅延設定モード (0:連続取込の全フレームで遅延 1:連続取込の最初のフレームだけ遅延)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。linenumまたはmdがNULLです。
参照
Open
SetLSDelayLine
FVCL::Video::CFvVideoFVC07::SetEncoderParam ( UINT  signal,
UINT  mlt,
UINT  start,
UINT  pulse,
INT  comp1,
UINT  comp2,
UINT  init,
UINT  cntenb = 1,
UINT  swapab = 0 
)
virtual

エンコーダパラメータの設定

エンコーダのパラメータを設定します。

引数
[in]signalAB相設定 (0:AB相 1:A相)
[in]mltサンプリング速度 (0:1倍 1:2倍 2:4倍)
[in]startエンコーダ起動モード (0:CPU 1:外部トリガ 2:Z相)
[in]pulseパルスの方向 (0:CW 1:CCW)
[in]comp1比較レジスタ1
[in]comp2比較レジスタ2
[in]initエンコーダカウンタ初期化設定 (0:画像入力完了時にエンコーダカウンタを初期化します 1:画像入力が完了してもエンコーダカウントを初期化しません)
[in]cntenbエンコーダ種類 (0:無効 1:相対位置エンコーダ 2:絶対位置エンコーダ)
[in]swapabA相/B相入れ替え (0:無効 1:有効)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。設定値が範囲外です。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
エンコーダを使用する場合、本関数でパラメータの設定を行います。 サンプリング速度2:4倍は、signalが 0:AB相 のときのみ設定可能です。 エンコーダカウントを比較レジスタ1の設定分、待機したのちトリガ信号の出力を開始します。 また、比較レジスタ2の倍数のときにトリガ信号を出力します。
エンコーダ起動モードとトリガモード( SetTrigger() )の組み合わせに制限があります。 エンコーダー起動モードで外部トリガを指定する場合は、トリガモードは外部トリガモードにしてください。エンコーダー起動モードでCPU、 Z相を指定する場合は、トリガモードは内部トリガにしてください。
参照
Open
SetTrigger
SetLineSensorMode
GetEncoderParam
FVCL::Video::CFvVideoFVC07::GetEncoderParam ( UINT signal,
UINT mlt,
UINT start,
UINT pulse,
INT comp1,
UINT comp2,
UINT init,
UINT cntenb,
UINT swapab 
)
virtual

エンコーダパラメータの取得

設定されているエンコーダパラメータを取得します。

引数
[out]signalAB相設定 (0:AB相 1:A相)
[out]mltサンプリング速度 (0:1倍 1:2倍 2:4倍)
[out]startエンコーダ起動モード (0:CPU 1:外部トリガ 2:Z相)
[out]pulseパルスの方向 (0:CW 1:CCW)
[out]comp1比較レジスタ1
[out]comp2比較レジスタ2
[out]initエンコーダカウンタ初期化設定 (0:画像入力完了時にエンコーダカウンタを初期化します 1:画像入力が完了してもエンコーダカウントを初期化しません)
[out]cntenbエンコーダ種類 (0:無効 1:相対位置エンコーダ 2:絶対位置エンコーダ)
[out]swapabA相/B相入れ替え (0:無効 1:有効)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
参照
Open
SetLineSensorMode
SetEncoderParam
FVCL::Video::CFvVideoFVC07::GetEncoderParam ( UINT signal,
UINT mlt,
UINT start,
UINT pulse,
INT comp1,
UINT comp2,
UINT init 
)
virtual

エンコーダパラメータの取得

設定されているエンコーダパラメータを取得します。

引数
[out]signalAB相設定 (0:AB相 1:A相)
[out]mltサンプリング速度 (0:1倍 1:2倍 2:4倍)
[out]startエンコーダ起動モード (0:CPU 1:外部トリガ 2:Z相)
[out]pulseパルスの方向 (0:CW 1:CCW)
[out]comp1比較レジスタ1
[out]comp2比較レジスタ2
[out]initエンコーダカウンタ初期化設定 (0:画像入力完了時にエンコーダカウンタを初期化します 1:画像入力が完了してもエンコーダカウントを初期化しません)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
参照
Open
SetLineSensorMode
SetEncoderParam
FVCL::Video::CFvVideoFVC07::SetPackingMode ( UINT  mode)
virtual

パッキングモードの設定

パッキングモードの設定を行います。

引数
[in]modeパッキングモード (0:UnPack 1:Packing 2:UnPack Double 3:2TAP Pack 4:3TAP Mono)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。設定値が範囲外です。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
画像データのパッキングを設定します。 本設定はカメラ設定ファイルのVideo-PackingModeの設定と同義となります。 modeを0にした場合、パッキング処理を行いません。 modeを1にした場合、パッキング処理を行います。 mode=2はTAP4カメラで、特殊なパッキング処理を行う場合にのみ使用します。 mode=3はTAP8カメラで、特殊なパッキング処理を行う場合にのみ使用します。 mode=4はTAP3カメラで、モノクロカメラのパッキング処理を行う場合にのみ使用します。 通常は使用しません。
参照
Open
GetPackingMode
FVCL::Video::CFvVideoFVC07::GetPackingMode ( UINT mode)
virtual

パッキングモードの取得

パッキングモードの設定を取得します。

引数
[out]modeパッキングモード (0:UnPack 1:Packing 2:UnPack Double 3:2TAP Pack 4:3TAP Mono)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
参照
Open
SetPackingMode
FVCL::Video::CFvVideoFVC07::MemoryLock ( CFvMultiData< FVCL::Data::CFvImage > *  imgs,
UINT  num 
)
virtual

画像メモリロック

画像メモリをロックし、連続取込が行える状態にします。
ロックした画像メモリを解放したり、サイズ変更してはいけません。

引数
[in]imgs画像オブジェクト
[in]numロック画像枚数
戻り値
0xFFFFFFFFエラー
0xFFFFFFFF以外ロックメモリハンドル
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。numが0か、imgsがNULLです。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリの確保に失敗しました。
18 FVCL_ErrorCode::INVALID_CHANNEL 画像チャネル数が、デバイスの設定と一致しません。
31046 FVCL_ErrorCode::Video::MEMORY_LOCK メモリロックに失敗しました。ロックするだけの連続メモリが足りない可能性があります。
17 FVCL_ErrorCode::INVALID_IMAGESIZE 画像サイズが、デバイスの設定と一致しません。
16 FVCL_ErrorCode::INVALID_IMAGETYPE 画像タイプが、デバイスの設定と一致しません。
31050 FVCL_ErrorCode::Video::INVALID_IMAGE_DEPTH 画像ビット深度が、デバイスの設定と一致しません。
31079 FVCL_ErrorCode::Video::GET_PARAMETER ボードから情報を取得できません。
31078 FVCL_ErrorCode::Video::SET_PARAMETER 画像情報を設定できません。
解説:
画像メモリをロックします。ロックされた画像メモリアドレスはメインメモリからスワップされないメモリとなります。 そのため、ロックされた画像メモリを解放したり、サイズ変更を行ったりしないでください。
画像メモリのロックは、 ContinuousGrab() で画像取込を行う際に使用されます。GrabImageSync(), GrabImageASync()では、 画像メモリをロックする必要はありません。(関数内部で自動的にロックされます)
ロックされた画像メモリは、 MemoryUnlock() 関数でロック解除することができます。CFvVideoFVC07クラスのデストラクタで、 ロック解除を行います。
バグ:

FVCLvideo v1.1.0.0: 取得できるエラーコードが正しくない不具合を修正しました。

FVCLvideo v1.1.0.0: カラーカメラ3ch独立したメモリでのロックを行った場合、正しくない画像サイズでロックしていた不具合を修正。

参照
Open
MemoryUnlock
FVCL::Video::CFvVideoFVC07::MemoryUnlock ( UINT  handle)
virtual

画像メモリロックの解除

ロックされた画像メモリを解除します。

引数
[in]handleロックメモリハンドル
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。指定されたハンドルは、正しくありません。
31047 FVCL_ErrorCode::Video::MEMORY_UNLOCK メモリのアンロックに失敗しました。
解説:
ロックされたメモリを解除します。ロックを解除したロックメモリハンドルは使用不可になります。
参照
Open
MemoryLock
FVCL::Video::CFvVideoFVC07::ContinuousGrab ( UINT  handle,
UINT  capture_num,
bool  ASync 
)
virtual

連続取込実行

連続取り込みを実行します。

引数
[in]handleロックメモリハンドル
[in]capture_num取込枚数 0を指定した場合、無限取込。
[in]ASynctrue:非同期 false:同期
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
53 FVCL_ErrorCode::TIMEOUT タイムアウトが発生しました。
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31040 FVCL_ErrorCode::Video::GRAB_FAILED 画像入力に失敗しました。
31037 FVCL_ErrorCode::Video::NOW_CAPTURING 現在、画像入力中のため画像取込を行えません。
31042 FVCL_ErrorCode::Video::INVALID_IMAGE 画像オブジェクトが不正です。
解説:
連続取り込みを実行します。 画像が入力される先は、handleで示された画像メモリです。handleは、 MemoryLock() で取得します。
画像取込枚数(capture_num引数)に、0を指定した場合、無限長取込となります。それ以外の値を指定した場合、 その枚数が取込終わった時点で、取り込み終了となります。
ASync引数でfalseを指定した場合、画像取込が完了するまで関数から戻ってきません。trueを指定した場合、 即関数から抜けてきます。画像取込の状況を知るためには、 NotifyCaptureNo() 関数か、 QueryCaptureNo() 関数で、 取得することが可能です。
bASync引数にtrueを指定した場合、 GrabWait(), GrabStatus() 関数で 指定枚数分画像取り込みが終わったことを確認するか、 AbortCapture() か StopCapture() で取り込みを停止させなければ、 次の取り込みを行えません。
画像入力は、指定取込枚数に達した時点で終了しますが、 AbortCapture() 関数と StopCapture() 関数を用いても、 終了させることが可能です。
PCIバスの転送が間に合わない場合、ローカルバッファに画像データが溜まりきった時点でエラーとなります。 高解像度・高速なカメラにおいて、2ch同時取り込みを行った場合、転送が間に合わずエラーとなります。
参照
Open
MemoryLock
NotifyCaptureNo
QueryCaptureNo
AbortCapture
StopCapture
GrabWait
GrabStatus
FVCL::Video::CFvVideoFVC07::NotifyCaptureNo ( tagWAIT_FRAME wait_frame)
virtual

連続取込の情報を取得(フレーム待機)

連続取込の情報を取得します。呼出し後1フレーム取込終わるまで本メソッド内部で待機します。

引数
[out]wait_frame連続取込情報
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。指定されたwait_frameがNULLです。
解説:
連続取込中の情報を取得します。連続取込関数( ContinuousGrab() )実行中にご使用ください。 また、1フレーム待機を行わない情報取得関数( QueryCaptureNo() )も用意されています。
画像取り込みが行われていない場合、即メソッドから抜けてきます。 このとき、エラーは発生せず、 tagWAIT_FRAME.AmountInFrame が0になります。
トータルフレーム枚数は ContinuousGrab() コール時に0になり、4294967295(0xFFFFFFFF)まで増加した後、0(0x00)に戻ります。
ライン数(LineCount)は、TAP毎のライン数になります。カメラによっては、取得できる最大ライン数が画像メモリの半分となる 場合があります。
留意事項:
本関数は、画像取込中に行うため、画像転送(DMA)中にキャプチャボードのレジスタから値を参照することになります。 バスに大きな負担がかかる画像転送(DMA)中に更にレジスタ参照による負荷をかけることになりますので速度の速いカメラをご使用の場合などに頻繁に参照するとご使用条件によっては画像入力の転送性能等に悪影響を及ぼす可能性もあります。 そのため頻繁に参照を行う事はお勧めいたしません。
バグ:
fvaux_fvlcvideo.*.3.0.0.dll v3.0.0.3: 転送時のラインカウント値が正しくない不具合を修正。
参照
Open
ContinuousGrab
QueryCaptureNo
tagWAIT_FRAME
FVCL::Video::CFvVideoFVC07::QueryCaptureNo ( tagWAIT_FRAME wait_frame)
virtual

連続取込の情報を取得(即取得)

連続取込の情報を取得します。呼び出された時の情報を返します。

引数
[out]wait_frame連続取込情報
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。指定されたwait_frameがNULLです。
解説:
連続取込中の情報を取得します。連続取込関数( ContinuousGrab() )実行中にご使用ください。 また、1フレーム待機を行なう情報取得関数( NotifyCaptureNo() )も用意されています。
画像取り込みが行われていない場合、即メソッドから抜けてきます。 このとき、エラーは発生しません。
トータルフレーム枚数は ContinuousGrab() コール時に0になり、4294967295(0xFFFFFFFF)まで増加した後、0(0x00)に戻ります。
ライン数(LineCount)は、TAP毎のライン数になります。カメラによっては、取得できる最大ライン数が画像メモリの半分となる 場合があります。
留意事項:
本関数は、画像取込中に行うため、画像転送(DMA)中にキャプチャボードのレジスタから値を参照することになります。 バスに大きな負担がかかる画像転送(DMA)中に更にレジスタ参照による負荷をかけることになりますので速度の速いカメラをご使用の場合などに頻繁に参照するとご使用条件によっては画像入力の転送性能等に悪影響を及ぼす可能性もあります。 そのため頻繁に参照を行う事はお勧めいたしません。
バグ:
fvaux_fvlcvideo.*.3.0.0.dll v3.0.0.3: 転送時のラインカウント値が正しくない不具合を修正。
参照
Open
ContinuousGrab
NotifyCaptureNo
tagWAIT_FRAME
FVCL::Video::CFvVideoFVC07::AbortCapture ( )
virtual

画像取込の即停止

画像取込(連続取込、単発取込)の取り込みを中止します。

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31049 FVCL_ErrorCode::Video::CAPTURE_STOP 画像取込の停止に失敗しました。
解説:
画像取込を停止します。 GrabImageSync(), GrabImageASync(), ContinuousGrab() 関数実行時に使用可能です。 停止した際の画像データは不定となります。トリガモードに関係なく使用できます。
エリアカメラの場合、 AbortCapture() 関数実行後も、カメラ側は動作が継続されます。次の取り込みは 1フレーム分待機してから実行してください。
連続取込の場合は1フレーム取り込みを待ってから停止させる関数 StopCapture() も用意されています。
参照
Open
GrabImageSync
GrabImageASync
ContinuousGrab
StopCapture
FVCL::Video::CFvVideoFVC07::StopCapture ( )
virtual

連続取り込みの停止(フレーム待機)

連続取り込みの停止をします。

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31049 FVCL_ErrorCode::Video::CAPTURE_STOP 画像取込の停止に失敗しました。
解説:
画像取込を停止します。GrabImageSync(), GrabImageASync(), ContinuousGrab() 関数実行時に使用可能ですが、 GrabImageSync(), GrabImageASync()の場合は GrabWait()と同じ動作になるため、 GrabWait() をご使用ください。
停止関数を呼び出したときの、フレームの絵は正常になり、また、それ以前の絵も正常に入力されています。
画像取込を即停止したい場合は AbortCapture() をご使用ください。
参照
Open
ContinuousGrab
AbortCapture
FVCL::Video::CFvVideoFVC07::ForcedTrigger ( )
virtual

トリガの発行

カメラに対し、トリガ信号を発行します。

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
52 FVCL_ErrorCode::UNEXPECTED_ERROR 想定外のエラーが発生しました。
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
解説:
トリガモード時でかつ画像取込中のみ使用可能です。
トリガ信号の出力時間は SetExposureTime() で設定可能です。
[想定される使用方法]
  • 外部トリガ信号待機中に、ソフトウェアからトリガ信号を入れたい場合。
  • カメラの仕様で、ノーマルモードからトリガモードに切り替え直後の1枚目の画像が正しくない場合。本関数を用いてトリガ信号を出力することで、カメラの1枚目の画像が捨てられます。

エンコーダ使用時は、本関数は使用できませんのでご注意ください。
参照
Open
SetTrigger
SetExposureTime
FVCL::Video::CFvVideoFVC07::SioOpen ( )
virtual

SIOのオープン

シリアルポートのオープンを行います。必ず、本関数でオープンした後、シリアル通信を行ってください。

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31232 FVCL_ErrorCode::Video::SIO_FAILED_TO_OPEN SIOのオープンに失敗しました。
解説:
SioSendData() 及び、Sioから始まる関数群は SioOpen が行われていなければ使用することが出来ません。 既に、仮想シリアルドライバによるCOMポートのオープンが行われていた場合はエラーとなります。
参照
Open
SioClose
SioSendData
SioPurgeBuff
SioSetData n SioGetData
SioSetDataByte
SioGetDataByte
SioAbort
SioGetSizeInRxQueue
SioGetSizeInTxQueue
SioNotifyEvent
SioQueryEvent
FVCL::Video::CFvVideoFVC07::SioClose ( )
virtual

SIOのクローズ

シリアルポートのクローズを行います。

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31233 FVCL_ErrorCode::Video::SIO_FAILED_TO_CLOSE SIOのクローズに失敗しました。
解説:
SIOがオープンされていた場合、終了処理を行います。クローズ処理が正常に行われた場合、再度オープンされるまで、Sioから始まる関数群を使用することはできません。
SIOがオープンされていない状態でクローズを行った場合でも trueを返します。
参照
Open
SioOpen
SioSendData
SioPurgeBuff
SioSetData
SioGetData
SioSetDataByte
SioGetDataByte
SioAbort
SioGetSizeInRxQueue
SioGetSizeInTxQueue
SioNotifyEvent
SioQueryEvent
FVCL::Video::CFvVideoFVC07::SioPurgeBuff ( bool  rx,
bool  tx 
)
virtual

SIO バッファのクリア

SIOの出力バッファまたは入力バッファにあるすべての文字を破棄します。

引数
[in]rxtrue:受信キューのクリア false:受信キューをクリアしない
[in]txtrue:送信キューのクリア false:送信キューをクリアしない
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31234 FVCL_ErrorCode::Video::SIO_NOT_OPENED SIOがオープンされていません。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
参照
Open
SioOpen
FVCL::Video::CFvVideoFVC07::SioSendData ( const FVCL::Data::CFvStringA str_tx,
FVCL::Data::CFvStringA str_rx,
UINT  option 
)
virtual

カメラに対して通信を行う

カメラに対して送受信を行います。

引数
[in]str_tx送信データ(送信データの先頭と終端につける記号(STX,ETX,CR/LF)は自動的に付加します)
[out]str_rx受信データ(受信データの先頭と終端につける記号は自動的に破棄されます)
[in]optionオプション
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
24 FVCL_ErrorCode::NOT_ENOUGH メモリ確保領域が十分ではありません。
31234 FVCL_ErrorCode::Video::SIO_NOT_OPENED SIOがオープンされていません。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの設定に失敗しました。
31235 FVCL_ErrorCode::Video::SIO_TIMEOUT SIOタイムアウトが発生しました。
解説:
  • SioOpen が成功した状態でなければ使用することが出来ません。
  • カメラに対し、str_txの文字列を送信します。正常に送信が完了した場合、カメラから受信完了のコマンドが返されます。 返されたコマンドは、str_rxに格納されます。
  • 正常な場合、送信コマンドに対して、受信完了コマンドがカメラから返されますが、カメラが接続されていなかったり、 電源が入っていなかった場合、カメラ側から何も返されません。その場合、5秒後にSIOタイムアウトエラーとなります。
  • カメラにSIO機能が無ければ使用できません。
  • 送信データの先頭と終端につける記号(STX,ETX,CR/LF)は自動的に付加します。
  • 送信するコマンドは、送り先のカメラに依存します。詳しくはカメラメーカーが出している、カメラ説明書をご参照ください。
  • シリアル通信の速度は、カメラ設定ファイルで設定されている速度で行われます。その他のパラメータは、データビット=8bit, ノンパリティ、ストップビット=1bit固定となります。
  • option設定は、多くのカメラで0固定ですが、一部のカメラで値を設定しなければいけません。 本関数では、送信コマンドの先頭・終端の記号(STX,ETX,CR/LF)を付けて送信した場合、 カメラからの反応も同じ記号が付加されて戻ってくることを前提として作成されています。 カメラによっては、異なっている場合があるため、optionで戻ってくる情報の形を指定しなければいけません。

optionは32bit整数で次のように格納します。

CFvVideoFVC07_siosenddata.png
0~14bit :受信バイト数
15bit :受信バイト数を有効にする
16bit :送信時の開始コード・終端コードを付加しない
17bit :受信コマンドに、終端コードが付いていない
18~30bit :Reserve
31bit :送信コマンドにチェックサムを付加する

(例)送信データに先頭・終端記号が付き、受信データが常に4byteで先頭・終端記号が付加されない場合。
0~14bit : 4
15bit : 1
16bit : 0
17bit : 1
18~30bit : 0
31bit : 0
→0x00028004 を指定する。
option指定用に、FVCL::Video::tagSENDSIO_OPTION を用意しています。
上記(例)を FVCL::Video::tagSENDSIO_OPTION を使用する場合、下記のように記述してください。
memset(&opt, 0 , sizeof(FVCL::Video::tagSENDSIO_OPTION)); // 必ず初期化
bool rtn = video.SioSendData(strSend , &strFvRev ,opt.Value);

参照
Open
SioOpen
FVCL::Video::CFvVideoFVC07::SioSetData ( const CFvMultiData< CHAR > &  datas)
virtual

SIO データ列設定

指定データ列を送信キューに設定します。

引数
[in]datas送信データ列 (STX,ETXは付加されません)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31234 FVCL_ErrorCode::Video::SIO_NOT_OPENED SIOがオープンされていません。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
解説:
指定データ列を送信キューに設定します。送信キューに格納されたデータは、カメラリンクケーブルを通して、カメラに送信されます。
参照
Open
SioOpen
SioGetData
FVCL::Video::CFvVideoFVC07::SioGetData ( CFvMultiData< CHAR > *  datas,
UINT  length 
)
virtual

SIO データ列取得

受信キューから、データ列を受け取ります。

引数
[out]datas受信データ列
[in]length受信するデータサイズ
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31234 FVCL_ErrorCode::Video::SIO_NOT_OPENED SIOがオープンされていません。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
解説:
受信キューから、指定サイズ分のデータ列を受け取ります。カメラから送られてきたデータは、受信キューに格納されています。
参照
Open
SioOpen
SioSetData
FVCL::Video::CFvVideoFVC07::SioSetDataByte ( CHAR  data)
virtual

SIO データ設定

1byteの指定データを送信キューに設定します。

引数
[in]data送信データ (STX,ETXは付加されません)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31234 FVCL_ErrorCode::Video::SIO_NOT_OPENED SIOがオープンされていません。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
解説:
1byteの指定データを送信キューに設定します。送信キューに格納されたデータは、カメラリンクケーブルを通して、カメラに送信されます。
参照
Open
SioOpen
SioGetDataByte
FVCL::Video::CFvVideoFVC07::SioGetDataByte ( CHAR data)
virtual

SIO データ受信

受信キューから、1byteのデータを受け取ります。

引数
[out]data受信データ列
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31234 FVCL_ErrorCode::Video::SIO_NOT_OPENED SIOがオープンされていません。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
受信キューから、データを1byte取得します。カメラから送られてきたデータは、受信キューに格納されています。
参照
Open
SioOpen
SioSetDataByte
FVCL::Video::CFvVideoFVC07::SioAbort ( )
virtual

SIO 送受信中止

送信・受信を中止します。

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31234 FVCL_ErrorCode::Video::SIO_NOT_OPENED SIOがオープンされていません。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
参照
Open
SioOpen
FVCL::Video::CFvVideoFVC07::SioGetSizeInRxQueue ( )
virtual

受信キューデータサイズ取得

SIO 受信キューに入っているデータサイズを取得します。

戻り値
0x80000000エラー
0~データサイズ(byte)
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31234 FVCL_ErrorCode::Video::SIO_NOT_OPENED SIOがオープンされていません。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
参照
Open
SioOpen n SioGetSizeInTxQueue
FVCL::Video::CFvVideoFVC07::SioGetSizeInTxQueue ( )
virtual

送信キューデータサイズ取得

SIO 送信キューに入っているデータサイズを取得します。

戻り値
0x80000000エラー
0~データサイズ(byte)
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31234 FVCL_ErrorCode::Video::SIO_NOT_OPENED SIOがオープンされていません。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
参照
Open
SioOpen
SioGetSizeInRxQueue
FVCL::Video::CFvVideoFVC07::SioNotifyEvent ( )
virtual

SIOイベント待機

SIO イベントが発生するまで待機します。

戻り値
0x80000000エラー
イベントデータ(bit組み合わせ)0x01:データ受信 0x02:送信バッファが空になった 0x04:SIOエラーが発生した
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31234 FVCL_ErrorCode::Video::SIO_NOT_OPENED SIOがオープンされていません。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
SIOイベントが発生するまで待機します。 発生するSIOイベントの指定はカメラ設定ファイルで行います。

SIO-EventRevData データを受信した際にイベントが発生(デフォルト TRUE)
SIO-EventTxBuffEmpty 送信キューが空になったときにイベント発生(デフォルト FALSE)
SIO-EventError エラーが発生したときにイベント発生(デフォルト FALSE)
参照
Open
SioOpen
SioQueryEvent
FVCL::Video::CFvVideoFVC07::SioQueryEvent ( )
virtual

SIOイベント確認

SIOイベントが発生しているか確認します。

戻り値
0x80000000エラー
イベントデータ(bit組み合わせ)0x01:データ受信 0x02:送信バッファが空になった 0x04:SIOエラーが発生した
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31234 FVCL_ErrorCode::Video::SIO_NOT_OPENED SIOがオープンされていません。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
SIOイベントが発生しているか確認します。確認後、本関数から、即抜けてきます。
参照
Open
SioOpen
SioNotifyEvent
FVCL::Video::CFvVideoFVC07::GetDriverVersion ( UINT major,
UINT minor,
UINT release,
UINT build 
)
virtual

デバイスドライババージョンの取得

FVC07デバイスドライバのバージョンを取得します。

引数
[out]majorメジャーバージョン
[out]minorマイナーバージョン
[out]releaseリリース番号
[out]buildビルド番号
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。NULLが指定されています。
解説:
FVC07ドライババージョンを取得します。
参照
Open
FVCL::Video::CFvVideoFVC07::GetEncoderCount ( INT encdCounter)
virtual

エンコーダ・カウンタのカウント値の取得

エンコーダ・カウンタのカウント値を取得します

引数
[out]encdCounter(絶対位置エンコーダ選択時):カウント値 (相対位置エンコーダ選択時):総カウント値
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。NULLが指定されています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
エンコーダ・カウンタのカウント値を取得します。
FVCL::Video::CFvVideoFVC07::GetRelEncoderCount ( UINT encdCounter)
virtual

相対位置エンコーダ・カウンタのカウント値の取得

相対位置エンコーダ・カウンタのカウント値を取得します

引数
[out]encdCounter相対位置エンコーダ・カウンタのカウント値
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。NULLが指定されています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
相対位置エンコーダ・カウンタのカウント値を取得します。
FVCL::Video::CFvVideoFVC07::StartAbsEncoder ( const bool  tStartEncoder)
virtual

絶対位置エンコーダの開始、終了

絶対位置エンコーダの開始、終了を指示します

引数
[in]tStartEncodertrue:カウント許可 false:停止
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
絶対位置エンコーダの開始、終了を指示します
FVCL::Video::CFvVideoFVC07::GetEncoderStatus ( UINT piOverflow,
UINT piUnderflow 
)
virtual

エンコーダ・ステータスの取得

エンコーダ・ステータスを取得します

引数
[out]piOverflow絶対位置エンコーダ選択時、内部カウンタのオーバーフローフラグ. 0:オーバーフローなし 1:オーバーフローしている
[out]piUnderflow絶対位置エンコーダ選択時、内部カウンタのアンダーフローフラグ. 0:アンダーフローなし 1:アンダーフローしている
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。NULLが指定されています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
エンコーダ・ステータスを取得します。
FVCL::Video::CFvVideoFVC07::GetEncoderMatchCount ( UINT matchCount)
virtual

エンコーダ一致パルス数の取得

エンコーダ一致パルス数を取得します

引数
[out]matchCountエンコーダ一致パルス数
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。NULLが指定されています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
エンコーダ一致パルス数を取得します。
FVCL::Video::CFvVideoFVC07::ClearEncdCounter ( )
virtual

エンコーダ・カウンタのクリア

エンコーダ・カウンタをクリアします。

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
エンコーダ・カウンタをクリアします。 (絶対位置エンコーダ選択時):カウント値 (相対位置エンコーダ選択時):総カウント値
FVCL::Video::CFvVideoFVC07::ClearMatchCount ( )
virtual

エンコーダ一致パルス数カウンタのクリア

エンコーダ一致パルス数カウンタをクリアします。

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
エンコーダ一致パルス数カウンタをクリアします。
FVCL::Video::CFvVideoFVC07::ClearOverFlow ( )
virtual

内部カウンタのオーバーフロー・フラグのクリア

絶対位置エンコーダ選択時に内部カウンタのオーバーフロー・フラグを即時クリアします。

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
絶対位置エンコーダ選択時に内部カウンタのオーバーフロー・フラグを即時クリアします。
FVCL::Video::CFvVideoFVC07::ClearUnderFlow ( )
virtual

内部カウンタのアンダーフロー・フラグのクリア

絶対位置エンコーダ選択時に内部カウンタのアンダーフロー・フラグを即時クリアします。

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
絶対位置エンコーダ選択時に内部カウンタのアンダーフロー・フラグを即時クリアします。
FVCL::Video::CFvVideoFVC07::SetExTriggerSrcSel ( UINT  exTriggerSrc)
virtual

(外部トリガモード時) 取込開始信号の設定

(外部トリガモード時) 取込を開始する信号を設定します

引数
[in]exTriggerSrc外部トリガモードで取り込みをスタートさせたとき 0:外部トリガ信号で取り込みを開始する 1:エンコーダB相の信号で取り込みを開始する 2:エンコーダZ相の信号で取り込みを開始する
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。NULLが指定されています。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
(外部トリガモード時) 取込を開始する信号を設定します。
FVCL::Video::CFvVideoFVC07::GetExTriggerSrcSel ( UINT exTriggerSrc)
virtual

(外部トリガモード時) 取込開始信号の設定の取得

(外部トリガモード時) 取込を開始する信号の設定を取得します

引数
[out]exTriggerSrc外部トリガモードで取り込みをスタートさせたとき 0:外部トリガ信号で取り込みを開始する 1:エンコーダB相の信号で取り込みを開始する 2:エンコーダZ相の信号で取り込みを開始する
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。NULLが指定されています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
(外部トリガモード時) 取込を開始する信号の選択を取得します。
FVCL::Video::CFvVideoFVC07::fnGetImageInfo ( UINT horz,
UINT vert,
UINT type,
UINT ch,
UINT bpp 
)
protected

画像メモリのチェック

ボードに設定されている画像情報を取得します。

引数
[out]horz画像横サイズ
[out]vert画像縦サイズ
[out]type画像タイプ
[out]ch画像チャネル数
[out]bpp画像ビット深度
戻り値
0正常終了
FVCL_ErrorCode::INVALID_PARAMETER引数が間違っています。
FVCL_ErrorCode::NOT_OPENEDデバイスがオープンされていません。
FVCL_ErrorCode::Video::GET_PARAMETERボードから情報を取得できません。
FVCL_ErrorCode::Video::SET_PARAMETER画像情報を設定できません。
参照
fnCapture
fnCheckImage
GrabImageSync
GrabImageASync
FVCL::Video::CFvVideoFVC07::fnCapture ( FVCL::Data::CFvImage img,
bool  async 
)
protected

画像入力(実体)

画像を入力します。

引数
[out]img取込先画像
[in]asyncfalse:同期 true:非同期
戻り値
FVCL_ErrorCode::NOT_OPENEDデバイスがオープンされていません。
FVCL_ErrorCode::INVALID_PARAMETER引数が間違っています。imgがNULLです。
FVCL_ErrorCode::INVALID_IMAGESIZE画像サイズが、デバイスの設定と一致しません。
FVCL_ErrorCode::INVALID_IMAGETYPE画像タイプが、デバイスの設定と一致しません。
FVCL_ErrorCode::INVALID_CHANNEL画像チャネル数が、デバイスの設定と一致しません。
FVCL_ErrorCode::Video::INVALID_IMAGE_DEPTH画像ビット深度が、デバイスの設定と一致しません。
FVCL_ErrorCode::Video::GET_PARAMETERボードから情報を取得できません。
FVCL_ErrorCode::Video::SET_PARAMETER画像情報を設定できません。
FVCL_ErrorCode::Video::MEMORY_LOCK画像メモリのロックに失敗しました。メモリ不足の可能性があります。
FVCL_ErrorCode::Video::MEMORY_UNLOCK画像メモリのアンロックに失敗しました。
FVCL_ErrorCode::Video::NOW_CAPTURING現在、画像入力中のため画像取込を行えません。
FVCL_ErrorCode::Video::INVALID_IMAGE画像オブジェクトが不正です。
FVCL_ErrorCode::Video::GRAB_FAILED画像取込に失敗しました。
FVCL_ErrorCode::TIMEOUTタイムアウトが発生しました。
解説:
非同期取込の場合、デバイスに対して画像取込開始命令を行った後、即、関数から抜けてきます。画像取込が完了したかどうかは、 GrabWait() か GrabStatus() 関数を用いて調べます。 GrabImageASync() をコールした後は、必ず、 GrabWait() で 画像取込が完了するまで待機するか、 GrabStatus() で、0が返されるのを確認しなければなりません。
確認を怠った場合、次の取り込みを行うことが出来ません。この時、エラーコード : FVCL_ErrorCode::Video::NOW_CAPTURING が発生します。
デバイスから出力される画像情報と、引数に渡された画像オブジェクトの情報が一致しない場合エラーになります。 画像取込を行う前に、 ChangeImageSize() を用いて、画像オブジェクトの情報の変更を行うようにしてください。 ChangeImageSize() を用いると、画像タイプ、画像サイズ、画像チャネル数、画像ビット深度がデバイスから出力される情報で正規化されます。
カメラ設定ファイルで Video-Timeoutの項を0に指定した場合、タイムアウト設定はOFFになります。1以上の値が設定された 場合にのみ、タイムアウト機能がONになり、指定時間以内に画像入力が行われなかった場合、エラーとなります。
以下の関数のパラメータに従って、画像取込を実行します。
  • SetTrigger()
  • SetExposureTime()
  • SetLateDMA()
  • SetCC()
  • SetSimTrigger()
  • SetTriggerRetry()
  • SetTriggerCycleTime()
  • SetPackingMode()

参照
Open
GrabImageSync
GrabImageASync
FVCL::Video::CFvVideoFVC07::fnCheckImage ( FVCL::Data::CFvImage img)
protected

画像メモリのチェック

画像メモリが取込画像サイズと一致するかを調べます。

引数
[out]img対象画像
戻り値
0正常終了
FVCL_ErrorCode::INVALID_PARAMETER引数が間違っています。imgがNULLです。
FVCL_ErrorCode::NOT_OPENEDデバイスがオープンされていません。
FVCL_ErrorCode::INVALID_IMAGESIZE画像サイズが、デバイスの設定と一致しません。
FVCL_ErrorCode::INVALID_IMAGETYPE画像タイプが、デバイスの設定と一致しません。
FVCL_ErrorCode::INVALID_CHANNEL画像チャネル数が、デバイスの設定と一致しません。
FVCL_ErrorCode::Video::INVALID_IMAGE_DEPTH画像ビット深度が、デバイスの設定と一致しません。
参照
fnCapture
fnGetImageInfo
GrabImageSync
GrabImageASync
FVCL::Video::CFvVideoFVC07::fnEncoderClear ( UINT  clearOverFlow,
UINT  clearUnderFlow,
UINT  clearMatchCount,
UINT  clearEncdCounter 
)
protected

エンコーダ情報のクリア

エンコーダ情報をクリアします

引数
[in]clearOverFlow絶対位置エンコーダ選択時、内部カウンタのオーバーフロー・フラグ 0:クリアしない 1:クリアする
[in]clearUnderFlow絶対位置エンコーダ選択時、内部カウンタのアンダーフロー・フラグ 0:クリアしない 1:クリアする
[in]clearMatchCountエンコーダ一致パルス数 0:クリアしない 1:クリアする
[in]clearEncdCounterエンコーダ・カウンタ 0:クリアしない 1:クリアする
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
エンコーダ情報をクリアします。

メンバ詳解

void * FVCL::Video::CFvVideoFVC07::m_device
protected

デバイスコントローラオブジェクト


Documentation copyright © 2007 FAST Corporation. [B-001864]
Generated on 2023年11月02日(木) 10時31分53秒 for WIL説明書(C++) by doxygen 1.8.11