BaslerUsbInstantCamera.h 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. //-----------------------------------------------------------------------------
  2. // Basler pylon SDK
  3. // Copyright (c) 2012-2021 Basler AG
  4. // http://www.baslerweb.com
  5. // Author: Andreas Gau
  6. //-----------------------------------------------------------------------------
  7. /*!
  8. \file
  9. \brief USB Specific Instant Camera class for Basler USB devices.
  10. */
  11. #ifndef INCLUDED_BASLERUSBINSTANTCAMERA_H_6872827
  12. #define INCLUDED_BASLERUSBINSTANTCAMERA_H_6872827
  13. #include <pylon/usb/_BaslerUsbCameraParams.h>
  14. #include <pylon/usb/BaslerUsbDeviceInfo.h>
  15. #include <pylon/usb/BaslerUsbConfigurationEventHandler.h>
  16. #include <pylon/usb/BaslerUsbImageEventHandler.h>
  17. #include <pylon/usb/BaslerUsbCameraEventHandler.h>
  18. #include <pylon/usb/BaslerUsbGrabResultPtr.h>
  19. #include <pylon/private/DeviceSpecificInstantCamera.h>
  20. #include <pylon/DeviceClass.h>
  21. #include <pylon/NodeMapProxy.h>
  22. #include <pylon/usb/_UsbStreamParams.h>
  23. #include <pylon/usb/_UsbEventParams.h>
  24. #include <pylon/usb/_UsbTLParams.h>
  25. namespace Pylon
  26. {
  27. /** \addtogroup Pylon_InstantCameraApiUsb
  28. * @{
  29. */
  30. class CBaslerUsbInstantCamera;
  31. /// Lists all the types used by the Device Specific Instant Camera class for USB.
  32. struct CBaslerUsbInstantCameraTraits
  33. {
  34. /// The type of the final camera class.
  35. typedef CBaslerUsbInstantCamera InstantCamera_t;
  36. /// \copybrief Basler_UsbCameraParams::CUsbCameraParams_Params
  37. typedef Basler_UsbCameraParams::CUsbCameraParams_Params CameraParams_t;
  38. /// \copybrief Pylon::IPylonDevice
  39. typedef IPylonDevice IPylonDevice_t;
  40. /// \copybrief Pylon::CBaslerUsbDeviceInfo
  41. typedef Pylon::CBaslerUsbDeviceInfo DeviceInfo_t;
  42. /// The parameters of the USB transport layer.
  43. typedef CNodeMapProxyT<Basler_UsbTLParams::CUsbTLParams_Params> TlParams_t;
  44. /// The parameters of the USB stream grabber.
  45. typedef CNodeMapProxyT<Basler_UsbStreamParams::CUsbStreamParams_Params> StreamGrabberParams_t;
  46. /// The parameters of the USB event grabber.
  47. typedef CNodeMapProxyT<Basler_UsbEventParams::CUsbEventParams_Params> EventGrabberParams_t;
  48. /// The USB specific configuration event handler class.
  49. typedef CBaslerUsbConfigurationEventHandler ConfigurationEventHandler_t;
  50. /// The USB specific image event handler class.
  51. typedef CBaslerUsbImageEventHandler ImageEventHandler_t;
  52. /// The USB specific camera event handler class.
  53. typedef CBaslerUsbCameraEventHandler CameraEventHandler_t;
  54. /// The USB specific grab result data.
  55. typedef CBaslerUsbGrabResultData GrabResultData_t;
  56. /// The USB specific grab result smart pointer.
  57. typedef CBaslerUsbGrabResultPtr GrabResultPtr_t;
  58. //! Can be used to check whether the DeviceClass() can be used for enumeration.
  59. static bool HasSpecificDeviceClass()
  60. {
  61. return true;
  62. }
  63. //! The name of this device class. Use this one for enumeration.
  64. static String_t DeviceClass()
  65. {
  66. return BaslerUsbDeviceClass;
  67. }
  68. };
  69. /*!
  70. \class CBaslerUsbInstantCamera
  71. \brief Extends the CInstantCamera by USB specific parameter interface classes.
  72. */
  73. PYLON_DEFINE_INSTANT_CAMERA( CBaslerUsbInstantCamera, CDeviceSpecificInstantCameraT<CBaslerUsbInstantCameraTraits> )
  74. /**
  75. * @}
  76. */
  77. } // namespace Pylon
  78. #endif /* INCLUDED_BASLERUSBINSTANTCAMERA_H_6872827 */