Transport Layer Parameters#
pylon API 提供了對多種不同傳輸層的存取:
- 適用於採用 GigE Vision 協定的千兆乙太網路攝影機之PylonGigE
- 適用於符合USB3 Vision 規格的相機的PylonUsb
- 適用於Camera Link 攝影機且使用CL串列介面的PylonCLSer(僅限攝影機設定;Linux 及macOS平台不支援)
本主題說明與傳輸層相關的參數。
一般參數#
啟用指令重複功能#
請使用 CommandDuplicationEnable 此參數用於啟用將所有指令發送及所有確認訊息接收兩次的功能。此選項僅應在發生網路問題時啟用。
心跳超時#
當 HeartbeatTimeout 此參數指定 心跳超時 在主機端。
此參數等同於 GevHeartbeatTimeout 此參數用於設定攝影機端的心跳超時。
當 HeartbeatTimeout 進行明確的生命週期管理即呼叫 GevHeartbeatTimeout 參數會自動同步。若您變更其中一個參數,另一個參數也會隨之變更。
讀取最大重試次數#
請使用 MaxRetryCountRead 用於指定讀取操作超時後,該讀取操作的最大重試次數的參數。
寫入的最大重試次數#
請使用 MaxRetryCountWrite 用於指定讀取操作超時後,寫入操作的最大重試次數的參數。
啟用遷移模式#
請使用 MigrationModeEnable 此參數用於啟用將特定SFNC 1.x 節點名稱映射至SFNC 2.x 節點名稱的功能。這使您能夠為相容於不同SFNC (標準功能命名規範)版本的攝影機裝置編寫程式碼。
如需更多資訊,請參閱《pylon API 》文件中的「將現有程式碼遷移至使用基於SFNC 2.x 的相機裝置」一節。
讀取超時#
請使用 ReadTimeout 用於指定讀取存取超時值的參數(單位為毫秒)。
若 GigE Vision 控制協定指令的執行時間比預期更長,調整此數值可能會有所幫助。
寫入超時#
請使用 WriteTimeout 用於指定寫入存取超時值的參數(單位為毫秒)。
若 GigE Vision 控制協定指令的執行時間比預期更長,調整此數值可能會有所幫助。
統計參數#
最後的錯誤狀態#
當 Statistic_Last_Error_Status 此參數表示讀取或寫入操作的最後一個錯誤狀態。
最後一次錯誤狀態文字#
當 Statistic_Last_Error_Status_Text 參數表示最後失敗緩衝區的狀態碼。
讀取操作失敗次數#
當 Statistic_Read_Operations_Failed_Count 此參數用以統計讀取操作失敗的次數。
讀取管線重設次數#
當 Statistic_Read_Pipe_Reset_Count 此參數用於統計讀取管道重置的次數。
讀取、寫入超時計數#
當 StatisticReadWriteTimeoutCount 此參數用於統計在讀取和寫入操作期間,等待裝置回應時發生的超時次數。
寫入操作失敗次數#
當 Statistic_Write_Operations_Failed_Count 此參數用於統計寫入操作失敗的次數。
寫入管線重置計數#
當 Statistic_Write_Pipe_Reset_Count 此參數用於統計寫入管道重置的次數。
範例程式碼#
// ** 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();
您也可以 use the pylon Viewer 來輕鬆設定參數。