File Meta 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.
Use of the pmt
package to specify parameter Extra Dict requires an Import block with import pmt
.
Parameters
(R): Run-time adjustable
- File (R)
- Name of file to write data to.
- Sample Rate
- 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
- Rate chance from source of sample rate tag to sink.
- Max Seg. size
- Length of a single segment before the header is repeated (in items).
- Extra dict.
- A PMT dictionary of extra information. This field is required, and pre-filled as
pmt.make_dict()
.
- Detached header
- Set to true to store the header info in a separate file (named filename.hdr)
- Unbuffered (R)
- If new samples are flushed to file at the end of each call to the work function
Example Flowgraph
In this example, the file meta sink block is saving both a data stream from the signal source generating a saw tooth waveform and stream tags that align with the start for the saw tooth waveform.
Source Files
- Header files
- [3]
- Public header files
- [4]
- Block definition
- [5]