|
From: | Richard Bell |
Subject: | Re: [Discuss-gnuradio] Async Message to File |
Date: | Thu, 18 Feb 2016 15:57:34 -0800 |
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:
RichSorry 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 terminalThanks for the help.
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
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
[Prev in Thread] | Current Thread | [Next in Thread] |