I am looking for a solution that start() the flow graph for a definite
period of time (in seconds) and after that it stop() it automatically.
For
example
let suppose initial value of time is 14 seconds; it means that the
flowgraph defined in tb1 should need to executed during that time; and
when
the time reaches zero it must be stop.
while 1:
if (time!=0):
tb1.run()
time = int(time) - int(1)
elif (time==0):
tb1.stop()
I tried this; but once the flow graph started; then it never comes to
the
elif condition. How can I stop() the flowgraph in this condition.
Waiting
for reply.
I can’t use sleep() here; because there’re other threads as well in the
program which need to be executed as well. Sleep() stop the execution of
program; which is not a solution.
No it doesn’t. It pauses the execution of the THREAD … other
threads (both those created by gnuradio to actually run the flow graph
and whatever other thread you have in your application) will keep
running.
Besides you’re missing the point … the main thing to notice in my
original reply is run() vs start(). One is blocking, the other isn’t.
I can’t use sleep() here; because there’re other threads as well in the
program which need to be executed as well. Sleep() stop the execution of
program; which is not a solution. Thanks.
Currently, I am using a single usrp as a transmitter. The program is
changing the transmission frequency with respect to (external) switching
time. In order to change the frequency in usrp box; I set the following
programming conditions.
while 1:
if ((time!=0) and ((ch1=1) or (ch2==1))):
tb1.start()
time = int(time) - int(1)
sleep(external time which provide the active channel time of
channel 1 and channel 2)
elif (time==0):
tb1.stop()
But (I think) due to this frequent start() and stop() activities; after
maximum of 15 minutes time I have received the following error.
/Traceback (most recent call last):
File “source_test.py”, line 121, in
tb1 = gmsk_tx()
File “source_test.py”, line 88, in init
self.blocks_udp_source_0 = blocks.udp_source(gr.sizeof_char*1,
“127.0.0.1”,
1234, 1472, True)
File
“/usr/local/lib/python2.7/dist-packages/gnuradio/blocks/blocks_swig5.py”,
line 1969, in make
return _blocks_swig5.udp_source_make(*args, **kwargs)
RuntimeError: boost::thread_resource_error: Resource temporarily
unavailable
I want the program to be run continuously. Kindly propose some solution.