BaslerCameraLinkInstantCamera.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. //-----------------------------------------------------------------------------
  2. // Basler pylon SDK
  3. // Copyright (c) 2010-2021 Basler AG
  4. // http://www.baslerweb.com
  5. // Author: Andreas Gau
  6. //-----------------------------------------------------------------------------
  7. /*!
  8. \file
  9. \brief Camera Link Specific Instant Camera class for Basler Camera Link devices.
  10. */
  11. #ifndef INCLUDED_BASLERCAMERALINKINSTANTCAMERA_H_6872827
  12. #define INCLUDED_BASLERCAMERALINKINSTANTCAMERA_H_6872827
  13. #include <pylon/cameralink/_BaslerCameraLinkCameraParams.h>
  14. #include <pylon/cameralink/PylonCLSerDeviceInfo.h>
  15. #include <pylon/cameralink/BaslerCameraLinkConfigurationEventHandler.h>
  16. #include <pylon/cameralink/BaslerCameraLinkImageEventHandler.h>
  17. #include <pylon/cameralink/BaslerCameraLinkCameraEventHandler.h>
  18. #include <pylon/cameralink/BaslerCameraLinkGrabResultPtr.h>
  19. #include <pylon/private/DeviceSpecificInstantCamera.h>
  20. #include <pylon/DeviceClass.h>
  21. #include <pylon/NodeMapProxy.h>
  22. namespace Pylon
  23. {
  24. /** \addtogroup Pylon_InstantCameraApiCameraLink
  25. * @{
  26. */
  27. // This dummy implementation is used by the Device Specific Instant Camera for Camera Link
  28. // because the Camera Link Transport Layer does not support some features.
  29. class CCameraLinkDummyParams_Params
  30. {
  31. public:
  32. void _Initialize( GenApi::INodeMap* )
  33. {
  34. }
  35. };
  36. class CBaslerCameraLinkInstantCamera;
  37. /// Lists all the types used by the Device Specific Instant Camera class for Camera Link.
  38. struct CBaslerCameraLinkInstantCameraTraits
  39. {
  40. /// The type of the final camera class.
  41. typedef CBaslerCameraLinkInstantCamera InstantCamera_t;
  42. /// \copybrief Basler_CLCameraParams::CCLCameraParams_Params
  43. typedef Basler_CLCameraParams::CCLCameraParams_Params CameraParams_t;
  44. /// \copybrief Pylon::IPylonDevice
  45. typedef IPylonDevice IPylonDevice_t;
  46. /// \copybrief Pylon::CBaslerCameraLinkDeviceInfo
  47. typedef Pylon::CBaslerCameraLinkDeviceInfo DeviceInfo_t;
  48. /// Not supported by Camera Link transport layer.
  49. typedef CNodeMapProxyT<CCameraLinkDummyParams_Params> TlParams_t;
  50. /// Not supported by Camera Link transport layer.
  51. typedef CNodeMapProxyT<CCameraLinkDummyParams_Params> StreamGrabberParams_t;
  52. /// Not supported by Camera Link transport layer.
  53. typedef CNodeMapProxyT<CCameraLinkDummyParams_Params> EventGrabberParams_t;
  54. /// The Camera Link specific configuration event handler class.
  55. typedef CBaslerCameraLinkConfigurationEventHandler ConfigurationEventHandler_t;
  56. /// The Camera Link specific image event handler class.
  57. typedef CBaslerCameraLinkImageEventHandler ImageEventHandler_t;
  58. /// The Camera Link specific camera event handler class.
  59. typedef CBaslerCameraLinkCameraEventHandler CameraEventHandler_t;
  60. /// The Camera Link specific grab result data.
  61. typedef CBaslerCameraLinkGrabResultData GrabResultData_t;
  62. /// The Camera Link specific grab result smart pointer.
  63. typedef CBaslerCameraLinkGrabResultPtr GrabResultPtr_t;
  64. //! Can be used to check whether the DeviceClass() can be used for enumeration.
  65. static bool HasSpecificDeviceClass()
  66. {
  67. return true;
  68. }
  69. //! The name of this device class. Use this one for enumeration.
  70. static String_t DeviceClass()
  71. {
  72. return BaslerCameraLinkDeviceClass;
  73. }
  74. };
  75. /*!
  76. \class CBaslerCameraLinkInstantCamera
  77. \brief Extends the CInstantCamera by Camera Link specific parameter interface classes.
  78. */
  79. PYLON_DEFINE_INSTANT_CAMERA( CBaslerCameraLinkInstantCamera, CDeviceSpecificInstantCameraT<CBaslerCameraLinkInstantCameraTraits> )
  80. /**
  81. * @}
  82. */
  83. } // namespace Pylon
  84. #endif /* INCLUDED_BASLERCAMERALINKINSTANTCAMERA_H_6872827 */