|
GNU Radio 3.6.5 C++ API
|
Write stream to file with meta-data headers. More...
#include <file_meta_sink.h>
Public Types | |
| typedef boost::shared_ptr < file_meta_sink > | sptr |
Public Member Functions | |
| virtual bool | open (const std::string &filename)=0 |
| virtual void | close ()=0 |
| virtual void | do_update ()=0 |
| virtual void | set_unbuffered (bool unbuffered)=0 |
Static Public Member Functions | |
| static sptr | make (size_t itemsize, const std::string &filename, double samp_rate=1, double relative_rate=1, gr_file_types type=GR_FILE_FLOAT, bool complex=true, size_t max_segment_size=1000000, const std::string &extra_dict="", bool detached_header=false) |
| Create a meta-data file sink. | |
Write stream to file with meta-data headers.
These files represent data as binary information in between meta-data headers. The headers contain information about the type of data and properties of the data in the next segment of samples. The information includes:
rx_rate (double): sample rate of data. rx_time (uint64_t, double): time stamp of first sample in segment. size (uint32_t): item size in bytes. type (gr_file_types as int32_t): data type. cplx (bool): Is data complex? strt (uint64_t): Starting byte of data in this segment. bytes (uint64_t): Size in bytes of data in this segment.
Tags can be sent to the file to update the information, which will create a new header. Headers are found by searching from the first header (at position 0 in the file) and reading where the data segment starts plus the data segment size. Following will either be a new header or EOF.
| virtual void gr::blocks::file_meta_sink::close | ( | ) | [pure virtual] |
Implemented in gr::blocks::file_meta_sink_impl.
| virtual void gr::blocks::file_meta_sink::do_update | ( | ) | [pure virtual] |
Implemented in gr::blocks::file_meta_sink_impl.
| static sptr gr::blocks::file_meta_sink::make | ( | size_t | itemsize, |
| const std::string & | filename, | ||
| double | samp_rate = 1, |
||
| double | relative_rate = 1, |
||
| gr_file_types | type = GR_FILE_FLOAT, |
||
| bool | complex = true, |
||
| size_t | max_segment_size = 1000000, |
||
| const std::string & | extra_dict = "", |
||
| bool | detached_header = false |
||
| ) | [static] |
Create a meta-data file sink.
| itemsize | (size_t): Size of data type. |
| filename | (string): Name of file to write data to. |
| samp_rate | (double): Sample rate of data. If sample rate will be set by a tag, such as rx_tag from a UHD source, this is basically ignored. |
| relative_rate | (double): Rate chance from source of sample rate tag to sink. |
| type | (gr_file_types): Data type (int, float, etc.) |
| complex | (bool): If data stream is complex |
| max_segment_size | (size_t): Length of a single segment before the header is repeated (in items). |
| extra_dict | (string): a serialized PMT dictionary of extra information. Currently not supported. |
| detached_header | (bool): Set to true to store the header info in a separate file (named filename.hdr) |
| virtual bool gr::blocks::file_meta_sink::open | ( | const std::string & | filename | ) | [pure virtual] |
Implemented in gr::blocks::file_meta_sink_impl.
| virtual void gr::blocks::file_meta_sink::set_unbuffered | ( | bool | unbuffered | ) | [pure virtual] |
Implemented in gr::blocks::file_meta_sink_impl.