discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Async Message to File


From: Richard Bell
Subject: Re: [Discuss-gnuradio] Async Message to File
Date: Thu, 18 Feb 2016 15:57:34 -0800

Sorry, still not working. Values seem to be either 0 or gigantic. I think it's because the single 64 bit value is being written as 8 consecutive bytes as you said, and I'm not handling that anywhere once I read the file into octave. I'll try and figure it out next time I'm working on this.

Thanks,
Rich

On Thu, Feb 18, 2016 at 3:12 PM, Marcus Müller <address@hidden> wrote:
Argh, sorry, to_float returns a float64, which of course means that Python's file.write is a bit confused by this request, and it's getting late :/ concentration used to be better.

So, add
import struct
where the other imports are.

Then,
self._file.write(struct.pack("d", pmt.to_float(msg) ) )
should
1. get the 64 bit float from the pmt message,
2. pack that into a string object according to the format "d" (which simply says, take a single double and give it to me as raw 8 bytes)
3. writes that to the file.

Best regards,
Marcus


On 19.02.2016 00:05, Richard Bell wrote:
Sorry Marcus, I'm not familiar with pmts and message passing things to handle these errors on my own. When I change "self._file.write(pmt.serialize_str(msg))" to "self._file.write(pmt.to_float(msg))", I get the following error in grc terminal

handler caught exception: expected a character buffer object
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/gnuradio/gr/gateway.py", line 73, in eval
    try: self._callback(arg)
  File "/usr/local/lib/python2.7/dist-packages/msgtools/msg_file_sink.py", line 41, in _msg_handler
    self._file.write(pmt.to_float(msg))
TypeError: expected a character buffer object
thread[thread-per-block[101]: <block msg_file_sink (47)>]: caught unrecognized exception

Thanks for the help.

Rich

On Thu, Feb 18, 2016 at 2:55 PM, Marcus Müller <address@hidden> wrote:
Ah, sorry, no, the block just takes the raw serialized pmt and writes it to a file [1]:

self._file.write(pmt.serialize_str(msg))

You could use python with pmt module to unserialize, but:

if you just replace "serialize_str" with "to_float", this should give you what you expect. Notice this is really just experimental; copy the block to your own code. I'll probably rewrite as something in C++ to make it useful on platforms without python, too.

Cheers,
Marcus

[1] https://github.com/marcusmueller/gr-msgtools/blob/master/python/msg_file_sink.py#L41


On 18.02.2016 23:13, Richard Bell wrote:
I just tested it. I expect to see log scale values of SNR coming out of the estimator block. When I look at this directly using a function_probe and qt_gui_label in grc, I see proper estimates. When I load the file produced by the msg_file_snk into octave, I see incorrect values ranging from e-40 to e+40. I assumed the msg_file_snk stored values as float, so I used the read_float_binary.m script on the file to plot. Are we having a type conversion issue here?

Rich

On Thu, Feb 18, 2016 at 1:33 PM, Marcus Müller <address@hidden> wrote:
Sorry, I forgot to git push; could you git pull?

On 02/18/2016 10:27 PM, Richard Bell wrote:
There is only one block in your git, Variable To Message, and no built in Message File Sink in GR. I'm using gr 3.7.10. How did you see this being used?

Rich

On Thu, Feb 18, 2016 at 1:12 PM, Richard Bell <address@hidden> wrote:
Excellent thanks.

Rich

On Thu, Feb 18, 2016 at 1:09 PM, Marcus Müller <address@hidden> wrote:
Sorry, took a while longer, juggling multiple mails:
https://github.com/marcusmueller/gr-msgtools

use the msg_file_sink :)


On 02/18/2016 09:35 PM, Marcus Müller wrote:
From the top of my head, there's nothing that does that... yet.
Let's see if I can hack together something in python that does that. Gimme a second.

On 02/18/2016 09:22 PM, Richard Bell wrote:
I want to store the output SNR measurement messages of the MPSK SNR Estimator Probe to a file, but I'm not sure how to transform async messages to a stream to get them into a file. Would someone please recommend a method of doing this in GRC.

Rich


_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio



_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio





_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio







reply via email to

[Prev in Thread] Current Thread [Next in Thread]