コンテンツにスキップ

ストリームグラバーのパラメーター#

pylon APIでは、ストリームグラバーが画像データの取得、バッファリング、転送の処理を管理します。

この項では、ストリームグラバーに関連するパラメーターについて説明します。

General Parameters#

Access Mode#

AccessModeパラメーターは、次に示す、現在のアプリケーションのデバイスに対するアクセスモードを示します。

  • Control:アプリケーションは、デバイスへのアクセスを制御します。他のアプリケーションでもデバイスを監視でき、制御の引き継ぎやデバイスへの排他的アクセスを要求できます。
  • Exclusive:アプリケーションは、排他的にデバイスにアクセスします。他のアプリケーションはデバイスを制御または監視できません。
  • Monitor:アプリケーションは、デバイスに監視(読み取り専用)アクセスできます。
  • NotInitialized:デバイスへのアクセスが初期化されていません。

このパラメーターは読み取り専用です。

Auto Packet Size#

イーサネット経由で転送されるデータパケットのサイズを最適化するには、AutoPacketSizeパラメーターを使用します。

パラメーターがtrueに設定されている場合、カメラはパケットサイズを自動的にネゴシエートして、可能な最大パケットサイズを見つけます。

現在のパケットサイズを取得するには、GevSCPSPacketSizeパラメーターの値を取得します。

大きなパケットを使用すると、画像転送のオーバーヘッドが減少します。最大パケットサイズは、ネットワークハードウェアとその設定によって異なります。

Maximum Buffer Size#

MaxBufferSizeパラメーターを使用して、イメージの取得に使用するバッファーの最大サイズ(バイト単位)を指定します。

グラブ開始前に、グラブアプリケーションにより、このパラメーターを設定する必要があります。

Maximum Number of Buffers#

MaxNumBufferパラメーターを使用して、画像の取得に同時に使用できるバッファーの最大数を指定します。

Maximum Transfer Size#

MaxTransferSizeパラメーターを使用して、USBデータ転送の最大サイズをバイト単位で指定します。デフォルト値は、ほとんどのアプリケーションに適しています。値を大きくすると、CPU負荷が低下します。

アプリケーションがイメージストリームを受信できない場合、USBホストアダプタードライバーは値を小さくする必要があります。最大値はオペレーティングシステムによって異なります。

Num Max Queued URBs#

NumMaxQueuedUrbsパラメーターを使用して、同時にエンキューされるUSB要求ブロック(URB)の最大数を指定します。

この値を大きくすると、安定性が向上し、ジッターを低減できますが、ホストコンピューター上でより多くのリソースが必要になります。

「Failed to probe and lock buffer=0xe2010130」や「Failed to submit transfer status=0xe2100001」などのシステムメモリー不足に関するエラーメッセージが表示される場合に、この値を小さくすると有効なことがあります。

Receive Thread Priority Override#

着信ストリームパケットを受信するスレッドにカスタムプライオリティを割り当てるには、ReceiveThreadPriorityOverrideパラメーターを使用します。ソケットドライバーが使用されている場合にのみ使用できます。

プライオリティを割り当てるには、ReceiveThreadPriorityパラメーターを使用します。

Receive Thread Priority#

ReceiveThreadPriorityパラメーターを使用して、受信スレッドのスレッド優先度を設定します。ソケットドライバーが使用されている場合にのみ使用できます。

プライオリティを割り当てるには、ReceiveThreadPriorityOverrideパラメーターをtrueに設定する必要があります。

Socket Buffer Size#

SocketBufferSizeパラメーターを使用して、ソケットバッファーサイズをキロバイト単位で設定します。ソケットドライバーが使用されている場合にのみ使用できます。

Status#

Statusパラメーターは、次に示すストリームグラバーの現在のステータスを示します。

  • Closed:ストリームグラバーが閉じられています。
  • Locked:ストリームグラバーがロックされています。
  • NotInitializedストリームグラバーが初期化されていません。
  • Open:ストリームグラバーが開いています。

このパラメーターは読み取り専用です。

転送ループスレッドの優先度#

TransferLoopThreadPriorityパラメーターを使用して、ストリームインターフェースからのUSB要求を処理するスレッドの優先順位を指定します。

pylonには、USBトランスポート層に属する2つのスレッドがあります。1つは画像URB(USB要求ブロック)用で、もう1つはイベントURB用です。トランスポート層は、URBをxHCIドライバーにエンキューし、配信されたURBのバスをポーリングします。

両スレッドの優先度は、TransferLoopThreadPriorityパラメーターを使用して制御できます。

Windowsでは、デフォルトで、パラメーターが次の値に設定されています。

  • 25(ホストアプリケーションが管理者権限実行されている場合)。
  • 15以下(ホストアプリケーションが管理者権限なしで実行されている場合)。

LinuxおよびmacOSでは、デフォルトのパラメーター値とパラメーター値の範囲が異なる場合があります。

転送ループのプライオリティは、常にグラブエンジンスレッドのプライオリティ(InternalGrabEngineThreadPriorityパラメーター)およびグラブループスレッドのプライオリティ(GrabLoopThreadPriorityパラメーター)より高くする必要があります。

詳細については、「pylon APIドキュメント」の「アプリケーションの高パフォーマンス設定」セクションを参照してください。

GigEビジョンドライバーのタイプ#

Typeパラメーターを使用して、ホストアプリケーションのGigE Vision ドライバータイプを設定します。

  • WindowsFilterDriver:ホストアプリケーションは、pylon GigE Vision Filter Driverを使用します。
  • WindowsPerformanceDriver(pylonバージョン7.1で廃止予定):ホストアプリケーションは、pylon GigE Vision Performance Driverを使用します。
  • SocketDriver:ホストアプリケーションは、pylon GigE Vision Socket Driverを使用します。
  • NoDriverAvailable:適切なドライバーがインストールされていません。ドライバータイプを設定できません。

ドライバータイプの詳細については、「ドライバー」を参照してください。

タイプ:ソケットドライバーが使用可能#

TypeIsSocketDriverAvailableパラメーターは、pylon GigE Vision Socket Driverが現在使用できる(1)か、使用できない(0)かを示します。

タイプ:Windowsフィルタードライバーが使用可能#

TypeIsWindowsFilterDriverAvailableパラメーターは、pylon GigE Vision Filter Driverが現在使用できる(1)か、使用できない(0)かを示します。

タイプ:Windows Intelパフォーマンスドライバーが使用可能#

TypeIsWindowsIntelPerformanceDriverAvailableパラメーターは、pylon GigE Vision Performance Driverが現在使用できる(1)か、使用できない(0)かを示します。

パケット再送信機能パラメーター#

パケット再送信メカニズム(GigE Visionのみ)は、欠落しているデータパケットを検出して再送信することで、ネットワークパフォーマンスを最適化します。

pylon GigE Vision Filter DriverおよびSocket Driverには、高度で堅牢なパケット再送信メカニズムがあります。

これにより、微調整が可能になります。また、最大要求数に達するまで、連続して再送信要求を送信できます。

ドライバーがパケット(リーダー、ペイロード、またはトレーラーパケットなど)が欠落していることを検出すると、指定された時間待機します。指定された時間内にパケットが到着しない場合、ドライバーは1つ以上の再送信要求を送信し、失われたパケットを取得しようとすることがあります。

ペイロードパケットの連続範囲が欠落している場合、ドライバーは、欠落しているパケットの範囲に対して、1つの「バッチ再送信要求」を自動的に送信します。さらに、ドライバーは、失われたと見なされた再送信要求について、再送信要求を自動的に送信する場合があります。

Enable Resends#

EnableResendパラメーターを使用して、現在選択されているタイプのGigE Visionドライバーのパケット再送信メカニズムを有効または無効にします。

Packet Timeout#

PacketTimeoutパラメーターを使用して、フィルタードライバーが再送要求を開始する前に次の予想パケットを待機する時間(ミリ秒単位)を指定します。

このパラメーターがパケット間遅延よりも長い時間間隔に設定されていることを確認します。

Frame Retention#

フレームのすべてのパケットを受信する最大時間をミリ秒単位で指定するには、FrameRetentionパラメーターを使用します。タイマーは、最初のパケットが受信されると開始されます。指定された時間内に送信が完了しない場合、対応するフレームはステータス「Failed」で送信されます。

Maximum Number of Resend Requests#

MaximumNumberResendRequestsパラメーターを使用して、欠落しているパケットごとの再送要求の最大数を指定します。

Firewall Traversal間隔#

ファイアウォールがGigE Visionパケットをブロックしないようにするには、FirewallTraversalIntervalパラメーターを使用します。

このパラメーターは、ストリームグラバーとイベントグラバーの両方で使用できます。つまり、GigE Vision Streaming Protocol(GVSP)パケットとMessage Channel Source Port(MCSP)パケットを処理します。両方のタイプのパケットに対して個別に設定する必要があります。詳細については、次のコードサンプルを参照してください。

有効の場合、グラバーは、ファイアウォールによるブロックを防止するトラフィックカンバセーションをシミュレートする特定のパケットを送信します。

デフォルトでは、ストリーミングセッション中に、GVSPパケットの場合は10秒ごと、MCSPパケットの場合は30秒ごとにパケットが送信されます。

このパラメーターをミリ秒単位で設定して、ファイアウォールに合わせて最適化できます。

FirewallTraversalIntervalパラメーターがゼロに設定されている場合、Firewall Traversal機能は無効と見なされます。

ストリーム宛先パラメーター#

次のパラメーター(GigE Visionのみ)を使用すると、グラブされたデータをストリームグラバーから送信する場所を設定できます。

ストリームグラバーは、ストリームデータを1つの特定のデバイスまたはネットワーク内の複数のデバイスに送信できます。

トランスミッションタイプ#

TransmissionTypeパラメーターを使用して、ネットワーク内でのストリームデータの転送方法を定義します。パラメーターは次の値に設定できます。

  • Unicast(デフォルト):ストリームデータは、ローカルネットワーク内の1つのデバイス(通常はカメラのGigEネットワークアダプター)に送信されます(宛先アドレスを参照)。他のデバイスはストリームデータを受信できません。

    ユニキャストルーティング方式

  • LimitedBroadcast:ストリームデータの受信が必要ない場合でも、ストリームデータはローカルネットワーク(255.255.255.255)内のすべてのデバイスに送信されます。大規模なローカルネットワークでは、これは大量のネットワーク帯域幅を使用します。この送信タイプを使用するには、制御および監視アプリケーションを設定する必要があります。

    ブロードキャストルーティングスキーム

  • SubnetDirectedBroadcasting:ストリームデータは、ストリームデータの受信が必要ない場合でも、カメラと同じサブネット内のすべてのデバイスに送信されます。サブネットが小さい場合は、ネットワーク帯域幅が節約される可能性があります。サブネット外のデバイスはストリームデータを受信できないため、この送信タイプはセキュリティなどに役立つ場合があります。

    サブネット指定ブロードキャストルーティングスキーム

    サブネット指定ブロードキャストの場合、ストリームグラバーはサブネットブロードキャストアドレスを使用します。サブネットブロードキャストアドレスは、カメラのIPアドレスとカメラのサブネットマスクのビット補数の間でビット単位のORを実行することによって取得されます(「宛先アドレス」を参照)。この送信タイプを使用するには、制御および監視アプリケーションを設定する必要があります。

    情報

    • カメラのIPアドレスとサブネットマスクを設定するには、pylon IP Configuratorを使用します。
    • IPアドレス、サブネットマスク、サブネットブロードキャストアドレスの詳細については、Online IP Subnet Calculatorウェブサイトをご覧ください。
  • Multicast:ストリームデータは、ローカルネットワーク内の選択されたデバイスに送信されます。これにより、データを受信する必要があるデバイスにのみデータが送信されるため、ネットワーク帯域幅が節約されます。また、データを送信するデバイスを正確に指定することもできます。

    Multicast Routing Scheme

    マルチキャストを使用するには、ストリームの宛先アドレスをマルチキャストグループアドレス(224.0.0.0~239.255.255.255)に設定する必要があります。また、制御アプリケーションと監視アプリケーションを設定する必要があります。その後、pylon APIは他のデバイスが参加できるマルチキャストグループの作成と管理を自動的に行います。- UseCameraConfig:ストリーム伝送設定がカメラから読み込まれます。このオプションは、モニタリングアプリケーションを設定する場合にのみ使用します。

制御および監視アプリケーション#

リミテッドブロードキャスト、サブネット指定ブロードキャスト、またはマルチキャストを使用する場合、通常は1台のカメラから複数の宛先に画像データストリームを送信します。

これを実現するには、1つの制御アプリケーションと1つ以上の監視アプリケーションを設定する必要があります。

  • 制御アプリケーションでは、画像取得を開始および停止します。カメラの設定を変更することもできます。
  • 監視アプリケーションでは、ストリームデータを受信します。監視アプリケーションは、カメラを読み取り専用モードで開きます。つまり、画像取得を開始および停止したり、カメラ設定を変更したりすることはできません。

試験目的で、pylon Viewerの1つのインスタンスを制御アプリケーションとして使用し、pylon Viewerの別のインスタンスを監視アプリケーションとして使用できます。

pylon Viewerの異なるインスタンスをアプリケーションの制御および監視として使用するには、次の手順を実行します。

  1. pylon Viewerを起動し、GigEデバイスを開きます。
  2. 次の手順に従って、pylon Viewerの別のインスタンスを開始します。これは監視アプリケーションとして機能します。
    • Windows:pylon Viewerを起動します。pylon ViewerのDevicesペインで、手順1で開いたGigEデバイスを右クリックしてから、Open Device … > Monitor Modeの順にクリックします。
    • Linux:コマンドラインで、/opt/pylon5/bin/PylonViewerApp -mと入力します。
    • macOS:コマンドラインで、./Applications/pylon Viewer.app/Contents/MacOS/pylon Viewer -mと入力します。

情報

制御アプリケーションと監視アプリケーションのセットアップの詳細については、「pylon APIドキュメント」の「GigEマルチキャスト/ブロードキャスト」セクションを参照してください。

Destination Address#

DestinationAddrパラメーターは、ストリームグラバーがすべてのストリームデータを送信する先のIPアドレスを示します。

パラメーターの値とアクセスモードは、TransmissionTypeパラメーターの値によって異なります。

TransmissionTypeパラメーター値 DestinationAddrパラメーター値 DestinationAddrアクセスモード
ユニキャスト GigEカメラネットワークアダプターのIPアドレス 読み取り専用
LimitedBroadcast 255.255.255.255 読み取り専用
SubnetDirectedBroadcasting (カメラのIPアドレス)またはそうでない(カメラのサブネットマスク) 読み取り専用
Multicast デフォルト:239.0.0.1
許容範囲:224.0.0.0~239.255.255.255a
読み取り/書き込み

  1. この範囲の一部のアドレスは予約されています。不明な場合は、239.255.0.0~239.255.255.255のアドレスを使用します。この範囲は、ローカルで管理されるアドレス空間としてRFC 2365により割り当てられます。

Destination Port#

DestinationPortパラメーターは、ストリームグラバーがすべてのストリームデータを送信する先のポートを示します。

パラメーターが0に設定されている場合、pylonは自動的に未使用のポートを選択します。

詳細については、「pylon APIドキュメント」の「送信先ポートの選択」セクションを参照してください。

統計パラメーター#

pylon APIには、カメラが正しく設定されているかどうか、ハードウェアコンポーネントが適切かどうか、システムのパフォーマンスを確認できる統計パラメーターが用意されています。

カメラのスタートアップ時には、すべての統計パラメーターが0に設定されています。画像を継続的に取得している間、パラメーターは継続的に更新され、失われた画像や不完全にグラブされたバッファーなどについて情報が提供されます。

Buffer Underrun Count#

Statistic_Buffer_Underrun_Countパラメーターは、キューにバッファーがなかったために失われたフレームの数をカウントします。

パラメーター値は、イメージが受信されると増加しますが、キューに入っている空きバッファーがドライバー入力キューにないため、フレームが失われます。

Failed Buffer Count#

Statistic_Failed_Buffer_Countパラメーターは、ステータスが「失敗」で返された(不完全にグラブされた)バッファーの数をカウントします。

不完全にグラブされたバッファーのエラーコードは、GigEカメラでは0xE1000014、USB 3.0カメラでは0xE2000212です。

Failed Packet Count#

Statistic_Failed_Packet_Countパラメーターは、ストリームグラバーによって正常に受信されたが、カメラによって「失敗」と報告されたパケットをカウントします。

パケットが「失敗」と報告される最も一般的な理由は、パケット再送要求がカメラで満たされなかったことです。これは、要求されたデータがカメラのメモリー内の新しい画像データによってすでに上書きされている場合などに発生します。

Failed Packet Countは、すべての再送要求が失敗したために失われたと見なされるパケットをカウントしません。この場合、Failed Buffer Countは増加しますが、Failed Packet Countは増加しません。

Last Block ID#

Statistic_Last_Block_Idパラメーターは、最後にグラブされたブロックIDを示します。

Last Failed Buffer Status#

Statistic_Last_Failed_Buffer_Statusパラメーターは、最後に失敗したバッファーのステータスコードを示します。

Last Failed Buffer Status Text#

Statistic_Last_Failed_Buffer_Status_Textパラメーターは、読み取りまたは書き込み操作の最後のエラーステータスを示します。

Missed Frame Count#

Statistic_Missed_Frame_Countパラメーターは、カメラの内部フレームバッファーがすでにいっぱいだったために、取得されたがスキップされたフレームの数をカウントします。

多くのBaslerカメラは、完全なフレームを複数保存できるフレームバッファーを搭載しています。Missed Frame Countが多い場合は、ホストコントローラーがカメラの帯域幅をサポートしていないことを示しています。つまり、ホストコントローラーは、時間内に取得した画像を取り込みません。これにより、カメラは内部フレームバッファーに画像をバッファーするようになります。内部フレームバッファーがいっぱいになると、カメラは新しく取得したセンサーデータをスキップし始めます。

Resend Packet Count#

Statistic_Resend_Packet_Countパラメーターは、再送要求によって要求されたパケット数をカウントします。

情報

Filter Driverを使用していて、ドライバーがフレームの「リーダー」、つまりフレームの先頭を示すパケットを受信していない場合、フレーム全体が無視されます。再送要求は送信されず、統計パラメーターは増加しません。これは、「リーダー」パケットが失われた場合、フレーム全体が通知なしに失われることを意味します。Baslerは、Frame Counterチャンクを確認して、失われたフレームを検出することをおすすめします。

Resend Request Count#

Statistic_Resend_Request_Countパラメーターは、送信されたパケット再送要求の数をカウントします。

ドライバータイプとストリームグラバーの設定によっては、ストリームグラバーは1つの欠落したパケットに対して複数の要求を送信するか、複数のパケットに対して1つの要求を送信することがあります。したがって、Resend Request CountとResend Packet Countは異なる場合があります。

Resynchronization Count#

Statistic_Resynchronization_Countパラメーターは、ストリームの再同期数をカウントします。

ストリーミングプロセス内でホストの同期が解除されると、再同期が開始され、カメラの内部バッファーがフラッシュされます。

特定のシーケンスのIDを持つストリームパケットを要求すると、ホストの同期が解除されることがありますが、デバイスは別のシーケンスを持つパケットを送信します。これは、カメラとホストの間の接続に障害がある場合に起こることがあります。ホストが同期していないと、大量の画像が失われます。

ホストの再同期は、USB 3.0およびUSB3 Vision仕様で最も重大なエラー事例と見なされます。

合計バッファー数#

On GigE cameras, the Statistic_Total_Buffer_Count parameter counts the number of buffers that returned with "success" or "failed" status, i.e., all successfully or incompletely grabbed buffers. On other cameras, e.g., USB cameras, the number of buffers processed is counted.

不完全にグラブされたバッファーのエラーコードは、GigEカメラでは0xE1000014、USB 3.0カメラでは0xE2000212です。

合計パケット数#

Statistic_Total_Packet_Countパラメーターは、Failed Packet Countを含む「失敗」と報告されたパケットを含む、すべての受信されたパケットをカウントします。

サンプルコード#

// ** General Parameters **
// Access Mode
AccessModeEnums accessMode = camera.GetStreamGrabberParams().AccessMode.GetValue();
// Auto Packet Size
camera.GetStreamGrabberParams().AutoPacketSize.SetValue(true);
// Maximum Buffer Size
camera.GetStreamGrabberParams().MaxBufferSize.SetValue(131072);
// Maximum Number of Buffers
camera.GetStreamGrabberParams().MaxNumBuffer.SetValue(16);
// Maximum Transfer Size
camera.GetStreamGrabberParams().MaxTransferSize.SetValue(1048568);
// Num Max Queued Urbs
camera.GetStreamGrabberParams().NumMaxQueuedUrbs.SetValue(64);
// Receive Thread Priority Override
camera.GetStreamGrabberParams().ReceiveThreadPriorityOverride.SetValue(true);
// Receive Thread Priority
camera.GetStreamGrabberParams().ReceiveThreadPriority.SetValue(15);
// Socket Buffer Size (socket driver only)
camera.GetStreamGrabberParams().SocketBufferSize.SetValue(2048);
// Status
StatusEnums streamGrabberStatus = camera.GetStreamGrabberParams().Status.GetValue();
// Transfer Loop Thread Priority
camera.GetStreamGrabberParams().TransferLoopThreadPriority.SetValue(15);
// Type of GigE Vision Filter Driver
camera.GetStreamGrabberParams().Type.SetValue(Type_WindowsIntelPerformanceDriver);
// Type: Socket Driver Available
int64_t i = camera.GetStreamGrabberParams().TypeIsWindowsIntelPerformanceDriverAvailable.GetValue();
// Type: Windows Filter Driver Available
int64_t i = camera.GetStreamGrabberParams().TypeIsWindowsFilterDriverAvailable.GetValue();
// Type: Windows Intel Performance Driver Available
int64_t i = camera.GetStreamGrabberParams().TypeIsSocketDriverAvailable.GetValue();
// ** Packet Resend Mechanism Parameters **
// Enable Resends
camera.GetStreamGrabberParams().EnableResend.SetValue(true);
// Packet Timeout
camera.GetStreamGrabberParams().PacketTimeout.SetValue(40);
// Frame Retention
camera.GetStreamGrabberParams().FrameRetention.SetValue(200);
// Maximum Number of Resend Requests
camera.GetStreamGrabberParams().MaximumNumberResendRequests.SetValue(25);
// Firewall Traversal Interval
camera.GetStreamGrabberParams().FirewallTraversalInterval.SetValue(10000);
camera.GetEventGrabberParams().FirewallTraversalInterval.SetValue(30000);
// ** Stream Destination Parameters **
// Transmission Type
camera.GetStreamGrabberParams().TransmissionType.SetValue(TransmissionType_Unicast);
// Destination Address
GenICam::gcstring destinationAddr = camera.GetStreamGrabberParams().DestinationAddr.GetValue();
// Destination Port
camera.GetStreamGrabberParams().DestinationPort.SetValue(0);
// ** Statistics Parameters **
// Buffer Underrun Count
int64_t bufferUnderrunCount = camera.GetStreamGrabberParams().Statistic_Buffer_Underrun_Count.GetValue();
// Failed Buffer Count
int64_t failedBufferCount = camera.GetStreamGrabberParams().Statistic_Failed_Buffer_Count.GetValue();
// Failed Packet Count
int64_t failedPacketCount = camera.GetStreamGrabberParams().Statistic_Failed_Packet_Count.GetValue();
// Last Block ID
int64_t lastBlockId = camera.GetStreamGrabberParams().Statistic_Last_Block_Id.GetValue();
// Last Failed Buffer Status
int64_t lastFailedBufferStatus = camera.GetStreamGrabberParams().Statistic_Last_Failed_Buffer_Status.GetValue();
// Last Failed Buffer Status Text
GenICam::gcstring lastFailedBufferStatusText = camera.GetStreamGrabberParams().Statistic_Last_Failed_Buffer_Status_Text.GetValue();
// Missed Frame Count
int64_t missedFrameCount = camera.GetStreamGrabberParams().Statistic_Missed_Frame_Count.GetValue();
// Resend Request Count
int64_t resendRequestCount = camera.GetStreamGrabberParams().Statistic_Resend_Request_Count.GetValue();
// Resend Packet Count
int64_t resendPacketCount = camera.GetStreamGrabberParams().Statistic_Resend_Packet_Count.GetValue();
// Resynchronization Count
int64_t resynchronizationCount = camera.GetStreamGrabberParams().Statistic_Resynchronization_Count.GetValue();
// Total Buffer Count
int64_t totalBufferCount = camera.GetStreamGrabberParams().Statistic_Total_Buffer_Count.GetValue();
// Total Packet Count
int64_t totalPacketCount = camera.GetStreamGrabberParams().Statistic_Total_Packet_Count.GetValue();
// ** General Parameters **
// Access Mode
string accessMode = camera.Parameters[PLStream.AccessMode].GetValue();
// Auto Packet Size
camera.Parameters[PLStream.AutoPacketSize].SetValue(true);
// Maximum Buffer Size
camera.Parameters[PLStream.MaxBufferSize].SetValue(131072);
// Maximum Number of Buffers
camera.Parameters[PLStream.MaxNumBuffer].SetValue(16);
// Maximum Transfer Size
camera.Parameters[PLStream.MaxTransferSize].SetValue(1048568);
// Num Max Queued Urbs
camera.Parameters[PLStream.NumMaxQueuedUrbs].SetValue(64);
// Receive Thread Priority Override
camera.Parameters[PLStream.ReceiveThreadPriorityOverride].SetValue(true);
// Receive Thread Priority
camera.Parameters[PLStream.ReceiveThreadPriority].SetValue(15);
// Socket Buffer Size (socket driver only)
camera.Parameters[PLStream.SocketBufferSize].SetValue(2048);
// Status
string streamGrabberStatus = camera.Parameters[PLStream.Status].GetValue();
// Transfer Loop Thread Priority
camera.Parameters[PLStream.TransferLoopThreadPriority].SetValue(15);
// Type of GigE Vision Filter Driver
camera.Parameters[PLStream.Type].SetValue(PLStream.Type.WindowsIntelPerformanceDriver);
// Type: Socket Driver Available
Int64 performanceDriverAvailable = camera.Parameters[PLStream.TypeIsWindowsIntelPerformanceDriverAvailable].GetValue();
// Type: Windows Filter Driver Available
Int64 filterDriverAvailable = camera.Parameters[PLStream.TypeIsWindowsFilterDriverAvailable].GetValue();
// Type: Windows Intel Performance Driver Available
Int64 socketDriverAvailable = camera.Parameters[PLStream.TypeIsSocketDriverAvailable].GetValue();
// ** Packet Resend Mechanism Parameters **
// Enable Resends
camera.Parameters[PLStream.EnableResend].SetValue(true);
// Packet Timeout
camera.Parameters[PLStream.PacketTimeout].SetValue(40);
// Frame Retention
camera.Parameters[PLStream.FrameRetention].SetValue(200);
// Maximum Number of Resend Requests
camera.Parameters[PLStream.MaximumNumberResendRequests].SetValue(25);
// Firewall Traversal Interval
camera.Parameters[PLStream.FirewallTraversalInterval].SetValue(10000);
camera.Parameters[PLEventGrabber.FirewallTraversalInterval].SetValue(30000);
// ** Stream Destination Parameters **
// Transmission Type
camera.Parameters[PLStream.TransmissionType].SetValue(PLStream.TransmissionType.Unicast);
// Destination Address
string destinationAddr = camera.Parameters[PLStream.DestinationAddr].GetValue();
// Destination Port
camera.Parameters[PLStream.DestinationPort].SetValue(0);
// ** Statistics Parameters **
// Buffer Underrun Count
Int64 bufferUnderrunCount = camera.Parameters[PLStream.Statistic_Buffer_Underrun_Count].GetValue();
// Failed Buffer Count
Int64 failedBufferCount = camera.Parameters[PLStream.Statistic_Total_Buffer_Count].GetValue();
// Failed Packet Count
Int64 failedPacketCount = camera.Parameters[PLStream.Statistic_Failed_Packet_Count].GetValue();
// Last Block ID
Int64 lastBlockId = camera.Parameters[PLStream.Statistic_Last_Block_Id].GetValue();
// Last Failed Buffer Status
Int64 lastFailedBufferStatus = camera.Parameters[PLStream.Statistic_Last_Failed_Buffer_Status].GetValue();
// Last Failed Buffer Status Text
string lastFailedBufferStatusText = camera.Parameters[PLStream.Statistic_Last_Failed_Buffer_Status_Text].GetValue();
// Missed Frame Count
Int64 missedFrameCount = camera.Parameters[PLStream.Statistic_Missed_Frame_Count].GetValue();
// Resend Packet Count
Int64 resendPacketCount = camera.Parameters[PLStream.Statistic_Resend_Packet_Count].GetValue();
// Resend Request Count
Int64 resendRequestCount = camera.Parameters[PLStream.Statistic_Resend_Request_Count].GetValue();
// Resynchronization Count
Int64 resynchronizationCount = camera.Parameters[PLStream.Statistic_Resynchronization_Count].GetValue();
// Total Buffer Count
Int64 totalBufferCount = camera.Parameters[PLStream.Statistic_Total_Buffer_Count].GetValue();
// Total Packet Count
Int64 totalPacketCount = camera.Parameters[PLStream.Statistic_Total_Packet_Count].GetValue();

このサンプルコードは、C++およびC#言語でのみ使用できます。

pylon Viewerを使用して、パラメーターを簡単に設定することもできます。