GNU Radio 3.7.2 C++ API
|
Include this header to use the message passing features. More...
Namespaces | |
analog | |
audio | |
blocks | |
channels | |
comedi | |
digital | |
fcd | |
fec | |
fft | |
filter | |
impl | |
noaa | |
pager | |
qtgui | |
thread | |
trellis | |
uhd | |
video_sdl | |
vocoder | |
wavelet | |
wxgui | |
Classes | |
class | basic_block |
The abstract base class for all signal processing blocks.Basic blocks are the bare abstraction of an entity that has a name, a set of inputs and outputs, and a message queue. These are never instantiated directly; rather, this is the abstract parent class of both gr_hier_block, which is a recursive container, and block, which implements actual signal processing functions. More... | |
class | block |
The abstract base class for all 'terminal' processing blocks.A signal processing flow is constructed by creating a tree of hierarchical blocks, which at any level may also contain terminal nodes that actually implement signal processing functions. This is the base class for all such leaf nodes. More... | |
class | block_detail |
Implementation details to support the signal processing abstractionThis class contains implementation detail that should be "out of
sight" of almost all users of GNU Radio. This decoupling also means that we can make changes to the guts without having to recompile everything. More... | |
struct | block_gw_message_type |
class | block_gateway |
class | block_registry |
class | buffer |
Single writer, multiple reader fifo. More... | |
class | buffer_reader |
How we keep track of the readers of a gr::buffer. More... | |
class | feval_dd |
base class for evaluating a function: double -> doubleThis class is designed to be subclassed in Python or C++ and is callable from both places. It uses SWIG's "director" feature to implement the magic. More... | |
class | feval_cc |
base class for evaluating a function: complex -> complexThis class is designed to be subclassed in Python or C++ and is callable from both places. It uses SWIG's "director" feature to implement the magic. More... | |
class | feval_ll |
base class for evaluating a function: long -> longThis class is designed to be subclassed in Python or C++ and is callable from both places. It uses SWIG's "director" feature to implement the magic. More... | |
class | feval |
base class for evaluating a function: void -> voidThis class is designed to be subclassed in Python or C++ and is callable from both places. It uses SWIG's "director" feature to implement the magic. More... | |
class | feval_p |
base class for evaluating a function: pmt -> voidThis class is designed to be subclassed in Python or C++ and is callable from both places. It uses SWIG's "director" feature to implement the magic. More... | |
class | endpoint |
Class representing a specific input or output graph endpoint. More... | |
class | msg_endpoint |
class | edge |
Class representing a connection between to graph endpoints. More... | |
class | msg_edge |
Class representing a msg connection between to graph msg endpoints. More... | |
class | flowgraph |
Class representing a directed, acyclic graph of basic blocks. More... | |
class | fxpt |
fixed point sine and cosine and friends.fixed pt radians
-2**31 -pi 0 0 2**31-1 pi - epsilon More... | |
class | fxpt_nco |
Numerically Controlled Oscillator (NCO) More... | |
class | fxpt_vco |
Voltage Controlled Oscillator (VCO) More... | |
class | hier_block2 |
Hierarchical container class for gr::block's and gr::hier_block2's. More... | |
class | io_signature |
i/o signature for input and output ports. More... | |
class | message |
Message class. More... | |
class | msg_accepter |
Accepts messages and inserts them into a message queue, then notifies subclass gr::basic_block there is a message pending. More... | |
class | msg_handler |
abstract class of message handlers More... | |
class | msg_queue |
thread-safe message queue More... | |
class | nco |
base class template for Numerically Controlled Oscillator (NCO) More... | |
class | prefs |
Base class for representing user preferences a la windows INI files.The real implementation is in Python, and is accessable from C++ via the magic of SWIG directors. More... | |
class | py_feval_dd |
class | py_feval_cc |
class | py_feval_ll |
class | py_feval |
class | py_feval_p |
class | random |
pseudo random number generator More... | |
class | sync_block |
synchronous 1:1 input to output with historyOverride work to provide the signal processing implementation. More... | |
class | sync_decimator |
synchronous N:1 input to output with historyOverride work to provide the signal processing implementation. More... | |
class | sync_interpolator |
synchronous 1:N input to output with historyOverride work to provide the signal processing implementation. More... | |
struct | sys_pri |
class | tag_checker |
class | tagged_stream_block |
Block that operates on PDUs in form of tagged streamsOverride work to provide the signal processing implementation. More... | |
struct | tag_t |
class | top_block |
Top-level hierarchical block representing a flowgraph. More... | |
struct | tpb_detail |
used by thread-per-block scheduler More... | |
class | logger |
Logger class for referencing loggers in python. Not needed in C++ (use macros) Wraps and manipulates loggers for python as python has no macros. More... | |
Typedefs | |
typedef std::vector < basic_block_sptr > | basic_block_vector_t |
typedef std::vector < basic_block_sptr >::iterator | basic_block_viter_t |
typedef std::vector< block_sptr > | block_vector_t |
typedef std::vector < block_sptr >::iterator | block_viter_t |
typedef std::vector< endpoint > | endpoint_vector_t |
typedef std::vector< endpoint > ::iterator | endpoint_viter_t |
typedef std::vector< edge > | edge_vector_t |
typedef std::vector< edge > ::iterator | edge_viter_t |
typedef std::vector< msg_edge > | msg_edge_vector_t |
typedef std::vector< msg_edge > ::iterator | msg_edge_viter_t |
typedef signed long long | high_res_timer_type |
Typedef for the timer tick count. More... | |
typedef std::map< std::string, std::map< std::string, std::string > > | config_map_t |
typedef std::map< std::string, std::map< std::string, std::string > >::iterator | config_map_itr |
typedef std::map< std::string, std::string > | config_map_elem_t |
typedef std::map< std::string, std::string >::iterator | config_map_elem_itr |
typedef std::string | logger_ptr |
Enumerations | |
enum | block_gw_work_type { GR_BLOCK_GW_WORK_GENERAL, GR_BLOCK_GW_WORK_SYNC, GR_BLOCK_GW_WORK_DECIM, GR_BLOCK_GW_WORK_INTERP } |
enum | tag_propagation_policy_t { TPP_DONT = 0, TPP_ALL_TO_ALL = 1, TPP_ONE_TO_ONE = 2 } |
enum | endianness_t { GR_MSB_FIRST, GR_LSB_FIRST } |
enum | rt_status_t { RT_OK = 0, RT_NOT_IMPLEMENTED, RT_NO_PRIVS, RT_OTHER_ERROR } |
enum | rt_sched_policy { RT_SCHED_RR = 0, RT_SCHED_FIFO = 1 } |
Functions | |
bool | operator< (basic_block_sptr lhs, basic_block_sptr rhs) |
GR_RUNTIME_API long | basic_block_ncurrently_allocated () |
std::ostream & | operator<< (std::ostream &os, basic_block_sptr basic_block) |
std::ostream & | operator<< (std::ostream &os, const block *m) |
GR_RUNTIME_API block_detail_sptr | make_block_detail (unsigned int ninputs, unsigned int noutputs) |
GR_RUNTIME_API long | block_detail_ncurrently_allocated () |
GR_RUNTIME_API buffer_sptr | make_buffer (int nitems, size_t sizeof_item, block_sptr link=block_sptr()) |
Allocate a buffer that holds at least nitems of size sizeof_item . More... | |
GR_RUNTIME_API buffer_reader_sptr | buffer_add_reader (buffer_sptr buf, int nzero_preload, block_sptr link=block_sptr(), int delay=0) |
Create a new gr::buffer_reader and attach it to buffer buf . More... | |
GR_RUNTIME_API long | buffer_ncurrently_allocated () |
returns # of buffers currently allocated More... | |
GR_RUNTIME_API long | buffer_reader_ncurrently_allocated () |
returns # of buffer_readers currently allocated More... | |
GR_RUNTIME_API const std::string | prefix () |
return SYSCONFDIR. Typically ${CMAKE_INSTALL_PREFIX}/etc or /etc More... | |
GR_RUNTIME_API const std::string | sysconfdir () |
return SYSCONFDIR. Typically ${CMAKE_INSTALL_PREFIX}/etc or /etc More... | |
GR_RUNTIME_API const std::string | prefsdir () |
return preferences file directory. Typically ${SYSCONFDIR}/etc/conf.d More... | |
GR_RUNTIME_API const std::string | build_date () |
return date/time of build, as set when 'cmake' is run More... | |
GR_RUNTIME_API const std::string | version () |
return version string defined by cmake (GrVersion.cmake) More... | |
GR_RUNTIME_API double | feval_dd_example (feval_dd *f, double x) |
trivial examples / test cases showing C++ calling Python code More... | |
GR_RUNTIME_API gr_complex | feval_cc_example (feval_cc *f, gr_complex x) |
GR_RUNTIME_API long | feval_ll_example (feval_ll *f, long x) |
GR_RUNTIME_API void | feval_example (feval *f) |
GR_RUNTIME_API flowgraph_sptr | make_flowgraph () |
std::ostream & | operator<< (std::ostream &os, const endpoint endp) |
std::ostream & | operator<< (std::ostream &os, const edge edge) |
std::ostream & | operator<< (std::ostream &os, const msg_endpoint endp) |
std::ostream & | operator<< (std::ostream &os, const msg_edge edge) |
GR_RUNTIME_API hier_block2_sptr | make_hier_block2 (const std::string &name, gr::io_signature::sptr input_signature, gr::io_signature::sptr output_signature) |
public constructor for hier_block2 More... | |
high_res_timer_type | high_res_timer_now (void) |
Get the current time in ticks. More... | |
high_res_timer_type | high_res_timer_now_perfmon (void) |
Get the current time in ticks - for performance monitoring. More... | |
high_res_timer_type | high_res_timer_tps (void) |
Get the number of ticks per second. More... | |
high_res_timer_type | high_res_timer_epoch (void) |
Get the tick count at the epoch. More... | |
static bool | is_power_of_2 (long x) |
GR_RUNTIME_API float | fast_atan2f (float y, float x) |
Fast arc tangent using table lookup and linear interpolation. More... | |
static float | fast_atan2f (gr_complex z) |
static float | branchless_clip (float x, float clip) |
static float | clip (float x, float clip) |
static unsigned int | binary_slicer (float x) |
static unsigned int | quad_45deg_slicer (float r, float i) |
static unsigned int | quad_0deg_slicer (float r, float i) |
static unsigned int | quad_45deg_slicer (gr_complex x) |
static unsigned int | quad_0deg_slicer (gr_complex x) |
static unsigned int | branchless_binary_slicer (float x) |
static unsigned int | branchless_quad_0deg_slicer (float r, float i) |
static unsigned int | branchless_quad_0deg_slicer (gr_complex x) |
static unsigned int | branchless_quad_45deg_slicer (float r, float i) |
static unsigned int | branchless_quad_45deg_slicer (gr_complex x) |
static size_t | p2_round_down (size_t x, size_t pow2) |
static size_t | p2_round_up (size_t x, size_t pow2) |
static size_t | p2_modulo (size_t x, size_t pow2) |
static size_t | p2_modulo_neg (size_t x, size_t pow2) |
GR_RUNTIME_API long | message_ncurrently_allocated () |
GR_RUNTIME_API rt_status_t | enable_realtime_scheduling () |
If possible, enable high-priority "real time" scheduling. More... | |
GR_RUNTIME_API void | sincos (double x, double *sin, double *cos) |
GR_RUNTIME_API void | sincosf (float x, float *sin, float *cos) |
GR_RUNTIME_API const char * | tmp_path () |
directory to create temporary files More... | |
GR_RUNTIME_API const char * | appdata_path () |
directory to store application data More... | |
GR_RUNTIME_API top_block_sptr | make_top_block (const std::string &name) |
Include this header to use the message passing features.
System independent way to ask for realtime scheduling.
typedef std::vector<basic_block_sptr> gr::basic_block_vector_t |
typedef std::vector<basic_block_sptr>::iterator gr::basic_block_viter_t |
typedef std::vector<block_sptr> gr::block_vector_t |
typedef std::vector<block_sptr>::iterator gr::block_viter_t |
typedef std::map<std::string, std::string>::iterator gr::config_map_elem_itr |
typedef std::map<std::string, std::string> gr::config_map_elem_t |
typedef std::map< std::string, std::map<std::string, std::string> >::iterator gr::config_map_itr |
typedef std::map< std::string, std::map<std::string, std::string> > gr::config_map_t |
typedef std::vector<edge> gr::edge_vector_t |
typedef std::vector<edge>::iterator gr::edge_viter_t |
typedef std::vector<endpoint> gr::endpoint_vector_t |
typedef std::vector<endpoint>::iterator gr::endpoint_viter_t |
typedef signed long long gr::high_res_timer_type |
Typedef for the timer tick count.
typedef std::string gr::logger_ptr |
typedef std::vector<msg_edge> gr::msg_edge_vector_t |
typedef std::vector<msg_edge>::iterator gr::msg_edge_viter_t |
enum gr::endianness_t |
enum gr::rt_sched_policy |
enum gr::rt_status_t |
GR_RUNTIME_API const char* gr::appdata_path | ( | ) |
directory to store application data
GR_RUNTIME_API long gr::basic_block_ncurrently_allocated | ( | ) |
|
inlinestatic |
GR_RUNTIME_API long gr::block_detail_ncurrently_allocated | ( | ) |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Referenced by branchless_quad_0deg_slicer().
|
inlinestatic |
References branchless_quad_0deg_slicer().
|
inlinestatic |
Referenced by branchless_quad_45deg_slicer().
|
inlinestatic |
References branchless_quad_45deg_slicer().
GR_RUNTIME_API buffer_reader_sptr gr::buffer_add_reader | ( | buffer_sptr | buf, |
int | nzero_preload, | ||
block_sptr | link = block_sptr() , |
||
int | delay = 0 |
||
) |
Create a new gr::buffer_reader and attach it to buffer buf
.
buf | is the buffer the gr::buffer_reader reads from. |
nzero_preload | – number of zero items to "preload" into buffer. |
link | is the block that reads from the buffer using this gr::buffer_reader. |
delay | Optional setting to declare the buffer's sample delay. |
GR_RUNTIME_API long gr::buffer_ncurrently_allocated | ( | ) |
returns # of buffers currently allocated
GR_RUNTIME_API long gr::buffer_reader_ncurrently_allocated | ( | ) |
returns # of buffer_readers currently allocated
GR_RUNTIME_API const std::string gr::build_date | ( | ) |
return date/time of build, as set when 'cmake' is run
|
inlinestatic |
|
inlinestatic |
References fast_atan2f().
GR_RUNTIME_API gr_complex gr::feval_cc_example | ( | feval_cc * | f, |
gr_complex | x | ||
) |
GR_RUNTIME_API double gr::feval_dd_example | ( | feval_dd * | f, |
double | x | ||
) |
trivial examples / test cases showing C++ calling Python code
GR_RUNTIME_API void gr::feval_example | ( | feval * | f | ) |
GR_RUNTIME_API long gr::feval_ll_example | ( | feval_ll * | f, |
long | x | ||
) |
|
inline |
Get the tick count at the epoch.
References high_res_timer_now(), and high_res_timer_tps().
Referenced by TimeScaleData::setZeroTime().
|
inline |
Get the current time in ticks.
Referenced by high_res_timer_epoch(), and high_res_timer_now_perfmon().
|
inline |
Get the current time in ticks - for performance monitoring.
References high_res_timer_now().
|
inline |
Get the number of ticks per second.
Referenced by high_res_timer_epoch().
|
inlinestatic |
GR_RUNTIME_API block_detail_sptr gr::make_block_detail | ( | unsigned int | ninputs, |
unsigned int | noutputs | ||
) |
GR_RUNTIME_API buffer_sptr gr::make_buffer | ( | int | nitems, |
size_t | sizeof_item, | ||
block_sptr | link = block_sptr() |
||
) |
Allocate a buffer that holds at least nitems
of size sizeof_item
.
The total size of the buffer will be rounded up to a system dependent boundary. This is typically the system page size, but under MS windows is 64KB.
nitems | is the minimum number of items the buffer will hold. |
sizeof_item | is the size of an item in bytes. |
link | is the block that writes to this buffer. |
GR_RUNTIME_API flowgraph_sptr gr::make_flowgraph | ( | ) |
GR_RUNTIME_API hier_block2_sptr gr::make_hier_block2 | ( | const std::string & | name, |
gr::io_signature::sptr | input_signature, | ||
gr::io_signature::sptr | output_signature | ||
) |
public constructor for hier_block2
GR_RUNTIME_API top_block_sptr gr::make_top_block | ( | const std::string & | name | ) |
GR_RUNTIME_API long gr::message_ncurrently_allocated | ( | ) |
|
inline |
|
inline |
References gr::endpoint::block(), and gr::endpoint::port().
|
inline |
References gr::edge::dst(), and gr::edge::src().
|
inline |
References gr::msg_endpoint::block(), gr::msg_endpoint::port(), and pmt::symbol_to_string().
|
inline |
References gr::msg_edge::dst(), and gr::msg_edge::src().
|
inline |
std::ostream& gr::operator<< | ( | std::ostream & | os, |
const block * | m | ||
) |
|
inlinestatic |
|
inlinestatic |
x | any value |
pow2 | must be a power of 2 |
pow2
- (x
modulo pow2
). References p2_modulo().
|
inlinestatic |
x | any value |
pow2 | must be a power of 2 |
x
rounded down to a multiple of pow2
. Referenced by p2_round_up().
|
inlinestatic |
x | any value |
pow2 | must be a power of 2 |
x
rounded up to a multiple of pow2
. References p2_round_down().
GR_RUNTIME_API const std::string gr::prefix | ( | ) |
return SYSCONFDIR. Typically ${CMAKE_INSTALL_PREFIX}/etc or /etc
GR_RUNTIME_API const std::string gr::prefsdir | ( | ) |
return preferences file directory. Typically ${SYSCONFDIR}/etc/conf.d
|
inlinestatic |
Referenced by quad_0deg_slicer().
|
inlinestatic |
References quad_0deg_slicer().
|
inlinestatic |
Referenced by quad_45deg_slicer().
|
inlinestatic |
References quad_45deg_slicer().
GR_RUNTIME_API void gr::sincos | ( | double | x, |
double * | sin, | ||
double * | cos | ||
) |
GR_RUNTIME_API void gr::sincosf | ( | float | x, |
float * | sin, | ||
float * | cos | ||
) |
Referenced by gr_expj(), and gr::nco< o_type, i_type >::sincos().
GR_RUNTIME_API const std::string gr::sysconfdir | ( | ) |
return SYSCONFDIR. Typically ${CMAKE_INSTALL_PREFIX}/etc or /etc
GR_RUNTIME_API const char* gr::tmp_path | ( | ) |
directory to create temporary files
GR_RUNTIME_API const std::string gr::version | ( | ) |
return version string defined by cmake (GrVersion.cmake)