Precision Time Protocol#
이 프로토콜은 IEEE 1588 표준에 정의되어 있습니다. Basler 카메라는 PTP 버전 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에 대한 자세한 내용은 Synchronous and in Real Time: Multi-Camera Applications in the GigE Network 백서를 참조하십시오.
PTP 클록 동기화 활성화#
카메라 전원을 켤 때 PTP는 항상 비활성화되어 있습니다. PTP를 사용하려면 활성화해야 합니다.
PTP를 활성화하려면:
- 외부 장치(예: GPS 수신기)를 마스터 클록으로 사용하려면 해당 외부 장치를 마스터 클록으로 구성하십시오.
Basler에서는 ANNOUNCE 간격을 2초, SYNC 간격을 0.5초로 설정할 것을 권장합니다. - PTP를 통해 동기화하려는 모든 카메라가 올바르게 구성되었는지 확인하십시오.
- PTP를 통해 동기화하려는 모든 카메라에서 다음을 설정하십시오.
GevIEEE1588파라메터true. - 모든 PTP 네트워크 장치가 충분히 동기화될 때까지 대기하십시오. 네트워크 설정에 따라 이 과정에는 몇 초 또는 몇 분이 소요될 수 있습니다.
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 및 dart M 카메라의 경우, Priority 1 설정을 변경하여 카메라가 마스터 클럭이 되도록 강제하거나 마스터 클럭이 되는 것을 방지할 수 있습니다. 이를 위해 BslPtpPriority1 파라미터를 0(최우선순위)에서 255(최하위 우선순위) 사이의 값으로 설정하십시오.
다른 카메라의 경우, Priority 1 설정은 128로 사전 설정되어 있으며 변경할 수 없습니다.
정보
마스터 클럭 기준에 대한 자세한 내용은 IEEE 1588-2008 사양의 7.6.2.2항을 참조하십시오.
PTP 지연 메커니즘#
지연 측정 메커니즘은 네트워크 내에서 PTP 지연 측정 메시지가 송수신되는 방식을 정의합니다. PTP 표준에서는 엔드투엔드(E2E, "지연 요청-응답"이라고도 함)와 피어투피어(P2P)의 두 가지 메커니즘을 정의합니다. 자세한 내용은 이 문서를 참조하십시오.
On ace 및 dart M 카메라의 경우, 지연 측정 메커니즘을 변경할 수 있습니다. 이를 위해 BslPtpProfile 파라메터 DelayRequestResponseDefaultProfile (기본값) 또는 PeerToPeerDefaultProfile.
다른 카메라의 경우, 지연 측정 메커니즘은 엔드투엔드로 사전 설정되어 있으며 변경할 수 없습니다.
정보
- 대부분의 경우 엔드투엔드 지연 측정을 사용하십시오. 전체 네트워크가 피어투피어 지연 측정용으로 설정되어 있는 경우에만 피어투피어를 사용하십시오. 즉, 모든 스위치와 라우터가 PTP를 지원하고 모든 PTP 장치가 피어투피어 통신용으로 구성되어 있어야 합니다.
- 피어투피어 지연 측정을 사용할 때는 다음과 같은 제한 사항이 적용됩니다.
- network mode는 Hybrid로 설정할 수 없습니다.
- One-step clock operation은 활성화할 수 없습니다. 카메라는 항상 two-step 모드로 작동합니다.
네트워크 모드#
network mode 설정은 네트워크 내에서 PTP 메시지가 전송되는 방식을 정의합니다.
On ace 카메라의 경우, network mode를 변경할 수 있습니다. 이를 위해 BslPtpNetworkMode 파라미터를 설정하십시오:
Multicast: PTP 멀티캐스팅용으로 구성된 로컬 네트워크의 모든 장치로 PTP 메시지가 전송됩니다. 이는 기본 모드이며 대부분의 사용 사례에 충분합니다.Hybrid: 멀티캐스트 및 유니캐스트 메시지를 사용하여 PTP 메시지가 전송됩니다. 처리해야 하는 메시지 수가 줄어들기 때문에 네트워크 부하를 줄일 수 있습니다. 자세한 내용은 이 문서.Unicast: PTP 메시지는 로컬 네트워크 내의 하나 이상의 지정된 장치로 전송됩니다. 다른 장치는 PTP 메시지를 수신할 수 없습니다.
유니캐스트를 구성하려면 다음을 수행합니다.- 다음 사항을 확인하십시오:
BslPtpNetworkMode이 다음으로 설정된 경우Unicast. - 파라미터를 원하는
BslPtpUcPortAddrIndex매개변수를 0으로 설정합니다. - 파라미터를 원하는
BslPtpUcPortAddr파라미터를 첫 번째 수신 장치의 IP 주소로 설정하십시오. -
BslPtpUcPortAddrIndex파라미터 값을 1만큼 증가시키십시오. - 파라미터를 원하는
BslPtpUcPortAddr파라미터를 다음 수신 장치의 IP 주소로 설정하십시오. - 관련된 모든 PTP 장치에 대해 3단계와 4단계를 반복하십시오.
- 다음 사항을 확인하십시오:
다른 카메라의 경우 네트워크 모드가 멀티캐스트로 사전 설정되어 있습니다. 그러나 이러한 카메라는 유니캐스트 메시지도 수신하고 그에 따라 응답할 수 있습니다.
정보
유니캐스트 모드를 사용할 때는 관련된 모든 장치가 유니캐스트 협상을 지원해야 합니다. 일부 PTP 구현은 유니캐스트 협상을 사용하지 않으며 따라서 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 명령은 클럭 속도를 재설정합니다.
-
해당 장치가 그랜드마스터 클록 역할을 하는 경우에만 설정할 수 있습니다.
이러한 속성의 기본값 및 범위에 대한 자세한 내용은 IEEE 1588-2008 사양 부록 J를 참조하십시오.
원스텝 또는 투스텝 클록#
이 설정은 egress timestamp가 필요한 PTP 이벤트 메시지에 대해 생성되는 메시지 수를 정의합니다.
- one-step 작동에서는 하나의 메시지만 전송됩니다. 해당 메시지에는 메시지 데이터와 egress timestamp가 포함됩니다.
- two-step 작동에서는 두 개의 메시지가 전송됩니다. 첫 번째 메시지에는 메시지 데이터가 포함됩니다. 두 번째 메시지에는 egress timestamp가 포함됩니다.
자세한 내용은 이 문서를 참조하십시오.
On ace 및 dart M 카메라, two-step 작동은 기본적으로 비활성화되어 있습니다. 네트워크의 다른 PTP 장치에서 two-step 이벤트 메시지가 명시적으로 필요한 경우, BslPtpTwoStep 파라메터 true.
기타 카메라의 경우 two-step 작동이 항상 활성화되어 있습니다.
PTP 클록 동기화 상태 확인#
PTP 클록 동기화 상태를 확인하려면 pylon API를 사용하여 자체 확인 메서드를 개발해야 합니다.
일반적인 PTP 상태 확인 구현에는 다음 단계가 포함됩니다.
- 다음을 실행합니다.
GevIEEE1588DataSetLatchcommand.
이 명령을 사용하면 카메라의 현재 PTP 상태 "스냅샷"을 가져올 수 있습니다. "스냅샷" 구현을 통해 래치된 데이터 세트의 매개변수 값 모두 정확히 동일한 시점을 가리키도록 보장됩니다. - 매개변수 값이
GevIEEE1588Status더 이상Initializing. -
가 아닐 때까지 기다립니다. 카메라 모델에 따라 장치에서 다음 매개변수 값을 읽습니다.
- On ace 및 dart M 카메라, 모든 슬레이브 카메라에서
PtpServoStatus매개변수를 읽습니다. 매개변수 값이Locked인 경우, 해당 장치는 충분히 동기화된 것입니다. 더 정밀한 상태 확인이 필요한 경우, 대신 아래의 "기타 카메라" 절차를 따르십시오. -
On 기타 카메라, 모든 슬레이브 카메라에서
GevIEEE1588OffsetFromMaster마스터와의 최대 오프셋이 특정 임계값(요구 사항에 따라 예: 1밀리초) 이하가 될 때까지 모든 슬레이브 카메라에서 매개변수 값을 확인합니다.
클록이 제어 메커니즘에 의해 지속적으로 조정되기 때문에 오프셋이 단조 감소하지 않습니다. Basler에서는 지정된 시간 창 내에서 최대GevIEEE1588OffsetFromMaster매개변수 값을 확인할 것을 권장합니다.
- On ace 및 dart M 카메라, 모든 슬레이브 카메라에서
-
장치가 충분히 동기화될 때까지 1단계와 2단계를 반복합니다.
래치된 데이터 세트의 구성 요소#
다음 명령을 실행한 후 GevIEEE1588DataSetLatch 장치에서 다음 파라미터 값을 읽을 수 있습니다.
GevIEEE1588ClockId: 현재 PTP 장치의 고유 ID("클록 ID")를 나타냅니다.GevIEEE1588OffsetFromMaster: 마스터 클록과 현재 PTP 장치의 클록 사이의 추정 시간 오프셋을 틱 단위(1틱 = 1나노초)로 나타냅니다.GevIEEE1588ParentClockId: 현재 마스터 클록 역할을 하는 PTP 장치의 클록 ID("상위 클록 ID")를 나타냅니다.GevIEEE1588Status: 현재 PTP 장치의 상태(예: 마스터 클록인지 슬레이브 클록인지 여부)를 나타냅니다. 반환된 값은 PTP 포트 상태 열거형(Initializing, Faulty, Disabled, Listening, Pre_Master, Master, Passive, Uncalibrated 및 Slave)과 일치합니다. 자세한 내용은 pylon API 문서 및 다음을 참조하십시오. IEEE 1588-2008 사양.GevIEEE1588StatusLatched: 이 파라미터를 사용할 수 있는 경우 Basler에서는 다음 대신 이 파라미터를 사용할 것을 권장합니다.GevIEEE1588Status파라미터. 이는 다음 때문입니다.GevIEEE1588Status파라미터가 다음 항목에 연결되어 있지 않습니다.GevIEEE1588DataSetLatch명령. 따라서 장치에서 여러 PTP 관련 값을 읽는 경우 장치 상태가 다른 값과 동일한 시점에 연관되지 않습니다.
추가 파라미터#
On ace 2 및 dart M 카메라의 경우 다음 명령을 실행한 후 PtpDataSetLatch 장치에서 다음과 같은 추가 파라미터 값을 읽을 수 있습니다.
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(시간 동기화 블로그)
- 하이브리드 모드 PTP: 혼합형 멀티캐스트 및 유니캐스트(시간 동기화 블로그)
- IEEE 1588-2008 사양(IEEE Standards Association)
- 원스텝 또는 투스텝?(시간 동기화 블로그)
- Precision Time Protocol(위키백과)
- 백서: 동기화 및 실시간 처리: GigE 네트워크의 멀티 카메라 응용 프로그램(Basler)
샘플 코드#
ace 카메라#
// ** 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를 사용하여 파라미터를 손쉽게 설정할 수도 있습니다.