Hello,
I am trying to add some extra information to the standard metadata
file header.
Following the information posted on
http://gnuradio.org/doc/doxygen/page_metadata.html , I am able to write
and read the standard metadata. I have attempted to add extra
metadata with the following lines in my flowgraph:
# add some extra meta data
key = pmt.pmt_intern("dummy")
val = pmt.pmt_from_long(77)
extras = pmt.pmt_make_dict()
extras = pmt.pmt_dict_add(extras, key, val)
extras_str = pmt.pmt_serialize_str(extras)
nItems = 1024*size
self.blocks_file_meta_sink_0 =
blocks.file_meta_sink(gr.sizeof_float*1,“./meta_test.dat”,
samp_rate, 1, blocks.GR_FILE_FLOAT, False, nItems, extras_str,
True)
self.blocks_file_meta_sink_0.set_unbuffered(False)
I think that the writing is going OK, since the length of the header
increases by a reasonable amount and a Unix hexdump indicates that the
“dummy” data is present. However, I am stuck when it comes to getting
at the extra data using the parse_file_metadata functions. In
particular, when I try to read the data using:
cHeader = c[0:185] # character array read from file
pmt_dict = pmt.pmt_deserialize_str(cHeader)
p = parse_file_metadata.parse_header(pmt_dict,False)
p_extra = parse_file_metadata.parse_extra_dict(pmt_dict,info,True)
The first parse_file_metadata line successfully provides the standard
metadata, but the second parse_file_metadata does not provide the extra
“dummy” data. I suspect that it has to do with my poor understanding
of what should go in the info argument.
Any help would be greatly appreciated.
Sincerely,
Dan Marlow