Defines the event of which the number of occurrences should be displayed in PtpStatisticsValue.
Name |
PtpStatisticsSelector |
Category |
|
Interface |
Enumeration |
Access |
Read/Write |
Unit |
- |
Visibility |
Guru |
Values |
SynchronizationCounter SynchronizationUnreliableCounter InternalSynchronizationFailedCounter InternalSynchronizationLostCounter EthernetLinkLostCounter PhyPtpEnableErrorCounter PhyReceptionErrorCounter PhyCarrierDataCounter |
Standard |
IDS |
Availability uEye+ |
|
Availability uEye |
- |
Values description
•SynchronizationCounter: The camera changes its state to "uncalibrated" and begins the synchronization to a master.
•SynchronizationUnreliableCounter: Messages from the master are received but the slave can not minimize the offset from master below 10 ms.
•InternalSynchronizationFailedCounter: The FPGA was not able to synchronize its time to the one of the PHY.
•InternalSynchronizationLostCounter: The time difference between FPGA and PHY was above 100 ms.
•EthernetLinkLostCounter: The Ethernet link was lost.
•PhyPtpEnableErrorCounter: PHY timestamp does not work after enabling PTP.
•PhyReceptionErrorCounter: There was a PHY internal issue receiving a PTP message.
•PhyCarrierDataCounter: There was a PHY internal issue.
Code example
C++
// Determine the current entry of PtpStatisticsSelector
std::string value = nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("PtpStatisticsSelector")->CurrentEntry()->SymbolicValue();
// Get a list of all available entries of PtpStatisticsSelector
auto allEntries = nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("PtpStatisticsSelector")->Entries();
std::vector<std::shared_ptr<peak::core::nodes::EnumerationEntryNode>> availableEntries;
for(const auto & entry : allEntries)
{
if ((entry->AccessStatus()!=peak::core::nodes::NodeAccessStatus::NotAvailable)
&& (entry->AccessStatus()!=peak::core::nodes::NodeAccessStatus::NotImplemented))
{
availableEntries.emplace_back(entry);
}
}
// Set PtpStatisticsSelector to "SynchronizationCounter"
nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("PtpStatisticsSelector")->SetCurrentEntry("SynchronizationCounter");
C#
// Determine the current entry of PtpStatisticsSelector
string value = nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("PtpStatisticsSelector").CurrentEntry().SymbolicValue();
// Get a list of all available entries of PtpStatisticsSelector
allEntries = nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("PtpStatisticsSelector").Entries();
List<string> availableEntries = new List<string>();
for(int i = 0; i < allEntries.Count(); ++i)
{
if ((allEntries[i].AccessStatus() != peak.core.nodes.NodeAccessStatus.NotAvailable)
&& (allEntries[i].AccessStatus() != peak.core.nodes.NodeAccessStatus.NotImplemented))
{
availableEntries.Add(allEntries[i].SymbolicValue());
}
}
// Set PtpStatisticsSelector to "SynchronizationCounter"
nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("PtpStatisticsSelector").SetCurrentEntry("SynchronizationCounter");
Python
# Determine the current entry of PtpStatisticsSelector (str)
value = nodeMapRemoteDevice.FindNode("PtpStatisticsSelector").CurrentEntry().SymbolicValue()
# Get a list of all available entries of PtpStatisticsSelector
allEntries = nodeMapRemoteDevice.FindNode("PtpStatisticsSelector").Entries()
availableEntries = []
for entry in allEntries:
if (entry.AccessStatus() != ids_peak.NodeAccessStatus_NotAvailable
and entry.AccessStatus() != ids_peak.NodeAccessStatus_NotImplemented):
availableEntries.append(entry.SymbolicValue())
# Set PtpStatisticsSelector to "SynchronizationCounter" (str)
nodeMapRemoteDevice.FindNode("PtpStatisticsSelector").SetCurrentEntry("SynchronizationCounter")