_GigEStreamParams.h 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923
  1. //-----------------------------------------------------------------------------
  2. // Copyright (c) 2004-2021 Basler AG
  3. // Section: Vision Components
  4. // Project: GenApi
  5. //-----------------------------------------------------------------------------
  6. /*!
  7. \file
  8. \brief Interface to the PylonGigE Stream Grabber parameters
  9. */
  10. //-----------------------------------------------------------------------------
  11. // This file is generated automatically
  12. // Do not modify!
  13. //-----------------------------------------------------------------------------
  14. #ifndef Basler_GigEStreamParams_PARAMS_H
  15. #define Basler_GigEStreamParams_PARAMS_H
  16. #include <GenApi/IEnumerationT.h>
  17. #include <GenApi/NodeMapRef.h>
  18. #include <GenApi/DLLLoad.h>
  19. // common node types
  20. #include <GenApi/IBoolean.h>
  21. #include <GenApi/ICategory.h>
  22. #include <GenApi/ICommand.h>
  23. #include <GenApi/IEnumeration.h>
  24. #include <GenApi/IEnumEntry.h>
  25. #include <GenApi/IFloat.h>
  26. #include <GenApi/IInteger.h>
  27. #include <GenApi/IString.h>
  28. #include <GenApi/IRegister.h>
  29. #ifdef __GNUC__
  30. # undef GCC_VERSION
  31. # define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
  32. # undef GCC_DIAGNOSTIC_AWARE
  33. # define GCC_DIAGNOSTIC_AWARE (GCC_VERSION >= 40200)
  34. # undef GCC_DIAGNOSTIC_PUSH_POP_AWARE
  35. # define GCC_DIAGNOSTIC_PUSH_POP_AWARE (GCC_VERSION >= 40600)
  36. #else
  37. # undef GCC_DIAGNOSTIC_AWARE
  38. # define GCC_DIAGNOSTIC_AWARE 0
  39. #endif
  40. #ifdef __GNUC__
  41. // GCC_DIAGNOSTIC_AWARE ensures that the internal deprecated warnings can be ignored by gcc.
  42. // As a result older gcc will not generate warnings about really used deprecated features.
  43. # if GCC_DIAGNOSTIC_AWARE
  44. # define GENAPI_DEPRECATED_FEATURE __attribute__((deprecated))
  45. # else
  46. # define GENAPI_DEPRECATED_FEATURE
  47. # endif
  48. #elif defined(_MSC_VER)
  49. # define GENAPI_DEPRECATED_FEATURE __declspec(deprecated)
  50. #else
  51. # define GENAPI_DEPRECATED_FEATURE
  52. #endif
  53. #if GCC_DIAGNOSTIC_AWARE
  54. # if GCC_DIAGNOSTIC_PUSH_POP_AWARE
  55. # pragma GCC diagnostic push
  56. # endif
  57. # pragma GCC diagnostic ignored "-Wdeprecated-declarations"
  58. #endif
  59. //! The namespace containing the device's control interface and related enumeration types
  60. namespace Basler_GigEStreamParams
  61. {
  62. //**************************************************************************************************
  63. // Enumerations
  64. //**************************************************************************************************
  65. //! Valid values for Type
  66. enum TypeEnums
  67. {
  68. Type_WindowsFilterDriver, //!<The pylon GigE Vision Filter Driver is used.
  69. Type_WindowsIntelPerformanceDriver, //!<The pylon GigE Vision Performance Driver is used.
  70. Type_SocketDriver, //!<The socket driver is used.
  71. Type_NoDriverAvailable //!<No suitable driver is installed.
  72. };
  73. //! Valid values for Status
  74. enum StatusEnums
  75. {
  76. Status_NotInitialized, //!<The stream grabber is not initialized.
  77. Status_Closed, //!<The stream grabber is closed.
  78. Status_Open, //!<The stream grabber is open.
  79. Status_Locked //!<The stream grabber is locked.
  80. };
  81. //! Valid values for AccessMode
  82. enum AccessModeEnums
  83. {
  84. AccessMode_NotInitialized, //!<
  85. AccessMode_Monitor, //!<
  86. AccessMode_Control, //!<
  87. AccessMode_Exclusive //!<
  88. };
  89. //! Valid values for TransmissionType
  90. enum TransmissionTypeEnums
  91. {
  92. TransmissionType_UseCameraConfig, //!<The stream transmission configuration is read from the camera.
  93. TransmissionType_Unicast, //!<The stream data is sent to a single device in the local network.
  94. TransmissionType_Multicast, //!<The stream data is sent to selected devices in the local network.
  95. TransmissionType_LimitedBroadcast, //!<The stream data is sent to all devices in the local area network (255.255.255.255).
  96. TransmissionType_SubnetDirectedBroadcast //!<The stream data is sent to all devices in the same subnet as the camera.
  97. };
  98. //**************************************************************************************************
  99. // Parameter class
  100. //**************************************************************************************************
  101. //! Interface to the PylonGigE Stream Grabber parameters
  102. class CGigEStreamParams_Params
  103. {
  104. //----------------------------------------------------------------------------------------------------------------
  105. // Implementation
  106. //----------------------------------------------------------------------------------------------------------------
  107. protected:
  108. // If you want to show the following methods in the help file
  109. // add the string HIDE_CLASS_METHODS to the ENABLED_SECTIONS tag in the doxygen file
  110. //! \cond HIDE_CLASS_METHODS
  111. //! Constructor
  112. CGigEStreamParams_Params( void );
  113. //! Destructor
  114. ~CGigEStreamParams_Params( void );
  115. //! Initializes the references
  116. void _Initialize( GENAPI_NAMESPACE::INodeMap* );
  117. //! Return the vendor of the camera
  118. const char* _GetVendorName( void );
  119. //! Returns the camera model name
  120. const char* _GetModelName( void );
  121. //! \endcond
  122. //----------------------------------------------------------------------------------------------------------------
  123. // References to features
  124. //----------------------------------------------------------------------------------------------------------------
  125. public:
  126. //! \name Root - Interface to the GigE specific stream parameters.
  127. //@{
  128. /*!
  129. \brief Sets the driver type to be used by the stream grabber.
  130. \b Visibility = Beginner
  131. */
  132. GENAPI_NAMESPACE::IEnumerationT<TypeEnums >& Type;
  133. //@}
  134. //! \name Root - Interface to the GigE specific stream parameters.
  135. //@{
  136. /*!
  137. \brief Maximum number of buffers that can be used simultaneously for grabbing images.
  138. \b Visibility = Expert
  139. */
  140. GENAPI_NAMESPACE::IInteger& MaxNumBuffer;
  141. //@}
  142. //! \name Root - Interface to the GigE specific stream parameters.
  143. //@{
  144. /*!
  145. \brief Maximum size (in bytes) of a buffer used for grabbing images.
  146. \b Visibility = Expert
  147. */
  148. GENAPI_NAMESPACE::IInteger& MaxBufferSize;
  149. //@}
  150. //! \name Root - Interface to the GigE specific stream parameters.
  151. //@{
  152. /*!
  153. \brief Enables the packet resend mechanism.
  154. An image frame consists of n numbers of packets. Each packet has a header consisting of a 24-bit packet ID.
  155. This packet ID increases with each packet sent, and makes it possible for the receiving end to know if a
  156. particular packet has been lost during the transfer. If 'ResendPacketMechanism' is enabled, and the receiving
  157. end notices a lost packet, it will request the other side (e.g. the camera) to send the lost packet again.
  158. If enabled, the 'ResendPacketMechanism' can cause delays in the timing because the sending end will resend
  159. the lost packet. If disabled, image data packet(s) can get lost which results in an incomplete received frame.
  160. You have to weigh the disadvantages and advantages for your special application to decide whether to enable
  161. or disable this command.<br><br>
  162. Default setting: <i>Enabled</i>
  163. \b Visibility = Expert
  164. */
  165. GENAPI_NAMESPACE::IBoolean& EnableResend;
  166. //@}
  167. //! \name Root - Interface to the GigE specific stream parameters.
  168. //@{
  169. /*!
  170. \brief Timeout period in milliseconds between two packets within one frame.
  171. An image frame consists of n numbers of packets. The packet timeout counting is (re)started
  172. each time a packet is received. If the timeout expires (e.g. no packet was received
  173. during the last 'PacketTimeout' period), the 'Resend Packet Mechanism' is started.
  174. For information, see the 'EnableResend' feature.
  175. \b Visibility = Guru
  176. */
  177. GENAPI_NAMESPACE::IInteger& PacketTimeout;
  178. //@}
  179. //! \name Root - Interface to the GigE specific stream parameters.
  180. //@{
  181. /*!
  182. \brief Enables negotiation of the packet size to find the largest possible packet size.
  183. Enables or disables probing of a working large packet size before grabbing.
  184. Using large packets reduces the overhead for transferring images but
  185. whether a large packet can be transported depends on the used network hardware
  186. and its configuration.
  187. \b Visibility = Guru
  188. */
  189. GENAPI_NAMESPACE::IBoolean& AutoPacketSize;
  190. //@}
  191. //! \name Root - Interface to the GigE specific stream parameters.
  192. //@{
  193. /*!
  194. \brief Size (in frames) of the receive window in which the stream grabber looks for missing packets.
  195. \b Visibility = Guru
  196. */
  197. GENAPI_NAMESPACE::IInteger& ReceiveWindowSize;
  198. //@}
  199. //! \name Root - Interface to the GigE specific stream parameters.
  200. //@{
  201. /*!
  202. \brief Threshold after which resend requests are initiated.
  203. \b Visibility = Guru
  204. */
  205. GENAPI_NAMESPACE::IInteger& ResendRequestThreshold;
  206. //@}
  207. //! \name Root - Interface to the GigE specific stream parameters.
  208. //@{
  209. /*!
  210. \brief Amount of packet resend requests to be batched, i.e., sent together.
  211. \b Visibility = Guru
  212. */
  213. GENAPI_NAMESPACE::IInteger& ResendRequestBatching;
  214. //@}
  215. //! \name Root - Interface to the GigE specific stream parameters.
  216. //@{
  217. /*!
  218. \brief Time to wait (in milliseconds) between detecting a missing packet and sending a resend request.
  219. \b Visibility = Guru
  220. */
  221. GENAPI_NAMESPACE::IInteger& ResendTimeout;
  222. //@}
  223. //! \name Root - Interface to the GigE specific stream parameters.
  224. //@{
  225. /*!
  226. \brief Time to wait (in milliseconds) between sending a resend request and considering the request as lost.
  227. \b Visibility = Guru
  228. */
  229. GENAPI_NAMESPACE::IInteger& ResendRequestResponseTimeout;
  230. //@}
  231. //! \name Root - Interface to the GigE specific stream parameters.
  232. //@{
  233. /*!
  234. \brief Maximum number of resend requests per missing packet.
  235. \b Visibility = Guru
  236. */
  237. GENAPI_NAMESPACE::IInteger& MaximumNumberResendRequests;
  238. //@}
  239. //! \name Root - Interface to the GigE specific stream parameters.
  240. //@{
  241. /*!
  242. \brief Maximum time in milliseconds to receive all packets of a frame.
  243. An image frame consists of n numbers of packets. The 'FrameRetention' always starts from the
  244. point in time the receiving end notices that a packet has been received for a particular frame.
  245. If the transmission of packets of a frame is not completed within the 'FrameRetention' time,
  246. the corresponding frame is delivered with status 'Failed'.
  247. \b Visibility = Guru
  248. */
  249. GENAPI_NAMESPACE::IInteger& FrameRetention;
  250. //@}
  251. //! \name Root - Interface to the GigE specific stream parameters.
  252. //@{
  253. /*!
  254. \brief Enables assigning a custom priority to the thread which receives incoming stream packets.
  255. \b Visibility = Guru
  256. */
  257. GENAPI_NAMESPACE::IBoolean& ReceiveThreadPriorityOverride;
  258. //@}
  259. //! \name Root - Interface to the GigE specific stream parameters.
  260. //@{
  261. /*!
  262. \brief Thread priority of the receive thread.
  263. Thread priority of the receive thread. Only available if the socket driver is used. To assign the priority, the Receive Thread Priority Override parameter must be set to true.
  264. \b Visibility = Guru
  265. */
  266. GENAPI_NAMESPACE::IInteger& ReceiveThreadPriority;
  267. //@}
  268. //! \name Root - Interface to the GigE specific stream parameters.
  269. //@{
  270. /*!
  271. \brief Socket buffer size in kilobytes.
  272. \b Visibility = Guru
  273. */
  274. GENAPI_NAMESPACE::IInteger& SocketBufferSize;
  275. //@}
  276. //! \name Debug - Contains parameters for debugging purposes.
  277. //@{
  278. /*!
  279. \brief Indicates the current status of the stream grabber.
  280. \b Visibility = Guru
  281. */
  282. GENAPI_NAMESPACE::IEnumerationT<StatusEnums >& Status;
  283. //@}
  284. //! \name Debug - Contains parameters for debugging purposes.
  285. //@{
  286. /*!
  287. \brief Indicates the mode of access the current application has to the device.
  288. \b Visibility = Guru
  289. */
  290. GENAPI_NAMESPACE::IEnumerationT<AccessModeEnums >& AccessMode;
  291. //@}
  292. //! \name Debug - Contains parameters for debugging purposes.
  293. //@{
  294. /*!
  295. \brief Indicates whether the pylon GigE Vision Performance Driver is currently available.
  296. \b Visibility = Guru
  297. */
  298. GENAPI_NAMESPACE::IInteger& TypeIsWindowsIntelPerformanceDriverAvailable;
  299. //@}
  300. //! \name Debug - Contains parameters for debugging purposes.
  301. //@{
  302. /*!
  303. \brief Indicates whether the pylon GigE Vision Filter Driver is currently available.
  304. \b Visibility = Guru
  305. */
  306. GENAPI_NAMESPACE::IInteger& TypeIsWindowsFilterDriverAvailable;
  307. //@}
  308. //! \name Debug - Contains parameters for debugging purposes.
  309. //@{
  310. /*!
  311. \brief Indicates whether the socket driver is currently available.
  312. \b Visibility = Guru
  313. */
  314. GENAPI_NAMESPACE::IInteger& TypeIsSocketDriverAvailable;
  315. //@}
  316. //! \name Statistic - Contains parameters for displaying statistical data.
  317. //@{
  318. /*!
  319. \brief GigE cameras: Number of frames received. Other cameras: Number of buffers processed.
  320. \b Visibility = Expert
  321. */
  322. GENAPI_NAMESPACE::IInteger& Statistic_Total_Buffer_Count;
  323. //@}
  324. //! \name Statistic - Contains parameters for displaying statistical data.
  325. //@{
  326. /*!
  327. \brief GigE cameras: Number of buffers with at least one failed packet. A packet is considered failed if its status is not 'success'. Other cameras: Number of buffers that returned with an error status.
  328. \b Visibility = Expert
  329. */
  330. GENAPI_NAMESPACE::IInteger& Statistic_Failed_Buffer_Count;
  331. //@}
  332. //! \name Statistic - Contains parameters for displaying statistical data.
  333. //@{
  334. /*!
  335. \brief Number of frames lost because there were no buffers in the queue.
  336. \b Visibility = Expert
  337. */
  338. GENAPI_NAMESPACE::IInteger& Statistic_Buffer_Underrun_Count;
  339. //@}
  340. //! \name Statistic - Contains parameters for displaying statistical data.
  341. //@{
  342. /*!
  343. \brief Number of packets received.
  344. \b Visibility = Expert
  345. */
  346. GENAPI_NAMESPACE::IInteger& Statistic_Total_Packet_Count;
  347. //@}
  348. //! \name Statistic - Contains parameters for displaying statistical data.
  349. //@{
  350. /*!
  351. \brief Number of failed packets.
  352. \b Visibility = Expert
  353. */
  354. GENAPI_NAMESPACE::IInteger& Statistic_Failed_Packet_Count;
  355. //@}
  356. //! \name Statistic - Contains parameters for displaying statistical data.
  357. //@{
  358. /*!
  359. \brief Number of emitted packet resend commands sent.
  360. \b Visibility = Expert
  361. */
  362. GENAPI_NAMESPACE::IInteger& Statistic_Resend_Request_Count;
  363. //@}
  364. //! \name Statistic - Contains parameters for displaying statistical data.
  365. //@{
  366. /*!
  367. \brief Number of packets requested by packet resend commands.
  368. \b Visibility = Expert
  369. */
  370. GENAPI_NAMESPACE::IInteger& Statistic_Resend_Packet_Count;
  371. //@}
  372. //! \name IPConfig - Contains parameters for configuring the stream destination.
  373. //@{
  374. /*!
  375. \brief Sets how stream data is transferred within the network.
  376. <ul>
  377. <li>
  378. <b>Default (Unicast)</b><br>
  379. The camera sends stream data to a single controlling application. Other devices cannot
  380. receive the stream data.
  381. </li>
  382. <br>
  383. <li>
  384. <b>Broadcast</b><br>
  385. The camera sends the stream data to all devices on the network. The application which
  386. starts/stops the acquisition is called the controlling application. Other applications
  387. can receive the stream data. These applications are called monitor applications, because
  388. they open the camera in read-only mode. This implies that monitor applications cannot
  389. change the camera configuration and they cannot start/stop the image acquisition.
  390. However, monitor applications can request resend requests for lost stream data packets.
  391. <br><br>
  392. Attention: Broadcasting the stream data packets uses a high amount of network bandwidth
  393. because the stream data packets are forwarded to all devices attached to the
  394. network, even if they are not interested in receiving stream data.
  395. </li>
  396. <br>
  397. <li>
  398. <b>Multicast</b><br>
  399. Multicasting is very similar to broadcasting. The main advantage of multicasting is that
  400. multicasting saves network bandwidth, because the image data stream is only sent to those
  401. devices that are interested in receiving the data. To achieve this, the camera sends image
  402. data streams to members of a multicast group only. A multicast group is defined by an IP
  403. address taken from the multicast address range (224.0.0.0 to 239.255.255.255).
  404. <br><br>
  405. Every device that wants to receive a multicast data stream has to be a member of a multicast
  406. group. A member of a specific multicast group only receives data destinated for this group.
  407. Data for other groups is not received. Usually network adapters and switches are able to filter
  408. the data efficently on hardware level (layer-2 packet filtering).
  409. <br><br>
  410. When multicasting is enabled for pylon, pylon automatically takes care of joining and leaving
  411. the multicast groups defined by the destination IP address. Keep in mind that some addresses
  412. from the multicast address range are reserved for general purposes. The address range from
  413. 239.255.0.0 to 239.255.255.255 is assigned by RFC 2365 as a locally administered address space.
  414. Use one of these addresses if you are not sure.
  415. <br><br>
  416. On protocol level multicasting involves a so-called IGMP message (IGMP = Internet Group Management Protocol).
  417. To benefit from multicasting, managed network switches should be used. These managed network
  418. switches support the IGMP protocol. Managed network switches supporting the IGMP protocol
  419. will forward multicast packets only if there is a connected device that has joined the
  420. corresponding multicast group. If the switch does not support the IGMP protocol, multicast
  421. is equivalent to broadcasting.
  422. <br><br>
  423. Recommendation:<br>
  424. <ul>
  425. <li>
  426. Each camera should stream to a different multicast group.
  427. </li>
  428. <li>
  429. Streaming to different multicast groups reduces the CPU load and saves network bandwidth
  430. if the network switches supports the IGMP protocol.
  431. </li>
  432. </ul>
  433. </li>
  434. <br>
  435. <li>
  436. <b>Use camera configuration</b><br>
  437. This setting is only available if the application has opened the device in monitor mode. If
  438. the controlling application has already configured the camera stream channel and has possibly
  439. started the acquisition, the monitor application can read all required configuration data
  440. from the camera. Additional configuration is not required. This setting can only be used if
  441. the controlling application has established the stream channel (by opening a pylon stream
  442. grabber object), and the monitor application is started afterwards.
  443. <br><br>
  444. Note, when using broadcast and multicast configurations: When there is more than one camera
  445. device reachable by one network interface, make sure that for each camera a different port
  446. number must be assigned. For assigning port numbers, see the 'DestinationPort' feature.
  447. </li>
  448. </ul>
  449. \b Visibility = Expert
  450. */
  451. GENAPI_NAMESPACE::IEnumerationT<TransmissionTypeEnums >& TransmissionType;
  452. //@}
  453. //! \name IPConfig - Contains parameters for configuring the stream destination.
  454. //@{
  455. /*!
  456. \brief IP address to which the stream grabber sends all stream data.
  457. IP address to which the stream grabber sends all stream data.
  458. \b Visibility = Expert
  459. \b Selected by : TransmissionType
  460. */
  461. GENAPI_NAMESPACE::IString& DestinationAddr;
  462. //@}
  463. //! \name IPConfig - Contains parameters for configuring the stream destination.
  464. //@{
  465. /*!
  466. \brief Port to which the stream grabber sends all stream data.
  467. The camera will send all stream data to this port. If you manually enter a port
  468. number, it is highly recommended not to choose a port from the ephemeral port
  469. range of the operating system (https://en.wikipedia.org/wiki/Ephemeral_port)
  470. in order to avoid port collisions.
  471. <b>Port configuration:</b>
  472. <ol>
  473. <li>
  474. <b>Unicast</b><br>
  475. The port is determined automatically.
  476. Manually choosing a port number might be useful for certain firewall configurations.
  477. </li>
  478. <br>
  479. <li>
  480. <b>Broadcast & Multicast</b><br>
  481. For each device reachable by a specific network interface, a unique, unused port number
  482. must be assigned. Be aware that the suggested default value might be already in use.
  483. Choose an unused port or 0=autoselect in that case. The controlling application and all
  484. monitor applications must use the same port number. There is no autoselect feature
  485. availbale for monitor applications, i.e., monitor applications must not use the 0 value.
  486. For monitor applications it is convenient to use the 'UseCameraConfig' value for the
  487. 'TransmissionType' feature instead. For more details see the 'TransmissionType' feature.
  488. </li>
  489. </ol>
  490. \b Visibility = Expert
  491. \b Selected by : TransmissionType
  492. */
  493. GENAPI_NAMESPACE::IInteger& DestinationPort;
  494. //@}
  495. private:
  496. //! \cond HIDE_CLASS_METHODS
  497. //! not implemented copy constructor
  498. CGigEStreamParams_Params( CGigEStreamParams_Params& );
  499. //! not implemented assignment operator
  500. CGigEStreamParams_Params& operator=( CGigEStreamParams_Params& );
  501. //! \endcond
  502. };
  503. //**************************************************************************************************
  504. // Parameter class implementation
  505. //**************************************************************************************************
  506. //! \cond HIDE_CLASS_METHODS
  507. inline CGigEStreamParams_Params::CGigEStreamParams_Params( void )
  508. : Type( *new GENAPI_NAMESPACE::CEnumerationTRef<TypeEnums>() )
  509. , MaxNumBuffer( *new GENAPI_NAMESPACE::CIntegerRef() )
  510. , MaxBufferSize( *new GENAPI_NAMESPACE::CIntegerRef() )
  511. , EnableResend( *new GENAPI_NAMESPACE::CBooleanRef() )
  512. , PacketTimeout( *new GENAPI_NAMESPACE::CIntegerRef() )
  513. , AutoPacketSize( *new GENAPI_NAMESPACE::CBooleanRef() )
  514. , ReceiveWindowSize( *new GENAPI_NAMESPACE::CIntegerRef() )
  515. , ResendRequestThreshold( *new GENAPI_NAMESPACE::CIntegerRef() )
  516. , ResendRequestBatching( *new GENAPI_NAMESPACE::CIntegerRef() )
  517. , ResendTimeout( *new GENAPI_NAMESPACE::CIntegerRef() )
  518. , ResendRequestResponseTimeout( *new GENAPI_NAMESPACE::CIntegerRef() )
  519. , MaximumNumberResendRequests( *new GENAPI_NAMESPACE::CIntegerRef() )
  520. , FrameRetention( *new GENAPI_NAMESPACE::CIntegerRef() )
  521. , ReceiveThreadPriorityOverride( *new GENAPI_NAMESPACE::CBooleanRef() )
  522. , ReceiveThreadPriority( *new GENAPI_NAMESPACE::CIntegerRef() )
  523. , SocketBufferSize( *new GENAPI_NAMESPACE::CIntegerRef() )
  524. , Status( *new GENAPI_NAMESPACE::CEnumerationTRef<StatusEnums>() )
  525. , AccessMode( *new GENAPI_NAMESPACE::CEnumerationTRef<AccessModeEnums>() )
  526. , TypeIsWindowsIntelPerformanceDriverAvailable( *new GENAPI_NAMESPACE::CIntegerRef() )
  527. , TypeIsWindowsFilterDriverAvailable( *new GENAPI_NAMESPACE::CIntegerRef() )
  528. , TypeIsSocketDriverAvailable( *new GENAPI_NAMESPACE::CIntegerRef() )
  529. , Statistic_Total_Buffer_Count( *new GENAPI_NAMESPACE::CIntegerRef() )
  530. , Statistic_Failed_Buffer_Count( *new GENAPI_NAMESPACE::CIntegerRef() )
  531. , Statistic_Buffer_Underrun_Count( *new GENAPI_NAMESPACE::CIntegerRef() )
  532. , Statistic_Total_Packet_Count( *new GENAPI_NAMESPACE::CIntegerRef() )
  533. , Statistic_Failed_Packet_Count( *new GENAPI_NAMESPACE::CIntegerRef() )
  534. , Statistic_Resend_Request_Count( *new GENAPI_NAMESPACE::CIntegerRef() )
  535. , Statistic_Resend_Packet_Count( *new GENAPI_NAMESPACE::CIntegerRef() )
  536. , TransmissionType( *new GENAPI_NAMESPACE::CEnumerationTRef<TransmissionTypeEnums>() )
  537. , DestinationAddr( *new GENAPI_NAMESPACE::CStringRef() )
  538. , DestinationPort( *new GENAPI_NAMESPACE::CIntegerRef() )
  539. {
  540. }
  541. inline CGigEStreamParams_Params::~CGigEStreamParams_Params( void )
  542. {
  543. delete static_cast <GENAPI_NAMESPACE::CEnumerationTRef<TypeEnums>*> (&Type);
  544. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&MaxNumBuffer);
  545. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&MaxBufferSize);
  546. delete static_cast <GENAPI_NAMESPACE::CBooleanRef*> (&EnableResend);
  547. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&PacketTimeout);
  548. delete static_cast <GENAPI_NAMESPACE::CBooleanRef*> (&AutoPacketSize);
  549. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&ReceiveWindowSize);
  550. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&ResendRequestThreshold);
  551. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&ResendRequestBatching);
  552. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&ResendTimeout);
  553. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&ResendRequestResponseTimeout);
  554. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&MaximumNumberResendRequests);
  555. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&FrameRetention);
  556. delete static_cast <GENAPI_NAMESPACE::CBooleanRef*> (&ReceiveThreadPriorityOverride);
  557. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&ReceiveThreadPriority);
  558. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&SocketBufferSize);
  559. delete static_cast <GENAPI_NAMESPACE::CEnumerationTRef<StatusEnums>*> (&Status);
  560. delete static_cast <GENAPI_NAMESPACE::CEnumerationTRef<AccessModeEnums>*> (&AccessMode);
  561. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&TypeIsWindowsIntelPerformanceDriverAvailable);
  562. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&TypeIsWindowsFilterDriverAvailable);
  563. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&TypeIsSocketDriverAvailable);
  564. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&Statistic_Total_Buffer_Count);
  565. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&Statistic_Failed_Buffer_Count);
  566. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&Statistic_Buffer_Underrun_Count);
  567. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&Statistic_Total_Packet_Count);
  568. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&Statistic_Failed_Packet_Count);
  569. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&Statistic_Resend_Request_Count);
  570. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&Statistic_Resend_Packet_Count);
  571. delete static_cast <GENAPI_NAMESPACE::CEnumerationTRef<TransmissionTypeEnums>*> (&TransmissionType);
  572. delete static_cast <GENAPI_NAMESPACE::CStringRef*> (&DestinationAddr);
  573. delete static_cast <GENAPI_NAMESPACE::CIntegerRef*> (&DestinationPort);
  574. }
  575. inline void CGigEStreamParams_Params::_Initialize( GENAPI_NAMESPACE::INodeMap* _Ptr )
  576. {
  577. static_cast<GENAPI_NAMESPACE::CEnumerationTRef<TypeEnums>*> (&Type)->SetReference( _Ptr->GetNode( "Type" ) );
  578. static_cast<GENAPI_NAMESPACE::CEnumerationTRef<TypeEnums>*> (&Type)->SetNumEnums( 4 );
  579. static_cast<GENAPI_NAMESPACE::CEnumerationTRef<TypeEnums>*> (&Type)->SetEnumReference( Type_WindowsFilterDriver, "WindowsFilterDriver" ); static_cast<GENAPI_NAMESPACE::CEnumerationTRef<TypeEnums>*> (&Type)->SetEnumReference( Type_WindowsIntelPerformanceDriver, "WindowsIntelPerformanceDriver" ); static_cast<GENAPI_NAMESPACE::CEnumerationTRef<TypeEnums>*> (&Type)->SetEnumReference( Type_SocketDriver, "SocketDriver" ); static_cast<GENAPI_NAMESPACE::CEnumerationTRef<TypeEnums>*> (&Type)->SetEnumReference( Type_NoDriverAvailable, "NoDriverAvailable" ); static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&MaxNumBuffer)->SetReference( _Ptr->GetNode( "MaxNumBuffer" ) );
  580. static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&MaxBufferSize)->SetReference( _Ptr->GetNode( "MaxBufferSize" ) );
  581. static_cast<GENAPI_NAMESPACE::CBooleanRef*> (&EnableResend)->SetReference( _Ptr->GetNode( "EnableResend" ) );
  582. static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&PacketTimeout)->SetReference( _Ptr->GetNode( "PacketTimeout" ) );
  583. static_cast<GENAPI_NAMESPACE::CBooleanRef*> (&AutoPacketSize)->SetReference( _Ptr->GetNode( "AutoPacketSize" ) );
  584. static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&ReceiveWindowSize)->SetReference( _Ptr->GetNode( "ReceiveWindowSize" ) );
  585. static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&ResendRequestThreshold)->SetReference( _Ptr->GetNode( "ResendRequestThreshold" ) );
  586. static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&ResendRequestBatching)->SetReference( _Ptr->GetNode( "ResendRequestBatching" ) );
  587. static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&ResendTimeout)->SetReference( _Ptr->GetNode( "ResendTimeout" ) );
  588. static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&ResendRequestResponseTimeout)->SetReference( _Ptr->GetNode( "ResendRequestResponseTimeout" ) );
  589. static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&MaximumNumberResendRequests)->SetReference( _Ptr->GetNode( "MaximumNumberResendRequests" ) );
  590. static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&FrameRetention)->SetReference( _Ptr->GetNode( "FrameRetention" ) );
  591. static_cast<GENAPI_NAMESPACE::CBooleanRef*> (&ReceiveThreadPriorityOverride)->SetReference( _Ptr->GetNode( "ReceiveThreadPriorityOverride" ) );
  592. static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&ReceiveThreadPriority)->SetReference( _Ptr->GetNode( "ReceiveThreadPriority" ) );
  593. static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&SocketBufferSize)->SetReference( _Ptr->GetNode( "SocketBufferSize" ) );
  594. static_cast<GENAPI_NAMESPACE::CEnumerationTRef<StatusEnums>*> (&Status)->SetReference( _Ptr->GetNode( "Status" ) );
  595. static_cast<GENAPI_NAMESPACE::CEnumerationTRef<StatusEnums>*> (&Status)->SetNumEnums( 4 );
  596. static_cast<GENAPI_NAMESPACE::CEnumerationTRef<StatusEnums>*> (&Status)->SetEnumReference( Status_NotInitialized, "NotInitialized" ); static_cast<GENAPI_NAMESPACE::CEnumerationTRef<StatusEnums>*> (&Status)->SetEnumReference( Status_Closed, "Closed" ); static_cast<GENAPI_NAMESPACE::CEnumerationTRef<StatusEnums>*> (&Status)->SetEnumReference( Status_Open, "Open" ); static_cast<GENAPI_NAMESPACE::CEnumerationTRef<StatusEnums>*> (&Status)->SetEnumReference( Status_Locked, "Locked" ); static_cast<GENAPI_NAMESPACE::CEnumerationTRef<AccessModeEnums>*> (&AccessMode)->SetReference( _Ptr->GetNode( "AccessMode" ) );
  597. static_cast<GENAPI_NAMESPACE::CEnumerationTRef<AccessModeEnums>*> (&AccessMode)->SetNumEnums( 4 );
  598. static_cast<GENAPI_NAMESPACE::CEnumerationTRef<AccessModeEnums>*> (&AccessMode)->SetEnumReference( AccessMode_NotInitialized, "NotInitialized" ); static_cast<GENAPI_NAMESPACE::CEnumerationTRef<AccessModeEnums>*> (&AccessMode)->SetEnumReference( AccessMode_Monitor, "Monitor" ); static_cast<GENAPI_NAMESPACE::CEnumerationTRef<AccessModeEnums>*> (&AccessMode)->SetEnumReference( AccessMode_Control, "Control" ); static_cast<GENAPI_NAMESPACE::CEnumerationTRef<AccessModeEnums>*> (&AccessMode)->SetEnumReference( AccessMode_Exclusive, "Exclusive" ); static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&TypeIsWindowsIntelPerformanceDriverAvailable)->SetReference( _Ptr->GetNode( "TypeIsWindowsIntelPerformanceDriverAvailable" ) );
  599. static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&TypeIsWindowsFilterDriverAvailable)->SetReference( _Ptr->GetNode( "TypeIsWindowsFilterDriverAvailable" ) );
  600. static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&TypeIsSocketDriverAvailable)->SetReference( _Ptr->GetNode( "TypeIsSocketDriverAvailable" ) );
  601. static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&Statistic_Total_Buffer_Count)->SetReference( _Ptr->GetNode( "Statistic_Total_Buffer_Count" ) );
  602. static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&Statistic_Failed_Buffer_Count)->SetReference( _Ptr->GetNode( "Statistic_Failed_Buffer_Count" ) );
  603. static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&Statistic_Buffer_Underrun_Count)->SetReference( _Ptr->GetNode( "Statistic_Buffer_Underrun_Count" ) );
  604. static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&Statistic_Total_Packet_Count)->SetReference( _Ptr->GetNode( "Statistic_Total_Packet_Count" ) );
  605. static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&Statistic_Failed_Packet_Count)->SetReference( _Ptr->GetNode( "Statistic_Failed_Packet_Count" ) );
  606. static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&Statistic_Resend_Request_Count)->SetReference( _Ptr->GetNode( "Statistic_Resend_Request_Count" ) );
  607. static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&Statistic_Resend_Packet_Count)->SetReference( _Ptr->GetNode( "Statistic_Resend_Packet_Count" ) );
  608. static_cast<GENAPI_NAMESPACE::CEnumerationTRef<TransmissionTypeEnums>*> (&TransmissionType)->SetReference( _Ptr->GetNode( "TransmissionType" ) );
  609. static_cast<GENAPI_NAMESPACE::CEnumerationTRef<TransmissionTypeEnums>*> (&TransmissionType)->SetNumEnums( 5 );
  610. static_cast<GENAPI_NAMESPACE::CEnumerationTRef<TransmissionTypeEnums>*> (&TransmissionType)->SetEnumReference( TransmissionType_UseCameraConfig, "UseCameraConfig" ); static_cast<GENAPI_NAMESPACE::CEnumerationTRef<TransmissionTypeEnums>*> (&TransmissionType)->SetEnumReference( TransmissionType_Unicast, "Unicast" ); static_cast<GENAPI_NAMESPACE::CEnumerationTRef<TransmissionTypeEnums>*> (&TransmissionType)->SetEnumReference( TransmissionType_Multicast, "Multicast" ); static_cast<GENAPI_NAMESPACE::CEnumerationTRef<TransmissionTypeEnums>*> (&TransmissionType)->SetEnumReference( TransmissionType_LimitedBroadcast, "LimitedBroadcast" ); static_cast<GENAPI_NAMESPACE::CEnumerationTRef<TransmissionTypeEnums>*> (&TransmissionType)->SetEnumReference( TransmissionType_SubnetDirectedBroadcast, "SubnetDirectedBroadcast" ); static_cast<GENAPI_NAMESPACE::CStringRef*> (&DestinationAddr)->SetReference( _Ptr->GetNode( "DestinationAddr" ) );
  611. static_cast<GENAPI_NAMESPACE::CIntegerRef*> (&DestinationPort)->SetReference( _Ptr->GetNode( "DestinationPort" ) );
  612. }
  613. inline const char* CGigEStreamParams_Params::_GetVendorName( void )
  614. {
  615. return "Basler";
  616. }
  617. inline const char* CGigEStreamParams_Params::_GetModelName( void )
  618. {
  619. return "GigEStreamParams";
  620. }
  621. //! \endcond
  622. } // namespace Basler_GigEStreamParams
  623. #if GCC_DIAGNOSTIC_AWARE
  624. # if GCC_DIAGNOSTIC_PUSH_POP_AWARE
  625. # pragma GCC diagnostic pop
  626. # else
  627. # pragma GCC diagnostic warning "-Wdeprecated-declarations"
  628. # endif
  629. #endif
  630. #undef GENAPI_DEPRECATED_FEATURE
  631. #endif // Basler_GigEStreamParams_PARAMS_H