跳至內容
測試伺服器
開發伺服器

Transport Layer Parameters#

在 pylon API 中,「傳輸層」一詞用於指代實體介面,例如 GigE 或 Camera Link。

pylon API 提供對多種不同傳輸層的存取:

  • PylonGigE 用於使用 GigE Vision 協定的 Gigabit Ethernet 相機
  • PylonUsb 用於符合 USB3 Vision 標準的相機
  • PylonCLSer 用於使用 CL 串列介面的 Camera Link 相機(僅限相機組態;不適用於 Linux 和 macOS 平臺)

本主題說明與傳輸層相關的參數。

一般參數#

Command Duplication Enable#

請使用 CommandDuplicationEnable 用於啟用傳送所有命令以及接收所有確認兩次的參數。此選項僅在發生網路問題時才應啟用。

GenDC Streaming Mode#

影像 GenDCStreamingMode 參數設定裝置的串流格式,亦即它決定裝置在影像擷取期間輸出傳統影像酬載還是 GenDC 容器:

  • Off:資料以其原生格式進行串流傳輸(例如作為傳統的 GigE Vision 或 USB 3.0 Vision 影像酬載)。
  • On:資料以 GenDC 格式進行串流傳輸,亦即相機傳輸自我描述的 GenDC 容器,這些容器將資料以及解讀該資料所需的詮釋資料組合在一起,且不受傳輸介面(GigE、USB 3.0、CoaXPress 等)的影響。
  • Automatic:裝置會根據目前的組態與功能自動選取最合適的串流行為。

GenDC Streaming Status#

影像 GenDC Streaming Status 參數表示目前裝置的串流格式:

  • Off:資料以原生格式進行串流(例如作為傳統的 GigE Vision 或 USB3 Vision 影像酬載)。Gen DC Streaming Mode 參數設定為 Off.
  • On:資料以 GenDC 格式進行串流。 GenDCStreamingMode 參數已設定為 On.

此參數為唯讀。

GEV Streaming Mode#

影像 GevStreamingMode 參數表示用於傳輸 GigE Vision 相機影像資料的串流協定:

  • GVSP:使用 GVSP 串流協定。
  • GVRSP:使用 GVRSP 串流協定。

Heartbeat Timeout#

影像 HeartbeatTimeout 參數指定 heartbeat timeout 位於主機端。

此參數相當於 GevHeartbeatTimeout 參數,該參數可在相機端設定 heartbeat timeout。

影像 HeartbeatTimeout 和 GevHeartbeatTimeout 參數會自動同步。如果您變更其中一個參數,另一個參數也會隨之變更。

Maximum Retry Count Read#

請使用 MaxRetryCountRead 參數可用於指定讀取作業逾時後,讀取作業的最大重試次數。

Maximum Retry Count Write#

請使用 MaxRetryCountWrite 參數可用於指定讀取作業逾時後,寫入作業的最大重試次數。

Migration Mode Enable#

請使用 MigrationModeEnable 參數可用於啟用將特定 SFNC 1.x 節點名稱對應至 SFNC 2.x 節點名稱的功能。這可讓您為相容於不同 SFNC (Standard Features Naming Convention) 版本的相機裝置編寫程式碼。

如需詳細資訊,請參閱 pylon API Documentation 中的 Migrating Existing Code for Using SFNC 2.x-Based Camera Devices 一節。

Read Timeout#

請使用 ReadTimeout 參數可用於以毫秒為單位指定讀取存取逾時值。

如果執行 GigE Vision Control Protocol 命令的時間比預期長,調整此數值會很有幫助。

Write Timeout#

請使用 WriteTimeout 參數可用於以毫秒為單位指定寫入存取逾時值。

如果執行 GigE Vision Control Protocol 命令的時間比預期長,調整此數值會很有幫助。

統計參數#

Last Error Status#

影像 Statistic_Last_Error_Status 參數表示讀取或寫入作業的最後錯誤狀態。

Last Error Status Text#

影像 Statistic_Last_Error_Status_Text 參數表示最後失敗緩衝區的狀態碼。

Read Operations Failed Count#

影像 Statistic_Read_Operations_Failed_Count 參數會計算失敗的讀取作業次數。

Read Pipe Reset Count#

影像 Statistic_Read_Pipe_Reset_Count 此 parameter 用於計算讀取管線重設的次數。

Read Write Timeout Count#

影像 StatisticReadWriteTimeoutCount 此 parameter 用於計算在等待來自裝置的回應時,讀取與寫入作業期間的逾時次數。

Write Operations Failed Count#

影像 Statistic_Write_Operations_Failed_Count 此 parameter 用於計算失敗的寫入作業次數。

Write Pipe Reset Count#

影像 Statistic_Write_Pipe_Reset_Count 此 parameter 用於計算寫入管線重設的次數。

範例程式碼#

// ** General Parameters **
// Command Duplication Enable
camera.GetTLParams().CommandDuplicationEnable.SetValue(true);
// Heartbeat Timeout
camera.GetTLParams().HeartbeatTimeout.SetValue(3000);
// Maximum Retry Count Read
camera.GetTLParams().MaxRetryCountRead.SetValue(2);
// Maximum Retry Count Write
camera.GetTLParams().MaxRetryCountWrite.SetValue(2);
// Migration Mode Enable
camera.GetTLParams().MigrationModeEnable.SetValue(true);
// Read Timeout
camera.GetTLParams().ReadTimeout.SetValue(500);
// Write Timeout
camera.GetTLParams().WriteTimeout.SetValue(500);
// ** Statistics Parameters **
// Last Error Status
int64_t lastErrorStatus = camera.GetTLParams().Statistic_Last_Error_Status.GetValue();
// Last Error Status Text
GenICam::gcstring lastErrorStatusText = camera.GetTLParams().Statistic_Last_Error_Status_Text.GetValue();
// Read Operations Failed Count
int64_t readOperationsFailedCount = camera.GetTLParams().Statistic_Read_Operations_Failed_Count.GetValue();
// Read Pipe Reset Count
int64_t readPipeResetCount = camera.GetTLParams().Statistic_Read_Pipe_Reset_Count.GetValue();
// Read Write Timeout Count
int64_t writePipeResetCount = camera.GetTLParams().StatisticReadWriteTimeoutCount.GetValue();
// Write Operations Failed Count
int64_t writeOperationsFailedCount = camera.GetTLParams().Statistic_Write_Operations_Failed_Count.GetValue();
// Write Pipe Reset Count
int64_t writePipeResetCount = camera.GetTLParams().Statistic_Write_Pipe_Reset_Count.GetValue();
// ** General Parameters **
// Command Duplication Enable
camera.Parameters[PLTransportLayer.CommandDuplicationEnable].SetValue(true);
// Heartbeat Timeout
camera.Parameters[PLTransportLayer.HeartbeatTimeout].SetValue(3000);
// Maximum Retry Count Read
camera.Parameters[PLTransportLayer.MaxRetryCountRead].SetValue(2);
// Maximum Retry Count Write
camera.Parameters[PLTransportLayer.MaxRetryCountWrite].SetValue(2);
// Migration Mode Enable
camera.Parameters[PLTransportLayer.MigrationModeEnable].SetValue(true);
// Read Timeout
camera.Parameters[PLTransportLayer.ReadTimeout].SetValue(500);
// Write Timeout
camera.Parameters[PLTransportLayer.WriteTimeout].SetValue(500);
// ** Statistics Parameters **
// Last Error Status
Int64 lastErrorStatus = camera.Parameters[PLTransportLayer.Statistic_Last_Error_Status].GetValue();
// Last Error Status Text
string lastErrorStatusText = camera.Parameters[PLTransportLayer.Statistic_Last_Error_Status_Text].GetValue();
// Read Operations Failed Count
Int64 readOperationsFailedCount = camera.Parameters[PLTransportLayer.Statistic_Read_Operations_Failed_Count].GetValue();
// Read Pipe Reset Count
Int64 readPipeResetCount = camera.Parameters[PLTransportLayer.Statistic_Read_Pipe_Reset_Count].GetValue();
// Read Write Timeout Count
Int64 writePipeResetCount = camera.Parameters[PLTransportLayer.StatisticReadWriteTimeoutCount].GetValue();
// Write Operations Failed Count
Int64 writeOperationsFailedCount = camera.Parameters[PLTransportLayer.Statistic_Write_Operations_Failed_Count].GetValue();
// Write Pipe Reset Count
Int64 writePipeResetCount = camera.Parameters[PLTransportLayer.Statistic_Write_Pipe_Reset_Count].GetValue();

您也可以使用 pylon Viewer 來輕鬆設定參數。