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

FVC08クラス [詳解]

詳解

FVC08クラス

namespace FVCL::Video

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

必要条件:
ヘッダー: FVCLvideo.h
解説:
FVC08は、カメラリンク、Base Configuration×4ch(SDR)の画像入力ボードです。
カメラ接続コネクタは、4チャネル用意されており、各チャネルが独立した非同期取り込みを可能としています。
FVC07からFVC08 移行時の注意点1:
  1. カメラ設定ファイル形式変更
    FVC07のカメラ設定ファイルは、iniファイル形式でしたが、FVC08ではxml形式に変更になります。

  2. カメラ側の設定について
    FVC07ではカメラメーカー提供のツール等でユーザがカメラ側の設定を行います。
    FVC08のカメラ設定ファイルの規定値では、SDK側がカメラにコマンドを送信し、カメラの設定を行います。
    具体的には、LoadIniFile( const FVCL::Data::CFvString & paramfile )SetTrigger() で、カメラにシリアルコマンドを送信します。
    LoadIniFile( const FVCL::Data::CFvString & paramfile , INT option ) の第二引数の規定値は-1: カメラ設定ファイルの[Base]SendCommandEnableに従うです
    ユーザがカメラ設定を行う場合、カメラ設定ファイルの[Base]SendCommandEnableを 0:カメラコマンドを送信しない にするか、 LoadIniFile( const FVCL::Data::CFvString & paramfile , INT option ) の第二引数を 0:送信しない でコールしてください。
    [Base]SendCommandEnable詳細:
    0:送信しない 1:送信する 2:自動モード(Windows:送信しない Linux:送信する

  3. トリガサイクルタイム(SetTriggerCycleTime関数)の仕様変更
    FVC07では、CFvVideoFVC07::SetTriggerCycleTime( UINT mode, DOUBLE time) 第一引数のmodeによりトリガサイクル間隔の設定方法が異なりました。
    FVC08では、CFvVideoFVC08::SetTriggerCycleTime( DOUBLE time) ではmodeの概念を無くし、トリガサイクル間隔のみを設定するように変更になりました。
    トリガサイクルタイムについては後述する「連続取込時のトリガサイクルタイム」をご参照ください。

  4. FVC07 から仕様変更になった関数一覧
    メソッド名 内容 詳細
    SetTrigger トリガモードの変更 FVC07では複雑だった外部トリガモードの連続取込を単純化しました。
    FVC07
    ・0:ノーマルモード
    ・1:内部トリガ 連続取込時、CycleTime間隔で取り続ける。
    ・2:外部トリガ 連続取込時、エリアカメラのときフレーム毎に外部トリガ待ち。ラインセンサカメラのとき、CycleTime間隔で取り続ける。
    ・3:外部トリガ2 連続取込時、エリアもラインセンサも1度の外部トリガ入力後、CycleTime間隔で取り続ける。
    ・4:外部トリガ3(ボードリビジョン4以上) 連続取込時、ラインセンサカメラ(エンコーダ未使用時)、フレーム毎に外部トリガ待ち
    FVC08
    ・0:ノーマルモード
    ・1:内部トリガモード 連続取込時、CycleTime間隔で取り続ける。
    ・2:外部トリガモード 連続取込時、フレーム毎に外部トリガ待ち状態になる。
    ・3:外部トリガリトライモード 連続取込時、1度の外部トリガ入力後、CycleTime間隔で取り続ける。
    SioSendData シリアル通信データ FVC08では、多様なシリアル通信の仕様に対応するため、受信データをすべて返します。先頭と終端につける記号(STX,ETX,CR/LF)も破棄しません。
    FVC07
    ・受信データの先頭と終端につける記号は自動的に破棄されます
    FVC08
    ・受信データの先頭と終端に付加された記号も返します
    Set/GetConfiguration コンフィグレーション Base Configurationの値が異なります
    FVC07
    ・0:Base Configuration
    ・1:Medium Configuration
    ・2:Full Configuration(8bit)
    ・3:Full Configuration(10bit)
    FVC08
    ・0:PoCL-Lite(未対応)
    ・1:Base Configuration

  5. CFvVideoFVC07クラスにあって、CFvVideoFVC08クラスにない関数一覧
    メソッド名 内容 詳細
    Set/GetLateDMA LateDMAの設定 FVC08は機能自体ありません。
    Set/GetMaskLineNum トリガマスク期間 FVC08はSet/GetTriggerMaskTimeでトリガマスク期間の変更可能。但しユーザ側で特に変更する必要はありません。
    Set/GetSimTrigger 同時トリガの設定 FVC08では、内部トリガチャネル(Set/GetIntTriggerCH)、外部トリガチャネル(Set/GetExtTriggerCH)の選択で同時取込が可能
    詳細は後述の [FVC07からFVC08 移行時の注意点1]-[チャネル間の同時取込について] を参照
    Set/GetEventMask
    NotifyEvent QueryEvent
    待機イベントの設定、イベント待機 FVC08では、WaitEventでイベント待機が可能。
    SioAbort/SioGetSizeInRxQueue
    SioGetSizeInTxQueue
    SioNotifyEvent/SioQueryEvent
    Sio関連の関数 FVC08では、機能自体ありません。
    StartAbsEncoder/ClearEncdCounter
    ClearMatchCount/ClearOverFlow
    ClearUnderFlow/EncoderClear
    ClearMatchCount
    エンコーダ関連の関数 FVC08では、StartEncoder/StopEncoder/ResetEncoderに変更。
    詳細は後述の [VC07からFVC08 移行時の注意点2 エンコーダをご使用の方へ]-[絶対位置エンコーダ操作関数名の変更] を参照

  6. シリアル通信について
    仮想シリアルCOMと、SDKのシリアル通信は同時にオープンはできません。
    規定値では、LoadIniFile( const FVCL::Data::CFvString & paramfile )SetTrigger() で、カメラにシリアルコマンドを送信しますが、
    その際、カメラメーカー提供のツール等で仮想シリアルCOMがオープン済みであると、エラーコード : FVCL_ErrorCode::Video::SIO_FAILED_TO_OPEN が発生し、シリアル通信に失敗します。
    また、SioOpen で、シリアルポートがオープン済みのときや、SetTrigger() でモードを変更時も、仮想シリアルCOMはオープンできません。

  7. ユーザ側でカメラ設定を変更する際の注意点
    カメラ設定ファイルロード後( LoadIniFile( const FVCL::Data::CFvString & paramfile ))に、カメラメーカー提供のツールや、シリアルコマンドで、以下の操作をしたときは、PLLReconfig() をコールし、クロックの再生成をしてください。
    • カメラ電源を一旦OFFにしたとき
    • カメラクロックを変更したとき

  8. チャネル間の同時取込について
    FVC07では、CFvVideoFVC07::SetSimTrigger( UINT mode ) 第一引数のmodeを1にすると、チャネル間のトリガが共有されました。
    FVC08では、CFvVideoFVC08::SetIntTriggerCH( INT ch )CFvVideoFVC08::SetExtTriggerCH( INT ch ) で内部/外部トリガの入力チャネルを設定することにより同時取込が可能です。
    例えば、CH0からCH2をCH0の外部トリガで同時取込をする場合、CH0からCH2を外部トリガモードに設定後、以下のように設定します。
    1.CH0の SetExtTriggerCH は規定値(-1:カレントチャネル)のまま
    2.CH1の SetExtTriggerCH(0) を規定値(-1:カレントチャネル)からCH0に変更
    3.CH2の SetExtTriggerCH(0) を規定値(-1:カレントチャネル)からCH0に変更
    4.CH0~CH2をそれぞれ取り込み開始すると、外部トリガ待ち状態。
    5.CH0の外部トリガ入力端子にトリガ入力。トリガ入力した時点で、CH0~CH2が同時に取込される。
    注意事項1:トリガ入力チャネルを自チャネルから他チャネルに変更すると、自チャネルのトリガ入力は受け付けることができなくなります。
    注意事項2:外部トリガ入力時、外部トリガ入力を選択したチャネルのExtInControlMode=1:Grab連動制御のとき、取込を開始しないと外部トリガは受付けません。詳細は、CFvVideoFVC08::SetParam( LPCSTR param, INT value ) の [外部トリガ入力制御モード(ExtInControlMode)]についてを参照してください。

FVC07からFVC08 移行時の注意点2 エンコーダをご使用の方へ:
  1. エンコーダ入力チャネルについて
    FVC07では、取込チャネルと、エンコーダ入力チャネルが固定で結びついていました。(取込チャネル0=A#0、B#0、Z#0 取込チャネル1=A#1、B#1、Z#1)
    FVC08は4つの取込チャネル数に対し、エンコーダ入力数は2です。
    FVC08のカメラ設定ファイル[Encoder]ENCSignalSource はエンコーダ入力チャネルの設定を行うパラメータで、規定値は 0:A#0、B#0、Z#0(エンコーダ入力チャネル0) です。
    規定のカメラ設定ファイルをロードすると、すべての取込チャネルはエンコーダ入力チャネル0と結びつきます。
    エンコーダ入力チャネル1からエンコーダ入力したい場合は、カメラ設定ファイルの[Encoder]ENCSignalSourceを1:A#1、B#1、Z#1(エンコーダ入力チャネル1) にするか、
    CFvVideoFVC08::SetEncoderParam の signalsourceパラメータを1:A#1、B#1、Z#1 にしてください。
    CFvVideoFVC08::SetEncoderParam は、CFvVideoFVC07::SetEncoderParam からエンコーダ入力チャネルを設定する引数が追加になりました。

  2. 絶対位置エンコーダ操作関数名の変更
    FVC07では、絶対位置エンコーダのとき、 CFvVideoFVC07::StartAbsEncoder でエンコーダ開始、停止を操作していましたが、
    FVC08では、CFvVideoFVC08::StartEncoder CFvVideoFVC08::StopEncoder CFvVideoFVC08::ResetEncoder でエンコーダを操作します。
    FVC07の ClearXXXXX 関数は、CFvVideoFVC08::ResetEncoder に統合されました。
    FVC08は、多様なエンコーダの使用方法に対応するため、取込動作とエンコーダ動作を別々に操作できるようになったので、関数名が変更になりました。

  3. エンコーダと取込動作の分離
    FVC08は、多様なエンコーダの使用方法に対応するため、取込動作とエンコーダ動作を別々に操作できるようになりました。
    FVC07では、取込開始後にエンコーダが動作しますが、FVC08では非取込時にも、エンコーダを動作させることが可能です。
    相対値エンコーダー選択時、CFvVideoFVC08::SetEncoderActMode は規定値の 0:FVC07互換モード で動作するので、別々に操作する必要はありません。
    絶対値エンコーダー選択時、FVC07と同等のタイミングでエンコーダを動作させるには、取込開始後に、エンコーダ起動トリガを入力してください。

FVC08のオープン
FVC08は、一つのチャネルに対し、 CFvVideoFVC08 のインスタンスを1つ必要とし、チャネルごとに Open() を行う必要があります。 FVC08に接続されるカメラは、チャネルごとに異なるカメラを使用することができます。
使用ボードとチャネルの指定
使用するボートとチャネルは、 Open( INT id, INT ch ) で指定します。
  • 引数 id は、オープンしたいボードのID (ボード上のSW1)を指定します。-1を指定した場合、未オープンで最もIDの小さいボードが選択されます。
  • 引数 ch は、オープンしたいチャネルを指定します。-1を指定した場合、未オープンでもっとも値の小さいチャネルがオープンされます。
FVC08が複数枚装着されている画像処理装置の場合、FVC08上のディップスイッチによるID指定(SW1)と Open() でのID指定での組み合わせでオープンされるボードが決定します。
(注)FV2340などの画像処理装置において、複数枚のFVC08が搭載されて出荷される場合、 IDは0, 1, 2・・・と順番に割り振られて出荷されます。
カメラ設定ファイルのロード
ボードオープン後は、 LoadIniFile( const FVCL::Data::CFvString & paramfile ) で対象カメラのカメラ設定ファイルをロードしてください。
規定値では、カメラ設定ファイルロード時に、カメラにシリアルコマンドを送信し、カメラ側の設定を行います。 
《重要》
FVC08は、規定値で、SDK側でカメラにシリアルコマンドを送信し、カメラ側の設定を行います。
カメラ設定ファイルロード後( LoadIniFile( const FVCL::Data::CFvString & paramfile ))に、カメラメーカー提供のツールや、シリアルコマンドで、以下の操作をしたときは、PLLReconfig() をコールし、クロックの再生成をしてください。
  • カメラ電源を一旦OFFにしたとき
  • カメラクロックを変更したとき
画像取込方法(単発取込)
単発取込とは、カメラから1フレーム入力することです。
GrabImageSync() は、画像を1枚取り込むための関数です。 GrabImageSync() 呼び出し後、 画像取込が完了するまで、関数から抜けてきません。
GrabImageASync() は、画像を1枚取り込むための関数で、 GrabImageASync() 呼び出し後、 即関数から抜けてきます。
GrabImageASync() は画像取込中に画像処等の別操作を行うことが可能となっております。 画像取込が完了したことを確認するために、 GrabWait() または GrabStatus() を使用します。 前者は、取込が完了するまで戻ってきません。 後者は現在の取込状況を調べ、現在取込中なのか、取込が完了したのかを取得できます。
両関数ともの他の画像入力ボードでも実装されており、もっとも使いやすい画像取込 関数です。しかしながら、画像メモリのロックを画像入力ごとに行うため、 大きな画像サイズの場合、オーバーヘッドが生じてしまう場合があります。
CFvVideoGP440_grabsync.png
画像取込方法(連続取込)
連続取込とは取込開始時点からフレーム抜けすることなく、連続で画像を入力することです。 ContinuousGrab() は連続取込を行うための関数です。取込枚数を1枚にすることで、単発取込を行うことが可能です。 実際に使用する際は、画像メモリのロック→連続取込の開始→取込完了待ち→画像メモリのアンロックという手順 を踏まなければなりません。
  1. FVC08を オープン します。
  2. LoadIniFile( const FVCL::Data::CFvString & paramfile ) でカメラ設定ファイルをロードします。
  3. 画像メモリ( CFvImage() )の画像サイズ、BPP、画像タイプを設定( ChangeImageSize() )し、 CFvMultiData に格納します。
  4. 画像メモリをロック( MemoryLock() )する。ロックに成功するとハンドルが返されます。
    画像メモリのロックはメモリの許す限り行うことが可能で、返されるハンドルによって識別されます。
  5. 3で取得したハンドルを引数に指定し、画像取込の開始( ContinuousGrab() )を呼び出してください。 引数で同期取込を指定した場合、画像取込が終わるか、 画像取込終了関数( StopCapture() , AbortCapture() ) が呼ばれるまで、この関数から抜けてきません。 非同期取込を指定した場合、取込開始を行ったら即この関数から抜けてきます。
  6. 非同期取込を行った場合、GrabWait()GrabStatus() で取込が終了したことを確認するか、 画像取込終了関数( StopCapture() , AbortCapture() )で取込を終わらせてください。 取込を正しく停止させなかった場合、次の画像入力開始が行えません。
  7. 画像取込が終了し、画像メモリのロックが必要なくなった場合は、画像メモリのアンロック( MemoryUnlock() )を 行ってください。尚、ロックされたまま、画像入力ボードをクローズした場合、自動的にアンロックを行うようになっています。


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

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

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

外部トリガモードとは、画像入力ボードに対して外部信号(外部センサーなど:TTLレベル)が入ったときに、 カメラに対してトリガ信号を出力し、そのタイミングでカメラが露光を開始するモードのことを言います。 内部トリガはCPUから取込開始命令を出すのに対し、外部トリガは外部装置から取込開始命令を出す点が 違っています。移動している物体の画像取込を得意としていますが、連続取込はフルフレームの 速度が出ないためあまり得意ではありません。
「内部トリガモード(設定値:1)」
取込開始命令( ContinuousGrab() )が呼び出されると、即、最初のトリガ信号がカメラに対して出力されます。 連続取込時(ContinuousGrab() )は、2回目以降のトリガはサイクルタイム設定( SetTriggerCycleTime() )で出力されます。 トリガサイクルタイムについては、使い方に注意が必要です。詳細は下記の「連続取込時のトリガサイクルタイム」参照してください。
「外部トリガモード(設定値:2)」
SetTrigger=2を指定した場合、各フレームごとに外部トリガ信号を入力して連続取込を行います。 外部トリガ信号は、タイムアウト時間以内に入力しないとエラーとなります。 タイムアウト時間はカメラ設定ファイル[Base]Timeoutで設定可能で、エリアカメラはデフォルト5秒、ラインセンサカメラはデフォルト10秒となっています。 0を設定するとタイムアウトなしになります。タイムアウト時間は、1フレーム単位での最大入力時間の事を言います。
「外部トリガリトライモード(設定値:3)」
SetTrigger=3を指定した場合、最初の取込開始は外部トリガ信号を待ち、2フレーム目以降は、 サイクルタイムで指定した時間で画像入力を行います。 外部トリガ信号は、タイムアウト時間以内に入力しないとエラーとなります。0を設定するとタイムアウトなしになります。
「連続取込時のトリガサイクルタイム」
取込開始命令( ContinuousGrab() )が呼び出されると、即、最初のトリガ信号が カメラに対して出力されます。 
2回目以降のトリガはサイクルタイム設定( SetTriggerCycleTime() )で出力されます。
エリアカメラの場合、カメラ設定ファイルの[Cameralink]TriggerCycleTimeには、[Base]ExposureTime(露光時間) + 1Frame転送時間をデフォルトで設定しています。
ラインセンサカメラの場合、カメラ設定ファイルの[Cameralink]TriggerCycleTimeには、[Base]ExposureTime(露光時間) + 1Line転送時間をデフォルトで設定しています。
連続取込の内部トリガモード、または外部トリガリトライモードを使用するとき、露光時間( SetExposureTime() )とサイクルタイム設定( SetTriggerCycleTime() )は 適切な値に設定する必要があります。
トリガサイクルタイムが短すぎると、画像転送中にトリガが出力され、トリガ信号がカメラ側で無視されてしまう(または、現在取込中の画像に問題が発生してしまう)といった現象が起こってしまいます。 トリガサイクルタイムの特性上、露光時間の設定はトリガサイクルタイム設定よりも小さくなければなりません。 SetExposureTime() + 1Frame転送時間 < SetTriggerCycleTime() の条件を守って設定してください。
CFvVideoFVC08_setcycle.png
ラインセンサ画像入力
FVC08でのラインセンサカメラ画像入力は、1フレーム単位での単発取込と連続取込の2種類をサポートしております。
ラインセンサカメラからは1ライン単位での画像出力が行われ、設定されたライン数を画像メモリに取り込まれると1フレームとします。
単発取込とは、カメラから1フレーム分入力することです。
連続取込は連続で複数フレームの画像を入力することで、基本的にはフレームとフレームの間のライン抜けはありません。連続取り込みでは無限枚数を指定することが可能です。

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


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


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


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

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

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



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




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



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


「動作例」
CFvVideoFVC08_encoder_abs_cw.png

CFvVideoFVC08_encoder_abs_ccw.png




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




外部トリガ入力信号のノイズ除去機能
FVC08 には、外部トリガ入力信号ノイズ除去機能があります。 この機能はカメラ設定ファイルにアサート時間とネゲート時間を設定することにより設定値以上、 外部トリガ入力信号の状態が安定していればその状態を外部トリガの有効とみなします。 設定値未満の場合、リセットされます。 本機能を使用した場合、その特性上、設定値分の遅延を伴いますのでご注意ください。 カメラ設定ファイル[Cameralink]Assert項目にアサート時間(100ns単位)を、[Cameralink]Negate項目にネゲート時間(100ns単位)を設定してください。 デフォルトはともに0で、0~65535の範囲で設定可能です。
+ FVCL::Video::CFvVideoFVC08 の継承関係図

公開メンバ関数

 CFvVideoFVC08 ()
 コンストラクタ [詳解]
 
virtual ~CFvVideoFVC08 ()
 デストラクタ [詳解]
 
virtual bool Open (INT id, INT ch)
 デバイスのオープン [詳解]
 
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 SetCC (UINT no, bool positive, UINT enable, UINT mode)
 CCの設定 [詳解]
 
virtual bool GetCC (UINT no, bool *positive, UINT *enable, UINT *mode)
 CCの取得 [詳解]
 
virtual bool SetTriggerRetry (UINT mode)
 トリガリトライモードの設定 [詳解]
 
virtual bool GetTriggerRetry (UINT *mode)
 トリガリトライモードの取得 [詳解]
 
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 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 (INT ch=-1)
 トリガの発行 [詳解]
 
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 GetDriverVersion (UINT *major, UINT *minor, UINT *release, UINT *build)
 デバイスドライババージョンの取得 [詳解]
 
virtual bool GetEncoderCount (INT *encdCounter)
 エンコーダ・カウンタのカウント値の取得 [詳解]
 
virtual bool GetRelEncoderCount (UINT *encdCounter)
 相対位置カウント値の取得 [詳解]
 
virtual bool GetEncoderMatchCount (UINT *matchCount)
 エンコーダ一致パルス数の取得 [詳解]
 
virtual bool GetEncoderStatus (UINT *piOverflow, UINT *piUnderflow)
 エンコーダ・ステータスの取得 [詳解]
 
virtual bool SetExTriggerSrcSel (UINT ExTriggerSrcSel)
 (外部トリガモード時) 取込開始信号の設定 [詳解]
 
virtual bool GetExTriggerSrcSel (UINT *ExTriggerSrcSel)
 (外部トリガモード時) 取込開始信号の設定の取得 [詳解]
 
virtual bool LoadIniFile (const FVCL::Data::CFvString &paramfile, INT option)
 カメラ設定ファイルのロード(カメラコマンド送信オプション付き) [詳解]
 
virtual bool GrabWait (INT timeout)
 画像取込 完了待機(待機時間設定付き) [詳解]
 
virtual bool NotifyCaptureNo (tagWAIT_FRAME *wait_frame, INT timeout)
 連続取込の情報を取得(フレーム待機 待機時間設定付き) [詳解]
 
virtual bool SetTriggerCycleTime (DOUBLE time)
 トリガリトライ期間の設定 [詳解]
 
virtual bool GetTriggerCycleTime (DOUBLE *time)
 トリガリトライ期間の取得 [詳解]
 
virtual FVCL::Data::CFvStringA GetDriverVersion () const
 ドライババージョンの取得 [詳解]
 
virtual FVCL::Data::CFvStringA GetDeviceVersion () const
 デバイスバージョンの取得 [詳解]
 
virtual bool SetEncoderParam (UINT signal, UINT mlt, UINT start, UINT pulse, INT comp1, UINT comp2, UINT init, UINT cntenb=1, UINT swapab=0, UINT signalsource=0)
 エンコーダパラメータの設定 [詳解]
 
virtual bool GetEncoderParam (UINT *signal, UINT *mlt, UINT *start, UINT *pulse, INT *comp1, UINT *comp2, UINT *init, UINT *cntenb, UINT *swapab, UINT *signalsource)
 エンコーダパラメータの取得 [詳解]
 
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 StartEncoder ()
 エンコーダの開始 [詳解]
 
virtual bool StopEncoder ()
 エンコーダの停止 [詳解]
 
virtual bool ResetEncoder ()
 エンコーダリセット [詳解]
 
virtual bool GetEncoderStatus (UINT *piOverflow, UINT *piUnderflow, UINT *astate, UINT *bstate, UINT *zstate, UINT *encstate, INT *enccnt, UINT *relcnt, UINT *matchcnt)
 エンコーダ・ステータスの取得 [詳解]
 
virtual bool GetEncoderStatus (tagENC_STATUS *enc_status)
 エンコーダ・ステータスの取得 [詳解]
 
virtual bool WaitEvent (INT eventno, INT timeout, INT *status)
 イベント待機 [詳解]
 
virtual bool CancelWaitEvent (INT eventno)
 イベント待機キャンセル [詳解]
 
virtual bool SetLineNum (UINT num)
 ラインセンサカメラ取込ライン数設定 [詳解]
 
virtual bool SetTriggerMaskMode (INT mode)
 トリガマスクモードの設定 [詳解]
 
virtual bool GetTriggerMaskMode (INT *mode)
 トリガマスクモードの取得 [詳解]
 
virtual bool SetTriggerMaskTime (INT time)
 トリガマスク時間の設定 [詳解]
 
virtual bool GetTriggerMaskTime (INT *time)
 トリガマスク時間の取得 [詳解]
 
virtual bool StopPG (INT ch=-1)
 トリガリトライの停止 [詳解]
 
virtual bool ResetPG (INT ch=-1)
 パルスジェネレータのリセット [詳解]
 
virtual bool ClearTriggerMask (INT ch=-1)
 トリガマスクの解除 [詳解]
 
virtual bool SetIntTriggerCH (INT ch)
 内部トリガチャネルの設定 [詳解]
 
virtual bool GetIntTriggerCH (INT *ch)
 内部トリガチャネルの取得 [詳解]
 
virtual bool SetExtTriggerCH (INT ch)
 外部トリガチャネルの設定 [詳解]
 
virtual bool GetExtTriggerCH (INT *ch)
 外部トリガチャネルの取得 [詳解]
 
virtual bool SetEncoderActMode (INT mode)
 エンコーダの動作モード設定 [詳解]
 
virtual bool GetEncoderActMode (INT *mode)
 エンコーダの動作モード設定 [詳解]
 
virtual bool SetParam (LPCSTR param, INT value)
 パラメータを設定します。(INTパラメータ) [詳解]
 
virtual bool GetParam (LPCSTR param, INT *value)
 その他の情報取得 [詳解]
 
virtual bool SetParam (LPCSTR param, UINT value)
 パラメータを設定します。(UINTパラメータ) [詳解]
 
virtual bool GetParam (LPCSTR param, UINT *value)
 その他の情報取得 [詳解]
 
virtual bool SetParam (LPCSTR param, void *value)
 パラメータを設定します。(UINTパラメータ) [詳解]
 
virtual bool GetParam (LPCSTR param, void *value)
 その他の情報取得 [詳解]
 
virtual bool SetOtherInfo (UINT mode, UINT no, UINT data)
 その他の情報設定 [詳解]
 
virtual bool GetOtherInfo (UINT mode, UINT no, UINT *data)
 その他の情報取得 [詳解]
 
virtual bool ResetPLLReconfig ()
 PLLリコンフィグのリセット [詳解]
 
virtual bool ExecutePLLReconfig ()
 PLLリコンフィグの実行 [詳解]
 
virtual bool PLLReconfig ()
 PLLリコンフィグを実行し完了するまで待機 [詳解]
 
virtual bool PLLReconfigStatus (INT *value)
 PLLリコンフィグの状態取得 [詳解]
 
virtual bool SioSendData (const FVCL::Data::CFvStringA &str_tx, FVCL::Data::CFvStringA *str_rx)
 カメラに対して通信を行う [詳解]
 
virtual bool SioSendCameraMode (LPCSTR mode)
 カメラモードの変更 [詳解]
 
virtual bool SioPurgeBuff ()
 SIOの入出力バッファのクリア [詳解]
 
virtual bool SetSendCommandEnable (INT mode)
 カメラコマンド送信設定 [詳解]
 
virtual bool GetSendCommandEnable (INT *mode)
 カメラコマンド送信設定の取得 [詳解]
 
- 基底クラス 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 INT GetXmlItem (const FVCL::Data::CFvString &paramfile, LPCSTR itemname, void *value)
 カメラ設定ファイルの値を取得 [詳解]
 
static INT GetDeviceInfo (LPCSTR info, void *pvalue)
 デバイスの情報を取得 [詳解]
 
- 基底クラス 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)
 画像メモリのチェック [詳解]
 
INT fnFTLtoFVCLErrCode (INT nErr)
 エラーコード [詳解]
 
- 基底クラス 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
 デバイスコントローラオブジェクト [詳解]
 
INT m_LockID
 ロックID [詳解]
 
bool m_bCapturing
 取込フラグ [詳解]
 
bool m_bOneAsync
 取込フラグ2 [詳解]
 
void * m_Mutex
 排他制御 [詳解]
 
HANDLE m_hWaitStatus
 ハンドル [詳解]
 
HANDLE m_hStopStatus
 ハンドル [詳解]
 
INT m_Timeout
 タイムアウト値 [詳解]
 
INT m_EncEnable
 
INT m_EncType
 
- 基底クラス FVCL::CFvObject に属する継承限定公開変数類
INT m_ErrorCode
 エラーコード [詳解]
 
INT m_AllocateOption
 画像領域確保時のオプション [詳解]
 

構築子と解体子

FVCL::Video::CFvVideoFVC08::CFvVideoFVC08 ( )

コンストラクタ

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

FVCL::Video::CFvVideoFVC08::~CFvVideoFVC08 ( )
virtual

デストラクタ

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

関数詳解

FVCL::Video::CFvVideoFVC08::GetXmlItem ( const FVCL::Data::CFvString paramfile,
LPCSTR  itemname,
void *  value 
)
static

カメラ設定ファイルの値を取得

指定したカメラ設定ファイルの値を取得します。

引数
[in]paramfileカメラ設定ファイルのパスとファイル名
[in]itemname設定できる項目名
  • "DeviceID"
  • "Channel"
  • "DeviceType"
[out]value
戻り値
0正常
0以外エラーコード
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
2 FVCL_ErrorCode::FAILED_TO_OPEN ファイルのオープンに失敗しました。ファイルが存在しない可能性があります。
解説:
指定したカメラ設定ファイルから、指定した項目の値を取得します。 現在のところ、指定可能な項目は、"DeviceID"、"Channel"、"DeviceType"です。いずれも、valueにはINTのポインタを指定してください。
INT ch = 0;
if( FVCL::Video::CFvVideoFVC08::GetXmlItem(_T("C:\\FVC08_IK-TF7C.xml"), "Channel", &ch) )
printf("CH=%d\n",ch);
else
printf("error\n");


FVCL::Video::CFvVideoFVC08::GetDeviceInfo ( LPCSTR  info,
void *  value 
)
static

デバイスの情報を取得

FVC08デバイスの情報を取得します。

引数
[in]info設定できる項目名
  • "NextOpenDeviceID" :次にオープン可能はデバイスIDを返します
  • "NextOpenChannel" :次にオープン可能はチャネルを返します
[out]value
戻り値
0正常
0以外エラーコード
エラーコード:
定数 内容
2 FVCL_ErrorCode::FAILED_TO_OPEN オープンできるデバイスがありませんでした。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
解説:

現在のところ、指定可能な項目は、"NextOpenDeviceID"、"NextOpenChannel"、いずれも、valueにはINTのポインタを指定してください。

INT ch = 0;
if( FVCL::CFvVideoFVC08::GetDeviceInfo("NextOpenChannel", &ch) )
printf("CH=%d\n",ch);
else
printf("error\n");


FVCL::Video::CFvVideoFVC08::Open ( INT  id,
INT  ch 
)
virtual

デバイスのオープン

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

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

[in]chビデオ入力チャネルの設定
  • -1: オープン可能で最も小さいチャネル
  • 0: 0ch
  • 1: 1ch
  • 2: 2ch
  • 3: 3ch

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

FVCL::CFvVideoFVC08 video;
if( video.Open( -1, -1 ) ) {
if( video.LoadIniFile( _T("C:\\FVC08_IK-TF7C.xml") ) )
::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::CFvVideoを実装しています。

FVCL::Video::CFvVideoFVC08::Close ( )
virtual

デバイスのクローズ

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

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

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

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

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

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

引数
[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 パラメータの取得に失敗しました。
31054 FVCL_ErrorCode::Video::SET_SIZE 取込サイズ設定に失敗しました。
31232 FVCL_ErrorCode::Video::SIO_FAILED_TO_OPEN SIOのオープンに失敗しました。
31235 FVCL_ErrorCode::Video::SIO_TIMEOUT SIOタイムアウトが発生しました。
31403 FVCL_ErrorCode::Video::SIO_ERROR SIOでエラーが発生しました。
31410 FVCL_ErrorCode::Video::PLL_RECONFIG_FAILED PLLリコンフィグが失敗しました。
解説:
カメラ設定ファイルをロードします。使用するカメラに合ったパラメータファイルを指定して下さい。 本関数は、 LoadIniFile( const FVCL::Data::CFvString & paramfile , INT option) の option = -1 でコールしたときと等価になります。 必ず絶対パスで指定して下さい。 規定値では、カメラにシリアルコマンドを送信し、カメラ側の設定を行います。
また、本関数内でクロックの再生成( PLLReconfig())を実行します。クロックの再生成には、最短でも500msec程度かかります。
参照
Open

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

FVCL::Video::CFvVideoFVC08::GetDeviceType ( )
virtual

デバイスタイプの取得

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

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

FVCL::Video::CFvVideoFVC08::GetDeviceID ( )
virtual

デバイスIDの取得

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

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

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

FVCL::Video::CFvVideoFVC08::IsOpen ( )
virtual

オープン確認

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

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

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

FVCL::Video::CFvVideoFVC08::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 画像情報を設定できません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE 内部メモリの確保に失敗しまいsた。メモリ不足の可能性があります。
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 画像取込に失敗しました。
31410 FVCL_ErrorCode::Video::PLL_RECONFIG_FAILED PLLリコンフィグが失敗しました。
31411 FVCL_ErrorCode::Video::PLL_RECONFIG_BUSY PLLリコンフィグがビジーです。
31412 FVCL_ErrorCode::Video::PLL_RECONFIG_GRAB_ERROR PLLリコンフィグが取込中に実行されました。
解説:
デバイスがオープンされていない場合、画像取込を行うことができません。
デバイスから出力される画像情報と、引数に渡された画像オブジェクトの情報が一致しない場合エラーになります。 画像取込を行う前に、 ChangeImageSize() を用いて、画像オブジェクトの情報の変更を行うようにしてください。 ChangeImageSize() を用いると、画像タイプ、画像サイズ、画像チャネル数、画像ビット深度がデバイスから出力される情報で正規化されます。
カメラ設定ファイルで [Timeout]の項を0に指定した場合、タイムアウト設定はOFFになります。1以上の値が設定された 場合にのみ、タイムアウト機能がONになり、指定時間以内に画像入力が行われなかった場合、エラーとなります。
以下の関数のパラメータに従って、画像取込を実行します。
  • SetTrigger()
  • SetExposureTime()
  • SetTriggerCycleTime()

参照
Open
GrabImageASync

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

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

非同期式画像入力

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

引数
[out]img取り込み先画像
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
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 画像情報を設定できません。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE 内部メモリの確保に失敗しまいsた。メモリ不足の可能性があります。
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 画像取込に失敗しました。
31410 FVCL_ErrorCode::Video::PLL_RECONFIG_FAILED PLLリコンフィグが失敗しました。
31411 FVCL_ErrorCode::Video::PLL_RECONFIG_BUSY PLLリコンフィグがビジーです。
解説:
デバイスがオープンされていない場合、画像取込を行うことができません。
本関数は、デバイスに対し画像取込開始命令を行った後、即、関数から抜けてきます。画像取込が完了したかどうかは、 GrabWait() か GrabStatus() 関数を用いて調べます。 GrabImageASync() をコールした後は、必ず、 GrabWait() で 画像取込が完了するまで待機するか、 GrabStatus() で、0が返されるのを確認しなければなりません。
確認を怠った場合、次の取り込みを行うことが出来ません。このとき、エラーコード : FVCL_ErrorCode::Video::NOW_CAPTURING が発生します。
デバイスから出力される画像情報と、引数に渡された画像オブジェクトの情報が一致しない場合エラーになります。 画像取込を行う前に、 ChangeImageSize() を用いて、画像オブジェクトの情報の変更を行うようにしてください。 ChangeImageSize() を用いると、画像タイプ、画像サイズ、画像チャネル数、画像ビット深度がデバイスから出力される情報で正規化されます。
カメラ設定ファイルで [Timeout]の項を0に指定した場合、タイムアウト設定はOFFになります。1以上の値が設定された 場合にのみ、タイムアウト機能がONになり、指定時間以内に画像入力が行われなかった場合、エラーとなります。
以下の関数のパラメータに従って、画像取込を実行します。
  • SetTrigger()
  • SetExposureTime()
  • SetTriggerCycleTime()

参照
Open
GrabImageSync

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

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

同期式画像入力

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

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

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

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

非同期式画像入力

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

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

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

FVCL::Video::CFvVideoFVC08::GrabWait ( )
virtual

画像取込 完了待機

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

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

参照
GrabImageSync
GrabImageASync
ContinuousGrab

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

FVCL::Video::CFvVideoFVC08::GrabStatus ( )
virtual

画像取込 状態取得

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

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

参照
GrabImageSync
GrabImageASync
ContinuousGrab

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

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

チャネル変更

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

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

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

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

チャネル取得

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

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

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

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

同時取込設定

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

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

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

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

同時取込設定の取得

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

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

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

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

トリガモードの設定

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

引数
[in]trgトリガモード
  • 0:ノーマルモード
  • 1:内部トリガ
  • 2:外部トリガ
  • 3:外部トリガリトライモード

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

コマンド送信について詳細:
規定では、カメラにカメラモードを変更するコマンドを送信し、本関数で送信が完了するまで待機します。
カメラにコマンドを送信するかどうかは、カメラ設定ファイル内の[SendCommandEnable]か、LoadIniFile() 時の第二引数に従います。
[SendCommandEnable]詳細:0:送信しない 1:送信する 2:自動モード(Windows:送信しない Linux:送信する)
カメラ設定ファイルの外部トリガモードを使用時でタイムアウトが設定されている場合、タイムアウト期間内に外部信号が入らなかった場合、タイムアウトエラーとなります。
タイムアウト設定は、カメラ設定ファイルで行い、0か-1が指定されているとタイムアウトが解除され、1以上の数値が指定されている場合、 タイムアウトが設定されます。カメラ設定ファイルに指定する単位はミリ秒です。
エンコーダを使用する場合、エンコーダパラメータの設定( SetEncoderParam() )のエンコーダ起動モードと トリガモードの組み合わせに制限があります。 エンコーダー起動モードで外部トリガを指定する場合は、トリガモードは外部トリガモードにしてください。エンコーダー起動モードでCPU、 Z相を指定する場合は、トリガモードは内部トリガにしてください。
参照
Open
GrabImageSync
GrabImageASync

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

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

トリガモードの取得

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

引数
[out]trgトリガモード
  • 0:ノーマルモード
  • 1:内部トリガ
  • 2:外部トリガ
  • 3:外部トリガリトライモード

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

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

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

露光時間設定

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

引数
[in]time露光時間(μs)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
解説:
本関数は、トリガモード取り込み時の設定( SetTrigger() で、設定値 1 or 2 or 3)です。 ノーマルモードに関しては、この関数の設定値は無視されます。
トリガモード時の取り込みの場合、カメラに対して、ボードからトリガパルスを入力します。このパルスの幅を 本関数で設定します。カメラがパルス幅シャッターモード設定されている場合、ボードから出力されるトリガパルス幅が 露光時間となります。
カメラには最大露光時間が存在します。そのため、カメラの最大露光時間を越えた値を設定しても、 カメラが受け付けない場合があります。
FVC08に対して設定可能な時間は、0~ 48676294(μs)です。
「連続取込時のトリガサイクルタイム」
連続取込時の、内部トリガモード、外部トリガリトライモード時は、取込開始命令( ContinuousGrab() )が呼び出され、最初のトリガ信号が カメラに出力後、2回目以降のトリガ信号はサイクルタイム設定( SetTriggerCycleTime() )で出力されます。
エリアカメラの場合、カメラ設定ファイルの [Cameralink]TriggerCycleTime には、[Base]ExposureTime(露光時間) + 1Frame転送時間 をデフォルトで設定しています。
ラインセンサカメラの場合、カメラ設定ファイルの [Cameralink]TriggerCycleTime には、[Base]ExposureTime(露光時間) + 1Line転送時間 をデフォルトで設定しています。
連続取込の内部トリガモード、または外部トリガリトライモードを使用するときは、露光時間( SetExposureTime() )とサイクルタイム設定( SetTriggerCycleTime() )は 適切な値に設定する必要があります。
トリガサイクルタイムが短すぎると、画像転送中にトリガが出力され、トリガ信号がカメラ側で無視されてしまう(または、現在取込中の画像に問題が発生してしまう)といった現象が起こってしまいます。
トリガサイクルタイムの特性上、露光時間の設定はトリガサイクルタイム設定よりも小さくなければなりません。 SetExposureTime() + 1Frame転送時間 < SetTriggerCycleTime() の条件を守って設定してください。
CFvVideoFVC08_setcycle.png
参照
Open
GrabImageSync
GrabImageASync
SetTrigger
GetExposureTime
SetTriggerCycleTime
ContinuousGrab

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

FVCL::Video::CFvVideoFVC08::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::CFvVideoFVC08::SetVideoOffset ( INT  offset)
virtual

ビデオオフセット設定

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

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

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

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

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

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

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

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

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

2値化設定

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

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

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

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

2値化設定の取得

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

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

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

FVCL::Video::CFvVideoFVC08::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です。
31079 FVCL_ErrorCode::Video::GET_PARAMETER サイズの取得に失敗しました。
解説:
デバイスに設定されている、画像入力サイズを取得します。 画像入力サイズは、カメラ設定ファイルで設定を行い、ラインセンサカメラ以外は関数からの設定は行えないようになっています。
参照
Open
LoadIniFile

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

FVCL::Video::CFvVideoFVC08::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::CFvVideoFVC08::Open ( INT  id,
INT  configuration,
INT  ch 
)
virtual

デバイスのオープン

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

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

[in]configurationコンフィグレーション(※ FVC08では第二引数は無視されます。)
[in]chビデオ入力チャネルの設定
  • -1: オープン可能で最も小さいチャネル
  • 0: 0ch
  • 1: 1ch
  • 2: 2ch
  • 3: 3ch

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリの確保に失敗しました。
55 FVCL_ErrorCode::ALREADY_OPENED 既にオープンされています。2重オープンは出来ません。
2 FVCL_ErrorCode::FAILED_TO_OPEN キャプチャボードのオープンに失敗しました。デバイスドライバが正常に動作しているか確認してください。
解説:
第二引数 configuration は無視されます。
詳細は、 Open( INT id, INT ch ) を参照してください。
参照
Open( INT id, INT ch )
FVCL::Video::CFvVideoFVC08::GetDeviceCH ( )
virtual

チャネル番号の取得

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

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

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

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

戻り値
0PoCL-Lite(未対応)
1Base Configuration
-1エラー
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
31079 FVCL_ErrorCode::Video::GET_PARAMETER ボードから情報を取得できません。
解説:
コンフィグレーションを取得します。 デバイスがオープンされていなければいけません。
参照
Open
FVCL::Video::CFvVideoFVC08::CheckCameraAlive ( )
virtual

カメラの確認

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

戻り値
true接続中
false未接続またはオープンされてません
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31079 FVCL_ErrorCode::Video::GET_PARAMETER ボードから情報を取得できません。
解説:
カメラが接続され、電源が入っているか確認します。 デバイスがオープンされていなければいけません。
参照
Open
FVCL::Video::CFvVideoFVC08::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トリガ接続モード
  • 自ch接続 0:自ch-α 1:自ch-β 2:自ch-EXT
  • 0ch接続 10:0ch-α 11:0ch-β 12:0ch-EXT
  • 1ch接続 20:1ch-α 21:1ch-β 22:0ch-EXT
  • 2ch接続 30:2ch-α 31:2ch-β 32:0ch-EXT
  • 3ch接続 40:3ch-α 41:3ch-β 42:0ch-EXT
  • エンコーダZ相 50:ch0-Z相 51:ch1-Z相
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。設定値が範囲外です。
31081 FVCL_ErrorCode::Video::GET_CC CCの取得に失敗しました。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
解説:
トリガ極性設定は、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::CFvVideoFVC08::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トリガ接続モード
  • 自ch接続 0:自ch-α 1:自ch-β 2:自ch-EXT
  • 0ch接続 10:0ch-α 11:0ch-β 12:0ch-EXT
  • 1ch接続 20:1ch-α 21:1ch-β 22:0ch-EXT
  • 2ch接続 30:2ch-α 31:2ch-β 32:0ch-EXT
  • 3ch接続 40:3ch-α 41:3ch-β 42:0ch-EXT
  • エンコーダZ相 50:ch0-Z相 51:ch1-Z相
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。設定値が範囲外です。
31081 FVCL_ErrorCode::Video::GET_CC CCの取得に失敗しました。
参照
Open
SetCC
FVCL::Video::CFvVideoFVC08::SetTriggerRetry ( UINT  mode)
virtual

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

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

引数
[in]mode[0:自動設定モード(Retryを自動制御し画像取込完了後PGを停止) 1:Retryを常にON 画像取込完了後PGを停止 2:RetryをON PGを停止しない]
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
解説:
トリガリトライを停止するときは、StopPG() をコールしてください。
参照
Open
GetTriggerRetry
FVCL::Video::CFvVideoFVC08::GetTriggerRetry ( UINT mode)
virtual

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

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

引数
[out]mode(0:自動設定モード 1:Retry=ON 画像入力後停止 2:Retry=ON PGを停止しない)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
参照
Open
SetTriggerRetry
FVCL::Video::CFvVideoFVC08::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 パラメータの設定に失敗しました。
注意
エリアカメラとライン選択モードの組合せはサポートしていません。
参照
Open
GetLineSensorMode
FVCL::Video::CFvVideoFVC08::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::CFvVideoFVC08::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 引数が間違っています。設定値が範囲外です。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
解説:
ラインセンサにおける、取り込み開始入力ラインの遅延設定を行います。 本設定の linenum はカメラ設定ファイルの[OffsetH]と、 md はカメラ設定ファイルの[OffsetMode]の設定と同義となります。 ラインセンサカメラで連続取り込みを行う場合、最初のフレームは指定ライン遅延し、2フレーム目移行は指定ラインの遅延は必要が無い場合があります。 その際は、md引数に1を指定して下さい。
参照
Open
GetLSDelayLine
FVCL::Video::CFvVideoFVC08::GetLSDelayLine ( UINT linenum,
UINT md 
)
virtual

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

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

引数
[out]linenum遅延ライン数
[out]md遅延設定モード (0:連続取込の全フレームで遅延 1:連続取込の最初のフレームだけ遅延)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
参照
Open
SetLSDelayLine
FVCL::Video::CFvVideoFVC08::SetPackingMode ( UINT  mode)
virtual

パッキングモードの設定

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

引数
[in]modeパッキングモード (0:UnPack 1:Packing)
戻り値
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 パラメータの取得に失敗しました。
解説:
画像データのパッキングを設定します。 本設定はカメラ設定ファイルの[PackingMode]の設定と同義となります。 modeを0にした場合、パッキング処理を行いません。 modeを1にした場合、パッキング処理を行います。
参照
Open
GetPackingMode
FVCL::Video::CFvVideoFVC08::GetPackingMode ( UINT mode)
virtual

パッキングモードの取得

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

引数
[out]modeパッキングモード (0:UnPack 1:Packing)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
参照
Open
SetPackingMode
FVCL::Video::CFvVideoFVC08::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() 関数でロック解除することができます。CFvVideoFVC08クラスのデストラクタで、 ロック解除を行います。
参照
Open
MemoryUnlock
FVCL::Video::CFvVideoFVC08::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 メモリのアンロックに失敗しました。
31037 FVCL_ErrorCode::Video::NOW_CAPTURING 現在、画像入力中のためメモリアンロックはできません。
解説:
ロックされたメモリを解除します。ロックを解除したロックメモリハンドルは使用不可になります。
参照
Open
MemoryLock
FVCL::Video::CFvVideoFVC08::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 現在、画像入力中のため画像取込を行えません。
31410 FVCL_ErrorCode::Video::PLL_RECONFIG_FAILED PLLリコンフィグが失敗しました。
31411 FVCL_ErrorCode::Video::PLL_RECONFIG_BUSY PLLリコンフィグがビジーです。
解説:
連続取り込みを実行します。 画像が入力される先は、handleで示された画像メモリです。handleは、 MemoryLock() で取得します。
画像取込枚数(capture_num引数)に、0を指定した場合、無限長取込となります。それ以外の値を指定した場合、 その枚数が取込終わった時点で、取り込み終了となります。
ASync引数でfalseを指定した場合、画像取込が完了するまで関数から戻ってきません。trueを指定した場合、 即関数から抜けてきます。画像取込の状況を知るためには、 NotifyCaptureNo() 関数か、 QueryCaptureNo() 関数で、 取得することが可能です。
bASync引数にtrueを指定した場合、 GrabWait(), GrabStatus() 関数で 指定枚数分画像取り込みが終わったことを確認するか、 AbortCapture() か StopCapture() で取り込みを停止させなければ、 次の取り込みを行えません。
画像入力は、指定取込枚数に達した時点で終了しますが、 AbortCapture() 関数と StopCapture() 関数を用いても、 終了させることが可能です。
参照
Open
MemoryLock
NotifyCaptureNo
QueryCaptureNo
AbortCapture
StopCapture
GrabWait
GrabStatus
FVCL::Video::CFvVideoFVC08::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です。
31402 FVCL_ErrorCode::Video::WAITTIMEOUT 待機時間のタイムアウトが発生しました。
解説:
連続取込中の情報を取得します。連続取込関数( ContinuousGrab() )実行中にご使用ください。 また、1フレーム待機を行わない情報取得関数( QueryCaptureNo() )も用意されています。 FVC08は、tagWAIT_FRAME::DmaSchedulePeak取得できません。常に0が戻ります。 取込開始前、取込完了確認後は、即メソッドから抜けてきます。このとき、エラーは発生しません。
本関数では、取込タイムアウトは取得できません。別途、 GrabStatus() で確認してください。 本関数は、内部で、NotifyCaptureNo( tagWAIT_FRAME* wait_frame , INT timeout ) のtimeoutにカメラ設定ファイルの[Timeout]を設定してコールしています。 指定時間内にフレーム待機が発生しないとき、FVCL_ErrorCode::Video::WAITTIMEOUTが発生します。
トータルフレーム枚数は ContinuousGrab() コール時に0になり、4294967295(0xFFFFFFFF)まで増加した後、0(0x00)に戻ります。
ライン数(LineCount)は、TAP毎のライン数になります。カメラによっては、取得できる最大ライン数が画像メモリの半分となる 場合があります。
参照
Open
ContinuousGrab
QueryCaptureNo
tagWAIT_FRAME
FVCL::Video::CFvVideoFVC08::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() )も用意されています。 FVC08は、tagWAIT_FRAME::DmaSchedulePeak取得できません。常に0が戻ります。 画像取り込みが行われていない場合、即メソッドから抜けてきます。このとき、エラーは発生しません。
トータルフレーム枚数は ContinuousGrab() コール時に0になり、4294967295(0xFFFFFFFF)まで増加した後、0(0x00)に戻ります。
ライン数(LineCount)は、TAP毎のライン数になります。カメラによっては、取得できる最大ライン数が画像メモリの半分となる 場合があります。
留意事項:
本関数は、画像取込中に行うため、画像転送(DMA)中にキャプチャボードのレジスタから値を参照することになります。 バスに大きな負担がかかる画像転送(DMA)中に更にレジスタ参照による負荷をかけることになりますので速度の速いカメラをご使用の場合などに頻繁に参照するとご使用条件によっては画像入力の転送性能等に悪影響を及ぼす可能性もあります。 そのため頻繁に参照を行う事はお勧めいたしません。
参照
Open
ContinuousGrab
NotifyCaptureNo
tagWAIT_FRAME
FVCL::Video::CFvVideoFVC08::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::CFvVideoFVC08::StopCapture ( )
virtual

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

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

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

トリガの発行

ソフトウェアトリガ信号を発行します。

引数
[in]chトリガ発行するチャネル
  • -1: カレントチャネルにトリガを発行
  • チャネル指定: 指定したチャネルにトリガ発行(0:CH0 1:CH1 2:CH2 3:CH3)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
8 FVCL_ErrorCode::FAILED_TO_EXECUTE 処理に失敗しました。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
解説:
トリガモード時でかつ画像取込中のみ使用可能です。
ch=-1(規定値)のとき、カレントチャネルにトリガを発行します。
ch=0~3のとき、指定したチャネルにトリガ発行します。
トリガ信号の出力時間は SetExposureTime() で設定可能です。
[想定される使用方法]
  • 外部トリガ信号待機中に、ソフトウェアからトリガ信号を入れたい場合。
  • カメラの仕様で、ノーマルモードからトリガモードに切り替え直後の1枚目の画像が正しくない場合。本関数を用いてトリガ信号を出力することで、カメラの1枚目の画像が捨てられます。

エンコーダ使用時は、本関数は使用できませんのでご注意ください。
参照
Open
SetTrigger
SetExposureTime
FVCL::Video::CFvVideoFVC08::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
SioSetData n SioGetData
SioSetDataByte
SioGetDataByte
FVCL::Video::CFvVideoFVC08::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
SioSetData
SioGetData
SioSetDataByte
SioGetDataByte
FVCL::Video::CFvVideoFVC08::SioPurgeBuff ( bool  rx,
bool  tx 
)
virtual

SIO バッファのクリア

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

引数
[in]rx無視します
[in]tx無視します
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31234 FVCL_ErrorCode::Video::SIO_NOT_OPENED SIOがオープンされていません。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
解説:
内部でSioPurgeBuff() をコールしています。引数は無視されます。
参照
Open
SioOpen
FVCL::Video::CFvVideoFVC08::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受信データ(受信データの先頭と終端に付加された記号も返します ※FVC07と異なります)
[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タイムアウトが発生しました。
31403 FVCL_ErrorCode::Video::SIO_ERROR SIOエラーが発生しました。
解説:
  • SioOpen が成功した状態でなければ使用することが出来ません。
  • カメラに対し、str_txの文字列を送信します。正常に送信が完了した場合、カメラから受信完了のコマンドが返されます。 返されたコマンドは、str_rxに格納されます。
  • 正常な場合、送信コマンドに対して、受信完了コマンドがカメラから返されますが、カメラが接続されていなかったり、 電源が入っていなかった場合、カメラ側から何も返されません。その場合、SIOタイムアウトエラーとなります。
  • カメラにSIO機能が無ければ使用できません。
  • 送信データの先頭と終端につける記号(STX,ETX,CR/LF)は自動的に付加します。
  • 受信は、カメラ設定ファイルの[SIO]SIORETX まで待機し、受信データをすべて返します。先頭と終端につける記号(STX,ETX,CR/LF)も破棄しません。
  • 送信するコマンドは、送り先のカメラに依存します。詳しくはカメラメーカーが出している、カメラ説明書をご参照ください。
  • シリアル通信の速度は、カメラ設定ファイルで設定されている速度で行われます。その他のパラメータは、データビット=8bit, ノンパリティ、ストップビット=1bit固定となります。
  • option設定は、本関数では使用しません。

参照
Open
SioOpen
FVCL::Video::CFvVideoFVC08::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 パラメータの設定に失敗しました。
31403 FVCL_ErrorCode::Video::SIO_ERROR SIOエラーが発生しました。
解説:
指定データ列を送信キューに設定します。送信キューに格納されたデータは、カメラリンクケーブルを通して、カメラに送信されます。
参照
Open
SioOpen
SioGetData
FVCL::Video::CFvVideoFVC08::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 パラメータの設定に失敗しました。
31235 FVCL_ErrorCode::Video::SIO_TIMEOUT SIOタイムアウトが発生しました。
31403 FVCL_ErrorCode::Video::SIO_ERROR SIOエラーが発生しました。
解説:
受信キューから、指定サイズ分のデータ列を受け取ります。カメラから送られてきたデータは、受信キューに格納されています。
参照
Open
SioOpen
SioSetData
FVCL::Video::CFvVideoFVC08::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 パラメータの設定に失敗しました。
31235 FVCL_ErrorCode::Video::SIO_TIMEOUT SIOタイムアウトが発生しました。
解説:
1byteの指定データを送信キューに設定します。送信キューに格納されたデータは、カメラリンクケーブルを通して、カメラに送信されます。
参照
Open
SioOpen
SioGetDataByte
FVCL::Video::CFvVideoFVC08::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::CFvVideoFVC08::GetDriverVersion ( UINT major,
UINT minor,
UINT release,
UINT build 
)
virtual

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

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

引数
[out]majorメジャーバージョン
[out]minorマイナーバージョン
[out]releaseリリース番号
[out]buildビルド番号
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。NULLが指定されています。
解説:
FVC08ドライババージョンを取得します。
参照
Open
FVCL::Video::CFvVideoFVC08::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 パラメータの取得に失敗しました。
解説:
エンコーダ・カウンタのカウント値を取得します。
内部で GetEncoderStatus(tagENC_STATUS*) を呼び出していますので、本関数コール後、A相、B相、Z相状態はクリアされます。
各相の状態を確認するには、GetEncoderStatus(tagENC_STATUS*) を直接呼び出してください。
FVCL::Video::CFvVideoFVC08::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 パラメータの取得に失敗しました。
解説:
相対位置エンコーダのとき、相対位置のカウント値(比較レジスタ2の値で一致すると初期化)を取得します。 
絶対位置エンコーダのときは常に0が戻ります。
内部で GetEncoderStatus(tagENC_STATUS*) を呼び出していますので、本関数コール後、A相、B相、Z相状態はクリアされます。
各相の状態を確認するには、GetEncoderStatus(tagENC_STATUS*) を直接呼び出してください。
FVCL::Video::CFvVideoFVC08::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 パラメータの取得に失敗しました。
解説:
エンコーダ一致パルス数を取得します。
内部で GetEncoderStatus(tagENC_STATUS*) を呼び出していますので、本関数コール後、A相、B相、Z相状態はクリアされます。
各相の状態を確認するには、GetEncoderStatus(tagENC_STATUS*) を直接呼び出してください。
FVCL::Video::CFvVideoFVC08::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 パラメータの取得に失敗しました。
解説:
エンコーダ・ステータスを取得します。
内部で GetEncoderStatus(tagENC_STATUS*) を呼び出していますので、本関数コール後、A相、B相、Z相状態はクリアされます。
各相の状態を確認するには、GetEncoderStatus(tagENC_STATUS*) を直接呼び出してください。
絶対位置エンコーダ使用時、エンコーダカウントのオーバーフロー、アンダーフローが発生すると、 piOverflow、piUnderflow が1になりカウントは停止します。 
エンコーダを再度、使用する場合は、ResetEncoder() でエンコーダをリセットしてください。
FVCL::Video::CFvVideoFVC08::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::CFvVideoFVC08::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::CFvVideoFVC08::LoadIniFile ( const FVCL::Data::CFvString paramfile,
INT  option 
)
virtual

カメラ設定ファイルのロード(カメラコマンド送信オプション付き)

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

引数
[in]paramfileカメラ設定ファイルのパスとファイル名
[in]optionカメラコマンド送信オプション
  • -1: カメラ設定ファイルの[Base]SendCommandEnableに従う(規定値)
  • 0: カメラコマンドを送信しない
  • 1: カメラコマンドを送信する
  • 2: 自動モード(Windows:送信しない Linux:送信する)
戻り値
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 パラメータの取得に失敗しました。
31054 FVCL_ErrorCode::Video::SET_SIZE 取込サイズ設定に失敗しました。
31232 FVCL_ErrorCode::Video::SIO_FAILED_TO_OPEN SIOのオープンに失敗しました。
31235 FVCL_ErrorCode::Video::SIO_TIMEOUT SIOタイムアウトが発生しました。
31403 FVCL_ErrorCode::Video::SIO_ERROR SIOでエラーが発生しました。
31410 FVCL_ErrorCode::Video::PLL_RECONFIG_FAILED PLLリコンフィグが失敗しました。
解説:
カメラ設定ファイルをロードします。使用するカメラに合ったパラメータファイルを指定して下さい。 必ず絶対パスで指定して下さい。
本関数内でクロックの再生成( PLLReconfig())を実行します。クロックの再生成には、最短でも500msec程度かかります。

カメラにカメラのモードを変更するコマンドを送信する送信しないを設定できます。 option = -1 のとき、カメラ設定ファイル内の[Base]SendCommandEnableに従います。 [Base]SendCommandEnableカメラ設定ファイルロード時、トリガーモード変更時にカメラにコマンドを送信するかの設定です。
[Base]SendCommandEnable詳細:
0:送信しない 1:送信する 2:自動モード(Windows:送信しない Linux:送信する
参照
Open
FVCL::Video::CFvVideoFVC08::GrabWait ( INT  timeout)
virtual

画像取込 完了待機(待機時間設定付き)

非同期取込を行った際に、画像が取込完了するまで待機します。(待機時間設定付き)

引数
[in]timeout待機時間(msec)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
53 FVCL_ErrorCode::TIMEOUT 画像取込のタイムアウトが発生しました。
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31040 FVCL_ErrorCode::Video::GRAB_FAILED 画像取込に失敗しました。
31402 FVCL_ErrorCode::Video::WAITTIMEOUT 待機時間のタイムアウトが発生しました。
31412 FVCL_ErrorCode::Video::PLL_RECONFIG_GRAB_ERROR PLLリコンフィグが取込中に実行されました。
解説:
非同期取込を行った際に、画像が取込終わるまで待機します。非同期取り込みを行った場合は、本関数で、 取り込みが終わったことを確認するか、 GrabStatus() で、取込が終わったことを確認しなければなりません。 確認を怠った場合、次の取り込みを行うことが出来ません。このとき、エラーコード : FVCL_ErrorCode::Video::NOW_CAPTURING が発生します。 msec単位で待機時間を設定できます。 待機時間内に取り込み完了が発生しないとき、エラーコード : FVCL_ErrorCode::Video::WAITTIMEOUT を返します。 このとき取込の終了は確認したことになりません。 再度、GrabWait()GrabStatus() で取込を終わったことを確認しなければなりません。
time = -1 または 0 でコールすると、無限待機になります。
GrabWait() と同時にコールしないでください。
本関数は以下の画像取込関数を使用した場合に使用することが出来ます。
  • GrabImageSync()
  • GrabImageASync()
  • ContinuousGrab()

参照
GrabImageSync
GrabImageASync
ContinuousGrab
FVCL::Video::CFvVideoFVC08::NotifyCaptureNo ( tagWAIT_FRAME wait_frame,
INT  timeout 
)
virtual

連続取込の情報を取得(フレーム待機 待機時間設定付き)

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

引数
[out]wait_frame連続取込情報
[in]timeout待機時間(msec)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。指定されたwait_frameがNULLです。
31402 FVCL_ErrorCode::Video::WAITTIMEOUT 待機時間のタイムアウトが発生しました。
解説:
連続取込中の情報を取得します。連続取込関数( ContinuousGrab() )実行中にご使用ください。 また、1フレーム待機を行わない情報取得関数( QueryCaptureNo() )も用意されています。 FVC08は、tagWAIT_FRAME::DmaSchedulePeak取得できません。常に0が戻ります。 取込開始前、取込完了確認後は、即メソッドから抜けてきます。このとき、エラーは発生しません。
本関数では、取込タイムアウトは取得できません。別途、 GrabStatus() で確認してください。 待機時間内にフレーム待機が発生しないとき、FVCL_ErrorCode::Video::WAITTIMEOUTが発生します。
time = -1 でコールすると、無限待機になります。
トータルフレーム枚数は ContinuousGrab() コール時に0になり、4294967295(0xFFFFFFFF)まで増加した後、0(0x00)に戻ります。
ライン数(LineCount)は、TAP毎のライン数になります。カメラによっては、取得できる最大ライン数が画像メモリの半分となる 場合があります。
参照
Open
ContinuousGrab
QueryCaptureNo
tagWAIT_FRAME
FVCL::Video::CFvVideoFVC08::SetTriggerCycleTime ( DOUBLE  time)
virtual

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

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

引数
[in]timeトリガ間隔時間(μs)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。設定値が範囲外です。
解説:
トリガのリトライ間隔を指定します。 エリアカメラの連続取込または、ラインセンサのエンコーダを使用しないライントリガモードの場合、 トリガ信号が連続して出力される間隔に本設定が使用されます。
「連続取込時のトリガサイクルタイム」
連続取込時の、内部トリガモード、外部トリガリトライモード時は、取込開始命令( ContinuousGrab() )が 呼び出され、最初のトリガ信号がカメラに出力後、 2回目以降のトリガ信号はサイクルタイム設定( SetTriggerCycleTime() )で出力されます。
エリアカメラの場合、カメラ設定ファイルの [Cameralink]TriggerCycleTime には、[Base]ExposureTime(露光時間) + 1Frame転送時間を デフォルトで設定しています。
ラインセンサカメラの場合、カメラ設定ファイルの [Cameralink]TriggerCycleTime には、[Base]ExposureTime(露光時間) + 1Line転送時間 をデフォルトで設定しています。
連続取込の内部トリガモード、または外部トリガリトライモードを使用するときは、露光時間( SetExposureTime() )とサイクルタイム設定( SetTriggerCycleTime() )は 適切な値に設定する必要があります。
トリガサイクルタイムが短すぎると、画像転送中にトリガが出力され、トリガ信号がカメラ側で無視されてしまう(または、現在取込中の画像に問題が発生してしまう)といった現象が起こってしまいます。
トリガサイクルタイムの特性上、露光時間の設定はトリガサイクルタイム設定よりも小さくなければなりません。 SetExposureTime() + 1Frame転送時間 < SetTriggerCycleTime() の条件を守って設定してください。
CFvVideoFVC08_setcycle.png
参照
Open
SetExposureTime
GetTriggerCycleTime
FVCL::Video::CFvVideoFVC08::GetTriggerCycleTime ( DOUBLE time)
virtual

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

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

引数
[out]timeトリガ間隔時間(μs)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。timeがNULLです。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。設定値が範囲外です。
参照
Open
SetTriggerCycleTime
FVCL::Video::CFvVideoFVC08::GetDriverVersion ( ) const
virtual

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

FVC08ドライバのバージョンの文字列を取得します。

戻り値
バージョン
解説:
FVC08ドライババージョンを取得します。
エラーのとき、サイズ0の文字列を返します。
参照
Open
FVCL::Video::CFvVideoFVC08::GetDeviceVersion ( ) const
virtual

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

FVC08デバイスのバージョンの文字列を取得します。

戻り値
バージョン
解説:
FVC08バージョンを取得します。
エラーのとき、サイズ0の文字列を返します。
参照
Open
FVCL::Video::CFvVideoFVC08::SetEncoderParam ( UINT  signal,
UINT  mlt,
UINT  start,
UINT  pulse,
INT  comp1,
UINT  comp2,
UINT  init,
UINT  cntenb = 1,
UINT  swapab = 0,
UINT  signalsource = 0 
)
virtual

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

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

引数
[in]signalAB相設定 (0:AB相 1:A相) ※無視されます mltで決まります。
[in]mltサンプリング速度 (0:1倍 1:2倍 2:4倍) ※1倍,2倍はA相、4倍はAB相です。
[in]startエンコーダ起動モード (0:CPU 1:外部トリガ 2:Z相 3:未使用)
[in]pulseパルスの方向 (0:CW 1:CCW)
[in]comp1比較レジスタ1
[in]comp2比較レジスタ2
[in]initエンコーダカウンタ初期化設定 (0:1フレーム完了後にエンコーダカウンタ初期化 1:エンコーダカウント初期化しません 2:全取り込み完了後にエンコーダカウンタ初期化)
[in]cntenbエンコーダ種類 (0:無効 1:相対位置エンコーダ 2:絶対位置エンコーダ)
[in]swapabA相/B相入れ替え (0:無効 1:有効)
[in]signalsourceエンコーダー入力チャネル (0:A#0、B#0、Z#0 1:A#1、B#1、Z#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 パラメータの取得に失敗しました。
解説:
エンコーダを使用する場合、本関数でパラメータの設定を行います。
エンコーダ起動モードとトリガモード( SetTrigger() )の組み合わせに制限があります。
エンコーダー起動モードで外部トリガを指定する場合は、トリガモードは外部トリガモードにしてください。
エンコーダー起動モードでCPU、Z相を指定する場合は、トリガモードは内部トリガにしてください。
相対位置エンコーダ:
比較レジスタ1の設定分、カウントを待機後、トリガ信号(一致パルス)を出力し、その後、比較レジスタ2の間隔でトリガ信号(一致パルス)を出力します。
比較レジスタ1が0の場合は、比較レジスタ2の間隔でトリガ信号(一致パルス)を出力します。
絶対位置エンコーダ:
絶対位置カウントが比較レジスタ1の値と一致すると、トリガ信号(一致パルス)を出力し、その後、比較レジスタ2の間隔でトリガ信号(一致パルス)を出力します。
比較レジスタ1が0の場合は、エンコーダ起動モードが発生したタイミングでカメラに対しトリガ信号(一致パルス)を出力し、その後、比較レジスタ2の間隔でトリガ信号(一致パルス)を出力ます。
initについて:
エンコーダカウンタ初期化を[0:1フレーム完了後にエンコーダカウンタ初期化]に設定すると、フレーム毎に、エンコーダ起動モード(start)の入力が必要です。
連続取込時、1フレーム毎に外部トリガで撮像したい場合などに使用します。
相対値エンコーダのときは、カウンタ値がリセットされ、絶対値エンコーダのときは、カウンタ値が保持されます。
signalsourceについて:
FVC08の取込チャネル数は4で、エンコーダ設定はチャネル毎に設定できますが、FVC08のエンコーダ信号入力チャネル数は2です。
signalsource パラメータは、カメラ設定ファイルの[Encoder]ENCSignalSource と等価で、規定値は 0:A#0、B#0、Z#0(エンコーダ入力チャネル0) です。
規定値のカメラ設定ファイルをロードすると、すべての取込チャネルはエンコーダ入力チャネル0と結びつきます。
エンコーダ入力チャネル1からエンコーダ入力したい場合は、本関数で signalsource=1:A#1、B#1、Z#1 にしてください。
カメラ設定ファイル:
カメラ設定ファイルのエンコーダパラメータと本関数のパラメータ値は異なります。カメラ設定ファイルについては以下を参照してください。
内容 パラメータ名 パラメータ値 カメラ設定ファイル項目 カメラ設定ファイル値
サンプリング速度 mlt [0:A相x1倍 1:A相x2倍 2:AB相x4倍] [Encoder]ENCSampling [0:AB相x4倍 1:A相x2倍 2:A相x1倍]
エンコーダ起動モード start [0:CPU 1:外部トリガ 2:Z相 3:未使用] [Encoder]ENCStart [0:未使用 1:外部トリガ 2:CPU 3:Z相]
パルスの方向 pulse [0:CW 1:CCW] [Encoder]ENCDir [0:CW 1:CCW]
比較レジスタ1 comp1 [Encoder]ENCComp1
比較レジスタ2 comp2 [Encoder]ENCComp2
エンコーダカウンタ初期化設定 init [0:1フレーム取込完了後に初期化する 1:初期化しない 2:全取込完了時に初期化する] [Encoder]ENCResetSource [0:初期化しない 1:1フレーム取込完了後に初期化する 2:全取込完了時に初期化する]
エンコーダ種類 cntenb [0:無効 1:相対位置エンコーダ 2:絶対位置エンコーダ] [Cameralink]EncoderMode [0:エンコーダを使用しない 1:ラインスキャン(相対値) 2:ライン選択(相対値) 3:ラインスキャン(絶対値) 4:ライン選択(絶対値)]
A相/B相入替 swapab [0:無効 1:有効] [Encoder]ENCSwapAB [0:無効 1:有効]
エンコーダー入力チャネル signalsource [0:A#0、B#0、Z#0 1:A#1、B#1、Z#1] [Encoder]ENCSignalSource [0:A#0、B#0、Z#0 1:A#1、B#1、Z#1]
参照
Open
SetTrigger
SetLineSensorMode
GetEncoderParam
FVCL::Video::CFvVideoFVC08::GetEncoderParam ( UINT sampling,
UINT mlt,
UINT start,
UINT pulse,
INT comp1,
UINT comp2,
UINT init,
UINT cntenb,
UINT swapab,
UINT signalsource 
)
virtual

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

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

引数
[out]signalAB相設定 (0:AB相 1:A相) ※mltが1倍,2倍のときは 1:A相 4倍のときは0:AB相が戻ります
[out]mltサンプリング速度 (0:1倍 1:2倍 2:4倍)
[out]startエンコーダ起動モード (0:CPU 1:外部トリガ 2:Z相 3:未使用)
[out]pulseパルスの方向 (0:CW 1:CCW)
[out]comp1比較レジスタ1
[out]comp2比較レジスタ2
[out]initエンコーダカウンタ初期化設定 (0:1フレーム完了後にエンコーダカウンタ初期化 1:エンコーダカウント初期化しません 2:全取り込み完了後にエンコーダカウンタ初期化)
[out]cntenbエンコーダ種類 (0:無効 1:相対位置エンコーダ 2:絶対位置エンコーダ)
[out]swapabA相/B相入れ替え (0:無効 1:有効)
[out]signalsourceエンコーダー入力チャネル (0:A#0、B#0、Z#0 1:A#1、B#1、Z#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::CFvVideoFVC08::GetEncoderParam ( UINT sampling,
UINT mlt,
UINT start,
UINT pulse,
INT comp1,
UINT comp2,
UINT init,
UINT cntenb,
UINT swapab 
)
virtual

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

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

引数
[out]signalAB相設定 (0:AB相 1:A相) ※mltが1倍,2倍のときは 1:A相 4倍のときは0:AB相が戻ります
[out]mltサンプリング速度 (0:1倍 1:2倍 2:4倍)
[out]startエンコーダ起動モード (0:CPU 1:外部トリガ 2:Z相 3:未使用)
[out]pulseパルスの方向 (0:CW 1:CCW)
[out]comp1比較レジスタ1
[out]comp2比較レジスタ2
[out]initエンコーダカウンタ初期化設定 (0:1フレーム完了後にエンコーダカウンタ初期化 1:エンコーダカウント初期化しません 2:全取り込み完了後にエンコーダカウンタ初期化)
[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::CFvVideoFVC08::GetEncoderParam ( UINT sampling,
UINT mlt,
UINT start,
UINT pulse,
INT comp1,
UINT comp2,
UINT init 
)
virtual

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

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

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

エンコーダの開始

エンコーダの開始を指示します

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
8 FVCL_ErrorCode::FAILED_TO_EXECUTE 処理に失敗しました。
解説:
エンコーダの開始をします。
FVCL::Video::CFvVideoFVC08::StopEncoder ( )
virtual

エンコーダの停止

エンコーダの停止を指示します

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
8 FVCL_ErrorCode::FAILED_TO_EXECUTE 処理に失敗しました。
解説:
エンコーダを停止します。 エンコーダカウントはクリアしません。 エンコーダ動作中にコールすると、エンコーダは一時停止になります。
一時停止中に StartEncoder がコールされると、即時にカウントは再開されます。
エンコーダを完全に停止したい場合は、StopEncoder コール後に、 ResetEncoder をコールしてください。
FVCL::Video::CFvVideoFVC08::ResetEncoder ( )
virtual

エンコーダリセット

エンコーダのリセットを指示します

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
8 FVCL_ErrorCode::FAILED_TO_EXECUTE 処理に失敗しました。
解説:
エンコーダをリセットします。
エンコーダカウントは0にリセットされ、次のエンコーダ起動トリガの入力までエンコーダは待機します。
FVCL::Video::CFvVideoFVC08::GetEncoderStatus ( UINT piOverflow,
UINT piUnderflow,
UINT astate,
UINT bstate,
UINT zstate,
UINT encstate,
INT enccnt,
UINT relcnt,
UINT matchcnt 
)
virtual

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

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

引数
[out]piOverflow絶対位置エンコーダ選択時、内部カウンタのオーバーフローフラグ. 0:オーバーフローなし 1:オーバーフローしている
[out]piUnderflow絶対位置エンコーダ選択時、内部カウンタのアンダーフローフラグ. 0:アンダーフローなし 1:アンダーフローしている
[out]astateA相状態 0:入力なし 1:入力あり(本関数コール後クリア)
[out]bstateB相状態 0:入力なし 1:入力あり(本関数コール後クリア)
[out]zstateZ相状態 0:入力なし 1:入力あり(本関数コール後クリア)
[out]encstateエンコーダ状態 0:アイドル状態 1:トリガ待ち 2:カウント信号待ち 3:動作中
[out]enccntエンコーダカウント
[out]relcnt相対位置エンコーダカウント値 一致パルスでクリアされた値
[out]matchcntエンコーダ一致パルス数
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。NULLが指定されています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
エンコーダ・ステータスを取得します。 A相、B相、Z相状態は、入力があった場合 1 が戻ります。
本関数コール後、A相、B相、Z相状態はクリアしますので、状態に変化があるまで 0 が戻ります。
絶対位置エンコーダ使用時、エンコーダカウントのオーバーフロー、アンダーフローが発生すると、 piOverflow、piUnderflow が1になりカウントは停止します。 
エンコーダを再度、使用する場合は、ResetEncoder() でエンコーダをリセットしてください。
FVCL::Video::CFvVideoFVC08::GetEncoderStatus ( tagENC_STATUS enc_status)
virtual

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

引数
[out]enc_statusエンコーダステータスの取得

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

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。NULLが指定されています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
エンコーダ・ステータスを取得します。 
A相、B相、Z相状態は、入力があった場合 1 が戻ります。
本関数コール後、A相、B相、Z相状態はクリアしますので、状態に変化があるまで 0 が戻ります。
絶対位置エンコーダ使用時、エンコーダカウントのオーバーフロー、アンダーフローが発生すると、 UnderFlow、OverFlow がtrueになりカウントは停止します。 
エンコーダを再度、使用する場合は、ResetEncoder() でエンコーダをリセットしてください。
enc_status
  • tagENC_STATUS.OverFlow : 絶対位置エンコーダ選択時、内部カウンタのオーバーフローフラグ. 0:オーバーフローなし 1:オーバーフローしている
  • tagENC_STATUS.UnderFlow : 絶対位置エンコーダ選択時、内部カウンタのアンダーフローフラグ. 0:アンダーフローなし 1:アンダーフローしている
  • tagENC_STATUS.AState : A相状態 0:入力なし 1:入力あり(本関数コール後クリア)
  • tagENC_STATUS.BState : B相状態 0:入力なし 1:入力あり(本関数コール後クリア)
  • tagENC_STATUS.ZState : Z相状態 0:入力なし 1:入力あり(本関数コール後クリア)
  • tagENC_STATUS.EncoderState : エンコーダ状態 0:アイドル状態 1:トリガ待ち 2:カウント信号待ち 3:動作中
  • tagENC_STATUS.EncoderCount : エンコーダカウント
  • tagENC_STATUS.RelEncoderCount : 相対位置エンコーダカウント値 一致パルスでクリアされた値
  • tagENC_STATUS.EncoderMatchCount : エンコーダ一致パルス数

FVCL::Video::CFvVideoFVC08::WaitEvent ( INT  eventno,
INT  timeout,
INT status 
)
virtual

イベント待機

指定したイベントを待機します。

引数
[in]eventno待機するイベントNO
  • 0:Exp(露光完了)
  • 1:FrameIn(フレーム開始)
  • 2:FrameOut(フレーム終了)
  • 3:NewFrame(新フレーム確定)
  • 4:ExtTrg(外部トリガ)
[in]timeout待機時間(msec)
[out]statusイベント発生有無
  • 0:イベント発生無
  • 1:イベント発生有
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31400 FVCL_ErrorCode::Video::WAITING WAITに失敗しました。
31402 FVCL_ErrorCode::Video::WAITTIMEOUT 待機時間のタイムアウトが発生しました。
解説:
指定したイベントを待機します。既に発生済みの場合は即時に戻ります。
イベントが発生し、待機が終了すると、status = 1 が戻ります。
同一のイベントを同じタイミングではコールできません。このとき、エラーコード:FVCL_ErrorCode::Video::WAITINGが発生します。
NotifyCaptureNo() は内部で本関数に eventno=3 を設定しコールしています。
本関数と同時に NotifyCaptureNo() は使用できませんのでご注意ください。
待機時間内にイベントが発生しないとき、エラーコード : FVCL_ErrorCode::Video::WAITTIMEOUTが発生します。 待機をキャンセルするには、CancelWaitEvent でキャンセルするイベントを設定してください。
timeout = 0 のとき、イベントの発生有無を即時に確認し、常にtrueで戻ります。
timeout = -1 のとき、指定したイベントが発生するまで無限待機になります。
参照
Open
FVCL::Video::CFvVideoFVC08::CancelWaitEvent ( INT  eventno)
virtual

イベント待機キャンセル

イベント待機をキャンセルします。

引数
[in]eventnoキャンセルするイベントNO
  • 0:Exp(露光完了)
  • 1:FrameIn(フレーム開始)
  • 2:FrameOut(フレーム終了)
  • 3:NewFrame(新フレーム確定)
  • 4:ExtTrg(外部トリガ)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
8 FVCL_ErrorCode::FAILED_TO_EXECUTE 処理に失敗しました。
解説:
WaitEvent() で待機しているとき、待機をキャンセルします。
参照
WaitEvent()
FVCL::Video::CFvVideoFVC08::SetLineNum ( UINT  line)
virtual

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

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

引数
[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() 関数を使用してください。 本関数は変更できるのはラインセンサカメラのライン数のみです。エリアカメラや横サイズは変更できません。 取込ライン数を変更した場合、 ChangeImageSize() などで取込用画像メモリを正規化してください。
指定できる最大ライン数は65535になります。
取込ライン数が極端に少ない場合、カメラのスペックによっては取込エラーが発生する場合があります。 そういった場合、取込ライン数を増やしてください。
参照
Open
ChangeImageSize
GetImageSize
FVCL::Video::CFvVideoFVC08::SetTriggerMaskMode ( INT  mode)
virtual

トリガマスクモードの設定

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

引数
[in]modeモード
  • -1: 自動モード(規定値)
  • 0: トリガ入力でTriggerMaskTime分カウント開始
  • 1: FVAL開始からTriggerMaskTime分カウント開始
  • 2: FVAL完了でマスク解除TriggerMaskTimeは無視
  • 3: Grab完了でマスク解除TriggerMaskTimeは無視
  • 4: LVAL完了でマスク解除TriggerMaskTimeは無視
戻り値
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 パラメータの取得に失敗しました。
解説:
トリガ禁止期間の設定モードです。 規定値は-1でSDK内で自動でトリガマスク設定を行います。
-1:自動モード(規定値)の詳細:
外部トリガリトライモード時:3:GRAB完了点でマスク解除
ラインセンサエンコーダ使用時:4:LVAL完了点でマスク解除
上記以外2:FVAL完了点でマスク解除
参照
Open
GetTriggerMaskMode
FVCL::Video::CFvVideoFVC08::GetTriggerMaskMode ( INT mode)
virtual

トリガマスクモードの取得

トリガマスクのモード取得を行います。

引数
[out]modeモード
  • -1: 自動モード(規定値)
  • 0: トリガ入力でTriggerMaskTime分カウント開始
  • 1: FVAL開始からTriggerMaskTime分カウント開始
  • 2: FVAL完了でマスク解除TriggerMaskTimeは無視
  • 3: Grab完了でマスク解除TriggerMaskTimeは無視
  • 4: LVAL完了でマスク解除TriggerMaskTimeは無視
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
参照
Open
SetTriggerMaskMode
FVCL::Video::CFvVideoFVC08::SetTriggerMaskTime ( INT  time)
virtual

トリガマスク時間の設定

トリガマスクの時間の設定を行います。

引数
[in]timeトリガマスク時間
戻り値
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 パラメータの取得に失敗しました。
解説:
通常、本関数は使用しません。 本設定が有効なのは、SetTriggerMaskMode() が0と1のときです。
それ以外のとき本設定は無視されます。 トリガマスク期間を無限にするには0を設定してください。
参照
Open
GetTriggerMaskMode
FVCL::Video::CFvVideoFVC08::GetTriggerMaskTime ( INT time)
virtual

トリガマスク時間の取得

トリガマスク時間の取得を行います。

引数
[out]timeマスク時間
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
参照
Open
SetTriggerMaskMode
FVCL::Video::CFvVideoFVC08::StopPG ( INT  ch = -1)
virtual

トリガリトライの停止

トリガリトライを停止します。

引数
[in]chトリガリトライを停止するチャネル
  • -1: カレントチャネルを停止
  • チャネル指定: 指定したチャネルを停止(0:CH0 1:CH1 2:CH2 3:CH3)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
8 FVCL_ErrorCode::FAILED_TO_EXECUTE 処理に失敗しました。
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
解説:
トリガリトライを停止します。
トリガのリトライモードの設定について
カメラ設定ファイル内のトリガのリトライモード[TriggerRetryMode]は、出力するトリガをリトライするかどうかを設定します。
規定値は0:自動設定モードです。
  • 0:自動設定モード(Retryを自動制御し画像取込完了後PGを停止)
  • 1:Retryを常にON 画像取込完了後PGを停止
  • 2:RetryをON PGを停止しない
トリガのリトライモードは、 SetTriggerRetry() で変更します。
トリガリトライを明示的に停止するとき、本関数を使用します。
参照
Open
FVCL::Video::CFvVideoFVC08::ResetPG ( INT  ch = -1)
virtual

パルスジェネレータのリセット

パルスジェネレータをリセットします。

引数
[in]chリセットするチャネル
  • -1: カレントチャネルをリセット
  • チャネル指定: 指定したチャネルをリセット(0:CH0 1:CH1 2:CH2 3:CH3)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
8 FVCL_ErrorCode::FAILED_TO_EXECUTE 処理に失敗しました。
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
解説:
パルスジェネレータをリセットします。

参照
Open
FVCL::Video::CFvVideoFVC08::ClearTriggerMask ( INT  ch = -1)
virtual

トリガマスクの解除

トリガマスクを解除します。

引数
[in]ch解除するチャネル
  • -1: カレントチャネルを解除
  • チャネル指定: 指定したチャネルを解除(0:CH0 1:CH1 2:CH2 3:CH3)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
8 FVCL_ErrorCode::FAILED_TO_EXECUTE 処理に失敗しました。
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
解説:
トリガマスクを解除します。通常は使用しません。
使用するときは、SetParam で ClearTriggerMaskMode = 1(ユーザ制御)にする必要があります。
参照
Open
FVCL::Video::CFvVideoFVC08::SetIntTriggerCH ( INT  ch)
virtual

内部トリガチャネルの設定

内部トリガのチャネル設定を行います。

引数
[in]ch内部トリガチャネル (-1:カレントチャネル(規定値) 0:0ch 1:1ch 2:2ch 3:3ch)
戻り値
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 パラメータの取得に失敗しました。
解説:
内部トリガとして受け付けるチャネルを設定します。 規定値は-1でカレントチャネルに設定されています。 他チャネルの発行された内部トリガを共有する場合は、チャネルを指定してください。
内部トリガの同時取込:
例えば、CH0からCH2をCH0の内部トリガで同時取込をする場合、CH0からCH2を内部トリガモードに設定後、以下のように設定します。
1.CH0の SetIntTriggerCH は規定値(-1:カレントチャネル)のまま
2.CH1の SetIntTriggerCH(0) を規定値(-1:カレントチャネル)からCH0に変更
3.CH2の SetIntTriggerCH(0) を規定値(-1:カレントチャネル)からCH0に変更
4.CH1,CH2をそれぞれ取り込み開始。CH1,CH2はソフトトリガ待ち状態。
5.最後にCH0の取込。CH0にソフトトリガが発行されるので、CH1~CH2も同時に取込される。
注意事項1:トリガ入力チャネルを自チャネルから他チャネルに変更すると、自チャネルのトリガ入力は受け付けることができなくなります。
参照
Open
GetIntTriggerCH
FVCL::Video::CFvVideoFVC08::GetIntTriggerCH ( INT ch)
virtual

内部トリガチャネルの取得

内部トリガのチャネル設定を取得します。

引数
[out]ch内部トリガチャネル (-1:カレントチャネル(規定値) 0:0ch 1:1ch 2:2ch 3:3ch)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
参照
Open
SetPackingMode
FVCL::Video::CFvVideoFVC08::SetExtTriggerCH ( INT  ch)
virtual

外部トリガチャネルの設定

外部トリガのチャネル設定を行います。

引数
[in]ch外部トリガチャネル (-1:カレントチャネル(規定値) 0:0ch 1:1ch 2:2ch 3:3ch)
戻り値
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 パラメータの取得に失敗しました。
解説:
外部トリガとして受け付けるチャネルを設定します。 規定値は-1でカレントチャネルに設定されています。 他チャネルに入力された外部トリガを共有する場合は、チャネルを指定してください。
外部トリガの同時取込:
例えば、CH0からCH2をCH0の外部トリガで同時取込をする場合、CH0からCH2を外部トリガモードに設定後、以下のように設定します。
1.CH0の SetExtTriggerCH は規定値(-1:カレントチャネル)のまま
2.CH1の SetExtTriggerCH(0) を規定値(-1:カレントチャネル)からCH0に変更
3.CH2の SetExtTriggerCH(0) を規定値(-1:カレントチャネル)からCH0に変更
4.CH0~CH2をそれぞれ取り込み開始すると、外部トリガ待ち状態。
5.CH0の外部トリガ入力端子にトリガ入力。トリガ入力した時点で、CH0~CH2が同時に取込される。
注意事項1:トリガ入力チャネルを自チャネルから他チャネルに変更すると、自チャネルのトリガ入力は受け付けることができなくなります。
注意事項2:外部トリガ入力時、外部トリガ入力を選択したチャネルのExtInControlMode=1:Grab連動制御のとき、取込を開始しないと外部トリガは受付けません。詳細は、CFvVideoFVC08::SetParam( LPCSTR param, INT value ) の [外部トリガ入力制御モード(ExtInControlMode)]についてを参照してください。
外部トリガの同時取込以外で他チャネルと外部トリガを共有したい場合:
共有したいチャネルの SetTrigger() で 2:外部トリガ 3:外部トリガリトライモード時以外は、外部トリガをハード的に受け付けることができません。
他チャンネルの外部トリガを共有したい場合は、対象チャネルのトリガモードを外部トリガモードにし、外部トリガを有効な状態にしなくてはいけません。
外部トリガ入力制御モード(ExtInControlMode)の設定も併せて必要です。
参照
Open
GetIntTriggerCH
FVCL::Video::CFvVideoFVC08::GetExtTriggerCH ( INT ch)
virtual

外部トリガチャネルの取得

外部トリガのチャネル設定を取得します。

引数
[out]ch内部トリガチャネル (-1:カレントチャネル(規定値) 0:0ch 1:1ch 2:2ch 3:3ch)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
参照
Open
SetExtTriggerCH
FVCL::Video::CFvVideoFVC08::SetEncoderActMode ( INT  mode)
virtual

エンコーダの動作モード設定

エンコーダの動作モードの設定を行います。

引数
[in]modeモード (0:FVC07互換モード(規定値) 1:非FVC07互換モード)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
解説:
規定値は0でエンコーダ動作はFVC07互換モードです。
FVC08のエンコーダについて:
FVC07では、取込動作とエンコーダ動作が関連付いており、取込時に自動でエンコーダが動作します。
FVC08では、多様なエンコーダの使用方法に対応するため、取込動作と、エンコーダ動作を別々に操作できるようになりました。
本関数の mode=1:非FVC07互換モード にすると、自動でエンコーダの操作を行いません。
StartEncoder()StopEncoder()ResetEncoder()、をコールし、自由なタイミングでエンコーダを操作します。
規定値の mode=0:FVC07互換モード ではFVC07と同様に、取込時に自動でエンコーダ操作します。 通常はこちらをご使用ください。
0:FVC07互換モードで取込する際の内部動作:
1.エンコーダ使用モードが 相対のとき(1 or 2)のとき、 エンコーダ停止
2.取込開始
3.エンコーダ使用モードがライン選択(2 or 4)でエンコーダ起動がZ相スタートのとき、カレントチャネルに ソフトトリガ発行し、パルスジェネレータを起動。
4.エンコーダ使用モードが相対(1 or 2)のとき、 エンコーダリセット をコール後、 エンコーダ開始 コール。
5.エンコーダ起動モードがCPUのとき、カレントチャネルに ソフトトリガ発行し、エンコーダ起動
エンコーダ使用モード( SetLineSensorMode の第二引数):
0:エンコーダを使用しない 1:エンコーダスキャンモード(相対値) 2:エンコーダライン選択モード(相対値) 3:エンコーダスキャンモード(絶対値) 4:エンコーダライン選択モード(絶対値))
参照
Open
GetEncoderActMode
SetLineSensorMode
GetLineSensorMode
SetEncoderConfig
GetEncoderConfig
FVCL::Video::CFvVideoFVC08::GetEncoderActMode ( INT mode)
virtual

エンコーダの動作モード設定

エンコーダの動作モードを取得します。

引数
[out]modeモード (0:FVC07互換モード(規定値) 1:非FVC07互換モード)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
参照
Open
SetEncoderActMode
FVCL::Video::CFvVideoFVC08::SetParam ( LPCSTR  param,
INT  value 
)
virtual

パラメータを設定します。(INTパラメータ)

パラメータを設定します

引数
[in]paramパラメータ名
[in]value
戻り値
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 パラメータの取得に失敗しました。
解説:
INTパラメータを変更します。
設定可能パラメータ:
パラメータ 内容
ExtInControlMode 外部トリガ入力制御モード[-1:自動モード(規定値) 0:ソフトウェア制御、1:Grab連動制御]
ClearTriggerMaskMode トリガマスク解除モード[0:Grabで常に解除(規定値) 1:ユーザ制御(SDK側で解除しない)]
ENCIn0Termination エンコーダー入力0の終端抵抗の制御を行う。[0:未接続、1:接続]
デバイスバージョン 01.01以前 規定値は1:接続
デバイスバージョン 01.01以降 規定値はデバイス上のディップスイッチ設定
ENCIn1Termination エンコーダー入力1の終端抵抗の制御を行う。[0:未接続、1:接続]
デバイスバージョン 01.01以前 規定値は1:接続
デバイスバージョン 01.01以降 規定値はデバイス上のディップスイッチ設定
Timeout 取込タイムアウト(msec) [0:無限 1~msec]
外部トリガ入力制御モードを 0:ソフトウェア制御にするコード例
video.SetParam("ExtInControlMode", 0);

[外部トリガ入力制御モード(ExtInControlMode)]について
外部トリガモードのとき、取込動作と外部トリガを連動するかどうかのパラメータになります。
[1:Grab連動制御]取込動作と外部トリガを連動します。取込動作中、外部トリガは有効で、非取込動作中は無効になります。
[0:ソフトウェア制御]取込動作と外部トリガを連動しません。取込動作に関係なく、外部トリガは常に有効です。
[-1:自動モード(規定値)]エンコーダ使用時は、0:ソフトウェア制御、エンコーダ未使用時は、1:Grab連動制御で動作します。
参照
Open
GetParam( LPCSTR param, INT* value)
FVCL::Video::CFvVideoFVC08::GetParam ( LPCSTR  param,
INT value 
)
virtual

その他の情報取得

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

引数
[in]paramパラメータ名
[out]value
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
パラメタータを取得します。
取得可能パラメータ:
パラメータ 内容
ExtInControlMode 外部トリガ入力制御モード[-1:自動モード(規定値) 0:ソフトウェア制御、1:Grab連動制御]
ClearTriggerMaskMode トリガマスク解除モード[0:取込開始時に解除(規定値) 1:ユーザ制御(SDK側で解除しない)]
ENCIn0Termination エンコーダー入力0の終端抵抗の制御を行う。[0:未接続、1:接続]
デバイスバージョン 01.01以前 規定値は1:接続
デバイスバージョン 01.01以降 規定値はデバイス上のディップスイッチ設定
ENCIn1Termination エンコーダー入力1の終端抵抗の制御を行う。[0:未接続、1:接続]
デバイスバージョン 01.01以前 規定値は1:接続
デバイスバージョン 01.01以降 規定値はデバイス上のディップスイッチ設定
PGStatus パルスジェネレータの状態の確認
bit0 : トリガマスク状態 [0:マスク中ではない 1:マスク中]
bit1 : トリガマスク中のトリガ検出 [0:未検出 1:検出]
bit2,3 : パルスジェネレーターステート [0:トリガ待ち(IDLE)1:タイマー動作中 2:リトライ動作中]
※パラメータ取得後、bit1:トリガマスク中のトリガ検出はクリアします。
PLLReconfigStatus PLLリコンフィグの状態の確認 [0:IDLE 1:Busy 2:Error]
BayerMode ベイヤーカラーモード(フィルタータイプ) [0:Disable 1:RGGB 2:GRBG 3:GBRG 4:BGGR]
Timeout 取込タイムアウト(msec) [0:無限 1~msec]
参照
Open
SetParam(LPCSTR param, INT value )
FVCL::Video::CFvVideoFVC08::SetParam ( LPCSTR  param,
UINT  value 
)
virtual

パラメータを設定します。(UINTパラメータ)

パラメータを設定します

引数
[in]paramパラメータ名
[in]value
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
解説:
UINTパラメータを変更します。
参照
Open
GetParam( LPCSTR param, UINT* value)
FVCL::Video::CFvVideoFVC08::GetParam ( LPCSTR  param,
UINT value 
)
virtual

その他の情報取得

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

引数
[in]paramパラメータ名
[out]value
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
パラメタータを取得します。
参照
Open
SetParam( LPCSTR param, UINT value )
FVCL::Video::CFvVideoFVC08::SetParam ( LPCSTR  param,
void *  value 
)
virtual

パラメータを設定します。(UINTパラメータ)

パラメータを設定します

引数
[in]paramパラメータ名
[in]value
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
解説:
その他のパラメータを変更します。通常は使用しません。
参照
Open
GetParam( LPCSTR param, void* value)
FVCL::Video::CFvVideoFVC08::GetParam ( LPCSTR  param,
void *  value 
)
virtual

その他の情報取得

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

引数
[in]paramパラメータ名
[out]value
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
その他のパラメータを取得します。通常は使用しません。
参照
Open
SetParam( LPCSTR param, void* value )
FVCL::Video::CFvVideoFVC08::SetOtherInfo ( UINT  mode,
UINT  no,
UINT  data 
)
virtual

その他の情報設定

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

引数
[in]modeモード
[in]no番号
[in]dataデータ
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
解説:
その他の情報を変更します。
参照
Open
GetOtherInfo
FVCL::Video::CFvVideoFVC08::GetOtherInfo ( UINT  mode,
UINT  no,
UINT data 
)
virtual

その他の情報取得

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

引数
[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 パラメータの取得に失敗しました。
解説:
その他の情報を取得します。
参照
Open
SetOtherInfo
FVCL::Video::CFvVideoFVC08::ResetPLLReconfig ( )
virtual

PLLリコンフィグのリセット

PLLリコンフィグをリセットします。

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
8 FVCL_ErrorCode::FAILED_TO_EXECUTE 処理に失敗しました。
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
解説:
PLLリコンフィグをリセットします。通常は使用しません。
FVCL::Video::CFvVideoFVC08::ExecutePLLReconfig ( )
virtual

PLLリコンフィグの実行

PLLリコンフィグを実行します。

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
8 FVCL_ErrorCode::FAILED_TO_EXECUTE 処理に失敗しました。
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
解説:
PLLリコンフィグを実行します。通常は使用しません。
FVCL::Video::CFvVideoFVC08::PLLReconfig ( )
virtual

PLLリコンフィグを実行し完了するまで待機

PLLリコンフィグを実行し、クロックの再生成が完了するまで待機します

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
8 FVCL_ErrorCode::FAILED_TO_EXECUTE 処理に失敗しました。
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
解説:
本関数は、クロックを再生成し、再生成が完了するまで待機します。
最短でも500msec 程度かかります。
《重要》
カメラ設定ファイルロード後( LoadIniFile( const FVCL::Data::CFvString & paramfile ))に、カメラメーカー提供のツールや、シリアルコマンドで、以下の操作をしたときは、本関数をコールし、クロックの再生成をしてください。
  • カメラ電源を一旦OFFにしたとき
  • カメラクロックを変更したとき
通常は、カメラ設定ファイルロード時( LoadIniFile( const FVCL::Data::CFvString & paramfile ))に、内部で本関数を実行しています。
参照
LoadIniFile
FVCL::Video::CFvVideoFVC08::PLLReconfigStatus ( INT value)
virtual

PLLリコンフィグの状態取得

PLLリコンフィグの状態の取得を行います。

引数
[out]valueリコンフィグ状態
  • 0:IDLE
  • 1:Busy
  • 2:Error

戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
解説:
PLLリコンフィグの状態の取得を行います。 通常本関数を使用することはありません。
FVCL::Video::CFvVideoFVC08::SioSendData ( const FVCL::Data::CFvStringA str_tx,
FVCL::Data::CFvStringA str_rx 
)
virtual

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

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

引数
[in]str_tx送信データ(送信データの先頭と終端につける記号(STX,ETX,CR/LF)は自動的に付加します)
[out]str_rx受信データ(受信データの先頭と終端につける記号も付加して返します)
戻り値
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タイムアウトが発生しました。
31403 FVCL_ErrorCode::Video::SIO_ERROR SIOエラーが発生しました。
解説:
  • SioOpen が成功した状態でなければ使用することが出来ません。
  • カメラに対し、str_txの文字列を送信します。正常に送信が完了した場合、カメラから受信完了のコマンドが返されます。 返されたコマンドは、str_rxに格納されます。
  • 正常な場合、送信コマンドに対して、受信完了コマンドがカメラから返されますが、カメラが接続されていなかったり、 電源が入っていなかった場合、カメラ側から何も返されません。その場合、カメラ設定ファイルの[SIOTimeout]後にSIOタイムアウトエラーとなります。
  • カメラにSIO機能が無ければ使用できません。
  • 送信データの先頭と終端につける記号(STX,ETX,CR/LF)は自動的に付加します。
  • 送信するコマンドは、送り先のカメラに依存します。詳しくはカメラメーカーが出している、カメラ説明書をご参照ください。
  • シリアル通信の速度は、カメラ設定ファイルで設定されている速度で行われます。その他のパラメータは、データビット=8bit, ノンパリティ、ストップビット=1bit固定となります。

参照
Open
SioOpen
FVCL::Video::CFvVideoFVC08::SioSendCameraMode ( LPCSTR  mode)
virtual

カメラモードの変更

カメラモードを変更します。

引数
[in]modeカメラに送信するカメラモード
  • "InitialCmd": カメラ初期化コマンド送信
  • "NormalCmd" : ノーマルモード用コマンド送信
  • "TriggerCmd": トリガルモード用コマンド送信
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
31234 FVCL_ErrorCode::Video::SIO_NOT_OPENED SIOがオープンされていません。
31235 FVCL_ErrorCode::Video::SIO_TIMEOUT SIOタイムアウトが発生しました。
31403 FVCL_ErrorCode::Video::SIO_ERROR SIOでエラーが発生しました。
解説:
カメラ設定ファイルのカメラモード変更用コマンド([InitialCmd]、[NormalCmd]、[TriggerCmd])を送信します。
参照
Open
FVCL::Video::CFvVideoFVC08::SioPurgeBuff ( )
virtual

SIOの入出力バッファのクリア

SIOの入出力バッファのクリアします。

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

カメラコマンド送信設定

カメラにコマンドを送信するかどうかの設定を行います。

引数
[in]modeカメラコマンド送信モード
  • 0: カメラコマンドを送信しない
  • 1: カメラコマンドを送信する
  • 2: 自動モード(Windows:送信しない Linux:送信する)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31078 FVCL_ErrorCode::Video::SET_PARAMETER パラメータの設定に失敗しました。
解説:
FVC08のカメラ設定ファイルでは、規定値で、カメラ側にコマンドを送信し、カメラ側の設定を行います。
具体的には、LoadIniFile( const FVCL::Data::CFvString & paramfile ) 時と SetTrigger() 時に、カメラにシリアルコマンドを送信し、カメラを設定します。
カメラ側へシリアルコマンド送信するかどうかを本関数で変更します。
参照
Open
LoadIniFile
SetTrigger
FVCL::Video::CFvVideoFVC08::GetSendCommandEnable ( INT mode)
virtual

カメラコマンド送信設定の取得

カメラコマンドの送信設定を取得します。

引数
[out]modeカメラコマンド送信モード
  • 0: カメラコマンドを送信しない
  • 1: カメラコマンドを送信する
  • 2: 自動モード(Windows:送信しない Linux:送信する)
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
25 FVCL_ErrorCode::NOT_OPENED デバイスがオープンされていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が間違っています。
31079 FVCL_ErrorCode::Video::GET_PARAMETER パラメータの取得に失敗しました。
参照
Open
LoadIniFile
SetTrigger
SetSendCommandEnable
FVCL::Video::CFvVideoFVC08::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::CFvVideoFVC08::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()
  • SetCC()
  • SetTriggerRetry()
  • SetTriggerCycleTime()
  • SetPackingMode()

参照
Open
GrabImageSync
GrabImageASync
FVCL::Video::CFvVideoFVC08::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::CFvVideoFVC08::fnFTLtoFVCLErrCode ( INT  nErr)
protected

エラーコード

メンバ詳解

void * FVCL::Video::CFvVideoFVC08::m_device
protected

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

INT FVCL::Video::CFvVideoFVC08::m_LockID
protected

ロックID

bool FVCL::Video::CFvVideoFVC08::m_bCapturing
protected

取込フラグ

bool FVCL::Video::CFvVideoFVC08::m_bOneAsync
protected

取込フラグ2

void * FVCL::Video::CFvVideoFVC08::m_Mutex
protected

排他制御

HANDLE FVCL::Video::CFvVideoFVC08::m_hWaitStatus
protected

ハンドル

HANDLE FVCL::Video::CFvVideoFVC08::m_hStopStatus
protected

ハンドル

HANDLE FVCL::Video::CFvVideoFVC08::m_Timeout
protected

タイムアウト値


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