Message Strobe Block Stopping Unexpectedly

I’m having a problem with the Message Strobe block. I have a simple
flowgraph, which can be found here: http://pastebin.com/WCa5npiP

There are two independent dataflows in the flowgraph:
Flow 1:
noise source -> throttle -> selector(w /wx chooser) -> null sink

 -> null sink

Flow 2:
message strobe(w /wx chooser) -> message debug

Both the “message” in the message strobe and output index of the
selector
are wx chooser controlled.

I am able to change the “message” fine, but when I change the output
index
of the selector of a running flow, the stop method of the message strobe
gets called.

Why is this happening and can I prevent it? I want the messages to
continue.

Im using GNU-Radio: 3.7.6.1 (built from “build-gnuradio”)

-Travis

Hi Travis,

stop() is called on all gr::blocks in your flow graph when you change
(ok, even when you just set it to the old index) selector’s
configuration, because it reconfigures the flow graph internally,
meaning that it calls lock() and unlock() on a hier block, which stop()s
the parent hier_block, or top_block if it’s already the highest level of
encapsulation.
So that is correct behaviour, in principle. However, message strobe
doesn’t seem to be able to get up again:

bool
message_strobe_impl::stop()
{
  // Shut down the thread
  d_finished = true;
  d_thread->interrupt();
  d_thread->join();

  return block::stop();
}

since start() doesn’t re-set d_finished, we now know what needs to be
done to correct this:
move the setting of d_finished from the constructor to start().

I have a fix for this; for me, it works with your flow graph. If you
want to try:
https://github.com/marcusmueller/gnuradio/tree/message_strobe_fix_restartable

Best regards,
Marcus

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs