Pleora Technologies Inc. eBUS SDK v6.2.8.5877 API



IPvGenApiFactory Class Referenceabstract

GenApi factory used to add custom GenApi parameters to a software-based GigE Vision Device GenICam XML file. More...

Public Member Functions

virtual ~IPvGenApiFactory ()
 Virtual destructor.
 
virtual void SetName (const PvString &aName)=0
 Sets the name of the next feature to be added to the GenICam XML file. More...
 
virtual void SetDisplayName (const PvString &aDisplayName)=0
 Sets the display name of the next feature to be added to the GenICam XML. More...
 
virtual void SetCategory (const PvString &aCategory)=0
 Sets the category of the next feature to be added to the GenICam XML file. More...
 
virtual void SetDescription (const PvString &aDescription)=0
 Sets the description of the next feature to be added to the GenICam XML file. More...
 
virtual void SetToolTip (const PvString &aToolTip)=0
 Sets the tooltip of the next feature to be added to the GenICam XML file. More...
 
virtual void SetAccessMode (PvGenAccessMode aAccessMode)=0
 Sets the access mode of the next feature to be added to the GenICam XML file. More...
 
virtual void SetRepresentation (PvGenRepresentation aRepresentation)=0
 Sets the numeric representation of the next feature to be added to the GenICam XML file. More...
 
virtual void SetVisibility (PvGenVisibility aVisibility)=0
 Sets the visibility of the next feature to be added to the GenICam XML. More...
 
virtual void SetCachable (PvGenCache aCache)=0
 Sets the cache behavior of the next feature to be added to the GenICam XML file. More...
 
virtual void SetPollingTime (uint32_t aPollingTime)=0
 Sets the polling time, in ms, of the next feature to be added to the GenICam XML file. More...
 
virtual void SetNameSpace (PvGenNameSpace aNameSpace)=0
 Sets the namespace of the next feature to be added to the GenICam XML file. More...
 
virtual void SetTLLocked (bool aLocked)=0
 Sets the TLParamsLocked behavior of the next feature to be added to the GenICam XML file. More...
 
virtual void SetStreamable (bool aStreamable)=0
 Sets the streamable behaviour of the next feature to be added to the GenICam XML. More...
 
virtual void SetUnit (const PvString &aUnit)=0
 Sets the units for an integer or float feature. More...
 
virtual void SetPValue (const PvString &aFeatureName)=0
 Sets the pValue attribute of the next feature to be added to the GenICam XML. More...
 
virtual void SetPIsAvailable (const PvString &aFeatureName)=0
 Sets the pIsAvaialble attribute of the next feature to be added to the GenICam XML. More...
 
virtual void MapChunk (uint32_t aChunkID, uint32_t aAddress, size_t aLength, PvGenEndianness aEndianness=PvGenEndiannessLittle)=0
 Maps the next feature to be added to the GenICam XML file to a chunk, identified by its ID. More...
 
virtual void MapEvent (uint32_t aEventID, uint32_t aAddress, size_t aLength, PvGenEndianness aEndianness=PvGenEndiannessLittle, bool aAdjustAddress=true)=0
 Maps the next feature to be added to the GenICam XML file to a messaging channel event, identified by its ID. More...
 
virtual void AddSelected (const PvString &aFeatureName)=0
 Adds a selector to the next feature to be added to the GenICam XML file. More...
 
virtual void AddInvalidator (const PvString &aFeatureName)=0
 Add an invalidator to the next feature to be added to the GenICam XML file. More...
 
virtual void AddEnumEntry (const PvString &aName, uint32_t aValue)=0
 Add an enumeration entry to the next feature to be added to the GenICam XML file. More...
 
virtual void AddEnumEntry (const PvString &aName, uint32_t aValue, const PvString &aDisplayName, PvGenNameSpace aNameSpace=PvGenNameSpaceCustom)=0
 Add an enumeration entry to the next feature to be added to the GenICam XML file. More...
 
virtual void AddVariable (const PvString &aFeatureName)=0
 Adds a variable that will be declared for the next SwissKnife of Converter to be added to the GenICam XML file. More...
 
virtual PvResult CreateInteger (IPvRegister *aRegister, int64_t aMin, int64_t aMax, int64_t aInc=1)=0
 Adds an integer feature to the GenICam XML file using the current state of the factory for its attributes. More...
 
virtual PvResult CreateFloat (IPvRegister *aRegister, double aMin, double aMax)=0
 Adds a float feature to the GenICam XML file using the current state of the factory for its attributes. More...
 
virtual PvResult CreateString (IPvRegister *aRegister=NULL)=0
 Adds a string feature to the GenICam XML file using the current state of the factory for its attributes. More...
 
virtual PvResult CreateBoolean (IPvRegister *aRegister=NULL)=0
 Adds a Boolean feature to the GenICam XML file using the current state of the factory for its attributes. More...
 
virtual PvResult CreateCommand (IPvRegister *aRegister=NULL)=0
 Adds a command feature to the GenICam XML file using the current state of the factory for its attributes. More...
 
virtual PvResult CreateEnum (IPvRegister *aRegister=NULL)=0
 Adds an enumeration feature to the GenICam XML file using the current state of the factory for its attributes. More...
 
virtual PvResult CreateIntSwissKnife (const PvString &aFormula)=0
 Adds an integer SwissKnife to the GenICam XML file using the current state of the factory for its attributes. More...
 
virtual PvResult CreateFloatSwissKnife (const PvString &aFormula)=0
 Adds a float SwissKnife to the GenICam XML file using the current state of the factory for its attributes. More...
 
virtual PvResult CreateIntConverter (const PvString &aValueFeatureName, const PvString &aFromFormula, const PvString &aToFormula)=0
 Adds an integer Converter to the GenICam XML file using the current state of the factory for its attributes. More...
 
virtual PvResult CreateFloatConverter (const PvString &aValueFeatureName, const PvString &aFromFormula, const PvString &aToFormula)=0
 Adds a float Converter to the GenICam XML file using the current state of the factory for its attributes. More...
 
virtual PvResult AddInvalidatorTo (const PvString &aStandardFeatureName, const PvString &aInvalidatorFeatureName)=0
 Adds a a custom invalidator to a feature managed by PvSoftDeviceGEV. More...
 
virtual PvResult SetPIsAvailableFor (const PvString &aStandardFeatureName, const PvString &aPIsAvailableFeatureName)=0
 Forces a pIsAvailable reference for a feature managed by PvSoftDeviceGEV. More...
 
virtual PvResult SetPIsAvailableForEnumEntry (const PvString &aStandardFeatureName, const PvString &aEnumEntryName, const PvString &aPIsAvailableFeatureName)=0
 Forces a pIsAvailable reference for a the enum entry of an enum feature managed by PvSoftDeviceGEV. More...
 
virtual PvResult SetPValueFor (const PvString &aStandardFeatureName, const PvString &aPValueFeatureName)=0
 Forces a pValue reference for a feature managed by PvSoftDeviceGEV. More...
 
virtual PvResult SetPMinFor (const PvString &aStandardFeatureName, const PvString &aPMinFeatureName)=0
 Forces a pMin reference for an integer or float feature managed by PvSoftDeviceGEV. More...
 
virtual PvResult SetPMaxFor (const PvString &aStandardFeatureName, const PvString &aPMaxFeatureName)=0
 Forces a pMax reference for an integer or float feature managed by PvSoftDeviceGEV. More...
 
virtual PvResult SetPIncFor (const PvString &aStandardFeatureName, const PvString &aPIncFeatureName)=0
 Forces a pInc reference for an integer feature managed by PvSoftDeviceGEV. More...
 
virtual void SetPMin (const PvString &aFeatureName)=0
 Sets node to use for integer or float dynamic minimum attribute. More...
 
virtual void SetPMax (const PvString &aFeatureName)=0
 Sets node to use for integer or float dynamic maximum attribute. More...
 
virtual void SetPInc (const PvString &aFeatureName)=0
 Sets node to use for integer dynamic increment attribute. More...
 

Detailed Description

GenApi factory used to add custom GenApi parameters to a software-based GigE Vision Device GenICam XML file.

GenApi features can only be added to the device's GenICam XML file using the IPvSoftDeviceGEVEventSink::OnCreateCustomGenApiFeatures callback. See IPvSoftDeviceGEVEventSink and PvSoftDeviceGEV for more information.

To add a feature, set all of its attributes in the factory and then call one of the Create methods. After calling a Create method, ALL feature attributes in the factory are reset to their default value.

The following sequence will work and is valid:

  • Set Feature A name.
  • Set Feature A category.
  • Create Feature A.
    • Reset feature attributes of the factory.
  • Set Feature B name.
  • Set Feature B category.
  • Create Feature B.

The following sequence will fail because Feature B would not have a category defined:

  • Set Feature A name.
  • Set Feature A category.
  • Create Feature A.
    • Reset feature attributes of the factory.
  • Set Feature B name.
  • Create Feature B.

Member Function Documentation

◆ AddEnumEntry() [1/2]

void IPvGenApiFactory::AddEnumEntry ( const PvString aName,
uint32_t  aValue 
)
pure virtual

Add an enumeration entry to the next feature to be added to the GenICam XML file.

When CreateEnum is called, it will be populated with the enumeration entries added using this method. Call AddEnumEntry for each enumeration entry of the new feature.

If one of the Create methods other than CreateEnum is called, the enumeration entries added to the factory are ignored.

Parameters
[in]aNameName of the new enumeration entry.
[in]aValueValue of the new enumeration entry.

◆ AddEnumEntry() [2/2]

void IPvGenApiFactory::AddEnumEntry ( const PvString aName,
uint32_t  aValue,
const PvString aDisplayName,
PvGenNameSpace  aNameSpace = PvGenNameSpaceCustom 
)
pure virtual

Add an enumeration entry to the next feature to be added to the GenICam XML file.

When CreateEnum is called, it will be populated with the enumeration entries added using this method. Call AddEnumEntry for each enumeration entry of the new feature.

If one of the Create methods other than CreateEnum is called, the enumeration entries added to the factory are ignored.

Parameters
[in]aNameName of the new enumeration entry.
[in]aValueValue of the new enumeration entry.
[in]aDisplayNameCustom display name for the new enum entry. If an empty string is provided a default display name is generated for the enum entry.
[in]aNameSpaceNamespace for the new enum entry. See SetNameSpace for more information on GenICam XML namespaces.

◆ AddInvalidator()

void IPvGenApiFactory::AddInvalidator ( const PvString aFeatureName)
pure virtual

Add an invalidator to the next feature to be added to the GenICam XML file.

Add one invalidator to a feature. For example, Feature A being invalidated by Feature B has the cache of Feature A being invalidated when a new value is written to Feature B.

Parameters
[in]aFeatureNameName of the feature that is invalidating the new feature.

◆ AddInvalidatorTo()

PvResult IPvGenApiFactory::AddInvalidatorTo ( const PvString aStandardFeatureName,
const PvString aInvalidatorFeatureName 
)
pure virtual

Adds a a custom invalidator to a feature managed by PvSoftDeviceGEV.

This methods allows defining extra custom invalidators for features managed by PvSoftDeviceGEV. As an example, if you call this method to add an ComponentSelector invalidator to the PvSoftDeviceGEV managed (or owned) PixelFormat feature, the invalidator is added to the invalidators of PixelFormat when creating the GenICam XML of the device. With this example, the GenApi cache of PixelFormat would be invalidated when the value of ComponentSelector changes client-side.

For ADVANCED GenApi support use cases.

Parameters
aStandardFeatureName[in] Name of the feature to add the invalidator to.
aInvalidatorFeatureName[in] Name of the feature which changes causes aStandardFeatureName to be invalidated.
Returns
Includes:

◆ AddSelected()

void IPvGenApiFactory::AddSelected ( const PvString aFeatureName)
pure virtual

Adds a selector to the next feature to be added to the GenICam XML file.

A selector, as specified by the GenICam SFNC, is used to index which instance of the feature is accessed in situations where multiple instances of a feature exist (For instance, the analog gain for each separate channel of the red/green/blue component of a color camera).

Feature A can be the selector for Features B and C. We could also say that B and C are indexed by A. In that case, Feature A needs to be identified as the selector for Feature B and Feature C.

Example:

A feature can have more than one selector. A feature with one selector could be thought of as a one-dimensional vector. A feature with two selector would be like a table with columns and rows, etc.

Parameters
[in]aFeatureNameName of the feature that is selecting the new feature.

◆ AddVariable()

void IPvGenApiFactory::AddVariable ( const PvString aFeatureName)
pure virtual

Adds a variable that will be declared for the next SwissKnife of Converter to be added to the GenICam XML file.

In order to refer to a feature in a SwissKnife or Converter formula, it first needs to be defined as a variable.

Variables are defined using the exact case sensitive feature name. They are then used in the formulas using the same exact feature name.

A SwissKnife can have one or more variables.

A Converter can have zero or more variables. Important: the main feature a Converter operates on (TO/FROM) does not have to be defined as a variable.

Variables are ignored if the next feature to be added to the GenICam XML file is not a SwissKnife or Converter.

For ADVANCED GenApi support use cases.

Parameters
aFeatureName[in] Feature name to use as variable.

◆ CreateBoolean()

PvResult IPvGenApiFactory::CreateBoolean ( IPvRegister aRegister = NULL)
pure virtual

Adds a Boolean feature to the GenICam XML file using the current state of the factory for its attributes.

After calling this method, all feature creation attributes are reset to their default values.

Parameters
[in]aRegisterRegister that the new Boolean feature maps to or NULL if creating a chunk or messaging channel event data feature.
Returns
Includes:

◆ CreateCommand()

PvResult IPvGenApiFactory::CreateCommand ( IPvRegister aRegister = NULL)
pure virtual

Adds a command feature to the GenICam XML file using the current state of the factory for its attributes.

After calling this method, all feature creation attributes are reset to their default values.

Parameters
[in]aRegisterRegister that the new command feature maps to.
Returns
Includes:

◆ CreateEnum()

PvResult IPvGenApiFactory::CreateEnum ( IPvRegister aRegister = NULL)
pure virtual

Adds an enumeration feature to the GenICam XML file using the current state of the factory for its attributes.

After calling this method, all feature creation attributes are reset to their default values.

Parameters
[in]aRegisterRegister that the new enumeration feature maps to or NULL if creating a chunk or messaging channel event data feature.
Returns
Includes:

◆ CreateFloat()

PvResult IPvGenApiFactory::CreateFloat ( IPvRegister aRegister,
double  aMin,
double  aMax 
)
pure virtual

Adds a float feature to the GenICam XML file using the current state of the factory for its attributes.

After calling this method, all feature creation attributes are reset to their default values.

Parameters
[in]aRegisterRegister that the new float feature maps to or NULL if creating a chunk or messaging channel event data feature.
[in]aMinMinimum of the new float feature.
[in]aMaxMaximum of the new float feature.
Returns
Includes:

◆ CreateFloatConverter()

PvResult IPvGenApiFactory::CreateFloatConverter ( const PvString aValueFeatureName,
const PvString aFromFormula,
const PvString aToFormula 
)
pure virtual

Adds a float Converter to the GenICam XML file using the current state of the factory for its attributes.

A converter is a read-write GenApi construct that allows reading from and writing to a referenced feature using SwissKnife-like formulas.

The referenced feature is provided through aValueFeatureName and represents the feature on which the expressions operates. It is referred to as FROM and TO in the converter formulas and does not have to be declared as a variable.

The formula used to read the referenced feature is provided with aFromFormula. The raw value read from the reference is available as the special TO variable.

The formula used to write to the referenced feature is provided with aToFormula. The raw value written to the converter is available as the special FROM variable.

If the converter formulas need to reference additional features they should first be declared using the AddVariable method.

Example of a converter handling conversion between inches and centimeters:

lFactory->SetName( "MyCentimeterFeature" );
lFactory->SetCategory( "MyCategory" );
lFactory->SetUnit( "cm" );
lFactory->CreateFloatConverter( "MyInchesFeature", "TO * 2.54", "FROM * 0.3937" );

In the example above:

  • We create a MyCentimeterFeature.
  • The referenced feature is MyInchesFeature.
  • The converter read formula is TO * 2.54, where TO is the value read from MyInchesFeature.
    • Reading from the MyCentimeterFeature converter:
      • Reads the referenced feature, MyInchesFeature (4)
      • Replaces TO in the 'from' formula with the value read from MyInchesFeature (4 * 2.54)
      • Evaluates the formula (10.16)
      • Completes the read operation returning 10.16
  • The converter write formula is is FROM * 0.3937, where FROM is the value written to the converter.
    • Writing to the MyCentimeterFeature converter:
      • Value written to the converter (2)
      • Replaces FROM in the 'to' formula with the value written to the converter (2 * 0.3937)
      • Evaluates the formula (0.7874)
      • Writes 0.7874 to MyInchesFeature

See CreateFloatSwissKnife for more information on formulas.

For ADVANCED GenApi support use cases.

After calling this method, all feature creation attributes are reset to their default values.

Parameters
aValueFeatureName[in] Main feature the converter operates on, referred as TO and FROM in the formulas.
aFromFormula[in] Formula used when reading from the converter.
aToFormula[in] Formula used when writing to the converter.
Returns
Includes:

◆ CreateFloatSwissKnife()

PvResult IPvGenApiFactory::CreateFloatSwissKnife ( const PvString aFormula)
pure virtual

Adds a float SwissKnife to the GenICam XML file using the current state of the factory for its attributes.

A float SwissKnife is a GenApi read-only feature that resolves a formula whenever it is read. The formula is defined as a string and evaluates to a float. It can refer to other features as long as they have been declared with AddVariable. Variables can be integer (converter to float), float, enum (integer value converted to float) boolean (1 or 0 integer value converted to float) or command as long as they are readable.

Example of a simple SwissKnife adding the value of two features:

lFactory->SetName( "MySwissKnife" );
lFactory->SetCategory( "MyCategory" );
lFactory->AddVariable( "ValueA" );
lFactory->AddVariable( "ValueB" );
lFactory->CreateFloatSwissKnife( "ValueA + ValueB" );

When MySwissKnife is read, the formula is evaluated. If ValueA is 4.1 and ValueB is 3.2, MySwissKnife will read as 7.3: 4.1 + 3.2.

Formula examples:

  • Simple constant: 42.4
  • Simple feature: ValueA
  • Simple mathematical expression: 32.34 + 10.714
  • Simple mathematical expression with features: ValueA + (10.1 * ValueB)
  • Advanced mathematical expression: SIN(0.814)
  • Advanced mathematical expression with feature: SQRT(ValueA)
  • 'if' statement: (ValueA > 4) ? 8.12 : 16.991
  • Bitwise operations are not supported with float SwissKnife.

After calling this method, all feature creation attributes are reset to their default values.

GenApi formulas are compatible with expressions defined for the Kirill Zaborsk's math parser library, the CCalc library from Walery Studennikov. More information is available at http://kirya.narod.ru/mathparser.html.

For ADVANCED GenApi support use cases.

Parameters
aFormula[in] SwissKnife formula.
Returns
Includes:

◆ CreateIntConverter()

PvResult IPvGenApiFactory::CreateIntConverter ( const PvString aValueFeatureName,
const PvString aFromFormula,
const PvString aToFormula 
)
pure virtual

Adds an integer Converter to the GenICam XML file using the current state of the factory for its attributes.

A converter is a read-write GenApi construct that allows reading from and writing to a referenced feature using SwissKnife-like formulas.

The referenced feature is provided through aValueFeatureName and represents the feature on which the expressions operates. It is referred to as FROM and TO in the converter formulas and does not have to be declared as a variable.

The formula used to read the referenced feature is provided with aFromFormula. The raw value read from the reference is available as the special TO variable.

The formula used to write to the referenced feature is provided with aToFormula. The raw value written to the converter is available as the special FROM variable.

If the converter formulas need to reference additional features they should first be declared using the AddVariable method.

Example of a converter handling conversion between milliseconds and nanoseconds:

lFactory->SetName( "MyNanosecondFeature" );
lFactory->SetCategory( "MyCategory" );
lFactory->SetUnit( "ms" );
lFactory->CreateIntConverter( "MyMillisecondFeature", "TO * 1000", "FROM / 1000" );

In the example above:

  • We create a MyNanosecondFeature.
  • The referenced feature is MyMillisecondFeature.
  • The converter read formula is TO * 1000, where TO is the value read from MyMillisecondFeature.
    • Reading from the MyNanosecondFeature converter:
      • Reads the referenced feature, MyMillisecondFeature (4)
      • Replaces TO in the 'from' formula with the value read from MyMillisecondFeature (4 * 1000)
      • Evaluates the formula (4000)
      • Completes the read operation returning 4000
  • The converter write formula is is FROM / 1000, where FROM is the value written to the converter.
    • Writing to the MyNanosecondFeature converter:
      • Value written to the converter (2000)
      • Replaces FROM in the 'to' formula with the value written to the converter (2000 / 1000)
      • Evaluates the formula (2)
      • Writes 2 to MyMillisecondFeature

See CreateFloatSwissKnife for more information on formulas.

For ADVANCED GenApi support use cases.

After calling this method, all feature creation attributes are reset to their default values.

Parameters
aValueFeatureName[in] Main feature the converter operates on, referred as TO and FROM in the formulas.
aFromFormula[in] Formula used when reading from the converter.
aToFormula[in] Formula used when writing to the converter.
Returns
Includes:

◆ CreateInteger()

PvResult IPvGenApiFactory::CreateInteger ( IPvRegister aRegister,
int64_t  aMin,
int64_t  aMax,
int64_t  aInc = 1 
)
pure virtual

Adds an integer feature to the GenICam XML file using the current state of the factory for its attributes.

After calling this method, all feature creation attributes are reset to their default values.

Parameters
[in]aRegisterRegister that the new integer feature maps to or NULL if creating a chunk or messaging channel event data feature.
[in]aMinMinimum of the new integer feature.
[in]aMaxMaximum of the new integer feature.
[in]aIncIncrement of the new integer feature.
Returns
Includes:

◆ CreateIntSwissKnife()

PvResult IPvGenApiFactory::CreateIntSwissKnife ( const PvString aFormula)
pure virtual

Adds an integer SwissKnife to the GenICam XML file using the current state of the factory for its attributes.

An integer SwissKnife is a GenApi read-only feature that resolves a formula whenever it is read. The formula is defined as a string and evaluates to an integer. It can refer to other features as long as they have been declared with AddVariable. Variables can be integer, float (truncated to integer), enum (integer value) boolean (1 or 0 integer value) or command as long as they are readable.

Example of a simple SwissKnife adding the value of two features:

lFactory->SetName( "MySwissKnife" );
lFactory->SetCategory( "MyCategory" );
lFactory->AddVariable( "ValueA" );
lFactory->AddVariable( "ValueB" );
lFactory->CreateIntSwissKnife( "ValueA + ValueB" );

When MySwissKnife is read, the formula is evaluated. If ValueA is 4 and ValueB is 3, MySwissKnife will read as 7: 4 + 3.

Formula examples:

  • Simple constant: 42
  • Simple feature: ValueA
  • Simple mathematical expression: 32 + 10
  • Simple mathematical expression with features: ValueA + (10 * ValueB)
  • Bitwise operations: (ValueA << 16) | (ValueB >> 16)
  • 'if' statement: (ValueA = 4) ? 8 : 16
  • Switch-case statement with default: (ValueA = 0) ? 0x0000B824 : (ValueA = 1) ? 0x0000B82C : (ValueA = 2) ? 0x0000B884 : (ValueA = 3) ? 0x0000B88C : 0xFFFFFFFF

After calling this method, all feature creation attributes are reset to their default values.

GenApi formulas are compatible with expressions defined for the Kirill Zaborsk's math parser library, the CCalc library from Walery Studennikov. More information is available at http://kirya.narod.ru/mathparser.html.

For ADVANCED GenApi support use cases.

Parameters
aFormula[in] SwissKnife formula.
Returns
Includes:

◆ CreateString()

PvResult IPvGenApiFactory::CreateString ( IPvRegister aRegister = NULL)
pure virtual

Adds a string feature to the GenICam XML file using the current state of the factory for its attributes.

After calling this method, all feature creation attributes are reset to their default values.

Parameters
[in]aRegisterRegister that the new string feature maps to or NULL if creating a chunk or messaging channel event data feature.
Returns
Includes:

◆ MapChunk()

void IPvGenApiFactory::MapChunk ( uint32_t  aChunkID,
uint32_t  aAddress,
size_t  aLength,
PvGenEndianness  aEndianness = PvGenEndiannessLittle 
)
pure virtual

Maps the next feature to be added to the GenICam XML file to a chunk, identified by its ID.

Sets the chunk ID and mapping (address, length, and endianness) of the next feature to be added to the GenICam XML file.

By default all features map to a PvSoftDeviceGEV register provided in the Create calls, unless MapChunk or MapEvent are called when defining the feature attributes.

Parameters
[in]aChunkIDChunk ID to map.
[in]aAddressData offset of the feature in the chunk, in bytes.
[in]aLengthData length of the feature in the chunk, in bytes.
[in]aEndiannessData endianness.

◆ MapEvent()

void IPvGenApiFactory::MapEvent ( uint32_t  aEventID,
uint32_t  aAddress,
size_t  aLength,
PvGenEndianness  aEndianness = PvGenEndiannessLittle,
bool  aAdjustAddress = true 
)
pure virtual

Maps the next feature to be added to the GenICam XML file to a messaging channel event, identified by its ID.

Sets the messaging channel event ID and mapping (address, length, and endianness) of the next feature to be added to the GenICam XML file.

By default all features map to a PvSoftDeviceGEV register provided in the Create calls, unless MapChunk or MapEvent are called when defining the feature attributes.

Parameters
[in]aEventIDEvent ID to map.
[in]aAddressData offset of the feature in the event data, in bytes.
[in]aLengthData length of the feature in the event data, in bytes.
[in]aEndiannessData endianness.
[in]aAdjustAddressApplies an offset on the provided address.

◆ SetAccessMode()

void IPvGenApiFactory::SetAccessMode ( PvGenAccessMode  aAccessMode)
pure virtual

Sets the access mode of the next feature to be added to the GenICam XML file.

The access mode can be different than the register that it is bound to. However, it does not make sense for it to be more restrictive. As an example, a register could be read-write and the GenApi feature be read-only.

Parameters
[in]aAccessModeFeature access mode.

◆ SetCachable()

void IPvGenApiFactory::SetCachable ( PvGenCache  aCache)
pure virtual

Sets the cache behavior of the next feature to be added to the GenICam XML file.

Possible values:

  • PvGenCacheWriteThrough: The cached value of the register behind the feature is updated to the new value on write operations.
  • PvGenCacheWriteAround: The cached value of the register behind the feature is invalidated on write operations and refreshed with the value read from PvSoftDeviceGEV on the next read operation.
  • PvGenCacheNone: The register value behind the feature is not cached and is refreshed every SetPollingTime ms cycle.
Parameters
[in]aCacheFeature cachable.

◆ SetCategory()

void IPvGenApiFactory::SetCategory ( const PvString aCategory)
pure virtual

Sets the category of the next feature to be added to the GenICam XML file.

The category must not contain any special characters. It can only contain letters, digits, and underscores. The category must start with a letter.

Multiple category levels must be separated with a backslash which would be expressed in a C/C++ string as "Level1\\Level2".

Features with no category are not going to be visible in a GenApi browser. These features are usually referred to private, support or hidden features.

Parameters
[in]aCategoryFeature category.

◆ SetDescription()

void IPvGenApiFactory::SetDescription ( const PvString aDescription)
pure virtual

Sets the description of the next feature to be added to the GenICam XML file.

Parameters
[in]aDescriptionFeature description.

◆ SetDisplayName()

void IPvGenApiFactory::SetDisplayName ( const PvString aDisplayName)
pure virtual

Sets the display name of the next feature to be added to the GenICam XML.

The display name can be used by GenApi browsers in order to present the features in a simpler user-interface. Display names do not have to be unique and do can contain spaces.

Features for which display names are not provided will have a display name automatically generated for them.

Automatically generated display names created by adding spaces and removing the last sub-category prefix from the name of the feature:

  • DeviceType from DeviceControl category: Type
  • WidthMax from ImageFormatControl category: Width Max
  • EventTestTimestamp from EventControl\EventTestData category: Test Timestamp

These simple rules should be enough for most features. If you need more control on the display name of a feature, just call this method to set a custom display name before using the factory to create the feature.

Parameters
[in]aDisplayNameFeature name.

◆ SetName()

void IPvGenApiFactory::SetName ( const PvString aName)
pure virtual

Sets the name of the next feature to be added to the GenICam XML file.

The name must not contain any special characters. It can only contain letters, digits, and underscores. The feature name must begin with a letter.

Parameters
[in]aNameFeature name.

◆ SetNameSpace()

void IPvGenApiFactory::SetNameSpace ( PvGenNameSpace  aNameSpace)
pure virtual

Sets the namespace of the next feature to be added to the GenICam XML file.

Possible values:

  • PvGenNameSpaceStandard for GenICam SFNC features.
  • PvGenNameSpaceCustom for custom features.
Parameters
[in]aNameSpaceFeature namespace.

◆ SetPInc()

void IPvGenApiFactory::SetPInc ( const PvString aFeatureName)
pure virtual

Sets node to use for integer dynamic increment attribute.

Sets the pInc attribute of an integer to point to another GenApi node like a Swiss Knife. When pInc is set for a new feature, it has precedence on any defined constant increment.

Parameters
aFeatureName[in] Name of the feature the integer increment attribute points to.

◆ SetPIncFor()

PvResult IPvGenApiFactory::SetPIncFor ( const PvString aStandardFeatureName,
const PvString aPIncFeatureName 
)
pure virtual

Forces a pInc reference for an integer feature managed by PvSoftDeviceGEV.

For ADVANCED GenApi support use cases.

Parameters
aStandardFeatureName[in] Name of the feature to force pInc for.
aPIncFeatureName[in] Name of the feature used provide the maximum of the aStandardFeatureName feature.
Returns
Includes:

◆ SetPIsAvailable()

void IPvGenApiFactory::SetPIsAvailable ( const PvString aFeatureName)
pure virtual

Sets the pIsAvaialble attribute of the next feature to be added to the GenICam XML.

This attribute can be used to make a feature dynamically available or unavailable. It has to be the name of another feature.

If you need an more complex expression to control the available state of a feature, create a private integer SwissKnife that returns non-zero (1 or true) when the feature should be available.

See SetCategory for more information on private features. See CreateIntSwissKnife for more information on SwissKnifes.

When pIsAvailable evaluates to true the feature is available as defined: read-write, read-only or write-only. When pIsAvailable evaluates to false the feature is not readable and not writable. The eBUS GenApi browser shows a feature that state as {Not available}.

For ADVANCED GenApi support use cases.

Parameters
aFeatureName[in] Feature name to use for pIsImplemented.

◆ SetPIsAvailableFor()

PvResult IPvGenApiFactory::SetPIsAvailableFor ( const PvString aStandardFeatureName,
const PvString aPIsAvailableFeatureName 
)
pure virtual

Forces a pIsAvailable reference for a feature managed by PvSoftDeviceGEV.

The pIsAvailable would typically be an IntSwissKnife defined as a global feature in the IPvSoftDeviceGEVEventSink::OnCreateCustomGenApiFeatures callback. The feature identified by aStandardFeatureName would only be available when the IntSwissKnife referred to by aPIsAvailableFeatureName evaluates to non-zero.

With most use-cases SetPIsAvailableFor should be called in the same context.

For ADVANCED GenApi support use cases.

Parameters
aStandardFeatureName[in] Name of the feature to add the pIsAvailable for.
aPIsAvailableFeatureName[in] Feature used to evaluate if the feature is available or not.
Returns
Includes:

◆ SetPIsAvailableForEnumEntry()

PvResult IPvGenApiFactory::SetPIsAvailableForEnumEntry ( const PvString aStandardFeatureName,
const PvString aEnumEntryName,
const PvString aPIsAvailableFeatureName 
)
pure virtual

Forces a pIsAvailable reference for a the enum entry of an enum feature managed by PvSoftDeviceGEV.

The pIsAvailable would typically be an IntSwissKnife defined as a global feature in the IPvSoftDeviceGEVEventSink::OnCreateCustomGenApiFeatures callback. aEnumEntry of the enum feature identified by aStandardFeatureName would only be available when the IntSwissKnife referred to by aPIsAvailableFeatureName evaluates to non-zero.

With most use-cases SetPIsAvailableFor should be called in the same context.

For ADVANCED GenApi support use cases.

Parameters
aStandardFeatureName[in] Name of the enum feature the enum entry belongs to.
aEnumEntryName[in] Name of the enum entry to add the pIsAvailable for.
aPIsAvailableFeatureName[in] Feature used to evaluate if the enum entry is available or not.
Returns
Includes:

◆ SetPMax()

void IPvGenApiFactory::SetPMax ( const PvString aFeatureName)
pure virtual

Sets node to use for integer or float dynamic maximum attribute.

Sets the pMax attribute of an integer or float to point to another GenApi node like a Swiss Knife. When pMax is set for a new feature, it has precedence on any defined constant maximum.

Parameters
aFeatureName[in] Name of the feature the integer or float maximum attribute points to.

◆ SetPMaxFor()

PvResult IPvGenApiFactory::SetPMaxFor ( const PvString aStandardFeatureName,
const PvString aPMaxFeatureName 
)
pure virtual

Forces a pMax reference for an integer or float feature managed by PvSoftDeviceGEV.

For ADVANCED GenApi support use cases.

Parameters
aStandardFeatureName[in] Name of the feature to force pMax for.
aPMaxFeatureName[in] Name of the feature used provide the maximum of the aStandardFeatureName feature.
Returns
Includes:

◆ SetPMin()

void IPvGenApiFactory::SetPMin ( const PvString aFeatureName)
pure virtual

Sets node to use for integer or float dynamic minimum attribute.

Sets the pMin attribute of an integer or float to point to another GenApi node like a Swiss Knife. When pMin is set for a new feature, it has precedence on any defined constant minimum.

Parameters
aFeatureName[in] Name of the feature the integer or float minimum attribute points to.

◆ SetPMinFor()

PvResult IPvGenApiFactory::SetPMinFor ( const PvString aStandardFeatureName,
const PvString aPMinFeatureName 
)
pure virtual

Forces a pMin reference for an integer or float feature managed by PvSoftDeviceGEV.

For ADVANCED GenApi support use cases.

Parameters
aStandardFeatureName[in] Name of the feature to force pMin for.
aPMinFeatureName[in] Name of the feature used provide the minimum of the aStandardFeatureName feature.
Returns
Includes:

◆ SetPollingTime()

void IPvGenApiFactory::SetPollingTime ( uint32_t  aPollingTime)
pure virtual

Sets the polling time, in ms, of the next feature to be added to the GenICam XML file.

The polling time provides a hint of how often no-cache features should be updated from GenApi browsers.

Parameters
[in]aPollingTimeFeature polling time.

◆ SetPValue()

void IPvGenApiFactory::SetPValue ( const PvString aFeatureName)
pure virtual

Sets the pValue attribute of the next feature to be added to the GenICam XML.

Most GenApi features are linked to a register. With pValue you replace the register by the link or pointer to another feature.

When defining a register as pValue, do not provide a register when calling the factory create method, use NULL instead.

For ADVANCED GenApi support use cases.

Parameters
aFeatureName[in] Feature name to use for pValue.

◆ SetPValueFor()

PvResult IPvGenApiFactory::SetPValueFor ( const PvString aStandardFeatureName,
const PvString aPValueFeatureName 
)
pure virtual

Forces a pValue reference for a feature managed by PvSoftDeviceGEV.

For ADVANCED GenApi support use cases.

Parameters
aStandardFeatureName[in] Name of the feature to force pValue for.
aPValueFeatureName[in] Name of the feature used provide the value of the aStandardFeatureName feature.
Returns
Includes:

◆ SetRepresentation()

void IPvGenApiFactory::SetRepresentation ( PvGenRepresentation  aRepresentation)
pure virtual

Sets the numeric representation of the next feature to be added to the GenICam XML file.

Parameters
[in]aRepresentationFeature representation.

◆ SetStreamable()

void IPvGenApiFactory::SetStreamable ( bool  aStreamable)
pure virtual

Sets the streamable behaviour of the next feature to be added to the GenICam XML.

A feature with its streamable attribute set to true will be be considered when creating a persistence file of the GenApi interface of the device.

Parameters
[in]aStreamableFeature streamable attribute.

◆ SetTLLocked()

void IPvGenApiFactory::SetTLLocked ( bool  aLocked)
pure virtual

Sets the TLParamsLocked behavior of the next feature to be added to the GenICam XML file.

A feature with its TLLocked attribute set to True will be forced to read-only when the PvSoftDeviceGEV is streaming.

As an example, the Width and Height features use TLLocked (transport layer locked) to prevent the user from changing their values when the PvSoftDeviceGEV is streaming.

Parameters
[in]aLockedFeature TLLocked attribute.

◆ SetToolTip()

void IPvGenApiFactory::SetToolTip ( const PvString aToolTip)
pure virtual

Sets the tooltip of the next feature to be added to the GenICam XML file.

Parameters
[in]aToolTipFeature tooltip.

◆ SetUnit()

void IPvGenApiFactory::SetUnit ( const PvString aUnit)
pure virtual

Sets the units for an integer or float feature.

This string-based unit is only used for display purpose, it carries not functional signification.

Applies to integer or float feature, SwissKnife or Converter.

Parameters
[in]aUnitFeature unit attribute.

◆ SetVisibility()

void IPvGenApiFactory::SetVisibility ( PvGenVisibility  aVisibility)
pure virtual

Sets the visibility of the next feature to be added to the GenICam XML.

Parameters
[in]aVisibilityFeature visibility.

The documentation for this class was generated from the following files:

Copyright (c) 2002-2021 Pleora Technologies Inc.
www.pleora.com