Grabberの状態

Grabber オブジェクトは、そのライフサイクルの中で複数の状態へ遷移します。
現在の Grabber の状態は、以下の状態確認用関数群を通じて確認できます。

初期状態

初期状態では、Grabber はまだビデオキャプチャデバイスをオープンしていません。

プロパティ
IsDeviceOpen false
IsDeviceValid false
IsStreaming false
IsAcquisitionActive false

DeviceClose を呼び出すと、Grabber は常に 初期状態 に戻ります。
DeviceOpen またはその関連関数を使用してデバイスをオープンすると、Grabber は Device Opened(デバイスオープン)状態 に遷移します。

Device Opened(デバイスオープン)

この状態ではデバイスはオープンされていますが、まだストリーミングは開始されていません。デバイスをオープンした後は、ストリーミングに必要な設定を行うために、デバイスを構成する必要があります。

プロパティ
IsDeviceOpen true
IsDeviceValid true
IsStreaming false
IsAcquisitionActive false

DeviceClose を呼び出すと、Grabber は 初期状態 に戻ります。

StreamSetup またはその関連関数を呼び出すと、Grabber の状態は Streaming(ストリーミング) に遷移します。呼び出し時の setupOption パラメータに AcquisitionStart が設定されている場合、取得処理は直ちに開始され、Grabber の状態は Acquisition Active(取得アクティブ) に移行します。

デバイスとの接続が失われた場合(例:デバイスが取り外された場合)、Grabber は Device Invalid(デバイス無効) 状態に遷移します。 また同時に、DeviceLost イベントが発生します。

Streaming(ストリーミング)

この状態では、デバイスとホスト間のストリーミング接続が確立されています。デバイスが画像データを送信し、ホストがそれを受信するための準備がすべて整っています。

プロパティ
IsDeviceOpen true
IsDeviceValid true
IsStreaming true
IsAcquisitionActive false

取得を開始するには、AcquisitionStart を呼び出すか、デバイスのプロパティマップ内で AcquisitionStart コマンドを実行します。 その後、Grabber は Acquisition Active(取得アクティブ) 状態になります。

StreamStop を呼び出すとデータストリームが停止され、Grabber は Device Opened(デバイスオープン)状態 に戻ります。

DeviceClose を呼び出すと、データストリームが停止され、デバイスがクローズされ、Grabber は 初期状態 に戻ります。

デバイスとの接続が失われた場合(例:デバイスが取り外された場合)、Grabber は Device Invalid(デバイス無効) 状態に遷移します。 また同時に、DeviceLost イベントが発生します。

Acquisition Active(取得アクティブ)

この状態では、デバイスがホストに対して画像を送信しています。

プロパティ
IsDeviceOpen true
IsDeviceValid true
IsStreaming true
IsAcquisitionActive true

なお、TriggerMode などのデバイス設定によっては、デバイスが一時的に送信を停止する場合があります。

取得を停止するには、AcquisitionStop を呼び出すか、デバイスのプロパティマップ内で AcquisitionStop コマンドを実行します。 その後、Grabber は Streaming(ストリーミング) 状態になります。

StreamStop を呼び出すと、デバイス側の取得が停止され、 データストリームが停止し、Grabber は Device Opened(デバイスオープン)状態 に戻ります。

DeviceClose を呼び出すと、データストリームが停止され、デバイスがクローズされ、Grabber は 初期状態 に戻ります。

デバイスとの接続が失われた場合(例:デバイスが取り外された場合)、Grabber は Device Invalid(デバイス無効) 状態に遷移します。 また同時に、DeviceLost イベントが発生します。

Device Invalid(デバイス無効)

この状態では、デバイスとの接続が失われています。IsDeviceValidfalse を返します。

プロパティ
IsDeviceOpen true
IsDeviceValid false

DeviceClose を呼び出すと、Grabber は 初期状態 に戻ります。