IDS Peak comfortSDK, genericSDK, IPL, and AFL developer manuals are external documents. Please contact us if you need them.
Selects the internal signal or physical input line that will be the source to start the counter.
To start the counter, it must be reset first, either by the command CounterReset or by a signal on CounterResetSource. If you want to automatically reset the counter when starting it, choose CounterResetSource = "CounterTrigger". |
If a counter has the CounterStatus "CounterIdle" and its CounterEventSource is not "Off", you have to perform a CounterReset. |
Name |
CounterTriggerSource[CounterSelector] |
Category |
|
Interface |
Enumeration |
Access |
Read/Write |
Unit |
- |
Visibility |
Expert |
Values |
AcquisitionTrigger AcquisitionTriggerMissed AcquisitionStart AcquisitionEnd Counter0Start Counter1Start Counter0End Counter1End ExposureTrigger ExposureTriggerMissed ExposureStart ExposureEnd FrameTrigger FrameTriggerMissed FrameStart FrameEnd LineTrigger LineTriggerMissed Line1 Line2 Line3 Line4 Line5 Line6 ReadOutStart ReadOutEnd Timer0Start Timer1Start Timer0End Timer1End UserOutput1 UserOutput2 UserOutput3 |
Standard |
SFNC |
Availability uEye+ |
|
Availability uEye |
- |
Values description
•Off: Disables the counter trigger.
•AcquisitionTrigger: The counter starts with the reception of an "AcquisitionStart" trigger signal.
•AcquisitionTriggerMissed: The counter starts with the reception of the missed "AcquisitionStart" trigger signal.
•AcquisitionStart: The counter starts when an acquisition starts.
•AcquisitionEnd: The counter starts when an acquisition stops.
•Counter0Start, Counter1Start: The counter starts with the reception of the selected "CounterStart" signal.
•Counter0End, Counter1End: The counter starts with the reception of the selected "CounterEnd" signal.
•ExposureTrigger: The counter starts with the reception of the "ExposureStart" trigger signal. Only available in SensorOperationMode "LongExposure" and "Default".
•ExposureTriggerMissed: The counter starts with the reception of a missed "ExposureStart" trigger signal. Only available in SensorOperationMode "LongExposure" and "Default".
•ExposureStart: The counter starts when an exposure starts.
•ExposureEnd: The counter starts when an exposure ends.
•FrameTrigger: The counter starts with the reception of the "FrameStart" trigger signal. Only available in SensorOperationMode "Linescan".
•FrameTriggerMissed: The counter starts with the reception a missed "FrameStart" trigger signal. Only available in SensorOperationMode "Linescan".
•FrameStart: The counter starts when a frame starts. Only available in SensorOperationMode "Linescan".
•FrameEnd: The counter starts when a frame ends.
•LineTrigger: The counter starts with the reception of the "LineStart" trigger signal. Only available in SensorOperationMode "Linescan".
•LineTriggerMissed: The counter starts with the reception a missed "LineStart" trigger signal. Only available in SensorOperationMode "Linescan".
•Line0 … Line6: The counter is started by "Line0" … "Line6" (see overview).
•ReadOutStart: The counter starts with the reception of the "ReadOutStart" signal.
•ReadOutEnd: The counter starts with the reception of the "ReadOutEnd" signal.
•Timer0Start, Timer1Start: The counter starts with the reception of the selected "TimerStart" signal.
•Timer0End, Timer1End: The counter starts with the reception of the selected "TimerEnd" signal.
•UserOutput0, UserOutput1, UserOutput2, UserOutput3: The counter is started by the selected "UserOutput".
Overview of available lines by camera family
This overview describes all available lines. Depending on the camera model used, not all functions may be supported.
Line |
GigE uEye+ Warp10 |
GigE uEye+ CP Rev. 2/CP Rev. 2.2 GigE uEye+ FA/FA Rev. 1.2 GigE uEye+ SE Rev. 4/SE Rev. 4.2 USB 3 uEye+ CP Rev. 2/CP 2.2 uEye+ SE USB 3.1 Gen 1/SE Rev 1.2 uEye+ LE USB 3.1 Rev. 1.2 (PCB version only) |
uEye+ XCP USB 3 Rev. 1.2 uEye+ XLE USB 3 Rev. 1.2 (PCB version only) uEye+ XLS USB 3 Rev. 1.2 |
uEye+ XLE USB 3 Rev. 1.1 (PCB version only) |
---|---|---|---|---|
Line0 |
(Trigger) Input 0 with optocoupler |
(Trigger) Input with optocoupler |
(Trigger) Input without optocoupler |
(Trigger) Input without optocoupler |
Line1 |
(Trigger) Input 1 with optocoupler |
(Flash) Output with optocoupler |
(Flash) Output without optocoupler |
(Flash) Output without optocoupler |
Line2 |
(Trigger) Input 2 with optocoupler |
GPIO 1 without optocoupler |
GPIO 1 without optocoupler |
- |
Line3 |
(Flash) Output 0 with optocoupler |
GPIO 2 without optocoupler |
GPIO 2 without optocoupler |
- |
Line4 |
(Flash) Output 1 with optocoupler |
- |
- |
- |
Line5 |
Fast (Flash) Output 2 with optocoupler |
- |
- |
- |
Line6 |
Fast (Flash) Output 3 with optocoupler |
- |
- |
- |
•Input: Physical input line that e.g. serves as trigger input (LineMode = "Input" only).
•Output: Physical output line that e.g. serves as flash output (LineMode = "Output" only).
•GPIO: Input or output line that can be used as input or output. To configure the line as input, change LineMode to "Input". To configure the line as output, change LineMode to "Output".
You will find information about the pin assignment and wiring of your camera either in the hardware descriptions of the respective camera family or in the model-specific data sheet.
Code example
C++
// Before accessing CounterTriggerSource, make sure CounterSelector is set correctly
// Set CounterSelector to "Counter0"
nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("CounterSelector")->SetCurrentEntry("Counter0");
// Determine the current entry of CounterTriggerSource
std::string value = nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("CounterTriggerSource")->CurrentEntry()->SymbolicValue();
// Get a list of all available entries of CounterTriggerSource
auto allEntries = nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("CounterTriggerSource")->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 CounterTriggerSource to "Off"
nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("CounterTriggerSource")->SetCurrentEntry("Off");
C#
// Before accessing CounterTriggerSource, make sure CounterSelector is set correctly
// Set CounterSelector to "Counter0"
nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("CounterSelector").SetCurrentEntry("Counter0");
// Determine the current entry of CounterTriggerSource
string value = nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("CounterTriggerSource").CurrentEntry().SymbolicValue();
// Get a list of all available entries of CounterTriggerSource
allEntries = nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("CounterTriggerSource").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 CounterTriggerSource to "Off"
nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("CounterTriggerSource").SetCurrentEntry("Off");
Python
# Before accessing CounterTriggerSource, make sure CounterSelector is set correctly
# Set CounterSelector to "Counter0" (str)
nodeMapRemoteDevice.FindNode("CounterSelector").SetCurrentEntry("Counter0")
# Determine the current entry of CounterTriggerSource (str)
value = nodeMapRemoteDevice.FindNode("CounterTriggerSource").CurrentEntry().SymbolicValue()
# Get a list of all available entries of CounterTriggerSource
allEntries = nodeMapRemoteDevice.FindNode("CounterTriggerSource").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 CounterTriggerSource to "Off" (str)
nodeMapRemoteDevice.FindNode("CounterTriggerSource").SetCurrentEntry("Off")