File source and seek()

Hello,

I am having some trouble getting the seek() function in the file source
to
work.

My program has a non-repeating file source, and a GUI button with the
callback function set_button(). In the callback I have written the below
code, which should reset the file source to the beginning of the file:

self.blocks_file_source_0.seek(0,0)

When I press the button before the file source has streamed to the end,
the
seek() works fine and resets the file source to the beginning. When I
press
the button after the file source has streamed to the end and stopped,
the
seek() does not work and nothing happens in the code. I suspect this has
something to do with the scheduler thinking this block is done and
ignoring
it or deleting it or something, but I have been unable to get it working
the way I want it to.

Any ideas what I am doing wrong?

On 03/10/2014 06:38 PM, trracer dangly wrote:

When I press the button before the file source has streamed to the end,
the seek() works fine and resets the file source to the beginning. When
I press the button after the file source has streamed to the end and
stopped, the seek() does not work and nothing happens in the code. I
suspect this has something to do with the scheduler thinking this block
is done and ignoring it or deleting it or something, but I have been
unable to get it working the way I want it to.

You’re on the right track: In a non-repeating file source, the block
will return -1 after the file was read, which triggers a shutdown of the
FG. So, what you really want is to restart the flow graph.

Perhaps you need to write your own block which acts on your inputs.

M