Please enable JavaScript to view this site.

IDS peak 26.06. / uEye+ firmware 3.94

Selects how the system timestamp is synchronized with the device timestamp.

Name

SynchronizationTimestampMode

Category

DeviceControl

Interface

Enumeration

Access

Read/Write

Unit

-

Visibility

Expert

Values

Auto

Manual

Standard

IDS

Availability uEye+

icon-gev icon-u3v

Availability uEye

-

Values description

Auto: Enables periodic synchronization of system and device timestamps using an internal timer. This is the default value.
The synchronized values are stored internally and become visible in SynchronizationTimestampSystem and SynchronizationTimestampDevice only after SynchronizationTimestampLatch is executed. The latch mechanism ensures both timestamps are captured consistently from the same synchronization cycle. This avoids race conditions where one timestamp is read while a new synchronization is taking place, resulting in the second timestamp being read from a different cycle.

Manual: Disables the automatic synchronization timer. Timestamps are synchronized only when explicitly triggered via SynchronizationTimestampLatch.

Code example

C++

// Determine the current entry of SynchronizationTimestampMode
std::string value = nodeMapDataStream->FindNode<peak::core::nodes::EnumerationNode>("SynchronizationTimestampMode")->CurrentEntry()->SymbolicValue();
// Get a list of all available entries of SynchronizationTimestampMode
auto allEntries = nodeMapDataStream->FindNode<peak::core::nodes::EnumerationNode>("SynchronizationTimestampMode")->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 SynchronizationTimestampMode to "Auto"
nodeMapDataStream->FindNode<peak::core::nodes::EnumerationNode>("SynchronizationTimestampMode")->SetCurrentEntry("Auto");

C#

// Determine the current entry of SynchronizationTimestampMode
string value = nodeMapDataStream.FindNode<IDSImaging.Peak.API.Core.Nodes.EnumerationNode>("SynchronizationTimestampMode").CurrentEntry().SymbolicValue();
// Get a list of all available entries of SynchronizationTimestampMode
allEntries = nodeMapDataStream.FindNode<IDSImaging.Peak.API.Core.Nodes.EnumerationNode>("SynchronizationTimestampMode").Entries();
List<string> availableEntries = new List<string>();
for(int i = 0; i < allEntries.Count(); ++i)
{
  if ((allEntries[i].AccessStatus() != IDSImaging.Peak.API.Core.Nodes.NodeAccessStatus.NotAvailable)
          && (allEntries[i].AccessStatus() != IDSImaging.Peak.API.Core.Nodes.NodeAccessStatus.NotImplemented))
  {
      availableEntries.Add(allEntries[i].SymbolicValue());
  }
}
// Set SynchronizationTimestampMode to "Auto"
nodeMapDataStream.FindNode<IDSImaging.Peak.API.Core.Nodes.EnumerationNode>("SynchronizationTimestampMode").SetCurrentEntry("Auto");

Python

# Determine the current entry of SynchronizationTimestampMode (str)
value = nodeMapDataStream.FindNode("SynchronizationTimestampMode").CurrentEntry().SymbolicValue()
# Get a list of all available entries of SynchronizationTimestampMode
allEntries = nodeMapDataStream.FindNode("SynchronizationTimestampMode").Entries()
availableEntries = []
for entry in allEntries:
  if (entry.AccessStatus() != peak.NodeAccessStatus_NotAvailable
          and entry.AccessStatus() != peak.NodeAccessStatus_NotImplemented):
      availableEntries.append(entry.SymbolicValue())
 
# Set SynchronizationTimestampMode to "Auto" (str)
nodeMapDataStream.FindNode("SynchronizationTimestampMode").SetCurrentEntry("Auto")