On Tue, Jan 22, 2013 at 4:18 AM, Hanz <[email protected]> wrote:

> Hi!
> Im using a message queue to count data, while the data is sinked to a file.
> Then if the counter reaches X i want the old file to be closed and continue
> sinking in a new file. Then again if reaches X to switch to the old file.
> So
> my bottom part code looks like that:
>
> tb = top_block()
>         tb.start()
>         a=0
>
>         while 1:
>                 if tb.sink_queue.count()>X:
>                         tb.gr_file_sink_0.close()
>                         tb.sink_queue.flush()
>                         if a==0:
>                                 tb.gr_file_sink_0.open("PLACE_TO_SAVE\two")
>                                 a=1
>                         else:
>                                 tb.gr_file_sink_0.open("PLACE_TO_SAVE\one")
>                                 a=0
>
> Right now, it simply closes the first file, but does not begin with the
> second one. Can anyone help me with that? Thanks in advance
>

Hanz,
This shouldn't make any difference, but the file_sink's 'open' function
also closes any previously opened files. Try removing your call to 'close'
and just rely on the open to close it, reopen the new file, and then when
the work is called the next time, it will run 'do_update' to set up the
handles properly.

Also, you can try throwing in some debug prints to make sure both paths are
actually being called properly.

Tom
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to