GNU Radio Manual and C++ API Reference  3.10.9.1
The Free & Open Software Radio Ecosystem
rpcbasic_register_set< T, Tto > Struct Template Reference

Registers a 'set' function to set a parameter over ControlPort. More...

#include <gnuradio/rpcregisterhelpers.h>

Public Member Functions

 rpcbasic_register_set (const std::string &block_alias, const char *functionbase, void(T::*function)(Tto), const pmt::pmt_t &min, const pmt::pmt_t &max, const pmt::pmt_t &def, const char *units_="", const char *desc_="", priv_lvl_t minpriv_=RPC_PRIVLVL_MIN, DisplayType display_=DISPNULL)
 Adds the ability to set the variable over ControlPort. More...
 
 rpcbasic_register_set (const std::string &name, const char *functionbase, T *obj, void(T::*function)(Tto), const pmt::pmt_t &min, const pmt::pmt_t &max, const pmt::pmt_t &def, const char *units_="", const char *desc_="", priv_lvl_t minpriv_=RPC_PRIVLVL_MIN, DisplayType display_=DISPNULL)
 Adds the ability to set the variable over ControlPort. More...
 
 ~rpcbasic_register_set () override
 
pmt::pmt_t min () const
 
pmt::pmt_t max () const
 
pmt::pmt_t def () const
 
std::string units () const
 
std::string description () const
 
priv_lvl_t privilege_level () const
 
DisplayType default_display () const
 
void set_min (pmt::pmt_t p)
 
void set_max (pmt::pmt_t p)
 
void set_def (pmt::pmt_t p)
 
void units (std::string u)
 
void description (std::string d)
 
void privilege_level (priv_lvl_t p)
 
void default_display (DisplayType d)
 
- Public Member Functions inherited from rpcbasic_base
 rpcbasic_base ()
 
virtual ~rpcbasic_base ()
 

Detailed Description

template<typename T, typename Tto>
struct rpcbasic_register_set< T, Tto >

Registers a 'set' function to set a parameter over ControlPort.

This class allows us to remotely set a value or parameter of the block over ControlPort. The set occurs by calling a setter accessor function of the class, usually set_[variable](), which is passed in as function.

We can set the (expected) minimum (min), maximum (max), and default (def) of the variables being set. These values are not enforced, however, but can be useful for setting up graphs and other ways of bounding the data.

This class also allows us to provide information to the user about the variable being set, such as an appropriate unit (units_) as well as a description (desc_) about what the variable does.

The privilege (minpriv_) level is the minimum privilege level a remote must identify with to be able to call this function.

We also provide display hints (display_), which can be used by the ControlPort client application to know how to best display or even print the data. This is a mask of options for variables set in rpccallbackregister_base.h. The mask is defined by one of the "DisplayType Plotting Types" and or'd with any of the "DisplayType Options" features. See "Display Options" in ControlPort for details.

Constructor & Destructor Documentation

◆ rpcbasic_register_set() [1/2]

template<typename T , typename Tto >
rpcbasic_register_set< T, Tto >::rpcbasic_register_set ( const std::string &  block_alias,
const char *  functionbase,
void(T::*)(Tto)  function,
const pmt::pmt_t min,
const pmt::pmt_t max,
const pmt::pmt_t def,
const char *  units_ = "",
const char *  desc_ = "",
priv_lvl_t  minpriv_ = RPC_PRIVLVL_MIN,
DisplayType  display_ = DISPNULL 
)
inline

Adds the ability to set the variable over ControlPort.

This constructor is specifically for gr::block's to use to add settable variables to ControlPort. Generally meant to be used in gr::block::setup_rpc.

Uses the block's alias to create the ControlPort interface. This alias is cross-referenced by the global_block_registry (static variable of type gr::block_registry) to get the pointer to the block.

Parameters
block_aliasBlock's alias; use alias() to get it from the block.
functionbaseThe name of the function that we'll access over ControlPort
functionA function pointer to the real function accessed when called something like: &[block class]::set_[variable]()
minExpected minimum value the parameter can hold
maxExpected maximum value the parameter can hold
defExpected default value the parameter can hold
units_A string to describe what units to represent the variable with
desc_A string to describing the variable.
minpriv_The required minimum privilege level
display_The display mask

References gr::block_registry::block_lookup(), rpcbasic_register_set< T, Tto >::def(), rpcmanager::get(), global_block_registry, rpcserver_booter_base::i(), pmt::intern(), rpcbasic_register_set< T, Tto >::max(), rpcbasic_register_set< T, Tto >::min(), and rpcserver_base::registerConfigureCallback().

◆ rpcbasic_register_set() [2/2]

template<typename T , typename Tto >
rpcbasic_register_set< T, Tto >::rpcbasic_register_set ( const std::string &  name,
const char *  functionbase,
T *  obj,
void(T::*)(Tto)  function,
const pmt::pmt_t min,
const pmt::pmt_t max,
const pmt::pmt_t def,
const char *  units_ = "",
const char *  desc_ = "",
priv_lvl_t  minpriv_ = RPC_PRIVLVL_MIN,
DisplayType  display_ = DISPNULL 
)
inline

Adds the ability to set the variable over ControlPort.

Allows us to add non gr::block related objects to ControlPort. Instead of using the block's alias, we give it a name and the actual pointer to the object as obj. We just need to make sure that the pointer to this object is always valid.

Parameters
nameName of the object being set up for ControlPort access
functionbaseThe name of the function that we'll access over ControlPort
objA pointer to the object itself
functionA function pointer to the real function accessed when called something like: &[block class]::set_[variable]()
minExpected minimum value the parameter can hold
maxExpected maximum value the parameter can hold
defExpected default value the parameter can hold
units_A string to describe what units to represent the variable with
desc_A string to describing the variable.
minpriv_The required minimum privilege level
display_The display mask

References rpcbasic_register_set< T, Tto >::def(), rpcmanager::get(), rpcserver_booter_base::i(), rpcbasic_register_set< T, Tto >::max(), rpcbasic_register_set< T, Tto >::min(), and rpcserver_base::registerConfigureCallback().

◆ ~rpcbasic_register_set()

template<typename T , typename Tto >
rpcbasic_register_set< T, Tto >::~rpcbasic_register_set ( )
inlineoverride

Member Function Documentation

◆ def()

template<typename T , typename Tto >
pmt::pmt_t rpcbasic_register_set< T, Tto >::def ( ) const
inline

◆ default_display() [1/2]

template<typename T , typename Tto >
DisplayType rpcbasic_register_set< T, Tto >::default_display ( ) const
inline

◆ default_display() [2/2]

template<typename T , typename Tto >
void rpcbasic_register_set< T, Tto >::default_display ( DisplayType  d)
inline

◆ description() [1/2]

template<typename T , typename Tto >
std::string rpcbasic_register_set< T, Tto >::description ( ) const
inline

◆ description() [2/2]

template<typename T , typename Tto >
void rpcbasic_register_set< T, Tto >::description ( std::string  d)
inline

◆ max()

template<typename T , typename Tto >
pmt::pmt_t rpcbasic_register_set< T, Tto >::max ( ) const
inline

◆ min()

template<typename T , typename Tto >
pmt::pmt_t rpcbasic_register_set< T, Tto >::min ( ) const
inline

◆ privilege_level() [1/2]

template<typename T , typename Tto >
priv_lvl_t rpcbasic_register_set< T, Tto >::privilege_level ( ) const
inline

◆ privilege_level() [2/2]

template<typename T , typename Tto >
void rpcbasic_register_set< T, Tto >::privilege_level ( priv_lvl_t  p)
inline

◆ set_def()

template<typename T , typename Tto >
void rpcbasic_register_set< T, Tto >::set_def ( pmt::pmt_t  p)
inline

◆ set_max()

template<typename T , typename Tto >
void rpcbasic_register_set< T, Tto >::set_max ( pmt::pmt_t  p)
inline

◆ set_min()

template<typename T , typename Tto >
void rpcbasic_register_set< T, Tto >::set_min ( pmt::pmt_t  p)
inline

◆ units() [1/2]

template<typename T , typename Tto >
std::string rpcbasic_register_set< T, Tto >::units ( ) const
inline

◆ units() [2/2]

template<typename T , typename Tto >
void rpcbasic_register_set< T, Tto >::units ( std::string  u)
inline

The documentation for this struct was generated from the following file: