// all code will reside in this inner namespace
} // namespace MATRIX_VISION_mvBlueIntelligentDevice_1
} // namespace DeviceSpecific
} // namespace acquire
} // namespace mvIMPACT
In the application the generated header files can be used like normal include files:
#include <string>
#include <mvIMPACT_CPP/mvIMPACT_acquire.h>
#include <mvIMPACT_CPP/mvIMPACT_acquire_GenICam_Wrapper_DeviceSpecific.h>
Now to access data types from the header files of course the namespaces must somehow be taken
into account. When there is just a single interface that has been created automatically the easiest
thing to do would probably an appropriate using statement:
using namespace mvIMPACT::acquire::DeviceSpecific::MATRIX_VISION_mvBlueIntelligentDevice_1;
If several files created from different devices shall be used and these devices define similar features
in a slightly different way this however might result in name clashes and/or unexpected behaviour.
In that case the namespaces should be specified explicitly when creating data type instances from
the header file in the application:
//-----------------------------------------------------------------------------
void fn( Device* pDev )
//-----------------------------------------------------------------------------
{
mvIMPACT::acquire::DeviceSpecific::MATRIX_VISION_mvBlueIntelligentDevice_1::TransportLayer tl(pDev);
if( tl.gevTimestampControlLatchReset.isValid() )
{
tl.gevTimestampControlLatchReset.call();
}
}
When working with a using statement the same code can be written like this as well:
//-----------------------------------------------------------------------------
void fn( Device* pDev )
//-----------------------------------------------------------------------------
{
TransportLayer tl(pDev);
if( tl.gevTimestampControlLatchReset.isValid() )
{
tl.gevTimestampControlLatchReset.call();
}
}
18.2 Introducing acquisition / recording possibilities
There are several use cases concerning the acquisition / recording possibilities of the camera:
18 Use cases
149