add flycapture
This commit is contained in:
329
Lib/FlyCapture2/include/Camera.h
Normal file
329
Lib/FlyCapture2/include/Camera.h
Normal file
@@ -0,0 +1,329 @@
|
||||
//=============================================================================
|
||||
// Copyright ?2017 FLIR Integrated Imaging Solutions, Inc. All Rights Reserved.
|
||||
//
|
||||
// This software is the confidential and proprietary information of FLIR
|
||||
// Integrated Imaging Solutions, Inc. ("Confidential Information"). You
|
||||
// shall not disclose such Confidential Information and shall use it only in
|
||||
// accordance with the terms of the license agreement you entered into
|
||||
// with FLIR Integrated Imaging Solutions, Inc. (FLIR).
|
||||
//
|
||||
// FLIR MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
|
||||
// SOFTWARE, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
// IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
||||
// PURPOSE, OR NON-INFRINGEMENT. FLIR SHALL NOT BE LIABLE FOR ANY DAMAGES
|
||||
// SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
|
||||
// THIS SOFTWARE OR ITS DERIVATIVES.
|
||||
//=============================================================================
|
||||
|
||||
//=============================================================================
|
||||
// $Id: Camera.h 347612 2017-12-01 20:44:28Z wgallego $
|
||||
//=============================================================================
|
||||
|
||||
#ifndef PGR_FC2_CAMERA_H_
|
||||
#define PGR_FC2_CAMERA_H_
|
||||
|
||||
#include "CameraBase.h"
|
||||
|
||||
namespace FlyCapture2
|
||||
{
|
||||
/**
|
||||
* The Camera object represents a physical camera that uses the IIDC
|
||||
* register set. The object must first be connected to using Connect()
|
||||
* before any other operations can proceed.
|
||||
*
|
||||
* It is possible for more than 1 Camera object to connect to a single
|
||||
* physical camera. However, isochronous transmission to more than
|
||||
* 1 Camera object is not supported.
|
||||
*
|
||||
* @nosubgrouping
|
||||
*/
|
||||
class FLYCAPTURE2_API Camera : public CameraBase
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* Default constructor.
|
||||
*/
|
||||
Camera();
|
||||
|
||||
/**
|
||||
* Default destructor.
|
||||
*/
|
||||
virtual ~Camera();
|
||||
|
||||
/**
|
||||
* @name DCAM Formats
|
||||
*
|
||||
* These functions deal with DCAM video mode and frame rate
|
||||
* on the camera. They are only used for firewire and usb2 cameras.
|
||||
*/
|
||||
/*@{*/
|
||||
|
||||
/**
|
||||
* Query the camera to determine if the specified video mode and
|
||||
* frame rate is supported.
|
||||
*
|
||||
* @param videoMode Video mode to check.
|
||||
* @param frameRate Frame rate to check.
|
||||
* @param pSupported Whether the video mode and frame rate is
|
||||
* supported.
|
||||
*
|
||||
* @see GetVideoModeAndFrameRate()
|
||||
* @see SetVideoModeAndFrameRate()
|
||||
*
|
||||
* @return An Error indicating the success or failure of the function.
|
||||
*/
|
||||
virtual Error GetVideoModeAndFrameRateInfo(
|
||||
VideoMode videoMode,
|
||||
FrameRate frameRate,
|
||||
bool* pSupported);
|
||||
|
||||
/**
|
||||
* Get the current video mode and frame rate from the camera. If
|
||||
* the camera is in Format7, the video mode will be VIDEOMODE_FORMAT7
|
||||
* and the frame rate will be FRAMERATE_FORMAT7.
|
||||
*
|
||||
* @param pVideoMode Current video mode.
|
||||
* @param pFrameRate Current frame rate.
|
||||
*
|
||||
* @see GetVideoModeAndFrameRateInfo()
|
||||
* @see SetVideoModeAndFrameRate()
|
||||
*
|
||||
* @return An Error indicating the success or failure of the function.
|
||||
*/
|
||||
virtual Error GetVideoModeAndFrameRate(
|
||||
VideoMode* pVideoMode,
|
||||
FrameRate* pFrameRate );
|
||||
|
||||
/**
|
||||
* Set the specified video mode and frame rate to the camera. It is
|
||||
* not possible to set the camera to VIDEOMODE_FORMAT7 or
|
||||
* FRAMERATE_FORMAT7. Use the Format7 functions to set the camera
|
||||
* into Format7.
|
||||
*
|
||||
* @param videoMode Video mode to set to camera.
|
||||
* @param frameRate Frame rate to set to camera.
|
||||
*
|
||||
* @see GetVideoModeAndFrameRateInfo()
|
||||
* @see GetVideoModeAndFrameRate()
|
||||
*
|
||||
* @return An Error indicating the success or failure of the function.
|
||||
*/
|
||||
virtual Error SetVideoModeAndFrameRate(
|
||||
VideoMode videoMode,
|
||||
FrameRate frameRate );
|
||||
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* @name Format7
|
||||
*
|
||||
* These functions deal with Format7 custom image control on the camera.
|
||||
*/
|
||||
/*@{*/
|
||||
|
||||
/**
|
||||
* Retrieve the availability of Format7 custom image mode and the
|
||||
* camera capabilities for the specified Format7 mode. The mode must
|
||||
* be specified in the Format7Info structure in order for the
|
||||
* function to succeed.
|
||||
*
|
||||
* @param pInfo Structure to be filled with the capabilities of the
|
||||
* specified mode and the current state in the specified
|
||||
* mode.
|
||||
* @param pSupported Whether the specified mode is supported.
|
||||
*
|
||||
* @see ValidateFormat7Settings()
|
||||
* @see GetFormat7Configuration()
|
||||
* @see SetFormat7Configuration()
|
||||
*
|
||||
* @return An Error indicating the success or failure of the function.
|
||||
*/
|
||||
virtual Error GetFormat7Info(
|
||||
Format7Info* pInfo,
|
||||
bool* pSupported );
|
||||
|
||||
/**
|
||||
* Validates Format7ImageSettings structure and returns valid packet
|
||||
* size information if the image settings are valid. The current
|
||||
* image settings are cached while validation is taking place. The
|
||||
* cached settings are restored when validation is complete.
|
||||
*
|
||||
* @param pImageSettings Structure containing the image settings.
|
||||
* @param pSettingsAreValid Whether the settings are valid.
|
||||
* @param pPacketInfo Packet size information that can be used to
|
||||
* determine a valid packet size.
|
||||
*
|
||||
* @see GetFormat7Info()
|
||||
* @see GetFormat7Configuration()
|
||||
* @see SetFormat7Configuration()
|
||||
*
|
||||
* @return An Error indicating the success or failure of the function.
|
||||
*/
|
||||
virtual Error ValidateFormat7Settings(
|
||||
const Format7ImageSettings* pImageSettings,
|
||||
bool* pSettingsAreValid,
|
||||
Format7PacketInfo* pPacketInfo );
|
||||
|
||||
/**
|
||||
* Get the current Format7 configuration from the camera. This call
|
||||
* will only succeed if the camera is already in Format7.
|
||||
*
|
||||
* @param pImageSettings Current image settings.
|
||||
* @param pPacketSize Current packet size.
|
||||
* @param pPercentage Current packet size as a percentage.
|
||||
*
|
||||
* @see GetFormat7Info()
|
||||
* @see ValidateFormat7Settings()
|
||||
* @see SetFormat7Configuration()
|
||||
* @see GetVideoModeAndFrameRate()
|
||||
*
|
||||
* @return An Error indicating the success or failure of the function.
|
||||
*/
|
||||
virtual Error GetFormat7Configuration(
|
||||
Format7ImageSettings* pImageSettings,
|
||||
unsigned int* pPacketSize,
|
||||
float* pPercentage );
|
||||
|
||||
/**
|
||||
* Set the current Format7 configuration to the camera.
|
||||
*
|
||||
* @param pImageSettings Image settings to be written to the camera.
|
||||
* @param packetSize Packet size to be written to the camera.
|
||||
*
|
||||
* @see GetFormat7Info()
|
||||
* @see ValidateFormat7Settings()
|
||||
* @see GetFormat7Configuration()
|
||||
*
|
||||
* @return An Error indicating the success or failure of the function.
|
||||
*/
|
||||
virtual Error SetFormat7Configuration(
|
||||
const Format7ImageSettings* pImageSettings,
|
||||
unsigned int packetSize );
|
||||
|
||||
/**
|
||||
* Set the current Format7 configuration to the camera.
|
||||
*
|
||||
* @param pImageSettings Image settings to be written to the camera.
|
||||
* @param percentSpeed Percentage of packet size to be written to
|
||||
* the camera.
|
||||
*
|
||||
* @see GetFormat7Info()
|
||||
* @see ValidateFormat7Settings()
|
||||
* @see GetFormat7Configuration()
|
||||
*
|
||||
* @return An Error indicating the success or failure of the function.
|
||||
*/
|
||||
virtual Error SetFormat7Configuration(
|
||||
const Format7ImageSettings* pImageSettings,
|
||||
float percentSpeed );
|
||||
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
* The following functions are inherited from CameraBase. See
|
||||
* CameraBase.h for further information.
|
||||
*/
|
||||
|
||||
virtual Error Connect( PGRGuid* pGuid = NULL );
|
||||
virtual Error Disconnect();
|
||||
virtual bool IsConnected();
|
||||
virtual Error SetCallback(
|
||||
ImageEventCallback callbackFn,
|
||||
const void* pCallbackData = NULL );
|
||||
virtual Error StartCapture(
|
||||
ImageEventCallback callbackFn = NULL,
|
||||
const void* pCallbackData = NULL );
|
||||
static Error StartSyncCapture(
|
||||
unsigned int numCameras,
|
||||
const Camera **ppCameras,
|
||||
const ImageEventCallback *pCallbackFns = NULL,
|
||||
const void** pCallbackDataArray = NULL );
|
||||
virtual Error RetrieveBuffer( Image* pImage );
|
||||
virtual Error StopCapture();
|
||||
virtual Error WaitForBufferEvent( Image* pImage, unsigned int eventNumber );
|
||||
virtual Error SetUserBuffers(
|
||||
unsigned char* const pMemBuffers,
|
||||
int size,
|
||||
int numBuffers );
|
||||
virtual Error GetConfiguration( FC2Config* pConfig );
|
||||
virtual Error SetConfiguration( const FC2Config* pConfig );
|
||||
virtual Error GetCameraInfo( CameraInfo* pCameraInfo );
|
||||
virtual Error GetPropertyInfo( PropertyInfo* pPropInfo );
|
||||
virtual Error GetProperty( Property* pProp );
|
||||
virtual Error SetProperty(
|
||||
const Property* pProp,
|
||||
bool broadcast = false );
|
||||
virtual Error GetGPIOPinDirection( unsigned int pin, unsigned int* pDirection);
|
||||
virtual Error SetGPIOPinDirection( unsigned int pin, unsigned int direction, bool broadcast = false );
|
||||
virtual Error GetTriggerModeInfo( TriggerModeInfo* pTriggerModeInfo );
|
||||
virtual Error GetTriggerMode( TriggerMode* pTriggerMode );
|
||||
virtual Error SetTriggerMode(
|
||||
const TriggerMode* pTriggerMode,
|
||||
bool broadcast = false );
|
||||
virtual Error FireSoftwareTrigger( bool broadcast = false );
|
||||
virtual Error GetTriggerDelayInfo( TriggerDelayInfo* pTriggerDelayInfo );
|
||||
virtual Error GetTriggerDelay( TriggerDelay* pTriggerDelay );
|
||||
virtual Error SetTriggerDelay(
|
||||
const TriggerDelay* pTriggerDelay,
|
||||
bool broadcast = false );
|
||||
virtual Error GetStrobeInfo( StrobeInfo* pStrobeInfo );
|
||||
virtual Error GetStrobe( StrobeControl* pStrobeControl );
|
||||
virtual Error SetStrobe(
|
||||
const StrobeControl* pStrobeControl,
|
||||
bool broadcast = false );
|
||||
virtual Error GetLUTInfo( LUTData* pData );
|
||||
virtual Error GetLUTBankInfo(
|
||||
unsigned int bank,
|
||||
bool* pReadSupported,
|
||||
bool* pWriteSupported );
|
||||
virtual Error GetActiveLUTBank( unsigned int* pActiveBank );
|
||||
virtual Error SetActiveLUTBank( unsigned int activeBank );
|
||||
virtual Error EnableLUT( bool on );
|
||||
virtual Error GetLUTChannel(
|
||||
unsigned int bank,
|
||||
unsigned int channel,
|
||||
unsigned int sizeEntries,
|
||||
unsigned int* pEntries );
|
||||
virtual Error SetLUTChannel(
|
||||
unsigned int bank,
|
||||
unsigned int channel,
|
||||
unsigned int sizeEntries,
|
||||
const unsigned int* pEntries );
|
||||
virtual Error GetMemoryChannel( unsigned int* pCurrentChannel );
|
||||
virtual Error SaveToMemoryChannel( unsigned int channel );
|
||||
virtual Error RestoreFromMemoryChannel( unsigned int channel );
|
||||
virtual Error GetMemoryChannelInfo( unsigned int* pNumChannels );
|
||||
virtual Error GetEmbeddedImageInfo( EmbeddedImageInfo* pInfo );
|
||||
virtual Error SetEmbeddedImageInfo( EmbeddedImageInfo* pInfo );
|
||||
virtual Error WriteRegister(
|
||||
unsigned int address,
|
||||
unsigned int value,
|
||||
bool broadcast=false);
|
||||
virtual Error ReadRegister(
|
||||
unsigned int address,
|
||||
unsigned int* pValue );
|
||||
virtual Error WriteRegisterBlock(
|
||||
unsigned short addressHigh,
|
||||
unsigned int addressLow,
|
||||
const unsigned int* pBuffer,
|
||||
unsigned int length );
|
||||
virtual Error ReadRegisterBlock(
|
||||
unsigned short addressHigh,
|
||||
unsigned int addressLow,
|
||||
unsigned int* pBuffer,
|
||||
unsigned int length );
|
||||
static const char* GetRegisterString( unsigned int registerVal);
|
||||
virtual Error GetCycleTime(TimeStamp *timeStamp);
|
||||
virtual Error GetStats( CameraStats* pStats );
|
||||
virtual Error ResetStats();
|
||||
|
||||
virtual Error RegisterEvent( EventOptions* pOpts );
|
||||
virtual Error DeregisterEvent( EventOptions* pOpts );
|
||||
virtual Error RegisterAllEvents( EventOptions* pOpts );
|
||||
virtual Error DeregisterAllEvents( void );
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
#endif // PGR_FC2_CAMERA_H_
|
||||
Reference in New Issue
Block a user