本文整理汇总了Python中transmit_path.transmit_path.add_options函数的典型用法代码示例。如果您正苦于以下问题:Python add_options函数的具体用法?Python add_options怎么用?Python add_options使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了add_options函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: add_options
def add_options(normal, expert):
"""
Adds usrp-specific options to the Options Parser
"""
add_freq_option(normal)
normal.add_option("-T", "--tx-subdev-spec", type="subdev", default=None,
help="select USRP Tx side A or B")
normal.add_option("-v", "--verbose", action="store_true", default=False)
expert.add_option("", "--tx-freq", type="eng_float", default=None,
help="set transmit frequency to FREQ [default=%default]", metavar="FREQ")
expert.add_option("-i", "--interp", type="intx", default=256,
help="set fpga interpolation rate to INTERP [default=%default]")
normal.add_option("-R", "--rx-subdev-spec", type="subdev", default=None,
help="select USRP Rx side A or B")
normal.add_option("", "--rx-gain", type="eng_float", default=None, metavar="GAIN",
help="set receiver gain in dB [default=midpoint]. See also --show-rx-gain-range")
normal.add_option("", "--show-rx-gain-range", action="store_true", default=False,
help="print min and max Rx gain available on selected daughterboard")
normal.add_option("-v", "--verbose", action="store_true", default=False)
expert.add_option("", "--rx-freq", type="eng_float", default=None,
help="set Rx frequency to FREQ [default=%default]", metavar="FREQ")
expert.add_option("-d", "--decim", type="intx", default=128,
help="set fpga decimation rate to DECIM [default=%default]")
expert.add_option("", "--snr", type="eng_float", default=30,
help="set the SNR of the channel in dB [default=%default]")
#other necessary options
transmit_path.add_options(normal, expert)
receive_path.add_options(normal, expert)
blks2.ofdm_mod.add_options(normal, expert)
blks2.ofdm_demod.add_options(normal, expert)
fusb_options.add_options(expert)
开发者ID:jfwang213,项目名称:graduate_demo,代码行数:35,代码来源:transceiver.py
示例2: parse_args
def parse_args():
# enable real time scheduling
r = gr.enable_realtime_scheduling()
if r != gr.RT_OK:
print "Warning: failed to enable real time scheduling"
# parse parameters
parser = OptionParser(option_class=eng_option, conflict_handler="resolve")
expert_grp = parser.add_option_group("Expert")
expert_grp.add_option("-c", "--carrier_threshold", type="eng_float", default=meta_data.default_carrier_thredshold,
help="set carrier detect threshold (dB) [default=%default]")
parser.add_option("-i","--id", default=meta_data.default_id,
help="id: check out meta_data.py also.")
receive_path.add_options(parser, expert_grp)
uhd_receiver.add_options(parser)
digital.ofdm_demod.add_options(parser, expert_grp)
transmit_path.add_options(parser, expert_grp)
digital.ofdm_mod.add_options(parser, expert_grp)
uhd_transmitter.add_options(parser)
(options, args) = parser.parse_args ()
if int(options.id) == meta_data.default_id:
print int(options.id)
sys.stderr.write("You must specify -i ID or --id ID\n")
parser.print_help(sys.stderr)
sys.exit(1)
else:
options.rx_freq = meta_data.channels_freq_table[meta_data.init_channel_num] * 1e9
options.tx_freq = meta_data.channels_freq_table[meta_data.init_channel_num] * 1e9
options.bandwidth = (meta_data.default_bandwidth * 10000000.0)/4
return options
开发者ID:xiaov58,项目名称:Coolest_Path,代码行数:32,代码来源:crn_main.py
示例3: main
def main():
parser = OptionParser(conflict_handler="resolve")
expert_grp = parser.add_option_group("Expert")
tx_top_block.add_options(parser)
transmit_path.add_options(parser, expert_grp)
uhd_transmitter.add_options(parser)
(options, args) = parser.parse_args()
if options.cfg is not None:
(options,args) = parser.parse_args(files=[options.cfg])
print "Using configuration file %s" % ( options.cfg )
tb = tx_top_block(options)
if options.dot_graph:
# write a dot graph of the flowgraph to file
dot_str = tb.dot_graph()
file_str = os.path.expanduser('tx_ofdm.dot')
dot_file = open(file_str,'w')
dot_file.write(dot_str)
dot_file.close()
try:
tb.run()
except [[KeyboardInterrupt]]:
pass
开发者ID:WindyCitySDR,项目名称:gr-ofdm,代码行数:25,代码来源:tx.py
示例4: add_options
def add_options(normal, expert):
"""
Adds usrp-specific options to the Options Parser
"""
common_tx_rx_usrp_options(normal,expert)
transmit_path.add_options(normal,expert)
normal.add_option("-T", "--tx-subdev-spec", type="subdev", default=None,
help="select USRP Tx side A or B")
expert.add_option("", "--tx-freq", type="eng_float", default=None,
help="set transmit frequency to FREQ [default=%default]", metavar="FREQ")
normal.add_option("", "--measure", action="store_true", default=False,
help="enable troughput measure, usrp disabled");
normal.add_option("", "--dyn-freq", action="store_true", default=False,
help="enable troughput measure, usrp disabled");
expert.add_option("", "--snr", type="eng_float", default=None,
help="Simulate AWGN channel");
expert.add_option("", "--freqoff", type="eng_float", default=None,
help="Simulate frequency offset [default=%default]")
expert.add_option("", "--samplingoffset", type="eng_float", default=None,
help="Simulate sampling frequency offset [default=%default]")
expert.add_option("", "--berm", action="store_true", default=False,
help="Enable static AWGN power for BER measurement")
expert.add_option("", "--online-work", action="store_true", default=False,
help="Force the ofdm transmitter to work during file record [default=%default]")
normal.add_option("", "--from-file", type="string", default=None,
help="Sent recorded stream with usrp")
normal.add_option("", "--to-file", type="string", default=None,
help="Record transmitter to disk, not being sent to usrp")
expert.add_option("", "--force-filter", action="store_true", default=False,
help="force filter use while transmitting to file or measuring")
expert.add_option("", "--nullsink", action="store_true",
default=False,
help="Throw away samples")
normal.add_option("-e", "--interface", type="string", default="eth0",
help="select Ethernet interface, default is eth0")
normal.add_option("-m", "--mac-addr", type="string", default="",
help="select USRP by MAC address, default is auto-select")
normal.add_option("", "--usrp2", action="store_true", default=False,
help="Use USRP2 Interface")
expert.add_option("", "--record", action="store_true",
default=False,
help="Record transmission stream")
expert.add_option("", "--stations", type="intx", default=1,
help="Mobile station count")
normal.add_option("", "--coding", action="store_true",
default=False,
help="Enable channel coding")
expert.add_option("", "--est-preamble", type="int", default=1,
help="the number of channel estimation preambles (1 or 2)")
开发者ID:WindyCitySDR,项目名称:gr-ofdm,代码行数:60,代码来源:tx_n.py
示例5: main
def main():
def send_pkt(payload='', eof=False):
return tb.txpath.send_pkt(payload, eof)
parser = OptionParser(option_class=eng_option, conflict_handler="resolve")
expert_grp = parser.add_option_group("Expert")
parser.add_option("-s", "--size", type="eng_float", default=400,
help="set packet size [default=%default]")
parser.add_option("-M", "--megabytes", type="eng_float", default=1.0,
help="set megabytes to transmit [default=%default]")
parser.add_option("","--discontinuous", action="store_true", default=False,
help="enable discontinuous mode")
parser.add_option("","--from-file", default=None,
help="use intput file for packet contents")
parser.add_option("","--to-file", default=None,
help="Output file for modulated samples")
transmit_path.add_options(parser, expert_grp)
digital.ofdm_mod.add_options(parser, expert_grp)
uhd_transmitter.add_options(parser)
(options, args) = parser.parse_args ()
# build the graph
tb = my_top_block(options)
r = gr.enable_realtime_scheduling()
if r != gr.RT_OK:
print "Warning: failed to enable realtime scheduling"
tb.start() # start flow graph
# generate and send packets
nbytes = int(1e6 * options.megabytes)
n = 0
pktno = 0
pkt_size = int(options.size)
while n < nbytes:
if options.from_file is None:
# data = (pkt_size - 2) * (pktno & 0xff)
data = (pkt_size - 2) * 'a'
else:
data = source_file.read(pkt_size - 2)
if data == '':
break;
payload = struct.pack('!H', pktno & 0xffff) + data
send_pkt(payload)
n += len(payload)
# sys.stderr.write('.')
if options.discontinuous and pktno % 5 == 4:
time.sleep(1)
pktno += 1
# print pktno, ' '
print('payload = ', payload)
send_pkt(eof=True)
tb.wait() # wait for it to finish
开发者ID:cloudygoose,项目名称:gnuradio,代码行数:60,代码来源:benchmark_tx_test.py
示例6: main
def main():
global file
def send_pkt(payload="", eof=False):
return tb.txpath.send_pkt(payload, eof)
mods = digital.modulation_utils.type_1_mods()
parser = OptionParser(option_class=eng_option, conflict_handler="resolve")
expert_grp = parser.add_option_group("Expert")
parser.add_option(
"-m",
"--modulation",
type="choice",
choices=mods.keys(),
default="psk",
help="Select modulation from :%s [default=%%default]" % (", ".join(mods.keys()),),
)
parser.add_option("-s", "--size", type="eng_float", default=1500, help="set packet size [default=%default]")
parser.add_option("", "--from-file", default=None, help="Use input file for packet contents")
parser.add_option("", "--samples-file", default=None, help="Output file for modulated samples")
transmit_path.add_options(parser, expert_grp)
for mod in mods.values():
mod.add_options(expert_grp)
(options, args) = parser.parse_args()
if len(args) != 0:
parser.print_help()
sys.exit(1)
if options.from_file is not None:
source_file = open(options.from_file, "r")
tb = loop_top_block(mods[options.modulation], options)
# do we need to do this for our test bench?
r = gr.enable_realtime_scheduling()
if r != gr.RT_OK:
print "Warning: failed to enable realtime scheduling"
tb.start()
pkt_size = int(options.size)
while True:
data = source_file.read(pkt_size)
if data == "":
break
# payload = struct.pack('!H', pktno & 0xffff) + data
payload = data
send_pkt(payload)
开发者ID:randyp1248,项目名称:darpa,代码行数:56,代码来源:ut_tx.py
示例7: main
def main():
parser = OptionParser(conflict_handler="resolve")
expert_grp = parser.add_option_group("Expert")
ofdm_mrrc_benchmark.add_options(parser, expert_grp)
transmit_path.add_options(parser, expert_grp)
receive_path.add_options(parser, expert_grp)
fusb_options.add_options(expert_grp)
parser.add_option(
"-c", "--cfg",
action="store", type="string", default=None,
help="Specifiy configuration file, default: none",
config="false" )
(options, args) = parser.parse_args()
if options.cfg is not None:
(options,args) = parser.parse_args(files=[options.cfg])
print "Using configuration file %s" % ( options.cfg )
benchmark = ofdm_mrrc_benchmark(options)
runtime = benchmark
r = gr.enable_realtime_scheduling()
if r != gr.RT_OK:
print "Couldn't enable realtime scheduling"
else:
print "Enabled realtime scheduling"
try:
if options.dot_graph:
string_benchmark = runtime.dot_graph()
filetx = os.path.expanduser('benchmark_mrrc_ofdm.dot')
dot_file = open(filetx,'w')
dot_file.write(string_benchmark)
dot_file.close()
runtime.run()
#runtime.start()
try:
tx.txpath._control._id_source.ready()
except:
pass
except KeyboardInterrupt:
runtime.stop()
runtime.wait()
if options.measure:
print "min",tx.m.get_min()
print "max",tx.m.get_max()
print "avg",tx.m.get_avg()
开发者ID:WindyCitySDR,项目名称:gr-ofdm,代码行数:55,代码来源:benchmark_mrrc.py
示例8: main
def main():
source_file = open("sample_audio", 'r')
def send_pkt(payload='', eof=False):
(no,) = (struct.unpack('!H', payload[0:2]))
print "sending packet %4d " % (no)
return tb.txpath.send_pkt(payload, eof)
def rx_callback(ok, payload):
(no,) = (struct.unpack('!H', payload[0:2]))
print "ok = %5s pktno = %4d " % (
ok, no)
mods = digital.modulation_utils.type_1_mods()
demods = digital.modulation_utils.type_1_demods()
# Create Options Parser:
parser = OptionParser (option_class=eng_option, conflict_handler="resolve")
expert_grp = parser.add_option_group("Expert")
parser.add_option("-m", "--modulation", type="choice", choices=mods.keys(),
default='psk',
help="Select modulation from: %s [default=%%default]"
% (', '.join(mods.keys()),))
parser.add_option("-s", "--size", type="eng_float", default=1500,
help="set packet size [default=%default]")
transmit_path.add_options(parser, expert_grp)
uhd_transmitter.add_options(parser)
receive_path.add_options(parser, expert_grp)
uhd_receiver.add_options(parser)
for mod in mods.values():
mod.add_options(expert_grp)
for mod in demods.values():
mod.add_options(expert_grp)
(options, args) = parser.parse_args ()
tb = my_top_block(mods[options.modulation], demods[options.modulation], rx_callback, options)
pkt_size = int(options.size)
data = source_file.read(pkt_size - 2)
sequence_no = 0
tb.start()
while data != '':
payload = struct.pack('!H', sequence_no & 0xffff) + data
send_pkt(payload)
data = source_file.read(pkt_size - 2)
sequence_no += 1
send_pkt(eof=True)
tb.wait()
开发者ID:manuts,项目名称:stop-and-wait-arq,代码行数:55,代码来源:independent_txrx.py
示例9: main
def main():
parser = OptionParser(conflict_handler="resolve")
expert_grp = parser.add_option_group("Expert")
ofdm_tx.add_options(parser, expert_grp)
transmit_path.add_options(parser, expert_grp)
fusb_options.add_options(expert_grp)
parser.add_option(
"-c", "--cfg",
action="store", type="string", default=None,
help="Specifiy configuration file, default: none",
config="false" )
(options, args) = parser.parse_args()
if options.cfg is not None:
(options,args) = parser.parse_args(files=[options.cfg])
print "Using configuration file %s" % ( options.cfg )
tx = ofdm_tx(options)
runtime = tx
r = gr.enable_realtime_scheduling()
if r != gr.RT_OK:
print "Couldn't enable realtime scheduling"
else:
print "Enabled realtime scheduling"
try:
orb = CORBA.ORB_init(sys.argv,CORBA.ORB_ID)
string_tx = runtime.dot_graph()
dot_file = open("text_tx.dot",'w')
dot_file.write(string_tx)
dot_file.close()
runtime.start()
try:
tx.txpath._control._id_source.ready()
except:
pass
orb.run()
except KeyboardInterrupt:
runtime.stop()
runtime.wait()
if options.measure:
print "min",tx.m.get_min()
print "max",tx.m.get_max()
print "avg",tx.m.get_avg()
开发者ID:WindyCitySDR,项目名称:gr-ofdm,代码行数:51,代码来源:tx_n.py
示例10: main
def main():
def send_pkt(payload='', eof=False):
return tb.txpath.send_pkt(payload, eof)
parser = OptionParser(option_class=eng_option, conflict_handler="resolve")
expert_grp = parser.add_option_group("Expert")
parser.add_option("-s", "--size", type="eng_float", default=400,
help="set packet size [default=%default]")
parser.add_option("-M", "--megabytes", type="eng_float", default=1.0,
help="set megabytes to transmit [default=%default]")
parser.add_option("","--discontinuous", action="store_true", default=False,
help="enable discontinuous mode")
parser.add_option("","--gain", type="eng_float", default=11.5,
help="set transmitter gain [default=%default]")
my_top_block.add_options(parser, expert_grp)
transmit_path.add_options(parser, expert_grp)
blks2.ofdm_mod.add_options(parser, expert_grp)
blks2.ofdm_demod.add_options(parser, expert_grp)
#fusb_options.add_options(expert_grp)
(options, args) = parser.parse_args ()
# build the graph
tb = my_top_block(options)
r = gr.enable_realtime_scheduling()
if r != gr.RT_OK:
print "Warning: failed to enable realtime scheduling"
tb.start() # start flow graph
# generate and send packets
nbytes = int(1e6 * options.megabytes)
n = 0
pktno = 0
pkt_size = int(options.size)
while n < nbytes:
#pktno % 65535 to account for sending very large amounts of data
send_pkt(struct.pack('!H', pktno % 65535) + (pkt_size - 2) * chr(pktno & 0xff))
n += pkt_size
sys.stderr.write('.')
if options.discontinuous and pktno % 5 == 1:
time.sleep(1)
pktno += 1
send_pkt(eof=True)
tb.wait() # wait for it to finish
开发者ID:SanabriaRusso,项目名称:uhd_ofdm,代码行数:50,代码来源:benchmark_ofdm_tx.py
示例11: add_options
def add_options(normal, expert_grp, channel_grp):
mods = digital.modulation_utils.type_1_mods()
for mod in mods.values():
mod.add_options(expert_grp)
usrp_options.add_options(normal,expert_grp)
uhd_transmitter.add_options(expert_grp)
uhd_receiver.add_options(expert_grp)
transmit_path.add_options(normal,expert_grp)
receive_path.add_options(normal,expert_grp)
channel_emulator.add_options(normal,channel_grp)
expert_grp.add_option("","--use-whitener-offset", action="store_true", default=False,
help="make sequential packets use different whitening")
expert_grp.add_option("","--down-sample-rate", type="intx", default=1,
help="Select the software down-sampling rate [default=%default]")
开发者ID:ychang,项目名称:gr-gtlib,代码行数:19,代码来源:cnPHY.py
示例12: main
def main():
def send_pkt(payload='', eof=False):
return tb.txpath.send_pkt(payload, eof)
parser = OptionParser(option_class=eng_option, conflict_handler="resolve")
expert_grp = parser.add_option_group("Expert")
parser.add_option("-s", "--size", type="eng_float", default=400,
help="set packet size [default=%default]")
transmit_path.add_options(parser, expert_grp)
digital.ofdm_mod.add_options(parser, expert_grp)
uhd_transmitter.add_options(parser)
(options, args) = parser.parse_args ()
# build the graph
tb = my_top_block(options)
r = gr.enable_realtime_scheduling()
if r != gr.RT_OK:
print "Warning: failed to enable realtime scheduling"
tb.start() # start flow graph
# generate and send packets
pktno = 0
pkt_size = int(options.size)
while pktno < 200:
pktno += 1
data = (pkt_size - 2) * chr(pktno & 0xff)
payload = struct.pack('!H', pktno & 0xffff) + data
send_pkt(payload)
sys.stderr.write('.')
time.sleep(1)
send_pkt(eof=True)
tb.wait() # wait for it to finish
开发者ID:xiaov58,项目名称:Coolest_Path,代码行数:40,代码来源:benchmark_tx.py
示例13: main
def main():
mods = digital.modulation_utils.type_1_mods()
demods = digital.modulation_utils.type_1_demods()
parser = OptionParser(option_class=eng_option, conflict_handler="resolve")
expert_grp = parser.add_option_group("Expert")
parser.add_option("-m", "--modulation", type="choice", choices=mods.keys(),
default='bpsk',
help="Select modulation from: %s [default=%%default]"
% (', '.join(mods.keys()),))
parser.add_option("-s", "--size", type="eng_float", default=100,
help="set packet size [default=%default]")
parser.add_option("-M", "--megabytes", type="eng_float", default=1.0,
help="set megabytes to transmit [default=%default]")
parser.add_option("","--discontinuous", action="store_true", default=False,
help="enable discontinous transmission (bursts of 5 packets)")
parser.add_option("","--from-file", default=None,
help="use intput file for packet contents")
parser.add_option("","--to-file", default=None,
help="Output file for modulated samples")
parser.add_option("", "--mac", default=None , help = "MAC addres")
parser.add_option("", "--version", default='6' , help = "gnuradio version, default 6 (3.6)")
parser.add_option("", "--mac_dst", default=None , help = "Destination MAC addres")
tp36.add_options(parser, expert_grp)
tp37.add_options(parser, expert_grp)
uhd_transmitter.add_options(parser)
rp36.add_options(parser, expert_grp)
rp37.add_options(parser, expert_grp)
uhd_receiver.add_options(parser)
for mod in demods.values():
mod.add_options(expert_grp)
for mod in mods.values():
mod.add_options(expert_grp)
(options, args) = parser.parse_args ()
if len(args) != 0:
parser.print_help()
sys.exit(1)
if options.from_file is not None:
source_file = open(options.from_file, 'r')
r = gr.enable_realtime_scheduling()
if r != gr.RT_OK:
print "Warning: failed to enable realtime scheduling"
q_tx =Queue.Queue(10)
q_rx =Queue.Queue(10)
l1=StartL1(q_rx,q_tx,options,mods[options.modulation],demods[options.modulation])
l1.start()
schL1_L2= StartSchedL1_L2(q_rx,q_tx,options.mac)
schL1_L2.start()
# POR AHORA NO USO CAPA MAC
# l2Mgmt=StartL2Mgmt(schL1_L2.mgmt_q1,schL1_L2.tx_ev_q,options.mac,"256","Red IIE")
# l2Mgmt.start()
l3= schedLayer3.Layer3(schL1_L2.tx_ev_q,schL1_L2.data_q,'/dev/net/tun',options.mac,options.mac_dst)
c = raw_input('Press #z to end, or #w to test commands :')
while c != "#z":
c = raw_input('Press #z to end, or #w to test commands :')
print "Program ends"
l3.stop()
schL1_L2.stop()
l1.stop()
#POR AHORA NO ESTOY USANDO CAPA 2
# l2.stop()
exit(0)
开发者ID:git-artes,项目名称:GNUnetwork,代码行数:70,代码来源:run_nodeL3.py
示例14: main
def main():
global n_right
n_right = 0
start_time = time.time()
parser = OptionParser (option_class=eng_option, conflict_handler="resolve")
expert_grp = parser.add_option_group("Expert")
parser.add_option("-m", "--modulation", type="choice", choices=['bpsk', 'qpsk'],
default='bpsk',
help="Select modulation from: bpsk, qpsk [default=%%default]")
expert_grp.add_option("-c", "--carrier-threshold", type="eng_float", default=40,
help="set carrier detect threshold (dB) [default=%default]")
parser.add_option("-v","--verbose", action="store_true", default=False)
# linklab, add option to indicate sender or receiver
parser.add_option("-s","--sender", action="store_true", default=False)
parser.add_option("-r","--receiver", action="store_true", default=False)
usrp_graph.add_options(parser, expert_grp)
transmit_path.add_options(parser, expert_grp)
receive_path.add_options(parser, expert_grp)
blks2.ofdm_mod.add_options(parser, expert_grp)
blks2.ofdm_demod.add_options(parser, expert_grp)
fusb_options.add_options(expert_grp)
(options, args) = parser.parse_args ()
options.carrier_map = SYNC_MAP
if len(args) != 0:
parser.print_help(sys.stderr)
sys.exit(1)
if options.rx_freq is None or options.tx_freq is None:
sys.stderr.write("You must specify -f FREQ or --freq FREQ\n")
parser.print_help(sys.stderr)
sys.exit(1)
# linklab, check if the current node is either a sender or a receiver
if options.sender and options.receiver:
sys.stderr.write("You cannot specify both sender and receiver\n")
sys.exit(1)
if (not options.sender) and (not options.receiver):
sys.stderr.write("You must specify either sender or receiver\n")
sys.exit(1)
#
# Attempt to enable realtime scheduling
r = gr.enable_realtime_scheduling()
if r == gr.RT_OK:
realtime = True
else:
realtime = False
print "Note: failed to enable realtime scheduling"
# If the user hasn't set the fusb_* parameters on the command line,
# pick some values that will reduce latency.
if options.fusb_block_size == 0 and options.fusb_nblocks == 0:
if realtime: # be more aggressive
options.fusb_block_size = gr.prefs().get_long('fusb', 'rt_block_size', 1024)
options.fusb_nblocks = gr.prefs().get_long('fusb', 'rt_nblocks', 16)
else:
options.fusb_block_size = gr.prefs().get_long('fusb', 'block_size', 4096)
options.fusb_nblocks = gr.prefs().get_long('fusb', 'nblocks', 16)
#print "fusb_block_size =", options.fusb_block_size
#print "fusb_nblocks =", options.fusb_nblocks
# instantiate the MAC
# linklab, use ssma instead of csma
mac = ss_mac(options.sender, start_time, verbose=True)
# update freq_offset
options.rx_freq += get_freq_offset()
options.tx_freq += get_freq_offset()
print "RX frequency", options.rx_freq
print "TX frequency", options.tx_freq
# build the graph (PHY)
tb = usrp_graph(mac.ReceivePacket, options)
mac.set_flow_graph(tb) # give the MAC a handle for the PHY
#if fg.txpath.bitrate() != fg.rxpath.bitrate():
# print "WARNING: Transmit bitrate = %sb/sec, Receive bitrate = %sb/sec" % (
# eng_notation.num_to_str(fg.txpath.bitrate()),
# eng_notation.num_to_str(fg.rxpath.bitrate()))
print "modulation: %s" % (options.modulation,)
print "freq: %s" % (eng_notation.num_to_str(options.tx_freq))
# print "bitrate: %sb/sec" % (eng_notation.num_to_str(tb.txpath.bitrate()),)
# print "samples/symbol: %3d" % (tb.txpath.samples_per_symbol(),)
# print "interp: %3d" % (tb.txpath.interp(),)
#.........这里部分代码省略.........
开发者ID:tyc85,项目名称:nwsdr-3.6.3-dsc,代码行数:101,代码来源:ssma.py
示例15: main
def main():
def send_pkt(payload='', eof=False):
return tb.txpath.send_pkt(payload, eof)
mods = digital.modulation_utils.type_1_mods()
parser = OptionParser(option_class=eng_option, conflict_handler="resolve")
expert_grp = parser.add_option_group("Expert")
parser.add_option("-m", "--modulation", type="choice", choices=mods.keys(),
default='dqpsk',
help="Select modulation from: %s [default=%%default]"
% (', '.join(mods.keys()),))
# parser.add_option("-s", "--size", type="eng_float", default=1442,
# help="set packet size [default=%default]")
# parser.add_option("-M", "--megabytes", type="eng_float", default=1.0,
# help="set megabytes to transmit [default=%default]")
parser.add_option("","--discontinuous", action="store_true", default=False,
help="enable discontinous transmission (bursts of 5 packets)")
parser.add_option("","--from-file", default=None,
help="use intput file for packet contents")
parser.add_option("","--to-file", default=None,
help="Output file for modulated samples")
transmit_path.add_options(parser, expert_grp)
uhd_transmitter.add_options(parser)
for mod in mods.values():
mod.add_options(expert_grp)
(options, args) = parser.parse_args ()
if len(args) != 0:
parser.print_help()
sys.exit(1)
if options.from_file is not None:
source_file = open(options.from_file, 'r')
# build the graph
tb = my_top_block(mods[options.modulation], options)
ftb = filter_top_block(options)
r = gr.enable_realtime_scheduling()
if r != gr.RT_OK:
print "Warning: failed to enable realtime scheduling"
tb.start() # start flow graph
ftb.start()
# log parameter to OML
cmd1 = "/root/OML/omlcli --out h2_benchmark --line \""
cmd1 = cmd1 + " tx-freq=" + str(options.tx_freq)
cmd1 = cmd1 + " modulation=" + str(options.modulation)
cmd1 = cmd1 + " tx-gain=" + str(options.tx_gain)
cmd1 = cmd1 + " bitrate=" + str(options.bitrate)
cmd1 = cmd1 + " sps=" + str(options.samples_per_symbol)
cmd1 = cmd1 + "\""
from subprocess import os
os.system(cmd1)
# Fetch packets from server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(10)
TCP_IP='10.10.0.51'
TCP_PORT=5123
try:
s.connect((TCP_IP, TCP_PORT))
except socket.timeout:
print"Connection timed out, try again later"
return
except socket.error:
print"Connection error"
return
print "Setting frequency to %d\n" % (options.tx_freq+625000)
tb.sink.set_freq(options.tx_freq+625000)
n = 0
pktno = 0
pkt_size = int(1442)
MESSAGE = struct.pack('!l',pkt_size-2)
while 1: #n < nbytes:
if options.from_file is None:
try:
s.send(MESSAGE)
data=s.recv(pkt_size-2)
except socket.timeout:
print"Connection timed out, try again later"
return
except socket.error:
print"Connection closed"
return
if data.__len__() < 8:
#.........这里部分代码省略.........
开发者ID:randyp1248,项目名称:darpa,代码行数:101,代码来源:benchmark_tx3.py
示例16: main
def main():
def send_pkt(payload='', eof=False):
return tb.txpath.send_pkt(payload, eof)
global n_rcvd, n_right
n_rcvd = 0
n_right = 0
def rx_callback(ok, payload):
global n_rcvd, n_right
(pktno,) = struct.unpack('!H', payload[0:2])
n_rcvd += 1
if ok:
n_right += 1
#print "ok = %5s pktno = %4d n_rcvd = %4d n_right = %4d" % (
# ok, pktno, n_rcvd, n_right)
mods = digital.modulation_utils.type_1_mods()
demods = digital.modulation_utils.type_1_demods()
parser = OptionParser(option_class=eng_option, conflict_handler="resolve")
expert_grp = parser.add_option_group("Expert")
parser.add_option("-m", "--modulation", type="choice", choices=mods.keys(),
default='psk',
help="Select modulation from: %s [default=%%default]"
% (', '.join(mods.keys()),))
parser.add_option("-s", "--size", type="eng_float", default=1500,
help="set packet size [default=%default]")
parser.add_option("-M", "--megabytes", type="eng_float", default=1.0,
help="set megabytes to transmit [default=%default]")
parser.add_option("","--discontinuous", action="store_true", default=False,
help="enable discontinous transmission (bursts of 5 packets)")
parser.add_option("","--from-file", default=None,
help="use intput file for packet contents")
parser.add_option("","--to-file", default=None,
help="Output file for modulated samples")
transmit_path.add_options(parser, expert_grp)
uhd_transmitter.add_options(parser)
for mod in mods.values():
mod.add_options(expert_grp)
(options, args) = parser.parse_args ()
if len(args) != 0:
parser.print_help()
sys.exit(1)
if options.from_file is not None:
source_file = open(options.from_file, 'r')
# build the graph
tb = my_top_block(mods[options.modulation], demods[options.modulation], rx_callback, options)
r = gr.enable_realtime_scheduling()
if r != gr.RT_OK:
print "Warning: failed to enable realtime scheduling"
tb.start() # start flow graph
#t = threading.Thread(target=dowork, args=(), name='worker')
#t.start()
# generate and send packets
nbytes = int(1e6 * options.megabytes)
n = 0
sense_n=1
pktno = 0
pkt_size = int(options.size)
while n < nbytes:
if pktno%1000 == 0 and sense_n==1: #sence once
#time.sleep(1)
#tb.txgate.set_enabled(True)
#time.sleep(.01)
#tb.sensegate.set_enabled(True) #t
#avail_subc_bin = tb.sensepath.GetAvailableSpectrum()
#avail_subc_str = subc_bin2str(avail_subc_bin)
# print avail_subc_bin
fftout=tb.sensepath.FFTresult()
#fftout=tb.sensepath.GetPSD()
sense_n=0
#tb.txgate.set_enabled(True)
#tb.sensegate.set_enabled(False)
else:
# linklab, loop to empty the lower layer buffers to avoid detecting old signals
#send_pkt(eof=False)
sense_n=1
#.........这里部分代码省略.........
开发者ID:tyc85,项目名称:nwsdr-3.6.3-dsc,代码行数:101,代码来源:benchmarkmulti_tx.py
示例17: main
def main():
global pkts_rcvd
global EOF_rcvd
global num_acks
###########################
#set up options
###########################
parser = OptionParser (option_class=eng_option, conflict_handler="resolve")
expert_grp = parser.add_option_group("Expert")
parser.add_option("-m", "--modulation", type="choice", choices=['bpsk', 'qpsk'],
default='bpsk',
help="Select modulation from: bpsk, qpsk [default=%%default]")
parser.add_option("-v","--verbose", action="store_true", default=False)
parser.add_option("-p","--packets", type="int", default = 3000,
help="set number of packets to send [default=%default]")
parser.add_option("", "--address", type="string", default = None,
help="set the address of the node (addresses are a single char) [default=%default]")
expert_grp.add_option("-c", "--carrier-threshold", type="eng_float", default=-20,
help="set carrier detect threshold (dB) [default=%default]")
parser.add_option("", "--pkt-gen-time", type="eng_float", default=.05,
help="set the time between sending each packet (s) [default=%default]")
parser.add_option("", "--pkt-padding", type="int", default=1000,
help="pad packet with pkt-padding number of extra chars [default=%default]")
parser.add_option("","--autoselect-freq", action="store_true", default=False)
parser.add_option("", "--test-time", type="int", default=500,
help="number of seconds to run the test for [default=%default]")
usrp_graph.add_options(parser, expert_grp)
transmit_path.add_options(parser, expert_grp)
receive_path.add_options(parser, expert_grp)
blks2.ofdm_mod.add_options(parser, expert_grp)
blks2.ofdm_demod.add_options(parser, expert_grp)
cs_mac.add_options(parser, expert_grp)
sense_path.add_options(parser, expert_grp)
(options, args) = parser.parse_args ()
if len(args) != 0:
parser.print_help(sys.stderr)
sys.exit(1)
#if options.rx_freq is None or options.tx_freq is None:
# sys.stderr.write("You must specify -f FREQ or --freq FREQ\n")
# parser.print_help(sys.stderr)
# sys.exit(1)
if options.address is None:
sys.stderr.write("You must specify a node address\n")
parser.print_help(sys.stderr)
sys.exit(1)
###########################
#set PHY and MAC
###########################
# Attempt to enable realtime scheduling
r = gr.enable_realtime_scheduling()
if r == gr.RT_OK:
realtime = True
else:
realtime = False
print "Note: failed to enable realtime scheduling"
pkts_sent = 0
# instantiate the MAC
mac = cs_mac(options, rx_callback)
# build
|
请发表评论