commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r8773 - gnuradio/branches/developers/eb/sched-wip/gr-p


From: eb
Subject: [Commit-gnuradio] r8773 - gnuradio/branches/developers/eb/sched-wip/gr-pager/src
Date: Wed, 2 Jul 2008 23:12:53 -0600 (MDT)

Author: eb
Date: 2008-07-02 23:12:53 -0600 (Wed, 02 Jul 2008)
New Revision: 8773

Modified:
   gnuradio/branches/developers/eb/sched-wip/gr-pager/src/usrp_flex_band.py
Log:
modified to exit at EOF

Modified: 
gnuradio/branches/developers/eb/sched-wip/gr-pager/src/usrp_flex_band.py
===================================================================
--- gnuradio/branches/developers/eb/sched-wip/gr-pager/src/usrp_flex_band.py    
2008-07-03 01:37:02 UTC (rev 8772)
+++ gnuradio/branches/developers/eb/sched-wip/gr-pager/src/usrp_flex_band.py    
2008-07-03 05:12:53 UTC (rev 8773)
@@ -2,6 +2,7 @@
 
 from gnuradio import gr, gru, usrp, optfir, eng_notation, blks2, pager
 from gnuradio.eng_option import eng_option
+import gnuradio.gr.gr_threading as _threading
 from optparse import OptionParser
 from string import split, join, printable
 import time
@@ -9,6 +10,7 @@
 class app_top_block(gr.top_block):
     def __init__(self, options, queue):
        gr.top_block.__init__(self, "usrp_flex_all")
+        self.subdev = None
 
         if options.from_file is not None:
             self.src = gr.file_source(gr.sizeof_gr_complex, options.from_file)
@@ -57,6 +59,21 @@
        # Avoid weak-ref error
        del self.subdev
        
+
+
+class top_block_runner(_threading.Thread):
+    def __init__(self, tb):
+        _threading.Thread.__init__(self)
+        self.setDaemon(1)
+        self.tb = tb
+        self.done = False
+        self.start()
+
+    def run(self):
+        self.tb.run()
+        self.done = True
+
+
 def main():
     parser = OptionParser(option_class=eng_option)
     parser.add_option("-f", "--frequency", type="eng_float", default=929.5e6,
@@ -81,8 +98,8 @@
     queue = gr.msg_queue()
     tb = app_top_block(options, queue)
 
+    runner = top_block_runner(tb)
     try:
-        tb.start()
        while 1:
            if not queue.empty_p():
                msg = queue.delete_head() # Blocking read
@@ -95,11 +112,15 @@
                        disp.append(page[n])
                print join(disp, '')
                                                
+            elif runner.done:
+                break
            else:
-               time.sleep(1)
+               time.sleep(0.05)
 
     except KeyboardInterrupt:
+        print "Keyboard Interrupt..."
         tb.stop()
+        runner = None
     
 if __name__ == "__main__":
     main()





reply via email to

[Prev in Thread] Current Thread [Next in Thread]