Stream Grabber Parameters#
本主題說明與 stream grabber 相關的參數。
一般參數#
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) 數量。
增加此值可能會提升穩定性並減少抖動,但需要主機電腦提供更多資源。
如果您收到與系統 Memory 不足相關的錯誤訊息(例如 "Failed to probe and lock buffer=0xe2010130" 或 "Failed to submit transfer status=0xe2100001"),降低此值可能會有所幫助。
Receive Thread Priority Override#
請使用 ReceiveThreadPriorityOverride 此參數可用於為接收傳入串流封包的執行緒指定自訂優先順序。只有在以下情況下可用: socket driver 。
若要指定優先順序,請使用 ReceiveThreadPriority 參數的值。
Receive Thread Priority#
請使用 ReceiveThreadPriority 參數來設定接收執行緒的執行緒優先順序。只有在以下情況下可用: socket driver 。
若要指定優先順序, ReceiveThreadPriorityOverride 參數設定為 true.
Socket Buffer Size#
請使用 SocketBufferSize 參數以 KB 為單位設定 socket buffer 大小。只有在以下情況下可用: socket driver 。
Status#
影像 Status 參數指示串流擷取器的目前狀態:
Closed:串流擷取器已關閉。Locked:串流擷取器已鎖定。NotInitialized:串流擷取器未初始化。Open:串流擷取器已開啟。
此參數為唯讀。
Transfer Loop Thread Priority#
請使用 TransferLoopThreadPriority 參數來指定處理來自串流介面之 USB 要求的執行緒優先順序。
在 pylon 中,屬於 USB 傳輸層的執行緒有兩個:一個用於影像 URB(USB 請求區塊),另一個用於事件 URB。傳輸層將 URB 排入 xHCI driver 的佇列中,並輪詢總線以取得傳遞的 URB。
您可以透過以下方式控制兩個執行緒的優先順序: TransferLoopThreadPriority 參數的值。
在 Windows 上,此參數預設為以下值:
- 若主應用程式是以管理員權限執行,則為 25。
- 若主應用程式是在沒有管理員權限的情況下執行,則為 15 或更低。
在 Linux 和 macOS 上,預設參數值和參數值範圍可能會有所不同。
傳輸迴圈優先順序應始終高於擷取引擎執行緒優先順序(InternalGrabEngineThreadPriority 參數)和擷取迴圈執行緒優先順序(GrabLoopThreadPriority parameter)來達成。
如需詳細資訊,請參閱 pylon API Documentation 中的 Application Settings for High Performance 專區。
Type of GigE Vision Driver#
請使用 Type 參數來設定主應用程式的 GigE Vision driver 類型:
WindowsFilterDriver:主應用程式使用 pylon GigE Vision Filter Driver.WindowsPerformanceDriver(在 pylon 7.1 版本中已棄用):主機應用程式使用 pylon GigE Vision Performance Driver.SocketDriver:主應用程式使用 pylon GigE Vision Socket Driver.RDMADriver:主應用程式使用 pylon RDMA Driver.NoDriverAvailable:未安裝適當的驅動程式。無法設定驅動程式類型。
如需有關驅動程式類型的詳細資訊,請參閱 Drivers。
Type: Socket Driver Available#
影像 TypeIsSocketDriverAvailable 參數表示 pylon GigE Vision Socket Driver 目前是否可用 (1) 或不可用 (0)。
Type: Windows Filter Driver Available#
影像 TypeIsWindowsFilterDriverAvailable 參數表示 pylon GigE Vision Filter Driver 目前是否可用 (1) 或不可用 (0)。
Type: Windows Intel Performance Driver Available#
影像 TypeIsWindowsIntelPerformanceDriverAvailable 參數表示 pylon GigE Vision Performance Driver 目前是否可用 (1) 或不可用 (0)。
Packet Resend Mechanism Parameters#
封包重傳機制(僅限 GigE Vision)透過偵測並重新傳送遺失的資料封包來最佳化網路效能。
pylon GigE Vision Filter Driver 和 Socket Driver 具備先進且強固的封包重傳機制。
它們允許進行微調,並且可以發送多個連續的重傳請求,直到達到最大請求數為止。
如果驅動程式偵測到封包(例如導引封包、有效負荷封包或尾端封包)遺失,它將等待一段指定的時間。如果封包未在指定的時間內到達,驅動程式可能會發送單一或多個重傳請求,以嘗試找回遺失的封包。
如果遺失了連續範圍內的有效負荷封包,驅動程式將自動針對該範圍的遺失封包發送單一「批次重傳請求」。此外,驅動程式也可能會自動針對被認為已遺失的重傳請求再次發送重傳請求。
Enable Resends#
請使用 EnableResend 參數用於啟用或停用目前所選 類型之 GigE Vision 驅動程式.
Packet Timeout#
請使用 PacketTimeout 參數用於指定過濾驅動程式在發起重傳請求之前,等待下一個預期封包的時間(以毫秒為單位)。
請確保該參數設定的時間間隔大於 inter-packet delay。
Frame Retention#
請使用 FrameRetention 參數用於指定接收影格所有封包的最大時間(以毫秒為單位)。當接收到第一個封包時,Timer 即開始計時。如果在指定的時間內未完成傳輸,則對應的影格將以「Failed」狀態傳遞。
Maximum Number of Resend Requests#
請使用 MaximumNumberResendRequests 參數用於指定每個遺失封包的最大重傳請求次數。
Firewall Traversal Interval#
請使用 FirewallTraversalInterval 參數用於防止防火牆阻擋 GigE Vision 封包。
此參數適用於 stream grabber 和 event grabber,即用於處理 GigE Vision Streaming Protocol (GVSP) 封包和 Message Channel Source Port (MCSP) 封包。這兩種封包類型必須分別進行設定。如需詳細資訊,請參閱下方的程式碼範例。
如果啟用,grabber 將發送特定的封包來模擬流量對話,以防止防火牆阻擋。
根據預設,在特定的串流工作階段中,GVSP 封包將每 10 秒發送一次,MCSP 封包將每 30 秒發送一次。
您可以透過毫秒設定此參數,以針對您的防火牆進行最佳化。
當 FirewallTraversalInterval 參數設定為零時,Firewall Traversal 功能將被視為停用。
Stream Destination Parameters#
透過下列參數(僅限 GigE Vision),您可以設定串流擷取卡(stream grabber)要將擷取的資料傳送至何處。
串流擷取卡可將串流資料傳送至網路中的特定裝置或多個裝置。
Transmission Type#
請使用 TransmissionType 用來定義串流資料如何在網路中傳輸的參數。您可以將此參數設定為下列值:
-
Unicast(預設值):串流資料會傳送至本機網路中的 單一 裝置,通常是相機的 GigE 網路介面卡(請參閱 destination address)。其他裝置無法接收串流資料。 -
LimitedBroadcast:串流資料會傳送至 所有 本機網路中的裝置(255.255.255.255),即使這些裝置並不需要接收串流資料亦然。在大型本機網路中,這會佔用大量的網路頻寬。若要使用此傳輸類型,您必須設定 controlling and monitoring applications. -
SubnetDirectedBroadcasting:串流資料會傳送至 所有 與相機位於相同 子網路 中的裝置,即使這些裝置並不需要接收串流資料亦然。如果子網路較小,這可能會節省網路頻寬。由於子網路以外的裝置無法接收串流資料,因此此傳輸類型在基於安全性等考量時非常有用。針對子網路導向廣播,串流擷取卡會使用子網路廣播位址。子網路廣播位址是透過對相機的 IP 位址與相機子網路遮罩的位元補數執行位元運算 OR 來取得(請參閱 destination address)。若要使用此傳輸類型,您必須設定 controlling and monitoring applications。
資訊
- 若要設定相機的 IP 位址與子網路遮罩,請使用 pylon IP Configurator。
- 如需有關 IP 位址、子網路遮罩和子網路廣播位址的詳細資訊,請造訪 Online IP Subnet Calculator 網站。
-
Multicast:串流資料會傳送至 所選的 本機網路中的裝置。這可節省網路頻寬,因為資料只會傳送至那些有興趣接收資料的裝置。此外,您還可以精確指定要將資料傳送至哪些裝置。若要使用多點傳送(multicast), stream destination address 必須設為多點傳送群組位址(224.0.0.0 至 239.255.255.255)。此外,您必須設定 controlling and monitoring applications。然後,pylon API 會自動負責建立和管理其他裝置可以加入的多點傳送群組。-
UseCameraConfig:從相機讀取串流傳輸組態。僅當您想要設定 監控應用程式.
Controlling and Monitoring Applications#
當使用受限廣播、子網路導向廣播或多點傳送時,您通常會希望將影像資料串流從一台相機傳送到多個目的地。
為了實現此目的,您必須設定剛好一個控制應用程式以及一個或多個監控應用程式。
- 控制應用程式會啟動和停止影像擷取。它也可以變更相機組態。
- 監控應用程式會接收串流資料。監控應用程式會以唯讀模式開啟相機。這表示它們無法啟動和停止影像擷取或變更相機組態。
出於測試目的,您可以使用 pylon Viewer 的一個實例作為控制應用程式,並使用 pylon Viewer 的另一個實例作為監控應用程式。
若要將 pylon Viewer 的不同實例用作控制和監控應用程式:
- 啟動 pylon Viewer 並開啟 GigE 裝置。
- 啟動 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 Multicast/Broadcast 區段。
Destination Address#
影像 DestinationAddr 參數表示串流擷取卡將所有串流資料傳送到的 IP 位址。
該參數的值和存取模式取決於 TransmissionType 參數值:
| TransmissionType 參數值 | DestinationAddr 參數值 | 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 | Read/Write |
-
此範圍中的某些位址已保留。如果您不確定,請使用 239.255.0.0 與 239.255.255.255 之間的位址。此範圍由 RFC 2365 指定為本機管理的位址空間。
Destination Port#
影像 DestinationPort 參數表示串流擷取器 (stream grabber) 將所有串流資料發送至的連接埠。
如果參數設為 0,pylon 會自動選擇未使用的連接埠。
如需詳細資訊,請參閱 pylon API Documentation 中的 Selecting a Destination Port 一節。
統計參數#
pylon API 提供統計參數,可讓您檢查相機是否設定正確、硬體元件是否適當,以及系統效能是否良好。
在相機啟動時,所有統計參數均設為 0。在持續擷取影像時,會持續更新這些參數,以提供例如遺失的影像或擷取不完整的緩衝區等相關資訊。
Buffer Underrun Count#
影像 Statistic_Buffer_Underrun_Count 參數會計算因佇列中沒有緩衝區而遺失的影格數。
每當接收到影像,但在驅動程式輸入佇列中沒有排隊的可用緩衝區,因而導致影格遺失時,參數值就會增加。
Failed Buffer Count#
影像 Statistic_Failed_Buffer_Count 參數會計算狀態傳回「failed」的緩衝區數量,也就是擷取不完整的緩衝區。
擷取不完整緩衝區的錯誤代碼在 GigE 相機上為 0xE1000014,在 USB 3.0 相機上為 0xE2000212。
Failed Packet Count#
影像 Statistic_Failed_Packet_Count 參數會計算串流擷取器成功接收,但被相機回報為「failed」的封包。
封包被回報為「failed」的最常見原因,是相機無法滿足封包重傳 (resend) 請求。例如,如果請求的資料已經被相機 Memory 內的新影像資料覆蓋,就會發生這種情況。
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 且驅動程式尚未收到影格的「前導碼」(leader)(即表示影格開頭的封包),它將忽略整個影格。將不會發送重傳請求,也不會增加統計參數。這表示如果「前導碼」封包遺失,整個影格將在毫無預警的情況下遺失。Basler 建議檢查 Frame Counter chunk 以偵測遺失的影格。
Resend Request Count#
影像 Statistic_Resend_Request_Count 參數會計算發送的封包重傳請求數。
根據 driver type 與串流擷取器設定,串流擷取器可能會針對一個遺失的封包發送多個請求,或者可能會針對多個封包發送一個請求。因此,Resend Request Count 與 Resend Packet Count 很可能會不同。
Resynchronization Count#
影像 Statistic_Resynchronization_Count 參數會計算串流重新同步的次數。
如果主機在串流傳輸過程中失去同步,它會啟動重新同步,並且會清除相機的內部緩衝區。
如果主機請求具有特定 ID 序列的串流封包,但裝置傳遞的封包序列不同,主機可能會失去同步。當相機與主機之間的連線發生故障時,可能會發生這種情況。主機失去同步會導致大量的影像遺失。
在 USB 3.0 和 USB3 Vision 規範中,主機重新同步被視為最嚴重的錯誤情況。
Total Buffer Count#
在 GigE 相機上, Statistic_Total_Buffer_Count 參數會計算傳回「成功」或「失敗」狀態的緩衝區數量,也就是所有成功或未完全擷取的緩衝區。在其他相機(例如 USB 相機)上,則會計算已處理的緩衝區數量。
擷取不完整緩衝區的錯誤代碼在 GigE 相機上為 0xE1000014,在 USB 3.0 相機上為 0xE2000212。
Total Packet Count#
影像 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 來輕鬆設定參數。