123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- //-----------------------------------------------------------------------------
- // Basler pylon SDK
- // Copyright (c) 2010-2021 Basler AG
- // http://www.baslerweb.com
- // Author: Arne Wischmann
- //-----------------------------------------------------------------------------
- /*!
- \file
- \brief Helper functions for different camera configuration classes.
- These helper functions are provided as a header-only file.
- The code can be copied and modified for creating your own configuration classes.
- */
- #ifndef INCLUDED_CONFIGURATIONHELPER_H_6526739
- #define INCLUDED_CONFIGURATIONHELPER_H_6526739
- #include <pylon/Platform.h>
- #ifdef _MSC_VER
- # pragma pack(push, PYLON_PACKING)
- #endif /* _MSC_VER */
- #include <pylon/ParameterIncludes.h>
- namespace Pylon
- {
- /** \addtogroup Pylon_InstantCameraApiGeneric
- * @{
- */
- /*!
- \class CConfigurationHelper
- \brief Helper functions for different camera configuration classes.
- */
- class CConfigurationHelper
- {
- public:
- /*!
- \brief DisableAllTriggers disables all trigger types that can be
- turned off.
- */
- static void DisableAllTriggers( GenApi::INodeMap& nodemap )
- {
- //Disable all trigger types.
- {
- // Get required enumerations.
- CEnumParameter triggerSelector( nodemap, "TriggerSelector" );
- CEnumParameter triggerMode( nodemap, "TriggerMode" );
- if (triggerSelector.IsWritable())
- {
- // Get all settable enumeration entries of trigger selector.
- GenApi::StringList_t triggerSelectorEntries;
- triggerSelector.GetSettableValues( triggerSelectorEntries );
- const String_t originalSelectorValue = triggerSelector.GetValue();
- // Turn trigger mode off for all trigger selector entries.
- for (GenApi::StringList_t::const_iterator it = triggerSelectorEntries.begin(); it != triggerSelectorEntries.end(); ++it)
- {
- // Set trigger mode to off if the trigger is available.
- triggerSelector.SetValue( *it );
- triggerMode.TrySetValue( "Off" );
- }
- // reset to original value
- triggerSelector.SetValue( originalSelectorValue );
- }
- }
- }
- /*!
- \brief DisableCompression disables all compressions modes that can be
- turned off.
- */
- static void DisableCompression( GenApi::INodeMap& nodemap )
- {
- //Disable compression mode (if supported by the camera).
- CEnumParameter compressionMode( nodemap, "ImageCompressionMode" );
- compressionMode.TrySetValue( "Off" );
- }
- /*!
- \brief DisableGenDC disables GenDC streaming when available.
- */
- static void DisableGenDC( GenApi::INodeMap& nodemap )
- {
- CEnumParameter genDCMode( nodemap, "GenDCStreamingMode" );
- genDCMode.TrySetValue( "Off" );
- }
- /*!
- \brief Select the 'Range' component.
- Some cameras, such as Basler blaze, provide multiple components.
- Default is component 'Range' with pixel format 'Mono16' respective 'Mono8'.
- */
- static void SelectRangeComponent( GenApi::INodeMap& nodemap )
- {
- CEnumParameter componentSelector = CEnumParameter( nodemap, "ComponentSelector" );
- CBooleanParameter enableComponent = CBooleanParameter( nodemap, "ComponentEnable" );
- CEnumParameter pixelFormat = CEnumParameter( nodemap, "PixelFormat" );
- // if multiple components are supported then enable only the 'range' component.
- if (componentSelector.IsWritable())
- {
- const String_t originalComponentValue = componentSelector.GetValue();
- GenApi::StringList_t componentSelectorEntries;
- componentSelector.GetSettableValues( componentSelectorEntries );
- for (GenApi::StringList_t::iterator it = componentSelectorEntries.begin(), end = componentSelectorEntries.end(); it != end; ++it)
- {
- const String_t& entry = *it;
- componentSelector.SetValue( entry );
- // if Range is selected enable it set pixel format to Mono16 of Mono8
- if (entry.compare( "Range" ) == 0)
- {
- enableComponent.TrySetValue( true );
- if (!pixelFormat.TrySetValue( "Mono16" ))
- {
- pixelFormat.TrySetValue( "Mono8" );
- }
- }
- else
- { // disable other components
- enableComponent.TrySetValue( false );
- }
- }
- // reset the component selector
- componentSelector.TrySetValue( originalComponentValue );
- }
- }
- static void ProbePacketSize( GenApi::INodeMap& nodemap )
- {
- using namespace GenApi;
- CCommandParameter probePacketSize( nodemap, "ProbePacketSize" );
- probePacketSize.TryExecute( );
- }
- };
- /**
- * @}
- */
- }
- #ifdef _MSC_VER
- # pragma pack(pop)
- #endif /* _MSC_VER */
- #endif /* INCLUDED_CONFIGURATIONHELPER_H_6526739 */
|