Stream Tags

用来为一组数据打上标签,便于上层处理的机制。准同步机制,与数据流并行传输,直到sink终止。stream Tags实际是<key,value>的键值对,key和value都是多态类型,key指定了数据流的内容,value存储对应的说明信息。标签还有有一个标注tag流来源的srcid。

tag的结构,类型gr::tag_t,公共属性:

which_output    关联的输出流
abs_offset    输出流的大小,也就是nitems_written.
key    
value            tag的信息
srcid            tag流的来源,defaults to PMT_F

添加函数

void gr::block::add_item_tag(unsigned int              which_output,
                                uint64_t               abs_offset,
                                const pmt::pmt_t &     key,
                                const pmt::pmt_t &     value,
                                const pmt::pmt_t &     srcid = pmt::PMT_F 
)

获取tag

void get_tags_in_range( std::vector<tag_t> &v,
                        unsigned int which_input,
                        uint64_t abs_start,
                        uint64_t abs_end);

三种标签传递方式:

void set_tag_propagation_policy(tag_propagation_policy_t p);

例子:

继承了gr_block类

unsigned long int nitems_read(unsigned int which_input);
unsigned long int nitems_written(unsigned int which_output);

results matching ""

    No results matching ""