Files
2020-01-27 18:56:50 +08:00

3142 lines
104 KiB
C

//=============================================================================
// 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.
//=============================================================================
#ifndef FLIR_FC2_FLYCAPTURE2_C_H
#define FLIR_FC2_FLYCAPTURE2_C_H
//=============================================================================
// Global C header file for FlyCapture2.
//
// This file defines the C API for FlyCapture2
//=============================================================================
#include "FlyCapture2Platform_C.h"
#include "FlyCapture2Defs_C.h"
#ifdef __cplusplus
extern "C"
{
#endif
/**
* Create a FC2 context for IIDC camera.
* This call must be made before any other calls that use a context
* will succeed.
*
* @see fc2DestroyContext()
*
* @param pContext A pointer to the fc2Context to be created.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2CreateContext(
fc2Context* pContext );
/**
* Create a FC2 context for a GigE Vision camera.
* This call must be made before any other calls that use a context
* will succeed.
*
* @see fc2DestroyContext()
*
* @param pContext A pointer to the fc2Context to be created.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2CreateGigEContext(
fc2Context* pContext );
/**
* Destroy the FC2 context. This must be called when the user is finished
* with the context in order to prevent memory leaks.
*
* @see fc2CreateContext()
*
* @param context The context to be destroyed.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2DestroyContext(
fc2Context context );
/**
* @defgroup CBusManager Bus Manager Operation
*
* @brief The functions in this section provide access to BusManager
* operations
*/
/*@{*/
/**
* Fire a bus reset. The actual bus reset is only fired for the
* specified 1394 bus, but it will effectively cause a global bus
* reset for the library.
*
* @param context The fc2Context to be used.
* @param pGuid PGRGuid of the camera or the device to cause bus reset.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2FireBusReset(
fc2Context context,
fc2PGRGuid* pGuid);
/**
* Gets the number of cameras attached to the PC.
*
* @param context The fc2Context to be used.
* @param pNumCameras Number of cameras detected.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetNumOfCameras(
fc2Context context,
unsigned int* pNumCameras );
/**
* Gets the PGRGuid for a camera with the specified IPv4 address.
*
* @param context The fc2Context to be used.
* @param ipAddress IP address to get GUID for.
* @param pGuid Unique PGRGuid for the camera.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetCameraFromIPAddress(
fc2Context context,
fc2IPAddress ipAddress,
fc2PGRGuid* pGuid);
/**
* Gets the PGRGuid for a camera on the PC. It uniquely identifies
* the camera specified by the index and is used to identify the camera
* during a fc2Connect() call.
*
* @param context The fc2Context to be used.
* @param index Zero based index of camera.
* @param pGuid Unique PGRGuid for the camera.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetCameraFromIndex(
fc2Context context,
unsigned int index,
fc2PGRGuid* pGuid);
/**
* Gets the PGRGuid for a camera on the PC. It uniquely identifies
* the camera specified by the serial number and is used to identify the camera
* during a fc2Connect() call.
*
* @param context The fc2Context to be used.
* @param serialNumber Serial number of camera.
* @param pGuid Unique PGRGuid for the camera.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetCameraFromSerialNumber(
fc2Context context,
unsigned int serialNumber,
fc2PGRGuid* pGuid );
/**
* Gets the serial number of the camera with the specified index.
*
* @param context The fc2Context to be used.
* @param index Zero based index of desired camera.
* @param pSerialNumber Serial number of camera.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetCameraSerialNumberFromIndex(
fc2Context context,
unsigned int index,
unsigned int* pSerialNumber );
/**
* Gets the interface type associated with a PGRGuid. This is useful
* in situations where there is a need to enumerate all cameras
* for a particular interface.
*
* @param context The fc2Context to be used.
* @param pGuid The PGRGuid to get the interface for.
* @param pInterfaceType The interface type of the PGRGuid.
*
* @return
*/
FLYCAPTURE2_C_API fc2Error
fc2GetInterfaceTypeFromGuid(
fc2Context context,
fc2PGRGuid *pGuid,
fc2InterfaceType* pInterfaceType );
/**
* Gets the number of devices. This may include hubs, host controllers
* and other hardware devices (including cameras).
*
* @param context The fc2Context to be used.
* @param pNumDevices The number of devices found.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetNumOfDevices(
fc2Context context,
unsigned int* pNumDevices );
/**
* Gets the PGRGuid for a device. It uniquely identifies the device
* specified by the index.
*
* @param context The fc2Context to be used.
* @param index Zero based index of device.
* @param pGuid Unique PGRGuid for the device.
*
* @see fc2GetNumOfDevices()
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetDeviceFromIndex(
fc2Context context,
unsigned int index,
fc2PGRGuid* pGuid );
/**
* Read a phy register on the specified device. The full address
* to be read from is determined by the page, port and address.
*
* @param context The fc2Context to be used.
* @param guid Unique PGRGuid for the device.
* @param page Page to read from.
* @param port Port to read from.
* @param address Address to read from.
* @param pValue Value read from the phy register.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2ReadPhyRegister(
fc2Context context,
fc2PGRGuid guid,
unsigned int page,
unsigned int port,
unsigned int address,
unsigned int* pValue );
/**
* Write a phy register on the specified device. The full address
* to be written to is determined by the page, port and address.
*
* @param context The fc2Context to be used.
* @param guid Unique PGRGuid for the device.
* @param page Page to write to.
* @param port Port to write to.
* @param address Address to write to.
* @param value Value to write to phy register.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2WritePhyRegister(
fc2Context context,
fc2PGRGuid guid,
unsigned int page,
unsigned int port,
unsigned int address,
unsigned int value );
/**
* Read usb link info for the port that the specified device is connected to.
*
* @param context The fc2Context to be used.
* @param guid Unique PGRGuid for the device.
* @param pValue Value read from the card register.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetUsbLinkInfo(
fc2Context context,
fc2PGRGuid guid,
unsigned int* pValue );
/**
* Read usb port status for the port that the specified device is connected to.
*
* @param context The fc2Context to be used.
* @param guid Unique PGRGuid for the device.
* @param pValue Value read from the card register.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetUsbPortStatus(
fc2Context context,
fc2PGRGuid guid,
unsigned int* pValue );
/**
* Gets the topology information for the PC.
*
* @param context The fc2Context to be used.
* @param pTopologyNodeContext A Topology Node context that will contain
* the topology information
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetTopology(
fc2Context context,
fc2TopologyNodeContext* pTopologyNodeContext );
/**
* Register a callback function that will be called when the
* specified callback event occurs.
*
* @param context The fc2Context to be used.
* @param enumCallback Pointer to function that will receive the callback.
* @param callbackType Type of callback to register for.
* @param pParameter Callback parameter to be passed to callback.
* @param pCallbackHandle Unique callback handle used for unregistering
* callback.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2RegisterCallback(
fc2Context context,
fc2BusEventCallback enumCallback,
fc2BusCallbackType callbackType,
void* pParameter,
fc2CallbackHandle* pCallbackHandle );
/**
* Unregister a callback function.
*
* @param context The fc2Context to be used.
* @param callbackHandle Unique callback handle.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2UnregisterCallback(
fc2Context context,
fc2CallbackHandle callbackHandle );
/**
* Force a rescan of the buses. This does not trigger a bus reset.
* The camera objects will be invalidated only if the camera network
* topology is changed (ie. a camera is disconnected or added)
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2RescanBus( fc2Context context);
/**
* Force the camera with the specific MAC address to the specified
* IP address, subnet mask and default gateway. This is useful in
* situations where a GigE Vision camera is using Persistent IP and the
* application's subnet is different from the device subnet.
*
* @param context The fc2Context to be used.
* @param macAddress MAC address of the camera.
* @param ipAddress IP address to set on the camera.
* @param subnetMask Subnet mask to set on the camera.
* @param defaultGateway Default gateway to set on the camera.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2ForceIPAddressToCamera(
fc2Context context,
fc2MACAddress macAddress,
fc2IPAddress ipAddress,
fc2IPAddress subnetMask,
fc2IPAddress defaultGateway );
/**
* Force all cameras on the network to be assigned sequential IP addresses
* on the same subnet as the network adapters that they are connected to.
* This is useful in situations where GigE Vision cameras are using
* IP addresses in a subnet different from the host's subnet.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2ForceAllIPAddressesAutomatically();
/**
* Force cameras on the network to be assigned sequential IP addresses
* on the same subnet as the network adapters that it is connected to.
* This is useful in situations where GigE Vision cameras are using
* IP addresses in a subnet different from the host's subnet.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2ForceIPAddressAutomatically(unsigned int serialNumber);
/**
* Discover all cameras connected to the network even if they reside
* on a different subnet. This is useful in situations where a GigE
* camera is using Persistent IP and the application's subnet is
* different from the device subnet. After discovering the camera,
* it is easy to use ForceIPAddressToCamera() to set a different IP
* configuration.
*
* @param context The fc2Context to be used.
* @param gigECameras Pointer to an array of CameraInfo structures.
* @param arraySize Size of the array. Number of discovered cameras
* is returned in the same value.
*
* @return An Error indicating the success or failure of the function.
* If the error is PGRERROR_BUFFER_TOO_SMALL then arraySize will
* contain the minimum size needed for gigECameras array.
*/
FLYCAPTURE2_C_API fc2Error
fc2DiscoverGigECameras(
fc2Context context,
fc2CameraInfo* gigECameras,
unsigned int* arraySize );
/**
* Query whether a GigE camera is controllable.
*
* @param context The fc2Context to be used.
* @param pGuid Unique PGRGuid for the camera.
* @param pControllable True indicates camera is controllable
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2IsCameraControlable(
fc2Context context,
fc2PGRGuid* pGuid,
BOOL* pControlable);
/*@}*/
/**
* @defgroup CConnectionAndImage Connection and Image Retrieval
*
* @brief These functions deal with connections and image retrieval from
* the camera.
*/
/*@{*/
/**
* Connects the fc2Context to the camera specified by the GUID.
*
* Be aware that calling fc2CreateGUIContext() releases the CCP acquired
* for GigE cameras in fc2Connect(). Consider calling fc2Connect() after
* fc2CreateGUIContext().
*
* @param context The fc2Context to be used.
* @param guid The unique identifier for a specific camera on the PC.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2Connect(
fc2Context context,
fc2PGRGuid* guid );
/**
* Disconnects the fc2Context from the camera. This allows another physical
* camera specified by a GUID to be connected to the fc2Context.
*
* @see fc2Connect()
*
* @param context The fc2Context to be used.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2Disconnect(
fc2Context context );
/**
* Checks if the fc2Context is connected to a physical camera
* specified by a GUID.
*
* @see fc2Connect()
* @see fc2Disconnect()
*
* @param context The fc2Context to be used.
*
* @return Whether fc2Connect() was called on the fc2Context.
*/
FLYCAPTURE2_C_API BOOL
fc2IsConnected(
fc2Context context );
/**
* Sets the callback data to be used on completion of image transfer.
* To clear the current stored callback data, pass in NULL for both
* callback arguments.
*
* @see fc2StartCapture()
*
* @param context The fc2Context to be used.
* @param pCallbackFn A function to be called when a new image is received.
* @param pCallbackData A pointer to data that can be passed to the
* callback function.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetCallback(
fc2Context context,
fc2ImageEventCallback pCallbackFn,
void* pCallbackData);
/**
* Starts isochronous image capture. It will use either the current
* video mode or the most recently set video mode of the camera.
*
* @see fc2RetrieveBuffer()
* @see fc2StartSyncCapture()
* @see fc2StopCapture()
*
* @param context The fc2Context to be used.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2StartCapture(
fc2Context context );
/**
* Starts isochronous image capture. It will use either the current
* video mode or the most recently set video mode of the camera. The callback
* function is called when a new image is received from the camera.
*
* @see fc2RetrieveBuffer()
* @see fc2StartSyncCapture()
* @see fc2StopCapture()
*
* @param context The fc2Context to be used.
* @param pCallbackFn A function to be called when a new image is received.
* @param pCallbackData A pointer to data that can be passed to the
* callback function. A NULL pointer is acceptable.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2StartCaptureCallback(
fc2Context context,
fc2ImageEventCallback pCallbackFn,
void* pCallbackData);
/**
* Starts synchronized isochronous image capture on multiple cameras.
* This function is only used for firewire cameras.
*
* @see fc2RetrieveBuffer()
* @see fc2StartCapture()
* @see fc2StopCapture()
*
* @param numCameras Number of fc2Contexts in the ppCameras array.
* @param pContexts Array of fc2Contexts.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2StartSyncCapture(
unsigned int numCameras,
fc2Context *pContexts );
/**
* Starts synchronized isochronous image capture on multiple cameras.
* This function is only used for firewire cameras.
*
* @see fc2RetrieveBuffer()
* @see fc2StartCapture()
* @see fc2StopCapture()
*
* @param numCameras Number of fc2Contexts in the ppCameras array.
* @param pContexts Array of fc2Contexts.
* @param pCallbackFns Array of callback functions for each camera.
* @param pCallbackDataArray Array of callback data pointers.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2StartSyncCaptureCallback(
unsigned int numCameras,
fc2Context *pContexts,
fc2ImageEventCallback* pCallbackFns,
void** pCallbackDataArray);
/**
* Retrieves the next image object containing the next image.
*
* @see fc2StartCapture()
* @see fc2StopCapture()
*
* @param context The fc2Context to be used.
* @param pImage Pointer to fc2Image to store image data.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2RetrieveBuffer(
fc2Context context,
fc2Image* pImage );
/**
* Stops isochronous image transfer and cleans up all associated
* resources.
*
* @see fc2StartCapture()
* @see fc2RetrieveBuffer()
*
* @param context The fc2Context to be used.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2StopCapture(
fc2Context context );
/**
* Retrieves the next image event containing the next part of the image.
*
* @see fc2StartCapture()
* @see fc2RetrieveBuffer()
* @see fc2StopCapture()
*
* @param context The fc2Context to be used.
* @param pImage Pointer to fc2Image to store image data.
* @param eventNumber The event number to wait for.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2WaitForBufferEvent(
fc2Context context,
fc2Image* pImage,
unsigned int eventNumber );
/**
* Specify user allocated buffers to use as image data buffers.
* To prevent image tearing, the size of each buffer should be equal to
* ((unsigned int)(bufferSize + packetSize - 1)/packetSize) * packetSize.
* The total size should be (size * numBuffers) or larger.
* The packet Size that should be used differs between interfaces:
* Firewire: Use the Format7 packet size.
* Usb2: First round to Format7 packet size then round to 512 bytes.
* Usb3: Use a packet size of 1024 bytes.
* GigE: No need to do any rounding on GigE
*
* @see fc2StartCapture()
* @see fc2RetrieveBuffer()
* @see fc2StopCapture()
*
* @param context The fc2Context to be used.
* @param ppMemBuffers Pointer to memory buffers to be written to. The
* size of the data should be equal to
* (size * numBuffers) or larger.
* @param size The size of each buffer (in bytes).
* @param nNumBuffers Number of buffers in the array.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetUserBuffers(
fc2Context context,
unsigned char* const ppMemBuffers,
int size,
int nNumBuffers );
/**
* Get the configuration associated with the camera.
*
* @see fc2SetConfiguration()
*
* @param context The fc2Context to be used.
* @param config Pointer to the configuration structure to be filled.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetConfiguration(
fc2Context context,
fc2Config* config );
/**
* Set the configuration associated with the camera.
*
* @see fc2GetConfiguration()
*
* @param context The fc2Context to be used.
* @param config Pointer to the configuration structure to be used.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetConfiguration(
fc2Context context,
fc2Config* config );
/*@}*/
/**
* @defgroup CInformationProperties Information and Properties
*
* @brief These functions deal with information and properties can be
* retrieved from the camera.
*/
/*@{*/
/**
* Retrieves information from the camera such as serial number, model
* name and other camera information.
*
* @param context The fc2Context to be used.
* @param pCameraInfo Pointer to the camera information structure
* to be filled.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetCameraInfo(
fc2Context context,
fc2CameraInfo* pCameraInfo );
/**
* Retrieves information about the specified camera property. The
* property type must be specified in the fc2PropertyInfo structure
* passed into the function in order for the function to succeed.
*
* @see fc2GetProperty()
* @see fc2SetProperty()
*
* @param context The fc2Context to be used.
* @param propInfo Pointer to the PropertyInfo structure to be filled.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetPropertyInfo(
fc2Context context,
fc2PropertyInfo* propInfo );
/**
* Reads the settings for the specified property from the camera. The
* property type must be specified in the fc2Property structure passed
* into the function in order for the function to succeed. If auto
* is on, the integer and abs values returned may not be consistent
* with each other.
*
* @see fc2GetPropertyInfo()
* @see fc2SetProperty()
*
* @param context The fc2Context to be used.
* @param prop Pointer to the Property structure to be filled.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetProperty(
fc2Context context,
fc2Property* prop );
/**
* Writes the settings for the specified property to the camera. The
* property type must be specified in the Property structure passed
* into the function in order for the function to succeed.
* The absControl flag controls whether the absolute or integer value
* is written to the camera. Use fc2GetPropertyInfo() to query which
* options are available for a specific property.
*
* @see fc2GetPropertyInfo()
* @see fc2GetProperty()
*
* @param context The fc2Context to be used.
* @param prop Pointer to the Property structure to be used.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetProperty(
fc2Context context,
fc2Property* prop );
/**
* Writes the settings for the specified property to the camera. The
* property type must be specified in the Property structure passed
* into the function in order for the function to succeed.
* The absControl flag controls whether the absolute or integer value
* is written to the camera.
*
* @param context The fc2Context to be used.
* @param prop Pointer to the Property structure to be used.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetPropertyBroadcast(
fc2Context context,
fc2Property* prop );
/*@}*/
/**
* @defgroup CGeneralPurposeIO General Purpose Input / Output
*
* @brief These functions deal with general GPIO pin control on the camera.
*/
/*@{*/
/**
* Get the GPIO pin direction for the specified pin. This is not a
* required call when using the trigger or strobe functions as
* the pin direction is set automatically internally.
*
* @see fc2SetGPIOPinDirection()
* @see fc2SetGPIOPinDirectionBroadcast()
*
* @param context The fc2Context to be used.
* @param pin Pin to get the direction for.
* @param pDirection Direction of the pin. 0 for input, 1 for output.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetGPIOPinDirection(
fc2Context context,
unsigned int pin,
unsigned int* pDirection );
/**
* Set the GPIO pin direction for the specified pin. This is useful if
* there is a need to set the pin into an input pin (i.e. to read the
* voltage) off the pin without setting it as a trigger source. This
* is not a required call when using the trigger or strobe functions as
* the pin direction is set automatically internally.
*
* @see fc2GetGPIOPinDirection()
* @see fc2SetGPIOPinDirectionBroadcast()
*
* @param context The fc2Context to be used.
* @param pin Pin to get the direction for.
* @param direction Direction of the pin. 0 for input, 1 for output.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetGPIOPinDirection(
fc2Context context,
unsigned int pin,
unsigned int direction);
/**
* Set the GPIO pin direction for the specified pin. This is useful if
* there is a need to set the pin into an input pin (i.e. to read the
* voltage) off the pin without setting it as a trigger source. This
* is not a required call when using the trigger or strobe functions as
* the pin direction is set automatically internally.
*
* @see fc2GetGPIOPinDirection()
*
* @param context The fc2Context to be used.
* @param pin Pin to get the direction for.
* @param direction Direction of the pin. 0 for input, 1 for output.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetGPIOPinDirectionBroadcast(
fc2Context context,
unsigned int pin,
unsigned int direction);
/*@}*/
/**
* @defgroup CTrigger Trigger
*
* @brief These functions deal with trigger control on the camera.
*/
/*@{*/
/**
* Retrieve trigger information from the camera.
*
* @see fc2GetTriggerMode()
* @see fc2SetTriggerMode()
* @see fc2SetTriggerModeBroadcast()
* @see fc2GetTriggerDelayInfo()
* @see fc2GetTriggerDelay()
* @see fc2SetTriggerDelay()
*
* @param context The fc2Context to be used.
* @param triggerModeInfo Structure to receive trigger information.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetTriggerModeInfo(
fc2Context context,
fc2TriggerModeInfo* triggerModeInfo );
/**
* Retrieve current trigger settings from the camera.
*
* @see fc2GetTriggerModeInfo()
* @see fc2SetTriggerMode()
* @see fc2SetTriggerModeBroadcast()
* @see fc2GetTriggerDelayInfo()
* @see fc2GetTriggerDelay()
* @see fc2SetTriggerDelay()
*
* @param context The fc2Context to be used.
* @param triggerMode Structure to receive trigger mode settings.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetTriggerMode(
fc2Context context,
fc2TriggerMode* triggerMode );
/**
* Set the specified trigger settings to the camera.
*
* @see fc2GetTriggerModeInfo()
* @see fc2GetTriggerMode()
* @see fc2GetTriggerDelayInfo()
* @see fc2GetTriggerDelay()
* @see fc2SetTriggerDelay()
* @see fc2SetTriggerModeBroadcast()
*
* @param context The fc2Context to be used.
* @param triggerMode Structure providing trigger mode settings.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetTriggerMode(
fc2Context context,
fc2TriggerMode* triggerMode );
/**
* Set the specified trigger settings to the camera.
*
* @see fc2GetTriggerModeInfo()
* @see fc2GetTriggerMode()
* @see fc2GetTriggerDelayInfo()
* @see fc2GetTriggerDelay()
* @see fc2SetTriggerDelay()
* @see fc2SetTriggerMode()
*
* @param context The fc2Context to be used.
* @param triggerMode Structure providing trigger mode settings.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetTriggerModeBroadcast(
fc2Context context,
fc2TriggerMode* triggerMode );
/**
* Fire the software trigger according to the DCAM specifications.
*
* @param context The fc2Context to be used.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2FireSoftwareTrigger(
fc2Context context );
/**
* Fire the software trigger according to the DCAM specifications.
*
* @param context The fc2Context to be used.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2FireSoftwareTriggerBroadcast(
fc2Context context );
/**
* Retrieve trigger delay information from the camera.
*
* @see fc2GetTriggerModeInfo()
* @see fc2GetTriggerMode()
* @see fc2SetTriggerMode()
* @see fc2GetTriggerDelay()
* @see fc2SetTriggerDelay()
* @see fc2SetTriggerDelayBroadcast()
*
* @param context The fc2Context to be used.
* @param triggerDelayInfo Structure to receive trigger delay information.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetTriggerDelayInfo(
fc2Context context,
fc2TriggerDelayInfo* triggerDelayInfo );
/**
* Retrieve current trigger delay settings from the camera.
*
* @see fc2GetTriggerModeInfo()
* @see fc2GetTriggerMode()
* @see fc2SetTriggerMode()
* @see fc2GetTriggerDelayInfo()
* @see fc2SetTriggerDelay()
* @see fc2SetTriggerDelayBroadcast()
*
* @param context The fc2Context to be used.
* @param triggerDelay Structure to receive trigger delay settings.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetTriggerDelay(
fc2Context context,
fc2TriggerDelay* triggerDelay );
/**
* Set the specified trigger delay settings to the camera.
*
* @see fc2GetTriggerModeInfo()
* @see fc2GetTriggerMode()
* @see fc2SetTriggerMode()
* @see fc2GetTriggerDelayInfo()
* @see fc2GetTriggerDelay()
* @see fc2SetTriggerDelayBroadcast()
*
* @param context The fc2Context to be used.
* @param triggerDelay Structure providing trigger delay settings.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetTriggerDelay(
fc2Context context,
fc2TriggerDelay* triggerDelay );
/**
* Set the specified trigger delay settings to the camera.
*
* @see fc2GetTriggerModeInfo()
* @see fc2GetTriggerMode()
* @see fc2SetTriggerMode()
* @see fc2GetTriggerDelayInfo()
* @see fc2GetTriggerDelay()
* @see fc2SetTriggerDelay()
*
* @param context The fc2Context to be used.
* @param triggerDelay Structure providing trigger delay settings.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetTriggerDelayBroadcast(
fc2Context context,
fc2TriggerDelay* triggerDelay );
/*@}*/
/**
* @defgroup CStrobe Strobe
*
* @brief These functions deal with strobe control on the camera.
*/
/*@{*/
/**
* Retrieve strobe information from the camera.
*
* @see fc2GetStrobe()
* @see fc2SetStrobe()
* @see fc2SetStrobeBroadcast()
*
* @param context The fc2Context to be used.
* @param strobeInfo Structure to receive strobe information.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetStrobeInfo(
fc2Context context,
fc2StrobeInfo* strobeInfo );
/**
* Retrieve current strobe settings from the camera. The strobe pin
* must be specified in the structure before being passed in to
* the function.
*
* @see fc2GetStrobeInfo()
* @see fc2SetStrobe()
* @see fc2SetStrobeBroadcast()
*
* @param context The fc2Context to be used.
* @param strobeControl Structure to receive strobe settings.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetStrobe(
fc2Context context,
fc2StrobeControl* strobeControl );
/**
* Set current strobe settings to the camera. The strobe pin
* must be specified in the structure before being passed in to
* the function.
*
* @see fc2GetStrobeInfo()
* @see fc2GetStrobe()
* @see fc2SetStrobeBroadcast()
*
* @param context The fc2Context to be used.
* @param strobeControl Structure providing strobe settings.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetStrobe(
fc2Context context,
fc2StrobeControl* strobeControl );
/**
* Set current strobe settings to the camera. The strobe pin
* must be specified in the structure before being passed in to
* the function.
*
* @see fc2GetStrobeInfo()
* @see fc2GetStrobe()
* @see fc2SetStrobe()
*
* @param context The fc2Context to be used.
* @param strobeControl Structure providing strobe settings.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetStrobeBroadcast(
fc2Context context,
fc2StrobeControl* strobeControl );
/*@}*/
/**
* @defgroup CLookUp Look Up Table
*
* @brief These functions deal with Look Up Table control on the camera.
*/
/*@{*/
/**
* Query if LUT support is available on the camera. Note that some cameras
* may report support for the LUT and return an inputBitDepth of 0. In these
* cases use log2(numEntries) for the inputBitDepth.
*
* @see fc2EnableLUT()
* @see fc2GetLUTChannel()
* @see fc2SetLUTChannel()
*
* @param context The fc2Context to be used.
* @param pData The LUT structure to be filled.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetLUTInfo(
fc2Context context,
fc2LUTData* pData );
/**
* Query the read/write status of a single LUT bank.
*
* @param context The fc2Context to be used.
* @param bank The bank to query.
* @param pReadSupported Whether reading from the bank is supported.
* @param pWriteSupported Whether writing to the bank is supported.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetLUTBankInfo(
fc2Context context,
unsigned int bank,
BOOL* pReadSupported,
BOOL* pWriteSupported );
/**
* Get the LUT bank that is currently being used. For cameras with
* PGR LUT, the active bank is always 0.
*
* @param context The fc2Context to be used.
* @param pActiveBank The currently active bank.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetActiveLUTBank(
fc2Context context,
unsigned int* pActiveBank );
/**
* Set the LUT bank that will be used.
*
* @param context The fc2Context to be used.
* @param activeBank The bank to be set as active.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetActiveLUTBank(
fc2Context context,
unsigned int activeBank );
/**
* Enable or disable LUT functionality on the camera.
*
* @see fc2GetLUTInfo()
* @see fc2GetLUTChannel()
* @see fc2SetLUTChannel()
*
* @param context The fc2Context to be used.
* @param on Whether to enable or disable LUT.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2EnableLUT(
fc2Context context,
BOOL on );
/**
* Get the LUT channel settings from the camera.
*
* @see fc2GetLUTInfo()
* @see fc2EnableLUT()
* @see fc2SetLUTChannel()
*
* @param context The fc2Context to be used.
* @param bank Bank to retrieve.
* @param channel Channel to retrieve.
* @param sizeEntries Number of entries in LUT table to read.
* @param pEntries Array to store LUT entries.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetLUTChannel(
fc2Context context,
unsigned int bank,
unsigned int channel,
unsigned int sizeEntries,
unsigned int* pEntries );
/**
* Set the LUT channel settings to the camera.
*
* @see fc2GetLUTInfo()
* @see fc2EnableLUT()
* @see fc2GetLUTChannel()
*
* @param context The fc2Context to be used.
* @param bank Bank to set.
* @param channel Channel to set.
* @param sizeEntries Number of entries in LUT table to write. This must be the
* same size as numEntries returned by GetLutInfo().
* @param pEntries Array containing LUT entries to write.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetLUTChannel(
fc2Context context,
unsigned int bank,
unsigned int channel,
unsigned int sizeEntries,
unsigned int* pEntries );
/*@}*/
/**
* @defgroup CMemoryChannel Memory Channels
*
* @brief These functions deal with memory channel control on the camera.
*/
/*@{*/
/**
* Retrieve the current memory channel from the camera.
*
* @see fc2SaveToMemoryChannel()
* @see fc2RestoreFromMemoryChannel()
* @see fc2GetMemoryChannelInfo()
*
* @param context The fc2Context to be used.
* @param pCurrentChannel Current memory channel.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetMemoryChannel(
fc2Context context,
unsigned int* pCurrentChannel );
/**
* Save the current settings to the specified current memory channel.
*
* @see fc2GetMemoryChannel()
* @see fc2RestoreFromMemoryChannel()
* @see fc2GetMemoryChannelInfo()
*
* @param context The fc2Context to be used.
* @param channel Memory channel to save to.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SaveToMemoryChannel(
fc2Context context,
unsigned int channel );
/**
* Restore the specified current memory channel.
*
* @see fc2GetMemoryChannel()
* @see fc2SaveToMemoryChannel()
* @see fc2GetMemoryChannelInfo()
*
* @param context The fc2Context to be used.
* @param channel Memory channel to restore from.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2RestoreFromMemoryChannel(
fc2Context context,
unsigned int channel );
/**
* Query the camera for memory channel support. If the number of
* channels are 0, then memory channel support is not available.
*
* @see fc2GetMemoryChannel()
* @see fc2SaveToMemoryChannel()
* @see fc2RestoreFromMemoryChannel()
*
* @param context The fc2Context to be used.
* @param pNumChannels Number of memory channels supported.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetMemoryChannelInfo(
fc2Context context,
unsigned int* pNumChannels );
/**
* Get the current status of the embedded image information register,
* as well as the availability of each embedded property.
*
* @see fc2SetEmbeddedImageInfo()
*
* @param context The fc2Context to be used.
* @param pInfo Structure to be filled.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetEmbeddedImageInfo(
fc2Context context,
fc2EmbeddedImageInfo* pInfo );
/**
* Sets the on/off values of the embedded image information structure
* to the camera.
*
* @see fc2GetEmbeddedImageInfo()
*
* @param context The fc2Context to be used.
* @param pInfo Structure to be used.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetEmbeddedImageInfo(
fc2Context context,
fc2EmbeddedImageInfo* pInfo );
/*@}*/
/**
* @defgroup CRegister Register Operation
*
* @brief These functions deal with register operation on the camera.
*/
/*@{*/
/**
* Write to the specified register on the camera.
*
* @see fc2ReadRegister()
*
* @param context The fc2Context to be used.
* @param address DCAM address to be written to.
* @param value The value to be written.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2WriteRegister(
fc2Context context,
unsigned int address,
unsigned int value);
/**
* Read the specified register from the camera.
*
* @see fc2WriteRegister()
*
* @param context The fc2Context to be used.
* @param address DCAM address to be read from.
* @param pValue The value that is read.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2ReadRegister(
fc2Context context,
unsigned int address,
unsigned int* pValue );
/**
* Write to the specified register on the camera with broadcast.
*
* @see fc2ReadRegisterBlock()
*
* @param context The fc2Context to be used.
* @param address DCAM address to be written to.
* @param value The value to be written.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2WriteRegisterBroadcast(
fc2Context context,
unsigned int address,
unsigned int value);
/**
* Write to the specified register block on the camera.
*
* @see fc2ReadRegisterBlock()
*
* @param context The fc2Context to be used.
* @param addressHigh Top 16 bits of the 48-bit absolute address to write to.
* @param addressLow Bottom 32 bits of the 48 bits absolute address to write to.
* @param pBuffer Array containing data to be written.
* @param length Size of array, in quadlets.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2WriteRegisterBlock(
fc2Context context,
unsigned short addressHigh,
unsigned int addressLow,
const unsigned int* pBuffer,
unsigned int length );
/**
* Write to the specified register block on the camera.
*
* @see fc2WriteRegisterBlock()
*
* @param context The fc2Context to be used.
* @param addressHigh Top 16 bits of the 48-bit absolute address to read from.
* @param addressLow Bottom 32 bits of the 48 bits absolute address to read from.
* @param pBuffer Array to store read data.
* @param length Size of array, in quadlets.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2ReadRegisterBlock(
fc2Context context,
unsigned short addressHigh,
unsigned int addressLow,
unsigned int* pBuffer,
unsigned int length );
/**
* Returns a text representation of the register value.
*
* @param registerVal The register value to query.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API const char*
fc2GetRegisterString(
unsigned int registerVal);
/*@}*/
/**
* Get cycle time from camera
*
* @param context The fc2Context to be used.
* @param Timestamp struct.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetCycleTime( fc2Context context, fc2TimeStamp* pTimeStamp );
/**
* Returns the camera diagnostic information.
*
* @param context The fc2Context to be used.
* @param pCameraStats Pointer to the fc2CameraStats structure.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetStats( fc2Context context, fc2CameraStats* pCameraStats );
/*
* Reset the camera diagnostic information.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
ResetStats();
/**
* Register the camera to issue a custom callback function call for a
* specific device event.
*
* @param context The fc2Context to be used.
* @param pOpts Pointer to the EventOptions structure which defines the
* callback function to use, the event for which to register
* the device, and a pointer to user data (optional) to be
* passed to the callback function.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2RegisterEvent(
fc2Context context,
fc2EventOptions* pOpts );
/**
*De-register an event previously registered with the camera.
*
* @param context The fc2Context to be used.
* @param pOpts Pointer to the EventOptions structure which defines the
* callback function to use, the event for which to register
* the device, and a pointer to user data (optional) to be
* passed to the callback function. The callback function and
* user data elements of the EventOptions structure are ignored
* in this call, and just the event name within the structure is
* used with this function call.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2DeregisterEvent(
fc2Context context,
fc2EventOptions* pOpts );
/**
* Register the camera to issue a custom callback function call for a
* specific device event.
*
* @param context The fc2Context to be used.
* @param pOpts Pointer to the EventOptions structure which defines the
* callback function to use, the event for which to register
* the device, and a pointer to user data (optional) to be
* passed to the callback function. The event name element of
* the structure is ignored with this function call. If a single
* event has already been registered via RegisterEvent(), this
* call will fail, as the user could accidentally change the
* the internal callback function pointer for a queued event.
* The user will need to de-register all registered events,
* then call this function again.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2RegisterAllEvents(
fc2Context context,
fc2EventOptions* pOpts );
/*
* De-register all events registered with the camera.
*
* @param context The fc2Context to be used.
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2DeregisterAllEvents(
fc2Context context);
/**
* @defgroup CDCAMFormats DCAM Formats
*
* @brief These functions deal with DCAM video mode and frame rate
* on the camera. This is only used for firewire and usb2 cameras.
*/
/*@{*/
/**
* Query the camera to determine if the specified video mode and
* frame rate is supported.
*
* @param context The fc2Context to be used.
* @param videoMode Video mode to check.
* @param frameRate Frame rate to check.
* @param pSupported Whether the video mode and frame rate is supported.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetVideoModeAndFrameRateInfo(
fc2Context context,
fc2VideoMode videoMode,
fc2FrameRate 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 context The fc2Context to be used.
* @param videoMode Current video mode.
* @param frameRate Current frame rate.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetVideoModeAndFrameRate(
fc2Context context,
fc2VideoMode* videoMode,
fc2FrameRate* frameRate );
/**
* 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 context The fc2Context to be used.
* @param videoMode Video mode to set to camera.
* @param frameRate Frame rate to set to camera.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetVideoModeAndFrameRate(
fc2Context context,
fc2VideoMode videoMode,
fc2FrameRate frameRate );
/*@}*/
/**
* @defgroup CFormat7 Format7
*
* @brief 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 context The fc2Context to be used.
* @param info 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.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetFormat7Info(
fc2Context context,
fc2Format7Info* info,
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 context The fc2Context to be used.
* @param imageSettings Structure containing the image settings.
* @param settingsAreValid Whether the settings are valid.
* @param packetInfo Packet size information that can be used to
* determine a valid packet size.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2ValidateFormat7Settings(
fc2Context context,
fc2Format7ImageSettings* imageSettings,
BOOL* settingsAreValid,
fc2Format7PacketInfo* packetInfo );
/**
* Get the current Format7 configuration from the camera. This call
* will only succeed if the camera is already in Format7.
*
* @param context The fc2Context to be used.
* @param imageSettings Current image settings.
* @param packetSize Current packet size.
* @param percentage Current packet size as a percentage.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetFormat7Configuration(
fc2Context context,
fc2Format7ImageSettings* imageSettings,
unsigned int* packetSize,
float* percentage );
/**
* Set the current Format7 configuration to the camera.
*
* @param context The fc2Context to be used.
* @param imageSettings Image settings to be written to the camera.
* @param packetSize Packet size to be written to the camera.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetFormat7ConfigurationPacket(
fc2Context context,
fc2Format7ImageSettings* imageSettings,
unsigned int packetSize );
/**
* Set the current Format7 configuration to the camera.
*
* @param context The fc2Context to be used.
* @param imageSettings Image settings to be written to the camera.
* @param percentSpeed Packet size as a percentage to be written to the camera.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetFormat7Configuration(
fc2Context context,
fc2Format7ImageSettings* imageSettings,
float percentSpeed );
/*@}*/
/**
* @defgroup CGVCPRegister GVCP Register Operation
*
* @brief These functions deal with GVCP register operation on the camera.
*/
/*@{*/
/**
* Write a GVCP register.
*
* @param context The fc2Context to be used.
* @param address GVCP address to be written to.
* @param value The value to be written.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2WriteGVCPRegister(
fc2Context context,
unsigned int address,
unsigned int value);
/**
* Write a GVCP register with broadcast
*
* @param context The fc2Context to be used.
* @param address GVCP address to be written to.
* @param value The value to be written.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2WriteGVCPRegisterBroadcast(
fc2Context context,
unsigned int address,
unsigned int value);
/**
* Read a GVCP register.
*
* @param context The fc2Context to be used.
* @param address GVCP address to be read from.
* @param pValue The value that is read.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2ReadGVCPRegister(
fc2Context context,
unsigned int address,
unsigned int* pValue );
/**
* Write a GVCP register block.
*
* @param context The fc2Context to be used.
* @param address GVCP address to be write to.
* @param pBuffer Array containing data to be written.
* @param length Size of array, in quadlets.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2WriteGVCPRegisterBlock(
fc2Context context,
unsigned int address,
const unsigned int* pBuffer,
unsigned int length );
/**
* Read a GVCP register block.
*
* @param context The fc2Context to be used.
* @param address GVCP address to be read from.
* @param pBuffer Array containing data to be written.
* @param length Size of array, in quadlets.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2ReadGVCPRegisterBlock(
fc2Context context,
unsigned int address,
unsigned int* pBuffer,
unsigned int length );
/**
* Write a GVCP memory block.
*
* @param context The fc2Context to be used.
* @param address GVCP address to be write to.
* @param pBuffer Array containing data to be written.
* @param length Size of array, in quadlets.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2WriteGVCPMemory(
fc2Context context,
unsigned int address,
const unsigned char* pBuffer,
unsigned int length );
/**
* Read a GVCP memory block.
*
* @param context The fc2Context to be used.
* @param address GVCP address to be read from.
* @param pBuffer Array containing data to be written.
* @param length Size of array, in quadlets.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2ReadGVCPMemory(
fc2Context context,
unsigned int address,
unsigned char* pBuffer,
unsigned int length );
/*@}*/
/**
* @defgroup CGEVProperty GigE property manipulation
*
* @brief These functions deal with GigE properties.
*/
/*@{*/
/**
* Get the specified GigEProperty. The GigEPropertyType field must
* be set in order for this function to succeed.
*
* @param context The fc2Context to be used.
* @param pGigEProp The GigE property to get.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetGigEProperty(
fc2Context context,
fc2GigEProperty* pGigEProp );
/**
* Set the specified GigEProperty. The GigEPropertyType field must
* be set in order for this function to succeed.
*
* @param context The fc2Context to be used.
* @param pGigEProp The GigE property to set.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetGigEProperty(
fc2Context context,
const fc2GigEProperty* pGigEProp );
/**
* Discover the largest packet size that works for the network link
* between the PC and the camera. This is useful in cases where
* there may be multiple links between the PC and the camera and
* there is a possibility of a component not supporting the
* recommended jumbo frame packet size of 9000.
*
* @param context The fc2Context to be used.
* @param packetSize The maximum packet size supported by the link.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2DiscoverGigEPacketSize(
fc2Context context,
unsigned int* packetSize );
/*@}*/
/**
* @defgroup CGEVImageSettings GigE image settings
*
* @brief These functions deal with GigE image setting.
*/
/*@{*/
/**
* Check if the particular imaging mode is supported by the camera.
*
* @param context The fc2Context to be used.
* @param mode The mode to check.
* @param isSupported Whether the mode is supported.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2QueryGigEImagingMode(
fc2Context context,
fc2Mode mode,
BOOL* isSupported );
/**
* Get the current imaging mode on the camera.
*
* @param context The fc2Context to be used.
* @param mode Current imaging mode on the camera.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetGigEImagingMode(
fc2Context context,
fc2Mode* mode );
/**
* Set the current imaging mode to the camera. This should only be
* done when the camera is not streaming images.
*
* @param context The fc2Context to be used.
* @param mode Imaging mode to set to the camera.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetGigEImagingMode(
fc2Context context,
fc2Mode mode );
/**
* Get information about the image settings possible on the camera.
*
* @param context The fc2Context to be used.
* @param pInfo Image settings information.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetGigEImageSettingsInfo(
fc2Context context,
fc2GigEImageSettingsInfo* pInfo );
/**
* Get the current image settings on the camera.
*
* @param context The fc2Context to be used.
* @param pImageSettings Current image settings on camera.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetGigEImageSettings(
fc2Context context,
fc2GigEImageSettings* pImageSettings );
/**
* Set the image settings specified to the camera.
*
* @param context The fc2Context to be used.
* @param pImageSettings Image settings to set to camera.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetGigEImageSettings(
fc2Context context,
const fc2GigEImageSettings* pImageSettings );
/*@}*/
/**
* @defgroup CGEVImageBinningSettings GigE image binning settings
*
* @brief These functions deal with GigE image binning settings.
*/
/*@{*/
/**
* Get the current binning settings on the camera.
*
* @param context The fc2Context to be used.
* @param horzBinnningValue Current horizontal binning value.
* @param vertBinnningValue Current vertical binning value.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetGigEImageBinningSettings(
fc2Context context,
unsigned int* horzBinnningValue,
unsigned int* vertBinnningValue );
/**
* Set the specified binning values to the camera. It is recommended
* that GetGigEImageSettingsInfo() be called after this function
* succeeds to retrieve the new image settings information for
* the new binning mode.
*
* @param context The fc2Context to be used.
* @param horzBinnningValue Horizontal binning value.
* @param vertBinnningValue Vertical binning value.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetGigEImageBinningSettings(
fc2Context context,
unsigned int horzBinnningValue,
unsigned int vertBinnningValue );
/*@}*/
/**
* @defgroup CGEVImageStreamConfig GigE image stream configuration
*
* @brief These functions deal with GigE image stream configuration.
*/
/*@{*/
/**
* Get the number of stream channels present on the camera.
*
* @param context The fc2Context to be used.
* @param numChannels Number of stream channels present.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetNumStreamChannels(
fc2Context context,
unsigned int* numChannels );
/**
* Get the stream channel information for the specified channel.
*
* @param context The fc2Context to be used.
* @param channel Channel number to use.
* @param pChannel Stream channel information for the specified channel.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetGigEStreamChannelInfo(
fc2Context context,
unsigned int channel,
fc2GigEStreamChannel* pChannel );
/**
* Set the stream channel information for the specified channel.
*
* Note that the source UDP port of the stream channel is read-only.
*
* @param context The fc2Context to be used.
* @param channel Channel number to use.
* @param pChannel Stream channel information to use for the specified channel.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetGigEStreamChannelInfo(
fc2Context context,
unsigned int channel,
fc2GigEStreamChannel* pChannel );
/**
* Get the current gige config on the camera.
*
* @param context The fc2Context to be used.
* @param pGigEConfig Current configuration on camera.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetGigEConfig(
fc2Context context,
fc2GigEConfig* pConfig );
/**
* Set the gige config specified to the camera.
*
* @param context The fc2Context to be used.
* @param pGigEConfig configuration to set to camera.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetGigEConfig(
fc2Context context,
const fc2GigEConfig* pConfig );
/*@}*/
/**
* @defgroup CImage Image Operation
*
* @brief The Image operations are used to retrieve images from a camera,
* convert between multiple pixel formats and save images to disk.
* Operations on images are not guaranteed to be thread safe. It is
* recommended that operations on images be protected by thread
* synchronization constructs such as mutexes.
*/
/*@{*/
/**
* Set the default color processing algorithm. This method will be
* used for any image with the DEFAULT algorithm set. The method used
* is determined at the time of the Convert() call, therefore the most
* recent execution of this function will take precedence. The default
* setting is shared within the current process.
*
* @param defaultMethod The color processing algorithm to set.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetDefaultColorProcessing(
fc2ColorProcessingAlgorithm defaultMethod );
/**
* Get the default color processing algorithm.
*
* @param pDefaultMethod The default color processing algorithm.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetDefaultColorProcessing(
fc2ColorProcessingAlgorithm* pDefaultMethod );
/**
* Set the default output pixel format. This format will be used for any
* call to Convert() that does not specify an output format. The format
* used will be determined at the time of the Convert() call, therefore
* the most recent execution of this function will take precedence.
* The default is shared within the current process.
*
* @param format The output pixel format to set.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetDefaultOutputFormat(
fc2PixelFormat format );
/**
* Get the default output pixel format.
*
* @param pFormat The default pixel format.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetDefaultOutputFormat(
fc2PixelFormat* pFormat );
/**
* Calculate the bits per pixel for the specified pixel format.
*
* @param format The pixel format.
* @param pBitsPerPixel The bits per pixel.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2DetermineBitsPerPixel(
fc2PixelFormat format,
unsigned int* pBitsPerPixel );
/**
* Create a fc2Image. If externally allocated memory is to be used for the
* converted image, simply assigning the pData member of the fc2Image structure
* is insufficient. fc2SetImageData() should be called in order to populate
* the fc2Image structure correctly.
*
* @see fc2SetImageData()
*
* @param pImage Pointer to image to be created.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2CreateImage(
fc2Image* pImage );
/**
* Destroy the fc2Image.
*
* @param image Pointer to image to be destroyed.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2DestroyImage(
fc2Image* image );
/**
* Sets the dimensions of the image object.
*
* @param pImage The fc2Image to be used.
* @param rows Number of rows to set.
* @param cols Number of cols to set.
* @param stride Stride to set.
* @param pixelFormat Pixel format to set.
* @param bayerFormat Bayer tile format to set.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetImageDimensions(
fc2Image* pImage,
unsigned int rows,
unsigned int cols,
unsigned int stride,
fc2PixelFormat pixelFormat,
fc2BayerTileFormat bayerFormat);
/**
* Get the image dimensions associated with the image object.
*
* @param pImage The fc2Image to be used.
* @param pRows Number of rows.
* @param pCols Number of columns.
* @param pStride The stride.
* @param pPixelFormat Pixel format.
* @param pBayerFormat Bayer tile format.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetImageDimensions(
fc2Image* pImage,
unsigned int* pRows,
unsigned int* pCols,
unsigned int* pStride,
fc2PixelFormat* pPixelFormat,
fc2BayerTileFormat* pBayerFormat);
/**
* Set the color processing algorithm. This should be set on the
* input image object.
*
* @param pImage The fc2Image to be used.
* @param colorProc The color processing algorithm to use.
*
* @see fc2GetColorProcessing()
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetImageColorProcessing(
fc2Image* pImage,
fc2ColorProcessingAlgorithm colorProc);
/**
* Get the current color processing algorithm.
*
* @param pImage The fc2Image to be used.
*
* @see fc2SetColorProcessing()
*
* @return The current color processing algorithm.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetImageColorProcessing(
fc2Image* pImage,
fc2ColorProcessingAlgorithm* pColorProc);
/**
* Set the data of the Image object.
* Ownership of the image buffer is not transferred to the Image object.
* It is the user's responsibility to delete the buffer when it is
* no longer in use.
*
* @param pImage The fc2Image to be used.
* @param pData Pointer to the image buffer.
* @param dataSize Size of the image buffer.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetImageData(
fc2Image* pImage,
const unsigned char* pData,
unsigned int dataSize);
/**
* Get a pointer to the data associated with the image. This function
* is considered unsafe. The pointer returned could be invalidated if
* the buffer is resized or released. The pointer may also be
* invalidated if the Image object is passed to fc2RetrieveBuffer().
*
* @param pImage The fc2Image to be used.
* @param ppData A pointer to the image data.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetImageData(
fc2Image* pImage,
unsigned char** ppData);
/**
* Get the metadata associated with the image. This includes
* embedded image information.
*
* @param pImage The fc2Image to be used.
*
* @return Metadata associated with the image.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetImageMetadata(
fc2Image* pImage,
fc2ImageMetadata* pImageMetaData);
/**
* Get the timestamp data associated with the image.
*
* @param pImage The fc2Image to be used.
*
* @return Timestamp data associated with the image.
*/
FLYCAPTURE2_C_API fc2TimeStamp
fc2GetImageTimeStamp(
fc2Image* pImage);
/**
* Save the image to the specified file name with the file format
* specified.
*
* @param pImage The fc2Image to be used.
* @param pFilename Filename to save image with.
* @param format File format to save in.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SaveImage(
fc2Image* pImage,
const char* pFilename,
fc2ImageFileFormat format );
/**
* Save the image to the specified file name with the file format
* specified.
*
* @param pImage The fc2Image to be used.
* @param pFilename Filename to save image with.
* @param format File format to save in.
* @param pOption Options for saving image.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SaveImageWithOption(
fc2Image* pImage,
const char* pFilename,
fc2ImageFileFormat format,
void* pOption );
/**
*
*
* @param pImageIn
* @param pImageOut
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2ConvertImage(
fc2Image* pImageIn,
fc2Image* pImageOut );
/**
* Converts the current image buffer to the specified output format and
* stores the result in the specified image. The destination image
* does not need to be configured in any way before the call is made.
*
* @param format Output format of the converted image.
* @param pImageIn Input image.
* @param pImageOut Output image.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2ConvertImageTo(
fc2PixelFormat format,
fc2Image* pImageIn,
fc2Image* pImageOut );
/**
* Calculate statistics associated with the image. In order to collect
* statistics for a particular channel, the enabled flag for the
* channel must be set to true. Statistics can only be collected for
* images in Mono8, Mono16, RGB, RGBU, BGR and BGRU.
*
* @param pImage The fc2Image to be used.
* @param pImageStatisticsContext The fc2ImageStatisticsContext to hold the
* statistics.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2CalculateImageStatistics(
fc2Image* pImage,
fc2ImageStatisticsContext* pImageStatisticsContext );
/*@}*/
/**
* @defgroup CImageStatistics Image Statistics Operation
*
* @brief The Image Statistics operation provides the functionality for the user to collect
* image channel statistics.
*/
/*@{*/
/**
* Create a statistics context.
*
* @param pImageStatisticsContext A statistics context.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2CreateImageStatistics(
fc2ImageStatisticsContext* pImageStatisticsContext );
/**
* Destroy a statistics context.
*
* @param imageStatisticsContext A statistics context.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2DestroyImageStatistics(
fc2ImageStatisticsContext imageStatisticsContext );
/**
* Enable all channels.
*
* @param imageStatisticsContext A statistics context.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2ImageStatisticsEnableAll(
fc2ImageStatisticsContext imageStatisticsContext );
/**
* Disable all channels.
*
* @param imageStatisticsContext A statistics context.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2ImageStatisticsDisableAll(
fc2ImageStatisticsContext imageStatisticsContext );
/**
* Enable only the grey channel.
*
* @param imageStatisticsContext A statistics context.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2ImageStatisticsEnableGreyOnly(
fc2ImageStatisticsContext imageStatisticsContext );
/**
* Enable only the RGB channels.
*
* @param imageStatisticsContext A statistics context.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2ImageStatisticsEnableRGBOnly(
fc2ImageStatisticsContext imageStatisticsContext );
/**
* Enable only the HSL channels.
*
* @param imageStatisticsContext A statistics context.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2ImageStatisticsEnableHSLOnly(
fc2ImageStatisticsContext imageStatisticsContext );
/**
* Get the status of a statistics channel.
*
* @see fc2SetChannelStatus()
*
* @param imageStatisticsContext A statistics context.
* @param channel The statistics channel.
* @param pEnabled Whether the channel is enabled.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetChannelStatus(
fc2ImageStatisticsContext imageStatisticsContext,
fc2StatisticsChannel channel,
BOOL* pEnabled );
/**
* Set the status of a statistics channel.
*
* @see fc2GetChannelStatus()
*
* @param imageStatisticsContext A statistics context.
* @param channel The statistics channel.
* @param enabled Whether the channel should be enabled.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2SetChannelStatus(
fc2ImageStatisticsContext imageStatisticsContext,
fc2StatisticsChannel channel,
BOOL enabled );
/**
* Get the range of a statistics channel. The values returned
* are the maximum possible values for any given pixel in the image.
* This is generally 0-255 for 8 bit images, and 0-65535 for
* 16 bit images.
*
* @param imageStatisticsContext A statistics context.
* @param channel The statistics channel.
* @param pMin The minimum possible value.
* @param pMax The maximum possible value.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetChannelRange(
fc2ImageStatisticsContext imageStatisticsContext,
fc2StatisticsChannel channel,
unsigned int* pMin,
unsigned int* pMax );
/**
* Get the range of a statistics channel. The values returned
* are the maximum values recorded for all pixels in the image.
*
* @param imageStatisticsContext A statistics context.
* @param channel The statistics channel.
* @param pPixelValueMin The minimum pixel value.
* @param pPixelValueMax The maximum pixel value.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetChannelPixelValueRange(
fc2ImageStatisticsContext imageStatisticsContext,
fc2StatisticsChannel channel,
unsigned int* pPixelValueMin,
unsigned int* pPixelValueMax );
/**
* Get the number of unique pixel values in the image.
*
* @param imageStatisticsContext A statistics context.
* @param channel The statistics channel.
* @param pNumPixelValues The number of unique pixel values.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetChannelNumPixelValues(
fc2ImageStatisticsContext imageStatisticsContext,
fc2StatisticsChannel channel,
unsigned int* pNumPixelValues );
/**
* Get the mean of the image.
*
* @param imageStatisticsContext A statistics context.
* @param channel The statistics channel.
* @param pPixelValueMean The mean of the image.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetChannelMean(
fc2ImageStatisticsContext imageStatisticsContext,
fc2StatisticsChannel channel,
float* pPixelValueMean );
/**
* Get the histogram for the image.
*
* @param imageStatisticsContext A statistics context.
* @param channel The statistics channel.
* @param ppHistogram Pointer to an array containing the histogram.
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetChannelHistogram(
fc2ImageStatisticsContext imageStatisticsContext,
fc2StatisticsChannel channel,
int** ppHistogram );
/**
* Get all statistics for the image.
*
* @param imageStatisticsContext The statistics context.
* @param channel The statistics channel.
* @param pRangeMin The minimum possible value.
* @param pRangeMax The maximum possible value.
* @param pPixelValueMin The minimum pixel value.
* @param pPixelValueMax The maximum pixel value.
* @param pNumPixelValues The number of unique pixel values.
* @param pPixelValueMean The mean of the image.
* @param ppHistogram Pointer to an array containing the histogram.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetImageStatistics(
fc2ImageStatisticsContext imageStatisticsContext,
fc2StatisticsChannel channel,
unsigned int* pRangeMin,
unsigned int* pRangeMax,
unsigned int* pPixelValueMin,
unsigned int* pPixelValueMax,
unsigned int* pNumPixelValues,
float* pPixelValueMean,
int** ppHistogram );
/*@}*/
/**
* @defgroup CAVIRecorder AVI Recording Operation
*
* @brief The AVI recording operation provides the functionality for the user to record
* images to an AVI file.
*/
/*@{*/
/**
* Create a AVI context.
*
* @param pAVIContext A AVI context.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2CreateAVI(
fc2AVIContext* pAVIContext );
/**
* Open an AVI file in preparation for writing Images to disk.
* The size of AVI files is limited to 2GB. The filenames are
* automatically generated using the filename specified.
*
* @param AVIContext The AVI context to use.
* @param pFileName The filename of the AVI file.
* @param pOption Options to apply to the AVI file.
*
* @see SetMaximumAVISize()
* @see fc2AVIClose()
* @see fc2AVIOption
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2AVIOpen(
fc2AVIContext AVIContext,
const char* pFileName,
fc2AVIOption* pOption );
/**
* Open an MJPEG file in preparation for writing Images to disk.
* The size of AVI files is limited to 2GB. The filenames are
* automatically generated using the filename specified.
*
* @param AVIContext The AVI context to use.
* @param pFileName The filename of the AVI file.
* @param pOption Options to apply to the AVI file.
*
* @see fc2AVIClose()
* @see fc2MJPGOption
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2MJPGOpen(
fc2AVIContext AVIContext,
const char* pFileName,
fc2MJPGOption* pOption );
/**
* Open an H.264 video file in preparation for writing Images to disk.
* If the file extension is not specified, MP4 will be used as the default
* container. Consult ffmpeg documentation for a list of supported containers.
*
* @param pFileName The filename of the video file.
* @param pOption H.264 options to apply to the video file.
*
* @see fc2AVIClose()
* @see fc2H264Option
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2H264Open(
fc2AVIContext AVIContext,
const char* pFileName,
fc2H264Option* pOption );
/**
* Append an image to the AVI file.
*
* @param AVIContext The AVI context to use.
* @param pImage The image to append.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2AVIAppend(
fc2AVIContext AVIContext,
fc2Image* pImage );
/**
* Set the maximum file size (in megabytes) of a AVI/MP4 file. A new AVI/MP4 file
* is created automatically when file size limit is reached. Setting
* a maximum size of 0 indicates no limit on file size.
*
* @param AVIContext The AVI context to use.
* @param size The maximum AVI file size in MB.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2AVISetMaximumSize(
fc2AVIContext AVIContext,
unsigned int size);
/**
* Close the AVI file.
*
* @param AVIContext The AVI context to use.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2AVIClose(
fc2AVIContext AVIContext );
/**
* Destroy a AVI context.
*
* @param AVIContext A AVI context.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2DestroyAVI(
fc2AVIContext AVIContext );
/*@}*/
/**
* @defgroup CTopologyNode TopologyNode Operation
*
* @brief The TopologyNode operation provides the functionality for the user to
* generate a tree structure of all cameras and devices connected to a computer.
*/
/*@{*/
/**
* Create a TopologyNode context.
*
* @param pTopologyNodeContext A Topology Node context.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2CreateTopologyNode(
fc2TopologyNodeContext* pTopologyNodeContext );
/**
* Get the PGRGuid associated with the node.
*
* @param TopologyNodeContext The Topology Node context to use.
* @param pGuid The unique identifier associated with the node.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2TopologyNodeGetGuid(
fc2TopologyNodeContext TopologyNodeContext,
fc2PGRGuid* pGuid);
/**
* Get the device ID associated with the node.
*
* @param TopologyNodeContext The Topology Node context to use.
* @param pID Device ID of the node.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2TopologyNodeGetDeviceId(
fc2TopologyNodeContext TopologyNodeContext,
int* pID);
/**
* Get the node type associated with the node.
*
* @param TopologyNodeContext The Topology Node context to use.
* @param pNodeType Node type of the node.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2TopologyNodeGetNodeType(
fc2TopologyNodeContext TopologyNodeContext,
fc2NodeType* pNodeType);
/**
* Get the interface type associated with the node.
*
* @param TopologyNodeContext The Topology Node context to use.
* @param pInterfaceType Interface type of the node.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2TopologyNodeGetInterfaceType(
fc2TopologyNodeContext TopologyNodeContext,
fc2InterfaceType* pInterfaceType);
/**
* Get the number of child nodes.
*
* @param TopologyNodeContext The Topology Node context to use.
* @param pNumChildNodes Number of child nodes.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2TopologyNodeGetNumChildren(
fc2TopologyNodeContext TopologyNodeContext,
unsigned int* pNumChildNodes);
/**
* Get child node located at the specified position.
*
* @param TopologyNodeContext The Topology Node context to use.
* @param position Position of the child node.
* @param pChildTopologyNodeContext The Topology Node context the contains
* information on the child topology
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2TopologyNodeGetChild(
fc2TopologyNodeContext TopologyNodeContext,
unsigned int position,
fc2TopologyNodeContext* pChildTopologyNodeContext);
/**
* Add the specified TopologyNode as a child of the node.
*
* @param TopologyNodeContext The Topology Node context to use.
* @param TopologyNodeChildContext The TopologyNode child context to add.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2TopologyNodeAddChild(
fc2TopologyNodeContext TopologyNodeContext,
fc2TopologyNodeContext TopologyNodeChildContext);
/**
* Get the number of ports.
*
* @param TopologyNodeContext The Topology Node context to use.
* @param pNumPorts Number of ports.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2TopologyNodeGetNumPorts(
fc2TopologyNodeContext TopologyNodeContext,
unsigned int* pNumPorts);
/**
* Get type of port located at the specified position.
*
* @param TopologyNodeContext The Topology Node context to use.
* @param position Position of the port.
* @param pPortType PortType at the specified position.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2TopologyNodeGetPortType(
fc2TopologyNodeContext TopologyNodeContext,
unsigned int position,
fc2PortType* pPortType);
/**
* Add the specified PortType as a port of the node.
*
* @param TopologyNodeContext The Topology Node context to use.
* @param portType childPort The port to add.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2TopologyNodeAddPortType(
fc2TopologyNodeContext TopologyNodeContext,
fc2PortType portType);
/**
* Assign a PGRGuid and device ID to the node.
*
* @param TopologyNodeContext The Topology Node context to use.
* @param guid PGRGuid to be assigned.
* @param deviceId Device ID to be assigned.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API BOOL
fc2TopologyNodeAssignGuidToNode(
fc2TopologyNodeContext TopologyNodeContext,
fc2PGRGuid guid,
int deviceId);
/**
* Assign a PGRGuid, device ID and nodeType to the node.
*
* @param TopologyNodeContext The Topology Node context to use.
* @param guid PGRGuid to be assigned.
* @param deviceId Device ID to be assigned.
* @param nodeType NodeType to be assigned
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API BOOL
fc2TopologyNodeAssignGuidToNodeEx(
fc2TopologyNodeContext TopologyNodeContext,
fc2PGRGuid guid,
int deviceId,
fc2NodeType nodeType);
/**
* Destroy a TopologyNode context.
*
* @param TopologyNodeContext A Topology Node context.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2DestroyTopologyNode(
fc2TopologyNodeContext TopologyNodeContext );
/*@}*/
/**
* @defgroup CUtilities Utilities
*
* @brief The utility operations are used to query for general system
* information such as operating system, available memory etc.
* It can also be used to launch browsers, CHM viewers or terminal commands.
*/
/*@{*/
/**
* Check for driver compatibility for the given camera guid.
*
* @param pGuid The PGRGuid of the device to check.
*
* @return FC2_ERROR_OK if the library is compatible with the currently
* loaded driver, otherwise an error indicating the type of failure.
*/
FLYCAPTURE2_C_API fc2Error
fc2CheckDriver( const fc2PGRGuid* pGuid);
/**
* Get the driver's name for a device
*
* @param pGuid The PGRGuid of the device to check.
* @param pDeviceName The device name will be returned in this string
* @param pDeviceNameLength The length of the device name string returned
*
* @return An Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetDriverDeviceName(
const fc2PGRGuid* pGuid,
char* pDeviceName,
size_t* deviceNameLength);
/**
* Get system information.
*
* @param pSystemInfo Structure to receive system information.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetSystemInfo( fc2SystemInfo* pSystemInfo);
/**
* Get library version.
*
* @param pVersion Structure to receive the library version.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2GetLibraryVersion( fc2Version* pVersion);
/**
* Launch a URL in the system default browser.
*
* @param pAddress URL to open in browser.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2LaunchBrowser( const char* pAddress);
/**
* Open a CHM file in the system default CHM viewer.
*
* @param pFileName Filename of CHM file to open.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2LaunchHelp( const char* pFileName);
/**
* Execute a command in the terminal. This is a blocking call that
* will return when the command completes.
*
* @param pCommand Command to execute.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2LaunchCommand( const char* pCommand);
/**
* Execute a command in the terminal. This is a non-blocking call that
* will return immediately. The return value of the command can be
* retrieved in the callback.
*
* @param pCommand Command to execute.
* @param pCallback Callback to fire when command is complete.
* @param pUserData Data pointer to pass to callback.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API fc2Error
fc2LaunchCommandAsync(
const char* pCommand,
fc2AsyncCommandCallback pCallback,
void* pUserData );
/**
* Get a string representation of an error.
*
* @param error Error to be parsed.
*
* @return A fc2Error indicating the success or failure of the function.
*/
FLYCAPTURE2_C_API const char*
fc2ErrorToDescription(
fc2Error error);
/*@}*/
#ifdef __cplusplus
};
#endif
#endif // FLIR_FC2_FLYCAPTURE2_C_H