Hello all,
          I am wondering, after the WORK_DONE is invoked, is it possible to
restart the flowgraph? Thanks!

2015-02-09 17:11 GMT-05:00 Chen Chen <linkin8...@gmail.com>:

> Dear all,
>        In my application, I want to implement the following feature:
>       1. If I decode 50 packages, then stop the flowgraph immediately
>       2. otherwise, if after 30 seconds, I cannot receive more than 50
> packages, then stop the flowgraph. So I could prevent the flowgraph from
> locking forever.
>
>       For the first part, I add a state machine inside the decoder. When
> there are 50 packages decoded correctly, I would output a high level '1' on
> the output. Otherwise I output low level 0. I connect this output port,
> with a probe. In python, I wrote
>      -------------------------------------------------------------
>         def _probe_peak_package_number():
>             while True:
>                 val = round(self.probe_package_number.level())
>                 if (val == 1):
>                     print "package number reach threshold %d!"
> %self.threshold
>                     self.stop()
>                     break
>         _probe_package_number_thread =
> threading.Thread(target=_probe_peak_package_number)
>         _probe_package_number_thread.daemon = True
>         _probe_package_number_thread.start()
>      -------------------------------------------------------------
> which starts a thread, listening to the probe. Whenever it observes a high
> level '1', it would STOP the flowgraph immediately.
>
> For the second part, I am using the Timer in the package threading.
>      -------------------------------------------------------------
> #def _shut_down_flow_graph():
>             #print "Passing %d seconds, going to kill the process!"
> %self.timing
>             #self.stop()
>
>         #_timer_thread=Timer(self.timing,_shut_down_flow_graph)
>         #_timer_thread.start()
>      -------------------------------------------------------------
>
> But, what I observe is that:
> 1. If I set the threshold to 10 packages, I have to wait until about 100
> packages being decoded correctly. Sometimes I have to wait for about 500
> packages. The threading is not very stable, even there is an high-level
> output at the probe, it does not 'see' it immediately.
>
> 2. The alarm would prevent my flowgraph from exiting. Namely, when there
> are more than 50 packages, the flowgraph would not be stopped, until 30
> seconds passed. But I have a self.stop() in the snippet.
>
>                 if (val == 1):
>                     print "package number reach threshold %d!"
> %self.threshold
>                     self.stop()
>                     break
>
> Why it does not terminate the python program immediately?
>
> Or, is there any suggestions on implementing precise interrupt in GNURADIO?
>
> Thanks.
> --
> CHEN CHEN
>
>


-- 
CHEN CHEN
Electrical and Computer Engineering
University of Maryland, College Park
E-mail:linkin8...@gmail.com or cc8...@umd.edu
Address: KEB 2238, Kim Bldg
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to