pylon/SfncVersion.h#
Namespaces#
Name |
---|
Pylon Contains definitions of pylon types. |
Defines#
Name | |
---|---|
GCC_DIAGNOSTIC_AWARE |
Macros Documentation#
define GCC_DIAGNOSTIC_AWARE#
#define GCC_DIAGNOSTIC_AWARE 0
Source code#
//-----------------------------------------------------------------------------
// Basler pylon SDK
// Copyright (c) 2009-2022 Basler AG
// http://www.baslerweb.com
// Author: Andreas Gau
//-----------------------------------------------------------------------------
#ifndef INCLUDED_SFNCVERSION_H_3193628
#define INCLUDED_SFNCVERSION_H_3193628
#include <pylon/Platform.h>
#include <pylon/PylonVersionInfo.h>
#ifdef PYLON_LINUX_BUILD
# undef GCC_VERSION
# define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
# undef GCC_DIAGNOSTIC_AWARE
# define GCC_DIAGNOSTIC_AWARE (GCC_VERSION >= 40200)
# undef GCC_DIAGNOSTIC_PUSH_POP_AWARE
# define GCC_DIAGNOSTIC_PUSH_POP_AWARE (GCC_VERSION >= 40600)
#else
# undef GCC_DIAGNOSTIC_AWARE
# define GCC_DIAGNOSTIC_AWARE 0
#endif
#if defined (PYLON_OSX_BUILD)
# pragma clang diagnostic push
# pragma clang diagnostic ignored "-Wunused-variable"
# pragma clang diagnostic ignored "-Wunknown-pragmas"
#endif
#if GCC_DIAGNOSTIC_AWARE
# if GCC_DIAGNOSTIC_PUSH_POP_AWARE
# pragma GCC diagnostic push
# endif
# pragma GCC diagnostic ignored "-Wunknown-pragmas"
# pragma GCC diagnostic ignored "-Wpragmas" // gcc < 4.6 doesn't know the following pragma
# pragma GCC diagnostic ignored "-Wunused-but-set-variable"
#endif
#include <GenApi/GenApi.h>
#if GCC_DIAGNOSTIC_AWARE
# if GCC_DIAGNOSTIC_PUSH_POP_AWARE
# pragma GCC diagnostic pop
# else
# pragma GCC diagnostic warning "-Wunknown-pragmas"
# pragma GCC diagnostic warning "-Wunused-but-set-variable"
# pragma GCC diagnostic warning "-Wpragmas" // gcc < 4.6 doesn't know the pragma
# endif
#endif
#include <GenApi/Pointer.h>
#include <GenApi/INodeMap.h>
#if defined (PYLON_OSX_BUILD)
# pragma clang diagnostic pop
#endif
namespace Pylon
{
static const VersionInfo Sfnc_VersionUndefined( 0, 0, 0 );
static const VersionInfo Sfnc_1_2_1( 1, 2, 1 );
static const VersionInfo Sfnc_1_3_0( 1, 3, 0 );
static const VersionInfo Sfnc_1_4_0( 1, 4, 0 );
static const VersionInfo Sfnc_1_5_0( 1, 5, 0 );
static const VersionInfo Sfnc_1_5_1( 1, 5, 1 );
static const VersionInfo Sfnc_2_0_0( 2, 0, 0 );
static const VersionInfo Sfnc_2_1_0( 2, 1, 0 );
static const VersionInfo Sfnc_2_2_0( 2, 2, 0 );
static const VersionInfo Sfnc_2_3_0( 2, 3, 0 );
static const VersionInfo Sfnc_2_4_0( 2, 4, 0 );
static const VersionInfo Sfnc_2_5_0( 2, 5, 0 );
inline VersionInfo GetSfncVersion( GenApi::INodeMap* pNodeMap )
{
// If pNodeMap is a valid node map.
if (pNodeMap)
{
// Check to see whether node for major version exists.
GenApi::CIntegerPtr major = pNodeMap->GetNode( "DeviceSFNCVersionMajor" );
if (major)
{
// Get further version Info.
GenApi::CIntegerPtr minor = pNodeMap->GetNode( "DeviceSFNCVersionMinor" );
GenApi::CIntegerPtr subminor = pNodeMap->GetNode( "DeviceSFNCVersionSubMinor" );
if (!IsReadable( major ) || !IsReadable( minor ) || !IsReadable( subminor ))
{
throw RUNTIME_EXCEPTION( "Failed to read SFNC version from camera device node map." );
}
VersionInfo v( static_cast<unsigned int>(major->GetValue()),
static_cast<unsigned int>(minor->GetValue()),
static_cast<unsigned int>(subminor->GetValue()) );
return v;
}
}
return Sfnc_VersionUndefined;
}
}
#endif /* INCLUDED_SFNCVERSION_H_3193628 */
Updated on 5 July 2022 at 15:30:01