|
All, I have a custom block and some internal variables within it. I want to save one (or more) of those variables into a file for offline plotting. I know there are gnuradio examples which does this. Can someone point me where to look at? Thanks, Yu. _______________________________________________ Discuss-gnuradio mailing list [hidden email] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio |
|
Are you talking about gr.file_sink() ?
|
|
No. I have written work function for a custom block. Inside that work function, I have a local variable "temp" which updates very less frequently. Since the output of the block updates at a different (higher) rate, I can't pull out temp to make it an output. How should I go about saving the values of temp? From: sumitstop <[hidden email]> To: [hidden email] Sent: Tuesday, October 23, 2012 2:32 PM Subject: Re: [Discuss-gnuradio] saving internal (to a block) variable values to a file Are you talking about gr.file_sink() ? -- View this message in context: http://gnuradio.4.n7.nabble.com/saving-internal-to-a-block-variable-values-to-a-file-tp38118p38120.html Sent from the GnuRadio mailing list archive at Nabble.com. _______________________________________________ Discuss-gnuradio mailing list [hidden email] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio _______________________________________________ Discuss-gnuradio mailing list [hidden email] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio |
|
Although I have not done that much work on work() so far but out of curiosity am asking : can't we write temp to some file , inside the block of work() itself so we need not to make it as output.
|
|
I first this question :) From: sumitstop <[hidden email]> To: [hidden email] Sent: Tuesday, October 23, 2012 3:23 PM Subject: Re: [Discuss-gnuradio] saving internal (to a block) variable values to a file Although I have not done that much work on work() so far but out of curiosity am asking : can't we write temp to some file , inside the block of work() itself so we need not to make it as output. -- View this message in context: http://gnuradio.4.n7.nabble.com/saving-internal-to-a-block-variable-values-to-a-file-tp38118p38123.html Sent from the GnuRadio mailing list archive at Nabble.com. _______________________________________________ Discuss-gnuradio mailing list [hidden email] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio _______________________________________________ Discuss-gnuradio mailing list [hidden email] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio |
|
Well I am pretty sure that your query is more complicated than what I am thinking, but I did the following just to check. Inside the work function of howto_square_ff.cc
I pasted following lines ofstream outdata; int i; // loop index int num[5] = {4, 3, 6, 7, 12}; // list of output values outdata.open("/home/sumit/example2.dat"); for (i=0; i<5; ++i) outdata << num[i] << std::endl; outdata.close(); compiled it ... And I got them written in example2.dat Anyways I am curious to see if you get some effective reply :) |
|
Hi,
Also I'm saving some variables into a file. What I did: Before the work function: myfile.open ("/home/Desktop/examples/variables_from_block"); Then, inside the work function: myfile << _msg.key; //Save the variable value myfile << std::flush; I've found that I have to std::flush the file, because if I close it (myfile.close()), I cannot access the file anymore and the variable is saved once only. Hope this helps, Cheers, Jose On Wed, Oct 24, 2012 at 7:37 AM, sumitstop <[hidden email]> wrote: Well I am pretty sure that your query is more complicated than what I am _______________________________________________ Discuss-gnuradio mailing list [hidden email] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio |
|
All, Just for future reference, below is the summary of what I did: In my .cc file: Added these lines at the top: using namespace std; #include <fstream> #include <iostream> std::ofstream myfileobj; Added this line into my constructor definition: myfileobj.open("/home/temp-values.txt"); Added this line into my work function: myfileobj << temp << std::endl; // temp is a float variable Finally, added this line into my destructor definition: myfileobj.close(); Now, the only issue I am having is that if I save my file as .dat and then use read_float_binary to read the values then it gives me garbage values instead of actual ones. Moreover, the file size is larger than expected, i.e., number of items is more than expected, and the item size is 8 bytes instead of 4 bytes (for float). Nevertheless, I can live with using the .txt file for now and will work on using .dat later. Meanwhile, if someone finds some obvious mistake in my approach, please let me know. Thanks Sumit and Jose. From: Jose Torres Diaz <[hidden email]> To: sumitstop <[hidden email]>; [hidden email] Cc: [hidden email] Sent: Tuesday, October 23, 2012 7:01 PM Subject: Re: [Discuss-gnuradio] saving internal (to a block) variable values to a file Hi, Also I'm saving some variables into a file. What I did: Before the work function: myfile.open ("/home/Desktop/examples/variables_from_block"); Then, inside the work function: myfile << _msg.key; //Save the variable value myfile << std::flush; I've found that I have to std::flush the file, because if I close it (myfile.close()), I cannot access the file anymore and the variable is saved once only. Hope this helps, Cheers, Jose On Wed, Oct 24, 2012 at 7:37 AM, sumitstop <[hidden email]> wrote: Well I am pretty sure that your query is more complicated than what I am _______________________________________________ Discuss-gnuradio mailing list [hidden email] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio |
|
You have to open the file in "binary" mode to write binary data, otherwise it is in text mode by default. Doesn't matter what the extension is - txt or dat or anything else - what matters is how you are opening the file in fstream::open.
Hope that helps.
On Thu, Oct 25, 2012 at 2:01 PM, Zing Yu <[hidden email]> wrote:
_______________________________________________ Discuss-gnuradio mailing list [hidden email] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio |
| Powered by Nabble | Edit this page |
