Stream Grabber Parameters#
本主題說明與串流擷取器相關的參數。
一般參數#
存取模式#
當 AccessMode 此參數表示當前應用程式存取該裝置的方式:
Control: 該應用程式擁有對裝置的控制權。其他應用程式仍可 監視器 該裝置,並可要求接管控制權或取得該裝置的專屬存取權限。Exclusive: 該應用程式擁有對裝置的專屬存取權限。沒有其他應用程式可以 控制或監控 該裝置。Monitor: 該應用程式具有 監測,也就是說,對該裝置的存取為唯讀模式。NotInitialized: 尚未初始化對該裝置的存取權限。
此參數為唯讀。
自動封包大小#
請使用 AutoPacketSize 用於優化透過乙太網路傳輸的資料封包大小的參數。
當參數設定為 true, 攝影機會自動協商封包大小,以找出最大的封包大小。
要取得當前封包大小,請取得 GevSCPSPacketSize 參數中選擇性地指定 HTML 記錄檔 (*.html) 的路徑與檔名。
使用大封包可降低傳輸影像時的開銷。最大封包大小取決於網路硬體及其設定。
最大緩衝區大小#
請使用 MaxBufferSize 用於指定用於擷取影像之緩衝區最大大小(以位元組為單位)的參數。
抓取應用程式必須在開始抓取之前設定此參數。
緩衝區的最大數量#
請使用 MaxNumBuffer 此參數用於指定可同時用於擷取影像的緩衝區最大數量。
最大傳輸大小#
請使用 MaxTransferSize 此參數用於指定 USB 資料傳輸的最大大小(以位元組為單位)。預設值適用於大多數應用程式。若要降低 CPU 負載,請增加此數值。
若應用程式無法接收影像串流,可能需要降低 USB 主機轉接器驅動程式的數值。最大數值取決於作業系統。
最大排隊中的 URB 數量#
請使用 NumMaxQueuedUrbs 此參數用於指定可同時排入佇列的 USB 請求區塊 (URB) 最大數量。
提高此數值雖可提升穩定性並減少抖動,但會消耗主機電腦更多的資源。
若您遇到與系統記憶體不足相關的錯誤訊息(例如「無法探測並鎖定緩衝區=0xe2010130」或「無法提交傳輸狀態=0xe2100001」),降低此數值可能會有所幫助。
接收執行緒優先級覆寫#
請使用 ReceiveThreadPriorityOverride 此參數用於讓接收傳入串流封包的執行緒能夠被指派自訂優先級。僅在 套接字驅動程式 。
若要設定優先級,請使用 ReceiveThreadPriority 參數中選擇性地指定 HTML 記錄檔 (*.html) 的路徑與檔名。
接收執行緒優先級#
請使用 ReceiveThreadPriority 用於設定接收執行緒優先級的參數。僅在 套接字驅動程式 。
要設定優先級,請將 ReceiveThreadPriorityOverride 此參數必須設定為 true.
套接字緩衝區大小#
請使用 SocketBufferSize 用於設定套接字緩衝區大小(單位為千位元組)的參數。僅在 套接字驅動程式 。
Status#
當 Status 此參數表示串流擷取器的當前狀態:
Closed: 串流擷取工具已關閉。Locked: 串流擷取工具已被鎖定。NotInitialized: 串流擷取器尚未初始化。Open: 串流擷取工具已開啟。
此參數為唯讀。
傳輸迴路執行緒優先級#
請使用 TransferLoopThreadPriority 用於指定處理來自串流介面的 USB 請求之執行緒的優先級的參數。
在 pylon 中,有兩個屬於 USB 傳輸層的執行緒,一個負責影像 URB(USB 請求區塊),另一個則負責事件 URB。傳輸層會將 URB 排入 xHCI 驅動程式的佇列,並輪詢匯流排以檢索已送達的 URB。
您可以透過 TransferLoopThreadPriority 參數中選擇性地指定 HTML 記錄檔 (*.html) 的路徑與檔名。
在Windows 上,預設情況下,該參數設定為以下值:
- 25若主應用程式是以系統管理員權限執行時。
- 若主應用程式是以非管理員權限執行,則為15 或以下。
在Linux 和 macOS 上,預設參數值與參數值範圍可能有所不同。
傳輸迴圈的優先級應始終高於抓取引擎執行緒的優先級(InternalGrabEngineThreadPriority 參數)以及抓取迴圈執行緒的優先級(GrabLoopThreadPriority 參數)。
如需更多資訊,請參閱《pylon API 文件》中的「高階效能應用程式設定」章節。
GigE Vision 驅動程式類型#
請使用 Type 用於設定主機應用程式 GigE Vision 驅動程式類型的參數:
WindowsFilterDriver: 主應用程式使用 pylon GigE Vision 濾鏡驅動程式.WindowsPerformanceDriver(在 pylon 7.1 版本中已廢棄):主應用程式使用 pylon GigE Vision 效能驅動程式.SocketDriver: 主應用程式使用 pylon GigE Vision 插槽驅動程式.RDMADriver: 主應用程式使用 pylon RDMA 驅動程式.NoDriverAvailable: 未安裝合適的驅動程式。無法設定驅動程式類型。
有關驅動程式類型的更多資訊,請參閱「驅動程式」。
類型:提供插座驅動程式#
當 TypeIsSocketDriverAvailable 此參數用以指示是否 pylon GigE Vision 插槽驅動程式 目前為「有」(1)或「無」(0)。
類型:Windows 濾波驅動程式已提供#
當 TypeIsWindowsFilterDriverAvailable 此參數用以指示是否 pylon GigE Vision 濾鏡驅動程式 目前為「有」(1)或「無」(0)。
類型:Windows 已推出 Intel Performance 驅動程式#
當 TypeIsWindowsIntelPerformanceDriverAvailable 此參數用以指示是否 pylon GigE Vision 效能驅動程式 目前為「有」(1)或「無」(0)。
封包重傳機制參數#
封包重傳機制(僅限 GigE Vision)可透過偵測並重傳遺失的資料封包,來優化網路效能。
Pylon GigE Vision 濾波器與插槽驅動程式具備先進且穩健的封包重傳機制。
這些功能允許進行微調,並可連續發送多項重傳請求,直到達到請求的上限為止。
若驅動程式偵測到封包(例如:領導封包、有效載荷封包或尾標封包)遺失,它會等待一段指定的時間。若封包未在指定時間內送達,驅動程式可能會發送一個或多個重傳請求,以嘗試取回遺失的封包。
若連續的一組有效載荷封包遺失,驅動程式將自動針對該組遺失封包發出單一「批次重傳請求」。此外,若某個重傳請求被判定為遺失,驅動程式可能會自動針對該重傳請求發出重傳請求。
啟用重新發送功能#
請使用 EnableResend 用於啟用或停用目前所選項目之封包重傳機制 GigE Vision 驅動程式類型.
封包超時#
請使用 PacketTimeout 用於指定濾波器驅動程式在發起重傳請求之前,會等待下一個預期封包多長時間(以毫秒為單位)的參數。
請確保該參數設定的時間間隔比封包間延遲更長。
幀保留#
請使用 FrameRetention 此參數用於指定接收一個幀中所有封包所需的最大時間(以毫秒為單位)。計時器會在收到第一個封包時開始計時。若傳輸未能在指定時間內完成,則該幀將以「失敗」狀態傳送。
重新傳送請求的最大數量#
請使用 MaximumNumberResendRequests 用以指定每遺失一個封包時,最多可重新傳送的請求次數。
防火牆穿越間隔#
請使用 FirewallTraversalInterval 用以防止防火牆阻擋 GigE Vision 封包的參數。
此參數適用於串流擷取器與事件擷取器,即用於處理 GigE Vision 串流協定 (GVSP) 封包與訊息通道來源埠 (MCSP) 封包。必須針對這兩種封包類型分別進行設定。如需更多資訊,請參閱下方的程式碼範例。
若啟用此功能,抓取器將傳送特定封包以模擬流量對話,藉此避免遭防火牆攔截。
預設情況下,在特定串流會話期間,GVSP 封包每 10 秒傳送一次,而 MCSP 封包則每 30 秒傳送一次。
您可以將此參數設定為毫秒單位,以針對您的防火牆進行最佳化。
當 FirewallTraversalInterval 若此參數設定為零,則「防火牆穿越」功能將被視為已停用。
串流目標參數#
以下參數(僅限 GigE Vision)可讓您設定串流擷取器應將擷取到的資料傳送至何處。
串流擷取器可將串流資料傳送至特定裝置,或傳送至網路中的多個裝置。
變速箱類型#
請使用 TransmissionType 用於定義串流資料在網路內如何傳輸的參數。您可以將此參數設定為以下值:
-
Unicast(預設):串流資料會傳送至一個 單一 本地網路中的裝置,通常是攝影機的 GigE 網路介面卡(參見 目的地地址). 其他裝置無法接收串流資料。 -
LimitedBroadcast: 串流資料會傳送至 所有 本地網路中的裝置(255.255.255.255),即使這些裝置無意接收串流資料。在大型本地網路中,此做法會消耗大量網路頻寬。若要使用此傳輸類型,您必須設定 控制與監控應用程式. -
SubnetDirectedBroadcasting: 串流資料會傳送至 所有 位於同一處的裝置 子網 即使裝置對接收串流資料不感興趣,仍會將其視為攝影機。若子網規模較小,此舉可節省網路頻寬。由於子網外的裝置無法接收串流資料,此傳輸方式在某些情況下(例如出於安全考量)可能相當實用。對於子網定向廣播,串流擷取器會使用子網廣播位址。子網廣播位址是透過將攝影機的 IP 位址與攝影機子網掩碼的位元補數進行位元或運算而獲得的(請參閱「目的位址」)。若要使用此傳輸類型,您必須設定控制與監控應用程式。
資訊
- 若要設定攝影機的 IP 位址和子網遮罩,請使用pylon 指令 IP Configurator 。
- 如需進一步了解 IP 位址、子網路遮罩及子網路廣播位址的相關資訊,請造訪「線上 IP 子網路計算機」網站。
-
Multicast: 串流資料會傳送至 已選取 本地網路中的裝置。由於資料僅會傳送給有興趣接收該資料的裝置,因此可節省網路頻寬。此外,您还可以精確指定要將資料傳送給哪些裝置。若要使用多播,請將 串流目的地位址 必須設定為多播群組位址(224.0.0.0 至 239.255.255.255)。此外,您還必須設定 控制與監控應用程式. 接著,pylon API 會自動建立並管理一個多播群組,供其他裝置加入。-
UseCameraConfig: 串流傳輸設定是從攝影機讀取而來的。僅當您想要設定一個 監控應用程式.
控制與監控應用#
在使用有限廣播、子網定向廣播或多播時,通常會希望將影像資料流從一台攝影機傳送至多個目的地。
為達成此目標,您必須設定恰好一個控制應用程式以及一個或多個監控應用程式。
- 控制應用程式負責啟動和停止影像擷取,亦可變更相機設定。
- 監控應用程式會接收串流資料。監控應用程式以唯讀模式開啟攝影機。這表示它們無法啟動或停止影像擷取,也無法變更攝影機的設定。
為了進行測試,您可以將一個「pylon Viewer 」實例用作控制應用程式,並將另一個「pylon Viewer 」實例用作監控應用程式。
若要將「pylon Viewer 」的不同實例用作控制與監控應用程式:
- 啟動「pylon Viewer 」,並開啟一個 GigE 裝置。
- 啟動另一個pylon Viewer 實例。此實例將作為監控應用程式:
- Windows:啟動「pylon Viewer 」。在「pylon Viewer 」的「裝置」窗格中,右鍵點擊步驟 1 中開啟的 GigE 裝置,然後點擊「開啟裝置 …」>「監控模式」。
- Linux: 在命令列中,請輸入:
/opt/pylon5/bin/PylonViewerApp -m - macOS: 在命令列中,請輸入:
./Applications/pylon Viewer.app/Contents/MacOS/pylon Viewer -m
資訊
有關設定控制與監控應用程式的更多資訊,請參閱《pylon API 》文件中的「GigE 多播/廣播」章節。
目的地地址#
當 DestinationAddr 此參數指定串流擷取器將所有串流資料傳送至的 IP 位址。
該參數的值與存取模式取決於 TransmissionType 參數值:
| 傳輸類型 參數 值 | DestinationAddr 參數值 | 目標位址存取模式 |
|---|---|---|
Unicast | 攝影機 GigE 網路介面卡的 IP 位址 | 唯讀 |
LimitedBroadcast | 255.255.255.255 | 唯讀 |
SubnetDirectedBroadcasting | (攝影機的 IP 位址) OR NOT (攝影機的子網掩碼) | 唯讀 |
Multicast | 預設值:239.0.0.1 允許範圍:224.0.0.0 至 239.255.255.255a | 讀/寫 |
-
此範圍內的部分位址已被保留。若您不確定,請使用 239.255.0.0 至 239.255.255.255 之間的位址。根據 RFC 2365 的規定,此範圍被指定為本地管理位址空間。
Destination Port#
當 DestinationPort 此參數指定串流擷取器將所有串流資料傳送至的連接埠。
若將此參數設定為 0,pylon 會自動選取一個未使用的埠。
如需更多資訊,請參閱《pylon API 文件》中的「選擇目的埠」一節。
統計參數#
pylon API 提供了一系列統計參數,讓您可以檢查相機是否設定正確、硬體組件是否合適,以及系統是否運作良好。
相機啟動時,所有統計參數均設定為 0。在持續擷取影像的過程中,這些參數會持續更新,以提供相關資訊,例如遺失的影像或擷取不完整的緩衝區。
緩衝區不足計數#
當 Statistic_Buffer_Underrun_Count 此參數用於統計因佇列中無緩衝區而導致的丟失幀數。
每當接收到一張影像時,該參數值便會增加;但由於驅動程式輸入佇列中沒有可用的空閒緩衝區,因此該幀影像便會遺失。
緩衝區失敗次數#
當 Statistic_Failed_Buffer_Count 此參數用以統計回傳狀態為「失敗」的緩衝區數量,也就是說,這些是未完全抓取完畢的緩衝區。
在 GigE 攝影機上,緩衝區抓取不完全的錯誤代碼為 0xE1000014;在 USB 3.0 攝影機上,則為 0xE2000212。
失敗封包數#
當 Statistic_Failed_Packet_Count 此參數用於統計由串流擷取器成功接收,但被攝影機報告為「失敗」的封包數量。
封包被報告為「失敗」的最常見原因,是攝影機無法滿足封包重傳請求。例如,當請求的資料已被攝影機記憶體中的新影像資料覆寫時,就會發生這種情況。
「失敗封包數」不會將因所有重傳請求均告失敗而被視為遺失的封包計入其中。在此情況下,「失敗緩衝區數」將會增加,但「失敗封包數」則不會增加。
上一個區塊 ID#
當 Statistic_Last_Block_Id 此參數表示最後擷取的區塊 ID。
上次失敗的緩衝區狀態#
當 Statistic_Last_Failed_Buffer_Status 此參數表示最後一個失敗緩衝區的狀態碼。
上次緩衝區失敗狀態的文字#
當 Statistic_Last_Failed_Buffer_Status_Text 此參數表示讀取或寫入操作的最後一個錯誤狀態。
遺漏幀數#
當 Statistic_Missed_Frame_Count 此參數用來計算因相機的內部幀緩衝區已滿而遭跳過的已擷取幀數。
許多 Basler 攝影機均配備幀緩衝區,可儲存數個完整的影像幀。若「漏幀數」過高,表示主機控制器不支援該攝影機的頻寬,也就是說,主機控制器未能及時讀取已擷取的影像。這會導致攝影機將影像暫存於其內部幀緩衝區中。當內部幀緩衝區已滿時,攝影機便會開始跳過新擷取的感測器資料。
重新傳送封包數#
當 Statistic_Resend_Packet_Count 此參數用於計算由重傳請求所觸發的封包數量。
資訊
若您正在使用 Filter Driver,且該驅動程式尚未收到幀的「引導封包」(即標示幀起始的封包),則該驅動程式將忽略整個幀。系統既不會發出重傳請求,也不會增加任何統計參數。這意味著,若「引導封包」遺失,整個幀將會在未被察覺的情況下遺失。Basler 建議檢查FrameCounter 區塊,以偵測遺失的幀。
重新發送請求次數#
當 Statistic_Resend_Request_Count 此參數用於統計已發送的封包重傳請求次數。
視驅動程式類型及串流擷取器的設定而定,串流擷取器可能會針對一個遺失的封包發送多項請求,也可能針對多個封包發送一項請求。因此,「重傳請求次數」與「重傳封包數」很可能會有差異。
重新同步次數#
當 Statistic_Resynchronization_Count 此參數用來統計串流重新同步的次數。
若主機在串流過程中出現不同步的情況,它會啟動重新同步程序,並清空攝影機的內部緩衝區。
若主機請求具有特定 ID 序列的串流封包,但裝置傳送的封包序列卻不一致,主機可能會出現同步失調的情況。當攝影機與主機之間的連線出現故障時,便可能發生此情況。主機一旦出現同步失調,將導致大量影像遺失。
在 USB 3.0 及USB3 Vision 規格中,主機重新同步被視為最嚴重的錯誤情況。
緩衝區總數#
在 GigE 相機上,該 Statistic_Total_Buffer_Count 此參數統計以「成功」或「失敗」狀態回傳的緩衝區數量,也就是所有成功擷取或擷取未完成的緩衝區。在其他攝影機(例如 USB 攝影機)上,則統計已處理的緩衝區數量。
在 GigE 攝影機上,緩衝區抓取不完全的錯誤代碼為 0xE1000014;在 USB 3.0 攝影機上,則為 0xE2000212。
總封包數#
當 Statistic_Total_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# 兩種語言版本。
您也可以 use the pylon Viewer 來輕鬆設定參數。