#!/usr/bin/env python from gnuradio import gr, gru import time import os # from current dir import isolate_tx_path import isolate_rx_path global mode mode = "rx" #Default mode is rx class my_top_block(gr.top_block): def __init__(self): gr.top_block.__init__(self) self.rxpath = isolate_rx_path.usrp_receive_path() self.txpath = isolate_tx_path.usrp_transmit_path() self.connect(self.txpath); self.connect(self.rxpath); def main(): global mode tb = my_top_block() r = gr.enable_realtime_scheduling() if r != gr.RT_OK: print "Warning: failed to enable realtime scheduling" print 'Blocked waiting for GDB attach (pid = %d)' % (os.getpid(),) raw_input ('Press Enter to continue: ') tb.start() running = True time.sleep(3) while running: if mode == "rx": tb.lock() tb.rxpath.disconnect(tb.rxpath.u, tb.rxpath.sink) tb.rxpath.connect(tb.rxpath.u, tb.rxpath.idle) tb.txpath.disconnect(tb.txpath.src, tb.txpath.head, tb.txpath.u) tb.txpath.connect(tb.txpath.src, tb.txpath.u) tb.unlock() time.sleep(0.1) print "." mode = "tx" if mode == "tx": tb.lock() tb.rxpath.disconnect(tb.rxpath.u, tb.rxpath.idle) tb.rxpath.connect(tb.rxpath.u, tb.rxpath.sink) tb.txpath.disconnect(tb.txpath.src, tb.txpath.u) tb.txpath.connect(tb.txpath.src, tb.txpath.head, tb.txpath.u) tb.unlock() time.sleep(1) mode = "rx" if __name__ == '__main__': try: main() except KeyboardInterrupt: pass