 
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 | 
Selects the operation for the I2C communication. This operation is executed when I2COperationExecute is called.
The I2C operation is targeted at the register with IC2RegisterAddress of the device with I2CDeviceAddress.
| Name | I2COperationSelector | 
| Category | |
| Interface | Enumeration | 
| Access | Read/Write | 
| Unit | - | 
| Visibility | Expert | 
| Values | Read Write | 
| Standard | IDS | 
| Availability uEye+ | 
 | 
| Availability uEye | 
 | 
Values description
•Read: I2C read command. Reads the data from the selected register of the device into I2CTransmitBuffer (or I2CData).
•Write: I2C write command. Writes the data from I2CTransmitBuffer (or I2CData) into the selected register of the device.
Code example
C++
// Determine the current I2COperationSelector
std::string value = nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("I2COperationSelector")->CurrentEntry()->SymbolicValue();
// Get a list of all available entries of I2COperationSelector
auto allEntries = nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("I2COperationSelector")->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 I2COperationSelector to "Write" 
nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("I2COperationSelector")->SetCurrentEntry("Write");
C#
// Determine the current I2COperationSelector
string value = nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("I2COperationSelector").CurrentEntry().SymbolicValue();
// Get a list of all available entries of I2COperationSelector
allEntries = nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("I2COperationSelector").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 I2COperationSelector to "Write" 
nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("I2COperationSelector").SetCurrentEntry("Write");
Python
# Determine the current I2COperationSelector (str)
value = nodeMapRemoteDevice.FindNode("I2COperationSelector").CurrentEntry().SymbolicValue()
# Get a list of all available entries of I2COperationSelector
allEntries = nodeMapRemoteDevice.FindNode("I2COperationSelector").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 I2COperationSelector to "Write" (str) 
nodeMapRemoteDevice.FindNode("I2COperationSelector").SetCurrentEntry("Write")