IDS Peak comfortSDK, genericSDK, IPL, and AFL developer manuals are external documents. Please contact us if you need them.
This function is supported by the following models: U3 models •PCB version uEye+ LE USB 3.1 Rev. 1.2 (requires USB3 Vision firmware 3.2 or higher) •uEye+ LE USB 3.1 Rev. 1.2 AF (requires USB3 Vision firmware 3.2 or higher) •USB 3 uEye+ ACP GV models •GigE uEye+ ACP UI models •PCB version uEye LE USB 3.1 Gen 1 •PCB version USB 3 uEye LE •PCB version USB uEye LE •GigE uEye LE |
Returns the I2C mode. The I2C mode determines the speed grade of I2C communication.
Name |
I2CMode |
Category |
|
Interface |
Enumeration |
Access |
Read/Write |
Unit |
- |
Visibility |
Expert |
Values |
FastMode FastModePlus StandardMode |
Standard |
IDS |
Availability uEye+ |
|
Availability uEye |
|
Values description
•FastMode: I2C fast mode with 400 kHz clock frequency.
•FastModePlus: I2C Fast-mode plus with 1000 kHz clock frequency (requires Vision firmware 3.20 or higher). This feature is only supported by uEye+ cameras (GV and U3 models).
•StandardMode: I2C standard mode with 100 kHz clock frequency (requires Vision firmware 3.20 or higher). This feature is only supported by uEye+ cameras (GV and U3 models).
Note for GigE uEye+ ACP To use the increased transmission rate of the I2C of 1000 kHz (Fast-mode plus - requires Vision firmware 3.20 or higher), you must connect external pull-ups of 3k3 to 6k3 (1.5 mA to 2.0 mA) to both I2C signals. |
Code example
C++
// Determine the current I2CMode
std::string value = nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("I2CMode")->CurrentEntry()->SymbolicValue();
// Get a list of all available entries of I2CMode
auto allEntries = nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("I2CMode")->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 I2CMode to "FastMode"
nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("I2CMode")->SetCurrentEntry("FastMode");
C#
// Determine the current I2CMode
string value = nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("I2CMode").CurrentEntry().SymbolicValue();
// Get a list of all available entries of I2CMode
allEntries = nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("I2CMode").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 I2CMode to "FastMode"
nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("I2CMode").SetCurrentEntry("FastMode");
Python
# Determine the current I2CMode (str)
value = nodeMapRemoteDevice.FindNode("I2CMode").CurrentEntry().SymbolicValue()
# Get a list of all available entries of I2CMode
allEntries = nodeMapRemoteDevice.FindNode("I2CMode").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 I2CMode to "FastMode" (str)
nodeMapRemoteDevice.FindNode("I2CMode").SetCurrentEntry("FastMode")