コード例 #1
0
ファイル: mimo_mpif.py プロジェクト: jmccormack200/SDR
 def add_parser_options(parser):
     if not parser.has_option("-v"):
         parser.add_option(
             "-v",
             "--verbose",
             type="int",
             default=default_mimo_mpif_setup.d_options["verbose"],
             help="set verbose level of output [default=%default]",
         )
     if not parser.has_option("--debug"):
         parser.add_option(
             "",
             "--debug",
             type="int",
             default=default_mimo_mpif_setup.d_options["debug"],
             help="set debug level of system [default=%default]",
         )
     if not parser.has_option("--enable-socket"):
         parser.add_option(
             "",
             "--enable-socket",
             action="store_true",
             default=default_mimo_mpif_setup.d_options["enable_socket"],
             help="enable socket communication for MAC/PHY interface [default=%default]",
         )
     if not parser.has_option("--mac-addr"):
         parser.add_option(
             "-A",
             "--mac-addr",
             type="string",
             default=default_mimo_mpif_setup.d_options["mac_addr"],
             help="set address for MAC [default=%default]",
         )
     if not parser.has_option("--mac-port"):
         parser.add_option(
             "-P",
             "--mac-port",
             type="int",
             default=default_mimo_mpif_setup.d_options["mac_port"],
             help="set base port used for MAC/PHY interface [default=%default]",
         )
     if not parser.has_option("--mtu"):
         parser.add_option(
             "",
             "--mtu",
             type="int",
             default=default_mimo_mpif_setup.d_options["mtu"],
             help="set maximum transmission unit default=%default]",
         )
     if not parser.has_option("-R"):
         parser.add_option(
             "-R",
             "--rate",
             type="int",
             default=default_mimo_mpif_setup.d_options["rate"],
             help='set PHY data rate (use -1 for auto-rate) [default="auto"]',
         )
     MimoTransceiver.add_parser_options(parser)
コード例 #2
0
ファイル: test.py プロジェクト: jmccormack200/SDR
def main():
    """ Parser Options """
    parser = OptionParser(option_class=eng_option)
    MimoManager.add_parser_options(parser)
    Channel.add_parser_options(parser)
    (options, args) = parser.parse_args()
    if len(args) != 0:
        parser.print_help()
        sys.exit(1)

    # overwrite fake_rf when --enable-channel is used
    if options.enable_channel:
        options.fake_rf = True

    mgr = MimoManager(options)
    phy = MimoTransceiver(options)
    phy.rx.packet_detector().set_debug(options.debug)
    phy.rx.packet_detector().set_window(64)
    phy.rx.packet_detector().set_delay(16)
    # phy.rx.packet_detector().set_thresh(0.70)
    phy.rx.packet_detector().set_nchannels(options.nchannels)
    """
    """
    sys.stderr.write("phy.rx.packet_detector().window()    = %s\n" % (phy.rx.packet_detector().window()))
    sys.stderr.write("phy.rx.packet_detector().delay()     = %s\n" % (phy.rx.packet_detector().delay()))
    sys.stderr.write("phy.rx.packet_detector().nchannels() = %s\n" % (phy.rx.packet_detector().nchannels()))
    # phy.rx.set_max_buffer_load(0.0)
    sys.stderr.write("phy.rx.nrx() = %s\n" % (phy.rx.nrx()))
    sys.stderr.write("phy.tx.nrx() = %s\n" % (phy.tx.ntx()))
    sys.stderr.write("phy.rx.max_buffer_size() = %s\n" % (phy.rx.max_buffer_size()))
    phy.txpath.pad.set_npre(2)
    phy.txpath.pad.set_npost(2)
    mpif = MimoMPIF(options)
    mpif.set_transceiver(phy)

    global RATE_LIMIT
    if options.nchannels == 4:
        RATE_LIMIT = 32
    elif options.nchannels == 2:
        RATE_LIMIT = 16
    elif options.nchannels == 1:
        RATE_LIMIT = 8

    mpif.start()
    phy.start()

    mgr.SetMPIF(mpif)

    ch = None
    if options.fake_rf and options.enable_channel:
        Nodb = 10
        chmodel = hydra.phy.channel_model()
        chmodel.set_noise_power_db(Nodb)
        ch = Channel(chmodel, options)
        ch.connect_phy(phy)
        ch.start()

    if not options.enable_socket:
        f = FuncThread(bar, "bar", mpif)
        f.setDaemon(1)
        f.start()
    elif mpif.tx.socket_enable():
        sys.stderr.write("MPIF TXPORT = %s\n" % (mpif.tx.port()))
        sys.stderr.write("MPIF RXPORT = %s\n" % (mpif.rx.port()))

    # mgr.run()
    g = mgr.start()
    if options.disable_gui:
        sys.stderr.write("Press Ctrl-c to quit\n")
        try:
            while 1:
                time.sleep(4)
        except KeyboardInterrupt:
            sys.stderr.write("exiting ...\n")
    else:
        if g is not None:
            g.join()
    mgr.stop()

    """
    if (len(TxData)>0):
        plot(numpy.abs(TxData) )
        grid()
        show()
    """

    if ch is not None:
        sys.stderr.write("CALLING Channel.stop()\n")
        ch.stop()
    sys.stderr.write("CALLING mpif.shutdown()\n")
    mpif.shutdown()
    for dd in range(8):
        time.sleep(0.5)
        sys.stderr.write(".")
    sys.stderr.write("\n")

    p = persist()  # start a persitent thread