JeVois  1.21
JeVois Smart Embedded Machine Vision Toolkit
Share this page:
Loading...
Searching...
No Matches

The concept of parameter in the JeVois framework embodies wrappers around a single value of any type, with associated documentation (description), default values, possible specification of valid values, accessor functions to obtain or change the value, and optional callback functions that are triggered when the value is changed. Parameters are intended to be used in objects that inherit from Component. The goal of parameters is to expose parameters of a given vision algorithm in such a way that any piece of code that is using that algorithm will automatically inherit and expose these parameters.

How to explore this documentation module:

The other classes in this documentation module are mainly for support of the above ones.

Convenience macro to define a Parameter type

JEVOIS_DECLARE_PARAMETER(ParamName, ParamType, ...)

ParamName is the name chosen for the parameter. A new class type will be created with that name, so it must be syntactically correct as a class name. ParamType is the type of the parameter value. The remaining arguments are passed to the constructor of jevois::ParameterDef<T> with T=ParamType.

Convenience macro to define a Parameter type, with callback

JEVOIS_DECLARE_PARAMETER_WITH_CALLBACK(ParamName, ParamType, ...)

ParamName is the name chosen for the parameter. A new class type will be created with that name, so it must be syntactically correct as a class name. ParamType is the type of the parameter value. The remaining arguments are passed to the constructor of jevois::ParameterDef<T> with T=ParamType.

In this version with callback, a pure virtual method is included in the new class that is defined, with the following signature:

virtual void onParamChange(ParamName const & param, ParamType const & newval) = 0;

The host class (typically, a Component) that inherits from Parameter<ParamName> must implement an override of this function. A compile-time error will be issued if that override has not been implemented.

Collaboration diagram for Parameter-related classes and functions:

Classes

class  jevois::ParameterSummary
 ParameterSummary provides a summary about a parameter. More...
 
class  jevois::ParameterBase
 Base class for Parameter. More...
 
class  jevois::ParameterCore< T >
 A changeable parameter for a Component, core class. More...
 
class  jevois::Parameter< Param, Tail ... >
 A set of Parameters attached to a component. More...
 
class  jevois::DynamicParameter< T >
 Dynamic parameter added to a component at runtime. More...
 
struct  jevois::ParameterCategory
 A category to which multiple ParameterDef definitions can belong. More...
 
class  jevois::ParameterDefBase
 Base class for a Parameter definition. More...
 
class  jevois::ParameterDef< T >
 A Parameter Definition. More...
 
class  jevois::ParameterRegistry
 A simple registry of all parameters associated with a Component. More...
 

Modules

 String conversions for Parameter
 
 Specification of sets of valid values, e.g., that some Parameter may take