Please enable JavaScript to view this site.

IDS peak 2.8.0 / uEye+ firmware 3.33

General properties

Each camera parameter has properties which can be queried. The type of the camera parameter is irrelevant and does not have to be known.

genericC++

auto node = nodeMapRemoteDevice->FindNode("ExposureTime");
auto displayName = node->DisplayName();

The main properties are:

Designation

Description

Name

Unique name

DisplayName

Display name optimized for display in graphical user interfaces

Namespace

Indicates whether the camera parameter is standardized or manufacturer-specific, e.g. "Standard" or IDS

Visibility

Visibility of the camera parameter, e.g. "Beginner", "Expert", "Guru", etc.

AccessStatus

Indicates whether the camera parameter is readable or writable.

IsStreamable

Specifies whether the camera parameter can be saved to a file, see Loading/saving camera settings from/into a file

IsFeature

Indicates whether the camera parameter is intended for setting by the user. If this is not the case, the present camera parameter is intended for internal purposes and should not be changed.

ToolTip

Short description of the camera parameter, e.g. for displaying tooltips in graphical user interfaces.

Description

Longer description of the camera parameter, e.g. for displaying user instructions in graphical user interfaces.

Type

Type of the camera parameter, e.g. "String", "Integer", "Float", etc.

Readability/writability (AccessStatus)

The “AccessStatus” property defines whether a camera parameter is readable or writable.

genericC++

auto accessStatus = nodeMapRemoteDevice->FindNode("AcquisitionFrameRate")->AccessStatus();
 
bool isReadable =
  (accessStatus == peak::core::nodes::NodeAccessStatus::ReadOnly) ||
  (accessStatus == peak::core::nodes::NodeAccessStatus::ReadWrite);
 
bool isWriteable =
  (accessStatus == peak::core::nodes::NodeAccessStatus::WriteOnly) ||
  (accessStatus == peak::core::nodes::NodeAccessStatus::ReadWrite);

AccessStatus

Available

Readable

Writable

ReadWrite

(Haken)

(Haken)

(Haken)

WriteOnly

(Haken)

(Fehler)

(Haken)

ReadOnly

(Haken)

(Haken)

(Fehler)

NotAvailable

(Fehler)

(Fehler)

(Fehler)

NotImplemented

(Fehler)

(Fehler)

(Fehler)

The AccessStatus of a camera parameter can change when you change other camera settings. Therefore, it is recommended to query the AccessStatus before writing or reading a node.

Type

Camera parameters have different types. Depending on the type, different functions are available for reading or setting the values or querying information.

genericC++

auto node = nodeMapRemoteDevice->FindNode("ExposureTime");
auto type = node->Type();

Using the type property, you can convert a camera parameter to the correct node type, even if the type was not known before.

genericC++

switch (type)
{
case peak::core::nodes::NodeType::Boolean:
{
  auto castNode = std::dynamic_pointer_cast<peak::core::nodes::BooleanNode>(node);
  break;
}
case peak::core::nodes::NodeType::Enumeration:
{
  auto castNode = std::dynamic_pointer_cast<peak::core::nodes::EnumerationNode>(node);
  break;
}
case peak::core::nodes::NodeType::EnumerationEntry:
{
  auto castNode = std::dynamic_pointer_cast<peak::core::nodes::EnumerationEntryNode>(node);
  break;
}
case peak::core::nodes::NodeType::Float:
{
  auto castNode = std::dynamic_pointer_cast<peak::core::nodes::FloatNode>(node);
  break;
}
case peak::core::nodes::NodeType::Integer:
{
  auto castNode = std::dynamic_pointer_cast<peak::core::nodes::IntegerNode>(node);
  break;
}
case peak::core::nodes::NodeType::String:
{
  auto castNode = std::dynamic_pointer_cast<peak::core::nodes::StringNode>(node);
  break;
}
case peak::core::nodes::NodeType::Category:
{
  auto castNode = std::dynamic_pointer_cast<peak::core::nodes::CategoryNode>(node);
  break;
}
default:
  break;
}

NodeType

Return Value function

Set Value function

Execute function

Info function

Description

Category

(Fehler)

(Fehler)

(Fehler)

 

Categories for structuring camera parameters, e.g. AcquisitionControlCategory or ImageFormatControl. Using categories, the XML tree structure is built, making it easier to navigate in the camera parameters.

Boolean

Value

SetValue

(Fehler)

 

Boolean value

Integer

Value

SetValue

(Fehler)

Minimum

Maximum

Increment

ValidValues

Unit

Integer

Float

Value

SetValue

(Fehler)

Minimum

Maximum

Increment

ValidValues

Unit

Floating point number

String

Value

SetValue

(Fehler)

MaximumLength

String consisting of alphanumeric characters

Enumeration

CurrentEntry

SetCurrentEntry

(Fehler)

Entries

Enumeration, contains a defined list of possible values (EnumerationEntry)

EnumerationEntry

Value

(Fehler)

(Fehler)

NumericValue

StringValue

SymbolicValue

Value of an enumeration

Command

(Fehler)

(Fehler)

Execute

WaitUntilDone

Command

Minimum, Maximum, Increment

Camera parameters of integer and float type can have minimum, maximum and increment properties. An increment can be of type "NoIncrement", "FixedIncrement" or "ListIncrement". The "ListIncrement" type is very rarely used in practice.

genericC++

auto node = nodeMapRemoteDevice->FindNode<peak::core::nodes::FloatNode>("ExposureTime");
 
auto maxValue = node->Maximum();
auto minValue = node->Minimum();
double inc = 0.0;
 
if (node->IncrementType() == peak::core::nodes::NodeIncrementType::FixedIncrement)
{
  inc = node->Increment();
}

Minimum, maximum and increment are used to ensure valid values when setting camera parameters. The value must be at least as big as the minimum and at most as big as the maximum. Additionally, the difference between the value and the minimum must be divisible by the increment if the increment exists.

genericC++

double newValue = 10000.0;
 
if (inc > 0)
{
  newValue = std::round((value - minValue) / inc) * inc;
}
newValue = std::min(newValue, maxValue);
newValue = std::max(newValue, minValue);
node->SetValue(newValue);

© 2024 IDS Imaging Development Systems GmbH