Precision Time Protocol#
IEEE 1588 표준은 해당 프로토콜을 정의합니다. Basler 카메라는 PTP Version 2로도 알려진 IEEE 1588-2008을 지원합니다.
정보
PTP 동기화의 정밀도는 주로 네트워크 하드웨어와 설정에 따라 달라집니다. 최대의 정밀도를 얻으려면 고품질 네트워크 하드웨어를 선택하고, PTP 지원 네트워크 스위치를 사용하며, GPS 수신기가 포함된 외부 PTP 클록 장치를 네트워크에 추가하십시오.
기능 사용법#
PTP를 사용하는 이유#
Precision Time Protocol (PTP) 기능을 사용하면 사용 가능한 경우 카메라에서 다음과 같은 기능을 사용할 수 있습니다.
작동 원리#
PTP를 통해 여러 장치(예: 카메라)가 네트워크에서 가장 정확한 클록, 즉 마스터 클록 또는 베스트 마스터 클록이라고 하는 클록에 자동으로 동기화됩니다.
이 프로토콜을 통해 네트워크 내의 시스템은 다음 작업을 수행할 수 있습니다.
- Synchronize 마스터 클록과의 동기화, 즉 로컬 클록을 마스터 클록의 시간과 최대한 정확하게 맞춥니다.
- Syntonize 마스터 클록과의 주파수 동기화, 즉 로컬 클록의 주파수를 마스터 클록의 주파수에 맞게 조정합니다. 두 장치에서 1초의 지속 시간이 최대한 동일하도록 설정해야 합니다.
마스터 클록은 여러 가지 기준으로 결정됩니다. 가장 우선순위가 높은 기준은 장치의 Priority 1 설정입니다.
Timestamp 동기화#
Precision Time Protocol(IEEE 1588)의 기본 개념은 PTP 메시지 교환에 기반합니다. 이러한 메시지를 통해 슬레이브 클록은 다음을 동기화할 수 있습니다. 타임스탬프 마스터 클록의 Timestamp 값과 값입니다. Basler 카메라의 경우 이는 다음과 같음을 의미합니다. TimestampLatchValue 파라미터 값이 최대한 동일하게 유지됩니다. 정밀도는 네트워크 하드웨어 및 설정에 따라 크게 달라집니다.
네트워크의 어떤 장치도 협정 세계시(예: TAI 또는 UTC)에 동기화되어 있지 않은 경우, 네트워크는 임의 시계 모드(ARB)로 작동합니다. 이 모드에서는 절대 시간에 구속되지 않으므로 에포크(epoch)가 임의로 지정됩니다. 시계열은 상대적이며 이 네트워크 내에서만 유효합니다.
정보
- IEEE 1588은 시간 정보를 저장하고 전송하기 위해 80비트 Timestamp를 정의합니다. GigE Vision은 64비트 Timestamp를 사용하므로 PTP Timestamp는 GigE Vision의 64비트 Timestamp에 매핑됩니다.
- 다른 PTP 지원 장치가 없는 네트워크에서 작동하는 PTP 지원 장치는 로컬 클록을 규율하지 않습니다. 로컬 클록의 정밀도는 PTP를 지원하지 않는 장치와 동일합니다.
- Precision Time Protocol에 대한 자세한 내용은 동기식 및 실시간: GigE 네트워크에서의 멀티 카메라 애플리케이션 백서를 참조하십시오.
PTP 클록 동기화 활성화#
카메라 전원을 켤 때 PTP는 항상 비활성화되어 있습니다. PTP를 사용하려면 활성화해야 합니다.
PTP를 활성화하려면:
- 외부 장치(예: GPS 수신기)를 마스터 클록으로 사용하려면 해당 외부 장치를 마스터 클록으로 구성하십시오.
Basler에서는 ANNOUNCE 간격을 2초, SYNC 간격을 0.5초로 설정할 것을 권장합니다. - PTP를 통해 동기화하려는 모든 카메라가 올바르게 구성되었는지 확인하십시오.
- PTP를 통해 동기화하려는 모든 카메라에서 다음을 설정합니다.
GevIEEE1588매개변수:true. - 모든 PTP 네트워크 장치가 충분히 동기화될 때까지 Wait하십시오. 네트워크 설정에 따라 몇 초 또는 몇 분이 걸릴 수 있습니다.
장치가 동기화된 시점은 PTP 클록 동기화 상태 확인을 통해 파악할 수 있습니다.
이제 PTP 지원 카메라 기능을 사용할 수 있습니다.
정보
ace Classic/U/L 카메라에서는 PTP 클록 동기화를 활성화하면 카메라의 내부 틱 주파수가 125 MHz(= 8 ns 틱 지속 시간)에서 1 GHz(= 1 ns 틱 지속 시간)로 변경됩니다. Inter-packet Delay 및 Frame Transmission Delay 파라미터 값은 자동으로 조정됩니다.
다른 카메라의 경우 틱 주파수는 항상 1 GHz입니다.
PTP 클록 동기화 구성#
카메라 모델에 따라 다음 설정을 사용할 수 있습니다.
Priority 1#
PTP가 활성화된 네트워크에서 마스터 클럭은 여러 기준으로 결정됩니다. 가장 중요한 기준은 디바이스의 Priority 1 설정입니다. Priority 1 설정 값이 가장 낮은 네트워크 디바이스가 마스터 클럭이 됩니다.
On ace 2 및 dart M 카메라, 카메라가 마스터 클럭이 되도록 강제하거나 마스터 클럭이 되지 못하도록 Priority 1 설정을 변경할 수 있습니다. 이렇게 하려면 BslPtpPriority1 파라미터를 0(최우선 순위)에서 255(최하위 우선 순위) 사이의 값으로 설정하십시오.
다른 카메라에서는 Priority 1 설정이 128로 사전 설정되어 있어 변경할 수 없습니다.
정보
마스터 클럭 기준에 대한 자세한 내용은 IEEE 1588-2008 사양의 7.6.2.2절을 참조하십시오.
PTP 지연 메커니즘#
지연 측정 메커니즘은 네트워크 내에서 PTP 지연 측정 메시지가 송수신되는 방식을 정의합니다. PTP 표준은 종단간(E2E, "지연 요청-응답"이라고도 함) 및 피어투피어(P2P)의 두 가지 메커니즘을 정의합니다. 자세한 내용은 이 문서를 참조하십시오.
On ace 2 및 dart M 카메라, 지연 측정 메커니즘을 변경할 수 있습니다. 이렇게 하려면 BslPtpProfile 매개변수: DelayRequestResponseDefaultProfile (기본값) 또는 PeerToPeerDefaultProfile.
다른 카메라에서는 지연 측정 메커니즘이 종단간으로 사전 설정되어 있어 변경할 수 없습니다.
정보
네트워크 모드#
네트워크 모드 설정은 PTP 메시지가 네트워크 내에서 전송되는 방식을 정의합니다.
On ace 2 카메라, 네트워크 모드를 변경할 수 있습니다. 이렇게 하려면 BslPtpNetworkMode 매개변수를 다음 값 중 하나로 설정합니다:
Multicast: PTP 멀티캐스팅용으로 구성된 로컬 네트워크의 모든 디바이스로 PTP 메시지가 전송됩니다. 이는 기본 모드이며 대부분의 사용 사례에 충분합니다.Hybrid: 멀티캐스트 및 유니캐스트 메시지를 사용하여 PTP 메시지가 전송됩니다. 처리해야 하는 메시지 수가 줄어들기 때문에 네트워크 부하가 절감됩니다. 자세한 내용은 다음을 참조하십시오. 이 문서.Unicast: PTP 메시지는 로컬 네트워크의 지정된 하나 이상의 장치로 전송됩니다. 다른 장치는 PTP 메시지를 수신할 수 없습니다.
Unicast를 구성하려면:- 다음 항목이 올바르게 설정되어 있는지 확인하세요.
BslPtpNetworkMode로 설정된 경우,Unicast. - 다음 값 중 하나로
BslPtpUcPortAddrIndex파라미터를 0으로 설정하십시오. - 다음 값 중 하나로
BslPtpUcPortAddr파라미터를 첫 번째 수신 디바이스의 IP 주소로 설정하십시오. - 증가시키십시오
BslPtpUcPortAddrIndex파라미터 값을 1만큼 증가시키십시오. - 다음 값 중 하나로
BslPtpUcPortAddr파라미터를 다음 수신 디바이스의 IP 주소로 설정하십시오. - 연관된 모든 PTP 장치에 대해 3단계와 4단계를 반복합니다.
- 다음 항목이 올바르게 설정되어 있는지 확인하세요.
다른 카메라의 경우 네트워크 모드가 Multicast로 사전 설정되어 있습니다. 그러나 이 카메라들도 Unicast 메시지를 수신하고 그에 따라 응답할 수 있습니다.
정보
Unicast 모드를 사용할 때는 연관된 모든 장치가 Unicast 협상을 지원해야 합니다. 일부 PTP 구현은 Unicast 협상을 사용하지 않으므로 Basler 카메라와 호환되지 않습니다.
PTP 관리#
PTP Management Protocol을 사용하면 pylon API를 사용하지 않고도 관리 메시지를 통해 모든 PTP 장치의 설정을 읽을 수 있습니다. 허용되는 경우 설정을 쓸 수도 있습니다.
ace 2 및 dart M 카메라에서는 PTP 관리를 활성화하거나 비활성화할 수 있습니다. 방법은 다음과 같습니다:
- PTP 클록 동기화 활성화.
- 다음 값 중 하나로
BslPtpManagementEnable매개변수를 다음 값 중 하나로 설정합니다:true: 아래에 나열된 메시지 ID를 사용하여 관리 메시지로 설정 읽기(GET), 설정 쓰기(SET) 및 명령 실행(COMMAND)을 수행할 수 있습니다. 나열된 항목.false(기본값): PTP Management Protocol이 비활성화되어 설정을 읽거나 쓸 수 없습니다.
다른 카메라의 경우 PTP 관리가 항상 활성화되어 있으며 읽기 전용 액세스로 사전 설정되어 있습니다.
지원되는 관리 메시지#
| 관리 메시지 ID | 지원되는 작업 |
|---|---|
| NULL_MANAGEMENT | GET, SET |
| CLOCK_DESCRIPTION | GET |
| USER_DESCRIPTION | GET, SET |
| INITIALIZE | COMMANDa |
| DEFAULT_DATA_SET | GET |
| CURRENT_DATA_SET | GET |
| PARENT_DATA_SET | GET |
| TIME_PROPERTIES_DATA_SET | GET |
| PORT_DATA_SET | GET |
| PRIORITY1 | GET, SET |
| PRIORITY2 | GET, SET |
| DOMAIN | GET |
| SLAVE_ONLY | GET |
| LOG_ANNOUNCE_INTERVAL | GET, SET |
| ANNOUNCE_RECEIPT_TIMEOUT | GET, SET |
| LOG_SYNC_INTERVAL | GET, SET |
| VERSION_NUMBER | GET |
| ENABLE_PORT | COMMAND |
| DISABLE_PORT | COMMAND |
| TIME | GET, SETb |
| CLOCK_ACCURACY | GET, SET |
| UTC_PROPERTIES | GET, SET |
| TRACEABLE_PROPERTIES | GET, SET |
| TIMESCALE_PROPERTIES | GET, SET |
| UNICAST_NEGOTIATION_ENABLE | GET |
| ACCEPTABLE_MASTER_TABLE | GET, SET |
| ACCEPTABLE_MASTER_TABLE_ENABLED | GET, SET |
| ACCEPTABLE_MASTER_MAX_TABLE_SIZE | GET |
| DELAY_MECHANISM | GET, SET |
| LOG_MIN_PDELAY_REQ_INTERVAL | GET, SET |
-
INITIALIZE 명령어는 클록 속도를 재설정합니다.
-
해당 장치가 그랜드마스터 클록(grandmaster clock) 역할을 하는 경우에만 설정할 수 있습니다.
이러한 속성의 기본값 및 범위에 대한 자세한 내용은 IEEE 1588-2008 사양 부록 J를 참조하십시오.
원스텝 또는 투스텝 클록#
이 설정은 egress timestamp가 필요한 PTP 이벤트 메시지에 대해 생성되는 메시지 수를 정의합니다.
- 원스텝(one-step) 동작에서는 하나의 메시지가 전송됩니다. 해당 메시지에는 메시지 데이터와 egress timestamp가 포함됩니다.
- 투스텝(two-step) 동작에서는 두 개의 메시지가 전송됩니다. 첫 번째 메시지에는 메시지 데이터가 포함됩니다. 두 번째 메시지에는 egress timestamp가 포함됩니다.
자세한 내용은 이 문서를 참조하십시오.
On ace 2 및 dart M 카메라, 투스텝 동작은 기본적으로 비활성화되어 있습니다. 네트워크의 다른 PTP 장치에서 투스텝 이벤트 메시지가 명시적으로 필요한 경우, 다음을 설정하여 활성화할 수 있습니다. BslPtpTwoStep 매개변수: true.
기타 카메라의 경우 투스텝 동작이 항상 활성화되어 있습니다.
PTP 클록 동기화 상태 확인#
PTP 클록 동기화 상태를 확인하려면 pylon API를 사용하여 자체 확인 메서드를 개발해야 합니다.
PTP 상태 확인의 일반적인 구현에는 다음 단계가 포함됩니다.
- 다음을 실행합니다.
GevIEEE1588DataSetLatch명령입니다.
이 명령어를 사용하면 카메라의 현재 PTP 상태 "스냅샷"을 캡처할 수 있습니다. "스냅샷" 구현을 통해 래치된 데이터 세트의 모든 파라미터 값이 정확히 동일한 시점을 가리키도록 보장됩니다. - 다음이 될 때까지 기다립니다.
GevIEEE1588Status파라미터 값이 더 이상Initializing. -
카메라 모델에 따라 장치에서 다음 파라미터 값을 읽어옵니다.
- On ace 2 및 dart M 카메라,
PtpServoStatus모든 슬레이브 카메라에서 파라미터를 읽습니다. 파라미터 값이Locked인 경우, 해당 장치가 충분히 동기화된 것입니다. 더 정밀한 상태 확인이 필요한 경우, 대신 아래의 "기타 카메라" 절차를 따르십시오. -
On 다른 카메라의 경우,
GevIEEE1588OffsetFromMaster마스터로부터의 최고 오프셋(offset)이 특정 임계값(요건에 따라 예: 1밀리초) 아래로 떨어질 때까지 모든 슬레이브 카메라의 파라미터 값을 확인합니다.
제어 메커니즘에 의해 클록이 지속적으로 조정되기 때문에 오프셋이 단조 감소하지 않습니다. Basler에서는 지정된 시간 창 내에서 최대GevIEEE1588OffsetFromMaster파라미터 값을 확인할 것을 권장합니다.
- On ace 2 및 dart M 카메라,
-
장치가 충분히 동기화될 때까지 1단계와 2단계를 반복합니다.
래치된 데이터 세트에는 어떤 내용이 포함되어 있나요?#
명령을 실행한 후 GevIEEE1588DataSetLatch 장치에서 다음 Property 값을 읽을 수 있습니다.
GevIEEE1588ClockId: 현재 PTP 장치의 고유 ID("clock ID")를 나타냅니다.GevIEEE1588OffsetFromMaster: 마스터 클록과 현재 PTP 장치의 클록 사이의 추정된 시간 오프셋을 틱 단위로 나타냅니다(1 틱 = 1나노초).GevIEEE1588ParentClockId: 현재 마스터 클록 역할을 하는 PTP 장치의 클록 ID("parent clock ID")를 나타냅니다.GevIEEE1588Status: 현재 PTP 장치의 상태를 나타냅니다(예: 마스터 클록인지 슬레이브 클록인지 여부). 반환된 값은 PTP 포트 상태 열거형(Initializing, Faulty, Disabled, Listening, Pre_Master, Master, Passive, Uncalibrated, Slave)과 일치합니다. 자세한 내용은 pylon API 설명서 및 IEEE 1588-2008 사양.GevIEEE1588StatusLatched: 이 Property를 사용할 수 있는 경우 Basler에서는GevIEEE1588StatusProperty 대신 이를 사용할 것을 권장합니다. 이는GevIEEE1588StatusProperty가GevIEEE1588DataSetLatch명령과 연결되어 있지 않기 때문입니다. 따라서 장치에서 여러 PTP 관련 값을 읽을 경우, 장치 상태가 다른 값들과 동일한 시점에 해당하지 않게 됩니다.
추가 Parameters#
On ace 2 및 dart M 카메라의 경우, 명령을 실행한 후 PtpDataSetLatch 장치에서 다음 추가 Property 값을 읽을 수 있습니다.
BslPtpDelayMechanism: PTP 네트워크에서 사용하는 지연 메커니즘 을(를) 나타냅니다. 값이E2E인 경우 Delay Request-Response 메커니즘이 사용됨을 나타냅니다. 값이P2P인 경우 피어투피어 메커니즘이 사용됨을 나타냅니다.PtpClockAccuracy: 그랜드마스터일 때 또는 그랜드마스터가 될 때 PTP 장치 클록의 예상 정확도를 나타냅니다. Basler 카메라의 경우 예상 정확도가Unknown(으)로 사전 설정되어 있습니다. 이는 Basler 카메라가 UTC와 같은 협정 세계시와 동기화되지 않기 때문입니다.PtpGrandmasterClockID: 현재 그랜드마스터 클록 역할을 하는 PTP 장치의 클록 ID를 나타냅니다.PtpServoStatus: 클록 서보의 상태, 즉 PTP 클록 동기화 상태를 나타냅니다. 상태가Locked인 경우, 현재 장치의 클록이 마스터 클록과 성공적으로 동기화된 것입니다. 그 외의 모든 경우에는 상태가Unknown.
외부 링크#
- End-to-End 대 Peer-to-Peer (Time Synchronization Blog)
- Hybrid Mode PTP: Mixed Multicast 및 Unicast (Time Synchronization Blog)
- IEEE 1588-2008 Specification (IEEE Standards Association)
- One-step 또는 Two-step? (Time Synchronization Blog)
- Precision Time Protocol (Wikipedia)
- White Paper: Synchronous and in Real Time: Multi-Camera Applications in the GigE Network (Basler)
샘플 코드#
ace Cameras#
// ** Configure PTP **
// Set Priority 1 to 128
camera.BslPtpPriority1.SetValue(128);
// Enable end-to-end delay measurement
camera.BslPtpProfile.SetValue(BslPtpProfile_DelayRequestResponseDefaultProfile);
// Set the network mode to unicast
camera.BslPtpNetworkMode.SetValue(BslPtpNetworkMode_Unicast);
// Set the IP address of the first unicast device to 192.168.10.12
// (0xC0 = 192, 0xA8 = 168, 0x0A = 10, 0x0C = 12)
camera.BslPtpUcPortAddrIndex.SetValue(0);
camera.BslPtpUcPortAddr.SetValue((0xC0A80A0C);
// Enable PTP Management Protocol
camera.BslPtpManagementEnable.SetValue(true);
// Disable two-step operation
camera.BslPtpTwoStep.SetValue(false);
// ** Enable PTP on the current device **
camera.PtpEnable.SetValue(true);
// To check the status of the PTP clock synchronization,
// implement your own check method here.
// For guidelines, see "Checking the Status of
// the PTP Clock Synchronization" in this topic.
INodeMap& nodemap = camera.GetNodeMap();
// ** Configure PTP **
// Set Priority 1 to 128
CIntegerParameter(nodemap, "BslPtpPriority1").SetValue(128);
// Enable end-to-end delay measurement
CEnumParameter(nodemap, "BslPtpProfile").SetValue("DelayRequestResponseDefaultProfile");
// Set the network mode to unicast
CEnumParameter(nodemap, "BslPtpNetworkMode").SetValue("Unicast");
// Set the IP address of the first unicast device to 192.168.10.12
// (0xC0 = 192, 0xA8 = 168, 0x0A = 10, 0x0C = 12)
CIntegerParameter(nodemap, "BslPtpUcPortAddrIndex").SetValue(0);
CIntegerParameter(nodemap, "BslPtpUcPortAddr").SetValue(0xC0A80A0C);
// Enable PTP Management Protocol
CBooleanParameter(nodemap, "BslPtpManagementEnable").SetValue(true);
// Disable two-step operation
CBooleanParameter(nodemap, "BslPtpTwoStep").SetValue(false);
// ** Enable PTP on the current device **
CBooleanParameter(nodemap, "PtpEnable").SetValue(true);
// To check the status of the PTP clock synchronization,
// implement your own check method here.
// For guidelines, see "Checking the Status of
// the PTP Clock Synchronization" in this topic.
// ** Configure PTP **
// Set Priority 1 to 128
camera.Parameters[PLCamera.BslPtpPriority1].SetValue(128);
// Enable end-to-end delay measurement
camera.Parameters[PLCamera.BslPtpProfile].SetValue(PLCamera.BslPtpProfile.DelayRequestResponseDefaultProfile);
// Set the network mode to unicast
camera.Parameters[PLCamera.BslPtpNetworkMode].SetValue(PLCamera.BslPtpNetworkMode.Unicast);
// Set the IP address of the first unicast device to 192.168.10.12
// (0xC0 = 192, 0xA8 = 168, 0x0A = 10, 0x0C = 12)
camera.Parameters[PLCamera.BslPtpUcPortAddrIndex].SetValue(0);
camera.Parameters[PLCamera.BslPtpUcPortAddr].SetValue(0xC0A80A0C);
// Enable PTP Management Protocol
camera.Parameters[PLCamera.BslPtpManagementEnable].SetValue(true);
// Disable two-step operation
camera.Parameters[PLCamera.BslPtpTwoStep].SetValue(false);
// ** Enable PTP on the current device **
camera.Parameters[PLCamera.PtpEnable].SetValue(true);
// To check the status of the PTP clock synchronization,
// implement your own check method here.
// For guidelines, see "Checking the Status of
// the PTP Clock Synchronization" in this topic.
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK; /* Return value of pylon methods */
/* ** Configure PTP ** */
/* Set Priority 1 to 128 */
errRes = PylonDeviceSetIntegerFeature(hdev, "BslPtpPriority1", 128);
CHECK(errRes);
/* Enable end-to-end delay measurement */
errRes = PylonDeviceFeatureFromString(hdev, "BslPtpProfile", "DelayRequestResponseDefaultProfile");
CHECK(errRes);
/* Set the network mode to unicast */
errRes = PylonDeviceFeatureFromString(hdev, "BslPtpNetworkMode", "Unicast");
CHECK(errRes);
/* Set the IP address of the first unicast device to 192.168.10.12 */
/* (0xC0 = 192, 0xA8 = 168, 0x0A = 10, 0x0C = 12) */
errRes = PylonDeviceSetIntegerFeature(hdev, "BslPtpUcPortAddrIndex", 0);
CHECK(errRes);
errRes = PylonDeviceSetIntegerFeature(hdev, "BslPtpUcPortAddr", 0xC0A80A0C);
CHECK(errRes);
/* Enable PTP Management Protocol */
errRes = PylonDeviceSetBooleanFeature(hdev, "BslPtpManagementEnable", 1);
CHECK(errRes);
/* Disable two-step operation */
errRes = PylonDeviceSetBooleanFeature(hdev, "BslPtpTwoStep", 0);
CHECK(errRes);
/* ** Enable PTP on the current device ** */
errRes = PylonDeviceSetBooleanFeature(hdev, "PtpEnable", 1);
CHECK(errRes);
/* To check the status of the PTP clock synchronization, */
/* implement your own check method here. */
/* For guidelines, see "Checking the Status of */
/* the PTP Clock Synchronization" in this topic. */
# ** Configure PTP **
# Set Priority 1 to 128
camera.BslPtpPriority1.Value = 128
# Enable end-to-end delay measurement
camera.BslPtpProfile.Value = "DelayRequestResponseDefaultProfile"
# Set the network mode to unicast
camera.BslPtpNetworkMode.Value = "Unicast"
# Set the IP address of the first unicast device to 192.168.10.12
# (0xC0 = 192, 0xA8 = 168, 0x0A = 10, 0x0C = 12)
camera.BslPtpUcPortAddrIndex.Value = 0
camera.BslPtpUcPortAddr.Value = 0xC0A80A0C
# Enable PTP Management Protocol
camera.BslPtpManagementEnable.Value = True
# Disable two-step operation
camera.BslPtpTwoStep.Value = False
# ** Enable PTP on the current device **
camera.PtpEnable.Value = True
# To check the status of the PTP clock synchronization,
# implement your own check method here.
# For guidelines, see "Checking the Status of
# the PTP Clock Synchronization" in this topic.
기타 카메라#
INodeMap& nodemap = camera.GetNodeMap();
// Enable PTP on the current device
CBooleanParameter(nodemap, "GevIEEE1588").SetValue(true);
// To check the status of the PTP clock synchronization,
// implement your own check method here.
// For guidelines, see "Checking the Status of
// the PTP Clock Synchronization" in this topic.
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK; /* Return value of pylon methods */
/* Enable PTP on the current device */
errRes = PylonDeviceSetBooleanFeature(hdev, "GevIEEE1588", 1);
CHECK(errRes);
/* To check the status of the PTP clock synchronization, */
/* implement your own check method here. */
/* For guidelines, see "Checking the Status of */
/* the PTP Clock Synchronization" in this topic. */
또한 pylon Viewer를 사용하여 파라미터를 손쉽게 설정할 수 있습니다.