IDS Peak comfortSDK, genericSDK, IPL, and AFL developer manuals are external documents. Please contact us if you need them.
Sets the automatic gain control. Neither AcquisitionFrameRate nor ExposureTime settings are changed. GainAuto can be combined with ExposureAuto.
GainAuto modifies "AnalogAll" gain, if the sensor supports it. Otherwise "DigitalAll" gain is used.
Name |
GainAuto |
Category |
|
Interface |
Enumeration |
Access |
Read/Write |
Unit |
- |
Visibility |
Beginner |
Values |
Off |
Standard |
SFNC |
Availability uEye+ |
|
Availability uEye |
- |
Values description
•Off: GainAuto is disabled. The user-defined control of the gain is possible with the Gain command.
•Once: Gain is automatically adjusted once by the camera. Once it has converged, it automatically returns to the "Off" state.
•Continuous: Gain is constantly adjusted by the camera.
This feature is not available with the SensorOperationMode "Linescan". |
Can only be changed if SequencerMode is "Off". |
Code example
C++
// Determine the current entry of GainAuto
std::string value = nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("GainAuto")->CurrentEntry()->SymbolicValue();
// Get a list of all available entries of GainAuto
auto allEntries = nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("GainAuto")->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 GainAuto to "Off"
nodeMapRemoteDevice->FindNode<peak::core::nodes::EnumerationNode>("GainAuto")->SetCurrentEntry("Off");
C#
// Determine the current entry of GainAuto
string value = nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("GainAuto").CurrentEntry().SymbolicValue();
// Get a list of all available entries of GainAuto
allEntries = nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("GainAuto").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 GainAuto to "Off"
nodeMapRemoteDevice.FindNode<peak.core.nodes.EnumerationNode>("GainAuto").SetCurrentEntry("Off");
Python
# Determine the current entry of GainAuto (str)
value = nodeMapRemoteDevice.FindNode("GainAuto").CurrentEntry().SymbolicValue()
# Get a list of all available entries of GainAuto
allEntries = nodeMapRemoteDevice.FindNode("GainAuto").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 GainAuto to "Off" (str)
nodeMapRemoteDevice.FindNode("GainAuto").SetCurrentEntry("Off")