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(デバイス無効)
この状態では、デバイスとの接続が失われています。IsDeviceValid は false を返します。
| プロパティ | 値 |
|---|---|
| IsDeviceOpen | true |
| IsDeviceValid | false |
DeviceClose を呼び出すと、Grabber は 初期状態 に戻ります。


