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.
Specifies the UART receive mode.
Name |
UartRxMode |
Category |
|
Interface |
Enumeration |
Access |
Read/Write |
Unit |
- |
Visibility |
Expert |
Values |
AutoRestartPackets SinglePacket |
Standard |
IDS |
Availability uEye+ |
|
Availability uEye |
- |
Values description
•AutoRestartPackets: Once a packet is completed, the UART Rx module automatically receives data again until reception is stopped with the UartRxStop command.
•SinglePacket: A packet is received and UartRxStatus changes to "Idle" after the packet.
Code example
C++
// Determine the current UartRxMode
std::string value = nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("UartRxMode")->CurrentEntry()->SymbolicValue();
// Get a list of all available entries of UartRxMode
auto allEntries = nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("UartRxMode")->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 UartRxMode to "SinglePacket"
nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("UartRxMode")->SetCurrentEntry("SinglePacket");
C#
// Determine the current UartRxMode
string value = nodeMapRemoteDevice.FindNode<IDSImaging.Peak.API.Core.Nodes.EnumerationNode>("UartRxMode").CurrentEntry().SymbolicValue();
// Get a list of all available entries of UartRxMode
allEntries = nodeMapRemoteDevice.FindNode<IDSImaging.Peak.API.Core.Nodes.EnumerationNode>("UartRxMode").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 UartRxMode to "SinglePacket"
nodeMapRemoteDevice.FindNode<IDSImaging.Peak.API.Core.Nodes.EnumerationNode>("UartRxMode").SetCurrentEntry("SinglePacket");
Python
# Determine the current UartRxMode (str)
value = nodeMapRemoteDevice.FindNode("UartRxMode").CurrentEntry().SymbolicValue()
# Get a list of all available entries of UartRxMode
allEntries = nodeMapRemoteDevice.FindNode("UartRxMode").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 UartRxMode to "SinglePacket" (str)
nodeMapRemoteDevice.FindNode("UartRxMode").SetCurrentEntry("SinglePacket")