Please enable JavaScript to view this site.

IDS peak 2.15.0 / uEye+ firmware 3.54

Defines the event of which the number of occurrences should be displayed in PtpStatisticsValue.

Name

PtpStatisticsSelector

Category

PtpControl

Interface

Enumeration

Access

Read/Write

Unit

-

Visibility

Guru

Values

SynchronizationCounter

SynchronizationUnreliableCounter

InternalSynchronizationFailedCounter

InternalSynchronizationLostCounter

EthernetLinkLostCounter

PhyPtpEnableErrorCounter

PhyReceptionErrorCounter

PhyCarrierDataCounter

Standard

IDS

Availability uEye+

icon-gev

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")