IDS Peak comfortSDK, genericSDK, IPL, and AFL developer manuals are external documents. Please contact us if you need them.
The UART functionality is only available for cameras that support UART communication on the hardware. This feature is only supported by the following uEye+ cameras.
•USB 3 uEye+ XCP Rev. 1.2
•USB 3 uEye+ XLE Rev. 1.2
•USB 3 uEye+ XLS Rev. 1.2
The hardware must be Rev. 1.2 (or higher), as UART support is included from this hardware on. The description of the GPIO (General Purpose I/O) can be found in the camera manual of the respective camera family.
You can use a FrameStart trigger to automatically wrap-up the received data up to the moment the trigger is received. You should use this trigger in combination with the "UartRxPacket" event. This event contains the ID of the frame that is triggered with the FrameStart trigger and that also triggers the data wrap-up.
A frame is triggered with each FrameStart trigger and additionally the UART data packet is wrapped up. If data has been received via UART since the last trigger, it will now be sent on the Event channel. If no data has been received via UART, no event will be generated.
Name |
UartRxWrapUpPacketTriggerSource |
Category |
|
Interface |
Enumeration |
Access |
Read/Write |
Unit |
- |
Visibility |
Expert |
Values |
FrameStartTriger Off |
Standard |
IDS |
Availability uEye+ |
|
Availability uEye |
- |
Values description
•FrameStartTrigger: UartRxWrapUpPacket is executed when a "FrameStart" trigger is received.
•Off: UartRxWrapUpPacket is not used.
The following example shows how to set up a camera to receive UART data with the UartRxWrapUpPacketTriggerSource.
Code example
C++
// Determine the current UartRxWrapUpPacketTriggerSource
std::string value = nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("UartRxWrapUpPacketTriggerSource")->CurrentEntry()->SymbolicValue();
// Get a list of all available entries of UartRxWrapUpPacketTriggerSource
auto allEntries = nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("UartRxWrapUpPacketTriggerSource")->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 UartRxWrapUpPacketTriggerSource to "FrameStartTrigger"
nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("UartRxWrapUpPacketTriggerSource")->SetCurrentEntry("FrameStartTrigger");
C#
// Determine the current UartRxWrapUpPacketTriggerSource
string value = nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("UartRxWrapUpPacketTriggerSource").CurrentEntry().SymbolicValue();
// Get a list of all available entries of UartRxWrapUpPacketTriggerSource
allEntries = nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("UartRxWrapUpPacketTriggerSource").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 UartRxWrapUpPacketTriggerSource to "FrameStartTrigger"
nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("UartRxWrapUpPacketTriggerSource").SetCurrentEntry("FrameStartTrigger");
Python
# Determine the current UartRxWrapUpPacketTriggerSource (str)
value = nodeMapRemoteDevice.FindNode("UartRxWrapUpPacketTriggerSource").CurrentEntry().SymbolicValue()
# Get a list of all available entries of UartRxWrapUpPacketTriggerSource
allEntries = nodeMapRemoteDevice.FindNode("UartRxWrapUpPacketTriggerSource").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 UartRxWrapUpPacketTriggerSource to "FrameStartTrigger" (str)
nodeMapRemoteDevice.FindNode("UartRxWrapUpPacketTriggerSource").SetCurrentEntry("FrameStartTrigger")