Transport Layer 파라미터#
pylon API 는 여러 가지 전송 계층에 대한 액세스를 제공합니다:
- GigE Vision 프로토콜을 사용하는 기가비트 이더넷 카메라용 PylonGigE
- USB3 Vision 규격을 준수하는 카메라용 PylonUsb
- CL 직렬 인터페이스를 사용하는 Camera Link 용 PylonCLSer (카메라 구성 기능으로만 제한됨; Linux 및 macOS 플랫폼에서는 사용 불가)
이 항목에서는 전송 계층과 관련된 매개변수에 대해 설명합니다.
General Parameters#
명령 중복 허용#
다음 명령을 사용하여 CommandDuplicationEnable 모든 명령을 두 번 전송하고 모든 확인 응답을 두 번 수신하도록 설정하는 매개변수입니다. 이 옵션은 네트워크 문제가 발생한 경우에만 활성화해야 합니다.
Heartbeat Timeout#
The HeartbeatTimeout 이 매개변수는 다음을 지정합니다. 하트비트 타임아웃 호스트 측에서.
이 매개변수는 다음과 동일합니다. GevHeartbeatTimeout 카메라 측에서 하트비트 타임아웃을 설정하는 매개변수입니다.
The HeartbeatTimeout 및 GevHeartbeatTimeout 매개변수는 자동으로 동기화됩니다. 한 매개변수를 변경하면 다른 매개변수도 그에 따라 변경됩니다.
읽기 작업의 최대 재시도 횟수#
다음 명령을 사용하여 MaxRetryCountRead 읽기 작업이 시간 초과된 후 해당 읽기 작업에 대한 재시도 횟수의 최대값을 지정하는 매개변수입니다.
쓰기 최대 재시도 횟수#
다음 명령을 사용하여 MaxRetryCountWrite 읽기 작업이 시간 초과된 후 쓰기 작업에 대한 최대 재시도 횟수를 지정하는 매개변수입니다.
마이그레이션 모드 활성화#
다음 명령을 사용하여 MigrationModeEnable 특정 SFNC 1.x 노드 이름을 SFNC 2.x 노드 이름으로 매핑할 수 있도록 하는 매개변수입니다. 이를 통해 다양한 버전의 SFNC (표준 기능 명명 규칙)과 호환되는 카메라 장치용 코드를 작성할 수 있습니다.
자세한 내용은 ‘ pylon API ’ 문서의 “ SFNC 2.x 기반 카메라 장치를 사용하기 위한 기존 코드 마이그레이션” 섹션을 참조하십시오.
읽기 타임아웃#
다음 명령을 사용하여 ReadTimeout 읽기 액세스 타임아웃 값을 밀리초 단위로 지정하는 매개변수입니다.
GigE Vision 제어 프로토콜 명령의 실행에 예상보다 시간이 오래 걸리는 경우, 이 값을 조정하면 도움이 될 수 있습니다.
쓰기 타임아웃#
다음 명령을 사용하여 WriteTimeout 쓰기 액세스 타임아웃 값을 밀리초 단위로 지정하는 매개변수입니다.
GigE Vision 제어 프로토콜 명령의 실행에 예상보다 시간이 오래 걸리는 경우, 이 값을 조정하면 도움이 될 수 있습니다.
Statistics Parameters#
마지막 오류 상태#
The Statistic_Last_Error_Status 이 매개변수는 읽기 또는 쓰기 작업의 마지막 오류 상태를 나타냅니다.
마지막 오류 상태 메시지#
The Statistic_Last_Error_Status_Text 이 매개변수는 마지막으로 오류가 발생한 버퍼의 상태 코드를 나타냅니다.
작업 실패 횟수 읽기#
The Statistic_Read_Operations_Failed_Count 이 매개변수는 읽기 작업 실패 횟수를 집계합니다.
파이프 재설정 횟수 읽기#
The Statistic_Read_Pipe_Reset_Count 이 매개변수는 읽기 파이프 재설정 횟수를 집계합니다.
읽기/쓰기 타임아웃 횟수#
The StatisticReadWriteTimeoutCount 이 매개변수는 장치로부터 응답을 기다리는 동안 읽기 및 쓰기 작업 중 발생한 타임아웃 횟수를 집계합니다.
쓰기 작업 실패 횟수#
The Statistic_Write_Operations_Failed_Count 이 매개변수는 실패한 쓰기 작업의 횟수를 집계합니다.
파이프 재설정 횟수 기록#
The 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();
pylon Viewer를 사용하여 파라미터를 손쉽게 설정할 수도 있습니다.