CVB++ 15.0
gevserver.hpp
1#pragma once
2
3#include "../_cexports/c_gev_server.h"
4
5#include "../global.hpp"
6
7namespace Cvb
8{
9 CVB_BEGIN_INLINE_NS
10
12
31 namespace GevServer
32 {
34
35 class Server;
38
39 class Node;
42
43 class NodeMap;
46
47 class Stream;
50
51 class ValueNode;
54
55 class StringNode;
58
59 class StringRegNode;
62
63 class BooleanNode;
66
67 class CategoryNode;
70
71 class IntegerBaseNode;
74
75 class FloatBaseNode;
78
79 class IntegerNode;
82
83 class FloatNode;
86
87 class Float32RegNode;
90
91 class Float64RegNode;
94
95 class FloatRegNode;
98
99 class IntRegNode;
102
103 class SelectorNode;
106
107 class EnumEntryNode;
110
111 class CommandNode;
114
115 class Int32RegNode;
118
119 class Int64RegNode;
122
123 class EnumerationNode;
126
127 class IntSwissKnifeNode;
130
131 enum class ServerInitType
132 {
133 FixedSize = CExports::GSSI_FixedSize,
134 DynamicSize = CExports::GSSI_DynamicSize
135 };
136
138 enum class DriverType
139 {
140 Auto = CExports::DT_Auto,
141 Socket = CExports::DT_Socket,
142 Filter = CExports::DT_Filter
143 };
144
145 enum class ServerEvent
146 {
147 Connected = CExports::SE_Connected,
148 Disconnected = CExports::SE_Disconnected,
149 AcquisitionStart = CExports::SE_AcquisitionStart,
150 AcquisitionStop = CExports::SE_AcquisitionStop,
151 ImageSnapped = CExports::SE_ImageSnapped
152 };
153
155 enum class Namespace
156 {
157 Standard = CExports::GSNS_Standard,
158 Custom = CExports::GSNS_Custom,
159 Private = CExports::GSNS_Private
160 };
161
163 enum class NodeEvent
164 {
165 Read = CExports::GSNE_Read,
166 Write = CExports::GSNE_Write
167 };
168
170 enum class NodeType
171 {
172 Invalid = CExports::GSNT_Invalid,
173 Unknown = CExports::GSNT_Unknown,
174 Category = CExports::GSNT_Category,
175 IntReg = CExports::GSNT_IntReg,
176 StringReg = CExports::GSNT_StringReg,
177 String = CExports::GSNT_String,
178 Integer = CExports::GSNT_Integer,
179 Boolean = CExports::GSNT_Boolean,
180 Command = CExports::GSNT_Command,
181 Enumeration = CExports::GSNT_Enumeration,
182 EnumEntry = CExports::GSNT_EnumEntry,
183 IntSwissKnife = CExports::GSNT_IntSwissKnife,
184 Float = CExports::GSNT_Float,
185 FloatReg = CExports::GSNT_FloatReg
186 };
187
189 enum class Info
190 {
191 XMLVersionMajor = CExports::GSI_XMLVersionMajor,
192 XMLVersionMinor = CExports::GSI_XMLVersionMinor,
193 XMLVersionSubMinor = CExports::GSI_XMLVersionSubMinor,
194 ServerUserVersion = CExports::GSI_ServerUserVersion,
195 AcquisitionActive = CExports::GSI_AcquisitionActive
196 };
197
199 enum class NodeInfo
200 {
201 Name = CExports::GSNI_Name,
202 DisplayName = CExports::GSNI_DisplayName,
203 AccessMode = CExports::GSNI_AccessMode,
204 Max = CExports::GSNI_Max,
205 Min = CExports::GSNI_Min,
206 Increment = CExports::GSNI_Increment,
207 NumEnumEntries = CExports::GSNI_NumEnumEntries,
208 Streamable = CExports::GSNI_Streamable,
209 CachingMode = CExports::GSNI_CachingMode,
210 ToolTip = CExports::GSNI_Tooltip,
211 Description = CExports::GSNI_Description,
212 Visibility = CExports::GSNI_Visibility,
213 PollingTime = CExports::GSNI_PollingTime,
214 EventID = CExports::GSNI_EventID,
215 NameSpace = CExports::GSNI_Namespace,
216 RegisterLength = CExports::GSNI_RegisterLength,
217 RegisterAddress = CExports::GSNI_RegisterAddress,
218 NumberRepresentation = CExports::GSNI_NumberRepresentation,
219 Value = CExports::GSNI_Value,
220 OnValue = CExports::GSNI_OnValue,
222 OffValue = CExports::GSNI_OffValue,
223 Formula = CExports::GSNI_Formula,
224 ImposedAccessMode = CExports::GSNI_ImposedAccessMode,
227 CExports::GSNI_IsImplemented,
228 IsAvailable = CExports::GSNI_IsAvailable,
229 IsLocked = CExports::GSNI_IsLocked,
230 Alias = CExports::GSNI_Alias,
231 Sign = CExports::GSNI_Sign,
232 Unit = CExports::GSNI_Unit,
234 CExports::GSNI_DisplayPrecision,
235 Last = CExports::GSNI_Last
236 };
237
240 {
241 None = CExports::GSNR_None,
242 Linear = CExports::GSNR_Linear,
243 Logarithmic = CExports::GSNR_Logarithmic,
244 Boolean = CExports::GSNR_Boolean,
245 PureNumber = CExports::GSNR_PureNumber,
246 HexNumber = CExports::GSNR_HexNumber
247 };
248
250 enum class NumberSign
251 {
252 Unsigned = CExports::GSNS_Unsigned,
253 Signed = CExports::GSNS_Signed
254 };
255
257 enum class NodeList
258 {
259 Child = CExports::GSNL_Child,
263 Selected = CExports::GSNL_Selected,
264 Invalidator = CExports::GSNL_Invalidator,
265 Addresses = CExports::GSNL_Addresses
266 };
267
269 enum class PayloadType
270 {
271 Image = CExports::GSPT_Image,
272 File = CExports::GSPT_File,
273 ChunkImage = CExports::GSPT_ChunkImage
274 };
275
276 enum class PixelFormat
277 {
278 Mono8 = CExports::GSPF_Mono8,
279 Mono10 = CExports::GSPF_Mono10,
280 Mono12 = CExports::GSPF_Mono12,
281 Mono14 = CExports::GSPF_Mono14,
282 Mono16 = CExports::GSPF_Mono16,
283 RGB8 = CExports::GSPF_RGB8,
284 BGR8 = CExports::GSPF_BGR8,
285 RGBA8 = CExports::GSPF_RGBA8,
286 BGRA8 = CExports::GSPF_BGRA8
287 };
288 } // namespace GevServer
289
290 CVB_END_INLINE_NS
291} // namespace Cvb
Contains all nodes of a device or module.
Definition decl_node_map.hpp:39
GenApi::BooleanNode that is configurable.
Definition boolean_node.hpp:29
Node that logically groups other nodes.
Definition category_node.hpp:16
A node that can be executed.
Definition command_node.hpp:30
One entry in an enumeration.
Definition enum_entry_node.hpp:18
A GenApi::EnumerationNode that is configurable.
Definition enumeration_node.hpp:27
An float32 FloatRegNode node.
Definition float_32_reg_node.hpp:17
An float64 FloatRegNode node.
Definition float_64_reg_node.hpp:17
Represents a floating point number.
Definition float_base_node.hpp:16
Represents a floating point number.
Definition float_node.hpp:26
Floating point value register.
Definition float_reg_node.hpp:24
An Int32 IntRegNode node.
Definition int_32_reg_node.hpp:17
An Int64 IntRegNode node.
Definition int_64_reg_node.hpp:17
Integer value register.
Definition int_reg_node.hpp:24
Read only node to calculate formulas on the client side with integer arithmetic.
Definition decl_int_swiss_knife_node.hpp:28
Represents an integer number.
Definition integer_base_node.hpp:16
Represents a integer number.
Definition integer_node.hpp:26
Basic GevServer node for device feature access.
Definition decl_node.hpp:34
Groups other nodes that are dependent on this one.
Definition selector_node.hpp:21
Common Vision Blox GigE Vision Server implements a GigE Vision camera in software.
Definition decl_server.hpp:44
The stream to send Images or other data.
Definition decl_stream.hpp:19
String value node.
Definition string_node.hpp:25
String value register.
Definition string_reg_node.hpp:24
Base class for all nodes that have a value.
Definition value_node.hpp:21
Namespace for GevServer based device configuration.
Definition decl_int_swiss_knife_node.hpp:11
NumberSign
The signedness of the number.
Definition gevserver.hpp:251
@ Signed
Signed.
Definition gevserver.hpp:253
@ Unsigned
Unsigned.
Definition gevserver.hpp:252
Namespace
The possible name spaces a node can be in.
Definition gevserver.hpp:156
@ Custom
Custom name space.
Definition gevserver.hpp:158
@ Standard
Standard name space.
Definition gevserver.hpp:157
std::shared_ptr< Node > NodePtr
Convenience shared pointer for Node.
Definition gevserver.hpp:41
PayloadType
The type of the payload.
Definition gevserver.hpp:270
@ File
File payload.
Definition gevserver.hpp:272
@ ChunkImage
Chunk image payload.
Definition gevserver.hpp:273
@ Image
Image payload.
Definition gevserver.hpp:271
Info
General version and acquisition information.
Definition gevserver.hpp:190
@ AcquisitionActive
Acquisition active info.
Definition gevserver.hpp:195
@ XMLVersionMinor
Minor XML version info.
Definition gevserver.hpp:192
@ ServerUserVersion
User version of the server.
Definition gevserver.hpp:194
@ XMLVersionSubMinor
Sub minor XML version info.
Definition gevserver.hpp:193
@ XMLVersionMajor
Major XML version info.
Definition gevserver.hpp:191
std::shared_ptr< EnumEntryNode > EnumEntryNodePtr
Convenience shared pointer for EnumEntryNode.
Definition gevserver.hpp:109
std::shared_ptr< Stream > StreamPtr
Convenience shared pointer for Stream.
Definition gevserver.hpp:49
std::shared_ptr< IntegerBaseNode > IntegerBaseNodePtr
Convenience shared pointer for IntegerBaseNode.
Definition gevserver.hpp:73
std::shared_ptr< StringRegNode > StringRegNodePtr
Convenience shared pointer for StringRegNode.
Definition gevserver.hpp:61
std::shared_ptr< StringNode > StringNodePtr
Convenience shared pointer for StringNode.
Definition gevserver.hpp:57
DriverType
GigE Vision driver to use for communication and streaming.
Definition gevserver.hpp:139
@ Auto
Auto select driver type.
Definition gevserver.hpp:140
@ Socket
Socket driver.
Definition gevserver.hpp:141
@ Filter
Filter driver.
Definition gevserver.hpp:142
std::shared_ptr< BooleanNode > BooleanNodePtr
Convenience shared pointer for BooleanNode.
Definition gevserver.hpp:65
std::shared_ptr< NodeMap > NodeMapPtr
Convenience shared pointer for NodeMap.
Definition gevserver.hpp:45
std::shared_ptr< Int32RegNode > Int32RegNodePtr
Convenience shared pointer for Int32RegNode.
Definition gevserver.hpp:117
std::shared_ptr< SelectorNode > SelectorNodePtr
Convenience shared pointer for SelectorNode.
Definition gevserver.hpp:105
std::shared_ptr< CommandNode > CommandNodePtr
Convenience shared pointer for CommandNode.
Definition gevserver.hpp:113
std::shared_ptr< EnumerationNode > EnumerationNodePtr
Convenience shared pointer for EnumerationNode.
Definition gevserver.hpp:125
std::shared_ptr< Server > ServerPtr
Convenience shared pointer for GevServer.
Definition gevserver.hpp:37
std::shared_ptr< Float32RegNode > Float32RegNodePtr
Convenience shared pointer for Float43RegNode.
Definition gevserver.hpp:89
std::shared_ptr< IntegerNode > IntegerNodePtr
Convenience shared pointer for IntegerNode.
Definition gevserver.hpp:81
std::shared_ptr< Float64RegNode > Float64RegNodePtr
Convenience shared pointer for Float64RegNode.
Definition gevserver.hpp:93
std::shared_ptr< FloatRegNode > FloatRegNodePtr
Convenience shared pointer for FloatNode.
Definition gevserver.hpp:97
NodeInfo
Possible information a node can hold.
Definition gevserver.hpp:200
@ AccessMode
Gets the access mode of the node.
Definition gevserver.hpp:203
@ ImposedAccessMode
Definition gevserver.hpp:224
@ NumEnumEntries
Number of enumeration entries for NInfoEnum.
Definition gevserver.hpp:207
@ DisplayPrecision
Accesses the float node's display precision configuration.
Definition gevserver.hpp:233
@ PollingTime
Gets the polling time in ms.
Definition gevserver.hpp:213
@ IsAvailable
Accesses the IInteger node defining whether the node is available.
Definition gevserver.hpp:228
@ Visibility
Gets the visibility level.
Definition gevserver.hpp:212
@ Unit
Accesses the unit of a node as string.
Definition gevserver.hpp:232
@ Formula
Formula for swiss knife nodes.
Definition gevserver.hpp:223
@ Sign
Accesses the signed or unsigned state of integer registers.
Definition gevserver.hpp:231
@ CachingMode
Gets the caching mode.
Definition gevserver.hpp:209
@ DisplayName
Gets the display name of the node.
Definition gevserver.hpp:202
@ OnValue
Definition gevserver.hpp:220
@ Name
Gets the full name of the node.
Definition gevserver.hpp:201
@ EventID
Gets the event ID if available.
Definition gevserver.hpp:214
@ Value
Accesses the value configuration.
Definition gevserver.hpp:219
@ OffValue
Boolean specific: accesses the integer value for false.
Definition gevserver.hpp:222
@ Max
Gets the maximum value.
Definition gevserver.hpp:204
@ Increment
Gets the increment.
Definition gevserver.hpp:206
@ Min
Gets the minimum value.
Definition gevserver.hpp:205
@ IsLocked
Accesses the IInteger node defining whether the node is read only.
Definition gevserver.hpp:229
@ Streamable
Information on the streamability of the node.
Definition gevserver.hpp:208
@ Description
Gets the long descriptive text.
Definition gevserver.hpp:211
@ Last
Node last.
Definition gevserver.hpp:235
@ IsImplemented
Access the IInteger node defining whether the node is implemented.
Definition gevserver.hpp:226
@ NameSpace
Gets the node namespace.
Definition gevserver.hpp:215
@ RegisterAddress
Gets the current address of the register (can change).
Definition gevserver.hpp:217
@ Alias
Accesses the alias node of this node.
Definition gevserver.hpp:230
@ ToolTip
Gets the tool tip (short description).
Definition gevserver.hpp:210
@ RegisterLength
Gets the register nodes length in bytes.
Definition gevserver.hpp:216
std::shared_ptr< ValueNode > ValueNodePtr
Convenience shared pointer for ValueNode.
Definition gevserver.hpp:53
std::shared_ptr< CategoryNode > CategoryNodePtr
Convenience shared pointer for CategoryNode.
Definition gevserver.hpp:69
std::shared_ptr< Int64RegNode > Int64RegNodePtr
Convenience shared pointer for Int32RegNode.
Definition gevserver.hpp:121
std::shared_ptr< FloatNode > FloatNodePtr
Convenience shared pointer for FloatNode.
Definition gevserver.hpp:85
NodeType
Available node types.
Definition gevserver.hpp:171
@ StringReg
Node is a string register node.
Definition gevserver.hpp:176
@ Float
Node is a float node (no reg).
Definition gevserver.hpp:184
@ String
Node is a string node (no reg).
Definition gevserver.hpp:177
@ Boolean
Node is a boolean node (no reg).
Definition gevserver.hpp:179
@ Enumeration
Node is an enumeration node (no reg).
Definition gevserver.hpp:181
@ Category
Node is a category node.
Definition gevserver.hpp:174
@ EnumEntry
Node is an enumeration entry node (no reg).
Definition gevserver.hpp:182
@ IntReg
Node is an integer register node.
Definition gevserver.hpp:175
@ Invalid
Node is invalid.
Definition gevserver.hpp:172
@ IntSwissKnife
Node is an integer swiss knife node (no reg).
Definition gevserver.hpp:183
@ Unknown
Node is of unknown type.
Definition gevserver.hpp:173
@ Integer
Node is an integer node (no reg).
Definition gevserver.hpp:178
@ FloatReg
Node is a float register node.
Definition gevserver.hpp:185
@ Command
Node is a command node (no reg).
Definition gevserver.hpp:180
NumberRepresentation
Defines how a number is to be interpreted/displayed in a graphical user interface.
Definition gevserver.hpp:240
@ Logarithmic
Logarithmic number representation.
Definition gevserver.hpp:243
@ Linear
Linear number representation.
Definition gevserver.hpp:242
@ None
No number representation.
Definition gevserver.hpp:241
@ HexNumber
Hexadecimal number representation.
Definition gevserver.hpp:246
@ PureNumber
Pure number representation.
Definition gevserver.hpp:245
std::shared_ptr< FloatBaseNode > FloatBaseNodePtr
Convenience shared pointer for FloatBaseNode.
Definition gevserver.hpp:77
std::shared_ptr< IntRegNode > IntRegNodePtr
Convenience shared pointer for IntRegNode.
Definition gevserver.hpp:101
std::shared_ptr< IntSwissKnifeNode > IntSwissKnifeNodePtr
Convenience shared pointer for IntSwissKnifeNode.
Definition gevserver.hpp:129
NodeEvent
Node event.
Definition gevserver.hpp:164
@ Write
"Write to node.
Definition gevserver.hpp:166
@ Read
Read from node.
Definition gevserver.hpp:165
NodeList
Node access.
Definition gevserver.hpp:258
@ Addresses
Node accesses the register address nodes (not constants).
Definition gevserver.hpp:265
@ Selected
Node accesses the selected nodes.
Definition gevserver.hpp:263
@ Child
Definition gevserver.hpp:259
@ Invalidator
Node accesses the invalidator nodes.
Definition gevserver.hpp:264
@ RGB8
Red-Green-Blue 8-bit.
Definition pfnc_format.hpp:206
@ Mono12
Monochrome 12-bit unpacked.
Definition pfnc_format.hpp:66
@ Mono14
Monochrome 14-bit unpacked.
Definition pfnc_format.hpp:74
@ Mono16
Monochrome 16-bit.
Definition pfnc_format.hpp:78
@ Mono10
Monochrome 10-bit unpacked.
Definition pfnc_format.hpp:58
@ Mono8
Monochrome 8-bit.
Definition pfnc_format.hpp:50
@ BGR8
Blue-Green-Red 8-bit.
Definition pfnc_format.hpp:286
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17
@ Connected
The Device object is currently connected to the remote hardware.
Definition global.hpp:506
@ Disconnected
The Device object is currently disconnected from the remote hardware.
Definition global.hpp:508
An IP network interface the GevServer can be bound to.
Definition logical_network_interface.hpp:27