PylonGigECamera.h 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. //-----------------------------------------------------------------------------
  2. // Basler pylon SDK
  3. // Copyright (c) 2007-2021 Basler AG
  4. // http://www.baslerweb.com
  5. //-----------------------------------------------------------------------------
  6. /*!
  7. \file
  8. \brief Low Level API: Generic pylon GigE Vision camera interface
  9. */
  10. #ifndef PYLON_GIGE_CAMERA_H
  11. #define PYLON_GIGE_CAMERA_H
  12. #if _MSC_VER > 1000
  13. #pragma once
  14. #endif //_MSC_VER > 1000
  15. #include <pylon/Platform.h>
  16. #ifdef _MSC_VER
  17. # pragma pack(push, PYLON_PACKING)
  18. #endif /* _MSC_VER */
  19. #include "../DeviceClass.h"
  20. #include "../NodeMapProxy.h"
  21. #include "../StreamGrabberProxy.h"
  22. #include "../EventGrabberProxy.h"
  23. #include "BaslerGigEDeviceInfo.h"
  24. #include "PylonGigEDeviceProxy.h"
  25. #include "_GigETLParams.h"
  26. #include "_GigEStreamParams.h"
  27. #include "_GigEEventParams.h"
  28. namespace Pylon
  29. {
  30. //**************************************************************************************************
  31. //! Low Level API: Class for pylon GigE Vision cameras providing access to transport layer related parameters.
  32. /**
  33. \see \ref configuringcameras
  34. \ingroup Pylon_LowLevelApi
  35. */
  36. //**************************************************************************************************
  37. PYLON_DEFINE_NODEMAP( CPylonGigETLParams, CNodeMapProxyT<Basler_GigETLParams::CGigETLParams_Params> );
  38. //**************************************************************************************************
  39. //! Low Level API: Class for pylon GigE Vision cameras providing access to stream grabber related methods and parameters.
  40. /**
  41. \see \ref configuringcameras
  42. \ingroup Pylon_LowLevelApi
  43. */
  44. //**************************************************************************************************
  45. PYLON_DEFINE_STREAMGRABBER( CPylonGigEStreamGrabber, CStreamGrabberProxyT<Basler_GigEStreamParams::CGigEStreamParams_Params> );
  46. //**************************************************************************************************
  47. //! Low Level API: Class for pylon GigE Vision cameras providing access to event grabber related methods and parameters.
  48. /**
  49. \see \ref configuringcameras
  50. \ingroup Pylon_LowLevelApi
  51. */
  52. //**************************************************************************************************
  53. PYLON_DEFINE_EVENTGRABBER( CPylonGigEEventGrabber, CEventGrabberProxyT<Basler_GigEEventParams::CGigEEventParams_Params> );
  54. //**************************************************************************************************
  55. //! Low Level API: The camera class for pylon GigE Vision camera devices
  56. /**
  57. This is the base class for pylon GigE Vision cameras providing access to camera parameters.
  58. \see \ref configuringcameras
  59. \tparam TCameraParams The camera specific parameter class (auto generated from camera xml file)
  60. \ingroup Pylon_LowLevelApi
  61. \deprecated This class is deprecated in pylon 6.0. Please consider using CBaslerUniversalInstantCamera instead.
  62. */
  63. //**************************************************************************************************
  64. template<class TCameraParams>
  65. class CPylonGigECameraT : public CPylonGigEDeviceProxyT<TCameraParams>
  66. {
  67. public:
  68. typedef Pylon::CBaslerGigEDeviceInfo DeviceInfo_t; //!< \copybrief Pylon::CBaslerGigEDeviceInfo
  69. typedef Pylon::CPylonGigETLParams TlParams_t; //!< \copybrief Pylon::CPylonGigETLParams
  70. typedef Pylon::CPylonGigEStreamGrabber StreamGrabber_t; //!< \copybrief Pylon::CPylonGigEStreamGrabber
  71. typedef Pylon::CPylonGigEEventGrabber EventGrabber_t; //!< \copybrief Pylon::CPylonGigEEventGrabber
  72. //! The name of this device class, use this for enumeration
  73. static String_t DeviceClass()
  74. {
  75. return BaslerGigEDeviceClass;
  76. }
  77. public:
  78. //! \name Construction
  79. // \{
  80. /** \brief \copybrief Pylon::CPylonGigEDeviceProxyT::CPylonGigEDeviceProxyT()
  81. \copydetails Pylon::CPylonGigEDeviceProxyT::CPylonGigEDeviceProxyT()
  82. */
  83. CPylonGigECameraT()
  84. {
  85. };
  86. /** \brief \copybrief Pylon::CPylonGigEDeviceProxyT::CPylonGigEDeviceProxyT(IPylonDevice*,bool)
  87. \copydetails Pylon::CPylonGigEDeviceProxyT::CPylonGigEDeviceProxyT(IPylonDevice*,bool)
  88. */
  89. CPylonGigECameraT( IPylonDevice* pDevice, bool takeOwnership = true )
  90. : CPylonGigEDeviceProxyT<TCameraParams>( pDevice, takeOwnership )
  91. {
  92. }
  93. /** \brief \copybrief Pylon::CPylonGigEDeviceProxyT::~CPylonGigEDeviceProxyT()
  94. \copydetails Pylon::CPylonGigEDeviceProxyT::~CPylonGigEDeviceProxyT()
  95. */
  96. virtual ~CPylonGigECameraT()
  97. {
  98. }
  99. //\}
  100. };
  101. } // namespace Pylon
  102. #ifdef _MSC_VER
  103. # pragma pack(pop)
  104. #endif /* _MSC_VER */
  105. #endif // PYLON_GIGE_CAMERA_H