IDS Peak comfortSDK, genericSDK, IPL, and AFL developer manuals are external documents. Please contact us if you need them.
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"); |
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(); |
AccessStatus |
Available |
Readable |
Writable |
---|---|---|---|
ReadWrite |
|||
WriteOnly |
|||
ReadOnly |
|||
NotAvailable |
|||
NotImplemented |
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"); |
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) |
NodeType |
Return Value function |
Set Value function |
Execute function |
Info function |
Description |
---|---|---|---|---|---|
Category |
|
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 |
|
Boolean value |
|
Integer |
Value |
SetValue |
Minimum Maximum Increment ValidValues Unit |
Integer |
|
Float |
Value |
SetValue |
Minimum Maximum Increment ValidValues Unit |
Floating point number |
|
String |
Value |
SetValue |
MaximumLength |
String consisting of alphanumeric characters |
|
Enumeration |
CurrentEntry |
SetCurrentEntry |
Entries |
Enumeration, contains a defined list of possible values (EnumerationEntry) |
|
EnumerationEntry |
Value |
NumericValue StringValue SymbolicValue |
Value of an enumeration |
||
Command |
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"); |
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; |