示例#1
0
文件: csma.py 项目: jmccormack200/SDR
 def add_options(cls, parser):
     """Add options to parser."""
     tunclient_defaults.add_options(parser)
     if not parser.has_option("--phy-addr"):
         parser.add_option("", "--phy-addr", type="string", \
                 default=cls.phy_addr, \
                 help="address for PHY side of MPIF [default=%default]")
     if not parser.has_option("--mtu"):
         parser.add_option("", "--mtu", type="int", default=cls.mtu, \
                 help="Maximum transmission unit that can be received from tun/tap interface [default=%default]")
     if not parser.has_option("--sifs"):
         parser.add_option("", "--sifs", type="float", default=cls.sifs, \
                 help="Short interframe spacing [default=%default]")
     if not parser.has_option("--difs"):
         parser.add_option("", "--difs", type="float", default=cls.difs, \
                 help="Distributed interframe spacing [default=%default]")
     if not parser.has_option("--slottime"):
         parser.add_option("", "--slottime", type="float",
                 default=cls.slottime, \
                 help="Contention slot duration [default=%default]")
     if not parser.has_option("--ackduration"):
         parser.add_option("", "--ackduration", type="float",
                 default=cls.ackduration, \
                 help="Duration of acknowledgement (used to calculate timeout) [default=%default]")
     MimoMPIF.add_parser_options(parser)
     return parser
示例#2
0
def main():
    """ Parser Options """
    parser = OptionParser (option_class=eng_option)
    MimoMPIF.add_parser_options (parser)
    if not parser.has_option("--phy-addr"):
        parser.add_option("", "--phy-addr", type="string", default="0.0.0.0", \
                help="set address for PHY [default=%default]")
    (options, args) = parser.parse_args ()
    if len(args)!=0:
        parser.print_help()
        sys.exit(1)

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

    mac = mimo.mac(options.phy_addr, options.mac_port)
    mac.start()

    #f = FuncThread(send_data, "tx-data", mac)
    f = FuncThread(send_80211data, "tx-data", mac)
    f.setDaemon(1)
    g = FuncThread(recv_data, "rx-data", mac)
    g.setDaemon(1)
    h = FuncThread(recv_ctrl, "rx-ctrl", mac)
    h.setDaemon(1)

    for x in [f,g,h]: x.start()
    #for x in [g,h]: x.start()

    raw_input("Press Enter to quit:\n")
    mac.shutdown()

    p = persist()  # start a persitent thread
示例#3
0
 def add_parser_options (parser):
     if not parser.has_option("-v"):
         parser.add_option ("-v", "--verbose", type="int", \
                 default=default_mimo_control_setup.d_options['verbose'], \
                 help="set verbose level of output [default=%default]")
     if not parser.has_option("--enable-beamforming"):
         parser.add_option("", "--enable-beamforming", action="store_true", \
                 default=default_mimo_control_setup.d_options['enable_beamforming'],
                 help="enable transmit beamforming in the PHY [default=%default]")
     PyHydra.control.add_parser_options (parser)
     MimoMPIF.add_parser_options (parser)