Impact Acquire SDK C++
CameraDescriptionBase Class Reference

A base class to describe a camera (Device specific interface layout only) connected to a frame grabber (deprecated. More...

#include <mvIMPACT_acquire.h>

Inheritance diagram for CameraDescriptionBase:
[legend]

Public Member Functions

int copyDescription (const std::string &newName) const
 Creates a new camera description list as a copy of the current one.
 
int exportDescription (void) const
 Stores the current camera description on disk.
 
std::string getClassName (void) const
 Returns the class this description is belonging to.
 
HOBJ hObj (void) const
 Returns a unique identifier for the component collection referenced by this object.
 
int importDescription (void) const
 Updates a camera description with the data stored in a previous session or with the original default data.
 
const ComponentCollectionrestoreDefault (void) const
 Restores the default for every component of this collection.
 

Public Attributes

PropertyI aoiHeight
 An integer property defining the number of active lines to capture from the camera.
 
PropertyI aoiStartX
 An integer property defining the X-offset in pixels to the first active pixel to capture.
 
PropertyI aoiStartY
 An integer property defining the Y-offset in lines to the first active line to capture.
 
PropertyI aoiWidth
 An integer property defining the number of active pixels to capture per line.
 
PropertyICameraInterlacedType interlacedType
 An enumerated integer property defining how the camera transmits image data.
 
PropertyS name
 A string property read-only containing the name of this camera description list.
 
PropertyICameraOutput videoOutput
 An enumerated integer property defining the type of video outputs this camera offers.
 

Protected Member Functions

 CameraDescriptionBase (HDRV hDrv, HLIST hList)
 

Protected Attributes

HOBJ m_hRoot
 

Detailed Description

A base class to describe a camera (Device specific interface layout only) connected to a frame grabber (deprecated.

Deprecated
Beginning with the release of 3.0.0 of Impact Acquire everything specifically related to frame grabber boards will be considered as deprecated and might be removed without further notice!

A camera description object provides an abstract way to prepare the capture device (e.g. a frame grabber) for the connected imaging device (e.g. a camera).

By selecting one of the available camera descriptions the underlying hardware will use the information provided in the camera description to prepare the image capture. Therefore it is crucial to select a camera description that matches the connected video signal as close as possible. If no description for the camera connected to a frame grabber is available a new description should be generated from one of the existing ones. This can be achieved by calling the function mvIMPACT::acquire::CameraDescriptionBase::copyDescription. A new camera description with the name that is passed to the function will be created.

Note
The name must be unique. There can't be two descriptions with the same name belonging to the same generic class (i.e. 'Standard' or 'CameraLink'®). However it's perfectly legal to have a camera description for standard analogue video signals and one for e.g. CameraLink® signals with the same name.

This new description will be an exact copy of the one the copy function has been executed for. After creation this description can be selected e.g. by setting the property mvIMPACT::acquire::CameraSettingsFrameGrabber::type to the name of the new description.

Note
Please note that the name passed to the property mvIMPACT::acquire::CameraSettingsFrameGrabber::type does NOT exactly correspond to the name assigned to the new camera description. It is a combination of the class the camera is belonging to (e.g. 'Standard') and the actual name. So to select a camera description the name must be build from the return value of a call to mvIMPACT::acquire::CameraDescriptionBase::getClassName, an underscore ('_') and the actual name of the description: <class name>_<desc. name>

Example: For a standard description with the name 'MyCam' the full name would be 'Standard_MyCam'.

#include <mvIMPACT_CPP/mvIMPACT_acquire.h>
#include <iostream>
using namespace std;
//-----------------------------------------------------------------------------
int main( int argc, char* argv[] )
//-----------------------------------------------------------------------------
{
mvIMPACT::acquire::Device* pDev = devMgr[0];
if( !pDev )
{
cout << "No device found" << endl;
return 1;
}
try
{
// the next line will raise an exception if this device does not
// support camera descriptions (e.g. if it is a USB camera rather than a frame grabber)
mvIMPACT::acquire::CameraDescriptionStandard* pCam = cdm.cameraDescriptionStandard( "Generic" );
pCam->copyDescription( "MyCam" );
// Get access to the newly created description
mvIMPACT::acquire::CameraDescriptionStandard* pMyCam = cdm.cameraDescriptionStandard( "MyCam" );
// Modify something
// now save the description to make it available in all future sessions
pMyCam->exportDescription();
// select the newly created description
// the name for this property is always a combination of the class the camera
// description is belonging to and the actual name:
cs.type.writeS( pMyCam->getClassName() + "_" + pMyCam->name.read() );
}
catch( const ImpactAcquireException& e )
{
cout << "An exception occurred: " << e.getErrorString() << endl;
return 1;
}
return 0;
}
int exportDescription(void) const
Stores the current camera description on disk.
Definition mvIMPACT_acquire.h:20973
std::string getClassName(void) const
Returns the class this description is belonging to.
Definition mvIMPACT_acquire.h:20922
int copyDescription(const std::string &newName) const
Creates a new camera description list as a copy of the current one.
Definition mvIMPACT_acquire.h:20946
PropertyS name
A string property read-only containing the name of this camera description list.
Definition mvIMPACT_acquire.h:21020
Grants access to camera description objects(Device specific interface layout only) (deprecated.
Definition mvIMPACT_acquire.h:21696
PropertyIScanStandard scanStandard
An enumerated integer property defining the scan standard this camera is compliant with.
Definition mvIMPACT_acquire.h:21348
PropertyIVideoStandard videoStandard
An enumerated integer property for defining the video standard this camera is compliant with.
Definition mvIMPACT_acquire.h:21343
A class describing analogue standard compliant video cameras(Device specific interface layout only) (...
Definition mvIMPACT_acquire.h:21377
A class to access frame grabber related camera settings(Device specific interface layout only) (depre...
Definition mvIMPACT_acquire.h:20386
Grants access to devices that can be operated by this software interface.
Definition mvIMPACT_acquire.h:7159
This class and its functions represent an actual device detected by this interface in the current sys...
Definition mvIMPACT_acquire.h:6118
const EnumPropertyI & write(ZYX value, int index=0) const
Writes one value to the property.
Definition mvIMPACT_acquire.h:4426
std::string read(int index=0) const
Reads a value from a property.
Definition mvIMPACT_acquire.h:5323
@ vsRS170
RS 170 video signal: Grey, 60 fields per second, 525 lines.
Definition mvDriverBaseEnums.h:4975
@ ssITU601
720 x 576 Pixels for 50 Hz standard cameras, 720 x 480 Pixels for 60 Hz standard cameras.
Definition mvDriverBaseEnums.h:4848
Note
This class will only be available if mvIMPACT::acquire::Device::interfaceLayout is set to mvIMPACT::acquire::dilDeviceSpecific before the device is opened.

Constructor & Destructor Documentation

◆ CameraDescriptionBase()

CameraDescriptionBase ( HDRV hDrv,
HLIST hList )
inlineexplicitprotected

Member Function Documentation

◆ copyDescription()

int copyDescription ( const std::string & newName) const
inline

Creates a new camera description list as a copy of the current one.

This function can be used to create a new camera description list. It will create a deep copy of the properties referenced by this camera description and will append the new description to the list of camera descriptions.

Note
This will NOT store the new description permanently. After the driver has been closed, this data will be lost. To store the new list in a way that it will be available the next time the driver/device is opened again, mvIMPACT::acquire::CameraDescriptionBase::exportDescription must be called with the handle of the newly created description after this function.
See also
mvIMPACT::acquire::CameraDescriptionBase::exportDescription,
mvIMPACT::acquire::CameraDescriptionBase::importDescription
Returns
Parameters
[in]newNameThe name for the newly created camera description. This name MUST NOT match a description already existing.

◆ exportDescription()

int exportDescription ( void ) const
inline

Stores the current camera description on disk.

This function can be used to store the current settings of a camera description permanently so that the next time the driver is initialized these settings are restored.

When exporting a camera description a file in XML format will be written to disk.

  • On Windows® camera descriptions will be stored under PUBLIC%/Documents/Balluff/ImpactAcquire/CameraFiles (or MVIMPACT_ACQUIRE_DATA_DIR%/CameraFiles, which will point to the same folder)
  • On Unix based systems this directory will be /opt/ImpactAcquire/data/camerafiles
  • On other platforms these files will end up in the current working directory.

This behaviour can be modified by writing the property mvIMPACT::acquire::Device::customDataDirectory before initialising the device.

See also
mvIMPACT::acquire::CameraDescriptionBase::copyDescription,
mvIMPACT::acquire::CameraDescriptionBase::importDescription
Returns

◆ getClassName()

std::string getClassName ( void ) const
inline

Returns the class this description is belonging to.

Returns
The class this description is belonging to.

◆ hObj()

HOBJ hObj ( void ) const
inlineinherited

Returns a unique identifier for the component collection referenced by this object.

This handle will always reference an object of type mvIMPACT::acquire::ComponentList.

Returns
A unique identifier for the component referenced by this object.

◆ importDescription()

int importDescription ( void ) const
inline

Updates a camera description with the data stored in a previous session or with the original default data.

When importing a camera description the device driver will try to retrieve the parameters needed from a XML file.

  • On Windows® camera descriptions MUST be stored under PUBLIC%/Documents/Balluff/ImpactAcquire/CameraFiles (or MVIMPACT_ACQUIRE_DATA_DIR%/CameraFiles, which will point to the same folder)
  • n Unix based systems this directory will be /opt/ImpactAcquire/data/camerafiles
  • On other platforms these files MUST be located in the current working directory.

This behaviour can be modified by writing the property mvIMPACT::acquire::Device::customDataDirectory before initialising the device. To get access to an XML description file within the application, these file must be copied to this directory BEFORE the device is initialized. During the initialisation process the device driver will process every file located under this location and will add them to the internal list of descriptions. Every camera located during this process and also descriptions created later on during the program operation can be selected via the property mvIMPACT::acquire::CameraSettingsFrameGrabber::type.

Note
In order not to bloat the device driver with redundant data it's wise only to store the descriptions needed for the application to run under this location.
Only camera descriptions supported by the capture device will be added to the device drivers internal list and will therefore be accessible via the mvIMPACT::acquire::CameraDescriptionManager.

To restore the default values valid during the driver was initialized the function mvIMPACT::acquire::ComponentCollection::restoreDefault can be used as well.

See also
mvIMPACT::acquire::CameraDescriptionBase::exportDescription,
mvIMPACT::acquire::CameraDescriptionBase::copyDescription
Returns

◆ restoreDefault()

const ComponentCollection & restoreDefault ( void ) const
inlineinherited

Restores the default for every component of this collection.

Calling this function will restore the default value for every component belonging to this collection.

Note
The caller must have the right to modify the component. Otherwise an exception will be thrown.
Returns
A const reference to the component.

Member Data Documentation

◆ aoiHeight

PropertyI aoiHeight

An integer property defining the number of active lines to capture from the camera.

◆ aoiStartX

PropertyI aoiStartX

An integer property defining the X-offset in pixels to the first active pixel to capture.

◆ aoiStartY

PropertyI aoiStartY

An integer property defining the Y-offset in lines to the first active line to capture.

◆ aoiWidth

PropertyI aoiWidth

An integer property defining the number of active pixels to capture per line.

◆ interlacedType

An enumerated integer property defining how the camera transmits image data.

Valid values for this property are defined by the enumeration mvIMPACT::acquire::TCameraInterlacedType.

◆ m_hRoot

HOBJ m_hRoot
protectedinherited

◆ name

PropertyS name

A string property read-only containing the name of this camera description list.

◆ videoOutput

PropertyICameraOutput videoOutput

An enumerated integer property defining the type of video outputs this camera offers.

Valid values for this property are defined by the enumeration mvIMPACT::acquire::TCameraOutput.

Note
This property will be (read-only) for camera descriptions of type mvIMPACT::acquire::CameraDescriptionCameraLink and mvIMPACT::acquire::CameraDescriptionSDI as for these camera types the video output depends on certain other parameters according to the corresponding standard.