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
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
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)