CVB++ 15.0
genapi.hpp
1#pragma once
2
3#include "../_cexports/c_gen_api.h"
4
5#include "../global.hpp"
6
7namespace Cvb
8{
9
10 CVB_BEGIN_INLINE_NS
11
13
22 namespace GenApi
23 {
24
25 class NodeMap;
28
29 class BooleanNode;
32
33 class CategoryNode;
36
37 class CommandNode;
40
41 class EnumEntryNode;
44
45 class EnumerationNode;
48
49 class FloatNode;
52
53 class FloatRegNode;
56
57 class IntRegNode;
60
61 class IntegerNode;
64
65 class SelectorNode;
68
69 class Node;
72
73 class PortNode;
76
77 class RegisterNode;
80
81 class StringNode;
84
85 class StringRegNode;
88
89 class ValueNode;
92
96
97 class FWUpdater;
98
99 enum class NodeMapInfo
100 {
101 Vendor = CExports::NMI_Vendor,
102 Model = CExports::NMI_Model,
103 SchemaVersionMajor = CExports::NMI_SchemaVersionMajor,
104 SchemaVersionMinor = CExports::NMI_SchemaVersionMinor,
105 SchemaVersionSubMinor = CExports::NMI_SchemaVersionSubMinor,
106 DeviceVersionMajor = CExports::NMI_DeviceVersionMajor,
107 DeviceVersionMinor = CExports::NMI_DeviceVersionMinor,
108 DeviceVersionSubMinor = CExports::NMI_DeviceVersionSubMinor,
109 Namespace = CExports::NMI_Namespace,
110 ProductGUID = CExports::NMI_ProductGUID,
111 VersionGUID = CExports::NMI_VersionGUID,
112 Tooltip = CExports::NMI_Tooltip
113 };
114
115 enum class NodeInfo
116 {
117
118 Name = CExports::NI_Name,
119 DisplayName = CExports::NI_DisplayName,
120 AccessMode = CExports::NI_AccessMode,
121 Max = CExports::NI_Max,
122 Min = CExports::NI_Min,
123 Increment = CExports::NI_Increment,
124 NumEnumEntries = CExports::NI_NumEnumEntries,
125 Streamable = CExports::NI_Streamable,
126 CachingMode = CExports::NI_CachingMode,
127 ToolTip = CExports::NI_Tooltip,
128 Description = CExports::NI_Description,
129 Visibility = CExports::NI_Visibility,
130 PollingTime = CExports::NI_PollingTime,
131 EventID = CExports::NI_EventID,
132 RegisterAddress = CExports::NI_RegisterAddress,
133 RegisterLength = CExports::NI_RegisterLength,
134 Representation = CExports::NI_Representation,
135 Unit = CExports::NI_Unit,
136 AliasName = CExports::NI_AliasName,
137 Deprecated = CExports::NI_Deprecated,
138 Feature = CExports::NI_Feature
139 };
140
143 {
145 Undefined = CExports::NR_Undefined,
147 Linear = CExports::NR_Linear,
149 Logarithmic = CExports::NR_Logarithmic,
151 Boolean = CExports::NR_Boolean,
153 PureNumber = CExports::NR_PureNumber,
155 HexNumber = CExports::NR_HexNumber,
157 IPv4 = CExports::NR_IPv4,
159 MAC = CExports::NR_MAC
160 };
161
162 enum class NodeList
163 {
164 ChildNode = CExports::NL_ChildNode,
165 Selected = CExports::NL_Selected,
166 EnumEntry = CExports::NL_EnumEntry,
167 Selecting = CExports::NL_Selecting
168 };
169
172 {
174 No = CExports::VM_NO,
176 WriteOnly = CExports::VM_WO,
178 ReadOnly = CExports::VM_RO,
180 Both = CExports::VM_RW
181 };
182
184
187 enum class AccessMode
188 {
196 NotImplemented = CExports::AM_NI,
202 NotAvailable = CExports::AM_NA,
212 NotApplicable [[deprecated("use AccessMode::NotAvailable instead")]] = NotAvailable,
214 ReadOnly = CExports::AM_RO,
216 WriteOnly = CExports::AM_WO,
218 ReadWrite = CExports::AM_RW
219 };
220
222 enum class CacheMode
223 {
225 NoCache = CExports::CM_NoCache,
227 WriteThrough = CExports::CM_WriteThrough,
229 WriteAround = CExports::CM_WriteAround
230 };
231
233
237 enum class Visibility
238 {
240 Invisible = CExports::NV_Invisible,
242 Beginner = CExports::NV_Beginner,
244 Expert = CExports::NV_Expert,
251 Guru = CExports::NV_Guru
252 };
253
255
259 {
261 Key = CExports::FWUI_Key,
263 Value = CExports::FWUI_Value,
265 LanguageCode = CExports::FWUI_LanguageCode
266 };
267
268 } // namespace GenApi
269
270 using GenApi::NodeMapPtr;
271
281 using GenApi::NodePtr;
288
290 using GenApi::AccessMode;
292 using GenApi::CacheMode;
293
295 using GenApi::NodeInfo;
296 using GenApi::NodeList;
298
304 using GenApi::Visibility;
305
307 using GenApi::FWUpdater;
309 using GenApi::NodeMapEnumerator;
310
311 CVB_END_INLINE_NS
312
313} // namespace Cvb
Node representing a true / false value.
Definition boolean_node.hpp:19
Node that logically groups other nodes.
Definition category_node.hpp:19
A node that can be executed.
Definition command_node.hpp:19
One entry in an enumeration.
Definition enum_entry_node.hpp:21
A node that presents a choice of values.
Definition enumeration_node.hpp:18
Firmware updater class.
Definition decl_fw_updater.hpp:40
Represents a floating point number.
Definition float_node.hpp:19
Floating point value register.
Definition float_reg_node.hpp:22
Integer value register.
Definition int_reg_node.hpp:22
Represents a integer number.
Definition integer_node.hpp:19
Basic GenApi node for device feature access.
Definition decl_node.hpp:38
Lazy enumeration of node maps.
Definition node_map_enumerator.hpp:30
Contains all nodes of a device or module.
Definition decl_node_map.hpp:39
Port nodes are the connection to the remote device.
Definition port_node.hpp:23
Untyped register access (only memory).
Definition register_node.hpp:22
Groups nodes, that are dependent on this one.
Definition selector_node.hpp:24
String value node.
Definition string_node.hpp:19
String value register.
Definition string_reg_node.hpp:22
Base class for all nodes, that have a value.
Definition value_node.hpp:23
Namespace for GenApi based device configuration.
Definition decl_fw_updater.hpp:29
std::shared_ptr< PortNode > PortNodePtr
Convenience shared pointer for PortNode.
Definition genapi.hpp:75
std::shared_ptr< Node > NodePtr
Convenience shared pointer for Node.
Definition genapi.hpp:71
std::shared_ptr< EnumEntryNode > EnumEntryNodePtr
Convenience shared pointer for EnumEntryNode.
Definition genapi.hpp:43
std::shared_ptr< RegisterNode > RegisterNodePtr
Convenience shared pointer for RegisterNode.
Definition genapi.hpp:79
FirmwareUpdateInfo
Defines commands to retrieve firmware information from a guf file.
Definition genapi.hpp:259
@ Value
Gets the value for an info key name.
Definition genapi.hpp:263
@ LanguageCode
Gets the language code for the given update info number.
Definition genapi.hpp:265
@ Key
Gets the key name for a given index.
Definition genapi.hpp:261
std::shared_ptr< NodeMapEnumerator > NodeMapEnumeratorPtr
Convenience shared pointer for ValueNode.
Definition genapi.hpp:95
std::shared_ptr< StringRegNode > StringRegNodePtr
Convenience shared pointer for StringRegNode.
Definition genapi.hpp:87
std::shared_ptr< StringNode > StringNodePtr
Convenience shared pointer for StringNode.
Definition genapi.hpp:83
Visibility
Feature complexity level.
Definition genapi.hpp:238
@ Expert
More complex feature, that requires deeper knowledge about the feature.
Definition genapi.hpp:244
@ Beginner
Simple feature usable by everybody.
Definition genapi.hpp:242
@ Guru
Definition genapi.hpp:251
@ Invisible
Node should not be displayed.
Definition genapi.hpp:240
CacheMode
Defines how the value is cached.
Definition genapi.hpp:223
@ NoCache
No caching used.
Definition genapi.hpp:225
@ WriteAround
Write to register, cache written on next read.
Definition genapi.hpp:229
@ WriteThrough
Write to cache and register.
Definition genapi.hpp:227
std::shared_ptr< BooleanNode > BooleanNodePtr
Convenience shared pointer for BooleanNode.
Definition genapi.hpp:31
std::shared_ptr< NodeMap > NodeMapPtr
Convenience shared pointer for NodeMap.
Definition genapi.hpp:27
std::shared_ptr< SelectorNode > SelectorNodePtr
Convenience shared pointer for SelectorNode.
Definition genapi.hpp:67
std::shared_ptr< CommandNode > CommandNodePtr
Convenience shared pointer for CommandNode.
Definition genapi.hpp:39
std::shared_ptr< EnumerationNode > EnumerationNodePtr
Convenience shared pointer for EnumerationNode.
Definition genapi.hpp:47
std::shared_ptr< IntegerNode > IntegerNodePtr
Convenience shared pointer for IntegerNode.
Definition genapi.hpp:63
std::shared_ptr< FloatRegNode > FloatRegNodePtr
Convenience shared pointer for FloatRegNode.
Definition genapi.hpp:55
AccessMode
Access possibility of the node.
Definition genapi.hpp:188
@ NotAvailable
Definition genapi.hpp:202
@ ReadWrite
Node can be read and written to.
Definition genapi.hpp:218
@ NotApplicable
Definition genapi.hpp:212
@ NotImplemented
Definition genapi.hpp:196
std::shared_ptr< ValueNode > ValueNodePtr
Convenience shared pointer for ValueNode.
Definition genapi.hpp:91
std::shared_ptr< CategoryNode > CategoryNodePtr
Convenience shared pointer for CategoryNode.
Definition genapi.hpp:35
std::shared_ptr< FloatNode > FloatNodePtr
Convenience shared pointer for FloatNode.
Definition genapi.hpp:51
NumberRepresentation
Defines how a number is to be interpreted/displayed in a graphical user interface.
Definition genapi.hpp:143
@ Boolean
True / False representation.
Definition genapi.hpp:151
@ MAC
MAC address in an edit control.
Definition genapi.hpp:159
@ Logarithmic
Slider with logarithmic behavior.
Definition genapi.hpp:149
@ Linear
Slider with linear behavior.
Definition genapi.hpp:147
@ IPv4
IPv4 address in an edit control.
Definition genapi.hpp:157
@ HexNumber
Hex number in an edit control.
Definition genapi.hpp:155
@ PureNumber
Decimal number in an edit control.
Definition genapi.hpp:153
@ Undefined
Not set in XML (treated as linear)
Definition genapi.hpp:145
std::shared_ptr< IntRegNode > IntRegNodePtr
Convenience shared pointer for IntRegNode.
Definition genapi.hpp:59
ReadWriteVerify
Controls how read/write operations are verified by the GenApi.
Definition genapi.hpp:172
@ Both
Both read and write operations are validated.
Definition genapi.hpp:180
@ ReadOnly
Only read operations are validated.
Definition genapi.hpp:178
@ WriteOnly
Only write operations are validated (default).
Definition genapi.hpp:176
@ No
No verification while reading or writing values.
Definition genapi.hpp:174
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17
Angle Max(Angle a, Angle b) noexcept
Returns the bigger of two angles.
Definition angle.hpp:495
Angle Min(Angle a, Angle b) noexcept
Returns the smaller of two angles.
Definition angle.hpp:512