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 PWM. The corresponding pulse-width modulation module that should be configured is defined in PWMSelector.
On default, the PWM is active as long as the signal is HIGH. Changing the PWMTriggerActivation to "LevelLow", the PWM is active as long as the signal is LOW. |
Name |
PWMTriggerSource[PWMSelector] |
Category |
|
Interface |
Enumeration |
Access |
Read/Write |
Unit |
- |
Visibility |
Beginner |
Values |
Off AcquisitionActive FlashActive FrameActive ExposureActive UserOutput0 UserOutput1 UserOutput2 UserOutput3 Counter0Active Counter1Active Timer0Active Timer1Active Line0 Line1 Line2 Line3 Line4 Line5 Line6 |
Standard |
IDS |
Availability uEye+ |
|
Availability uEye |
|
Values description
•Off: Disables the PWM.
•AcquisitionActive: PWM is active as long as the camera acquires images. This feature is only supported by uEye+ cameras (GV and U3 models).
•FlashActive: PWM is active while the "FlashActive" signal is HIGH. This feature is only supported by uEye+ cameras (GV and U3 models).
•FrameActive: PWM is active during the exposure of one image. Only available in SensorOperationMode "Linescan". This feature is only supported by uEye+ cameras (GV and U3 models).
•ExposureActive: PWM is active during the exposure of images. This feature is only supported by uEye+ cameras (GV and U3 models).
•UserOutput0, UserOutput1, UserOutput2, UserOutput3: PWM is active while the chosen "UserOutput" is set to "True".
•Counter0Active, Counter1Active: PWM is active while the chosen counter is counting. This feature is only supported by uEye+ cameras (GV and U3 models).
•Timer0Active, Timer1Active: PWM is active while the chosen timer is counting. This feature is only supported by uEye+ cameras (GV and U3 models).
•Line0 … Line6 (see overview): PWM is active while the signal on the chosen line is HIGH. This feature is only supported by uEye+ cameras (GV and U3 models).
Pulse width modulation (PWM) is not supported by the following uEye models: •UI-304xLE •UI-313xLE •UI-327xLE •UI-359xLE Rev. 1 / UI-359xLE Rev. 2 •UI-386xLE •UI-388xLE |
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++
// Determine the current entry of PWMTriggerSource
std::string value = nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("PWMTriggerSource")->CurrentEntry()->SymbolicValue();
// Get a list of all available entries of PWMTriggerSource
auto allEntries = nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("PWMTriggerSource")->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 PWMTriggerSource to "Off"
nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("PWMTriggerSource")->SetCurrentEntry("Off");
C#
// Determine the current entry of PWMTriggerSource
string value = nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("PWMTriggerSource").CurrentEntry().SymbolicValue();
// Get a list of all available entries of PWMTriggerSource
allEntries = nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("PWMTriggerSource").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 PWMTriggerSource to "Off"
nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("PWMTriggerSource").SetCurrentEntry("Off");
Python
# Determine the current entry of PWMTriggerSource (str)
value = nodeMapRemoteDevice.FindNode("PWMTriggerSource").CurrentEntry().SymbolicValue()
# Get a list of all available entries of PWMTriggerSource
allEntries = nodeMapRemoteDevice.FindNode("PWMTriggerSource").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 PWMTriggerSource to "Off" (str)
nodeMapRemoteDevice.FindNode("PWMTriggerSource").SetCurrentEntry("Off")