sim: change directory structure
This commit is contained in:
+7
-1
@@ -1 +1,7 @@
|
|||||||
workspace/*/
|
build
|
||||||
|
examples/*.py
|
||||||
|
.cproject
|
||||||
|
.project
|
||||||
|
.pydevproject
|
||||||
|
.settings
|
||||||
|
*.pyc
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
Before Width: | Height: | Size: 76 KiB |
@@ -1,32 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
ntrials=20
|
|
||||||
|
|
||||||
if [ $1 ]
|
|
||||||
then
|
|
||||||
result_dir=$1
|
|
||||||
else
|
|
||||||
now=`date '+%m_%d__%H_%M_%S'`;
|
|
||||||
result_dir="result_$now"
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p $result_dir
|
|
||||||
rm -rf $result_dir/*
|
|
||||||
|
|
||||||
echo ">>> Storing results in ./$result_dir."
|
|
||||||
echo
|
|
||||||
|
|
||||||
for e in {0..3}
|
|
||||||
do
|
|
||||||
for s in `seq 1.0 2 9.0`
|
|
||||||
do
|
|
||||||
for t in `seq 1 1 $ntrials`
|
|
||||||
do
|
|
||||||
echo
|
|
||||||
echo ">>> >>> Running trial $t of $ntrials."
|
|
||||||
make result=$result_dir t=$t n=20 c=1 s=$s o=0 e=$e i=100
|
|
||||||
done
|
|
||||||
done
|
|
||||||
done
|
|
||||||
|
|
||||||
./parse.py $result_dir $ntrials
|
|
||||||
@@ -1,192 +0,0 @@
|
|||||||
#!/usr/bin/env python2
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
##################################################
|
|
||||||
# GNU Radio Python Flow Graph
|
|
||||||
# Title: Wifi Loopback Nogui
|
|
||||||
# Generated: Sat Nov 21 10:57:29 2015
|
|
||||||
##################################################
|
|
||||||
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
sys.path.append(os.environ.get('GRC_HIER_PATH', os.path.expanduser('~/.grc_gnuradio')))
|
|
||||||
|
|
||||||
from gnuradio import blocks
|
|
||||||
from gnuradio import channels
|
|
||||||
from gnuradio import eng_notation
|
|
||||||
from gnuradio import gr
|
|
||||||
from gnuradio.eng_option import eng_option
|
|
||||||
from gnuradio.filter import firdes
|
|
||||||
from optparse import OptionParser
|
|
||||||
from wifi_phy_hier import wifi_phy_hier # grc-generated hier_block
|
|
||||||
import foo
|
|
||||||
import ieee802_11
|
|
||||||
import math
|
|
||||||
import pmt
|
|
||||||
|
|
||||||
|
|
||||||
class wifi_loopback_noGUI(gr.top_block):
|
|
||||||
|
|
||||||
def __init__(self, chan_est=1, encoding=0, freq_offset=0, interval=500, nmessages=50, ntrials=0, resultdir="0", snr=10):
|
|
||||||
gr.top_block.__init__(self, "Wifi Loopback Nogui")
|
|
||||||
|
|
||||||
##################################################
|
|
||||||
# Parameters
|
|
||||||
##################################################
|
|
||||||
self.chan_est = chan_est
|
|
||||||
self.encoding = encoding
|
|
||||||
self.freq_offset = freq_offset
|
|
||||||
self.interval = interval
|
|
||||||
self.nmessages = nmessages
|
|
||||||
self.ntrials = ntrials
|
|
||||||
self.resultdir = resultdir
|
|
||||||
self.snr = snr
|
|
||||||
|
|
||||||
##################################################
|
|
||||||
# Variables
|
|
||||||
##################################################
|
|
||||||
self.out_buf_size = out_buf_size = 96000
|
|
||||||
|
|
||||||
##################################################
|
|
||||||
# Blocks
|
|
||||||
##################################################
|
|
||||||
self.wifi_phy_hier_0 = wifi_phy_hier(
|
|
||||||
encoding=encoding,
|
|
||||||
chan_est=chan_est,
|
|
||||||
)
|
|
||||||
self.ieee802_11_ofdm_mac_0 = ieee802_11.ofdm_mac(([0x23, 0x23, 0x23, 0x23, 0x23, 0x23]), ([0x42, 0x42, 0x42, 0x42, 0x42, 0x42]), ([0xff, 0xff, 0xff, 0xff, 0xff, 0xff]))
|
|
||||||
self.foo_wireshark_connector_0 = foo.wireshark_connector(127, False)
|
|
||||||
self.foo_periodic_msg_source_0 = foo.periodic_msg_source(pmt.intern("Hello World!"), interval, nmessages, True, False)
|
|
||||||
self.foo_packet_pad2_0 = foo.packet_pad2(False, False, 0.001, 1000, 1000)
|
|
||||||
(self.foo_packet_pad2_0).set_min_output_buffer(96000)
|
|
||||||
self.channels_channel_model_0 = channels.channel_model(
|
|
||||||
noise_voltage=.5**.5,
|
|
||||||
frequency_offset=freq_offset,
|
|
||||||
epsilon=1.0,
|
|
||||||
taps=(1.0, ),
|
|
||||||
noise_seed=0,
|
|
||||||
block_tags=False
|
|
||||||
)
|
|
||||||
self.blocks_null_sink_0 = blocks.null_sink(gr.sizeof_gr_complex*1)
|
|
||||||
self.blocks_multiply_const_vxx_0 = blocks.multiply_const_vcc((((10**(snr/10.0))**0.5)/(2**0.5), ))
|
|
||||||
self.blocks_file_sink_0_0 = blocks.file_sink(gr.sizeof_char*1, "" + resultdir + "/ofdm_" + str(ntrials) + "_" + str(nmessages) + "_" + str(snr) + "_" + str(encoding) + "_" + str(interval) + ".pcap", False)
|
|
||||||
self.blocks_file_sink_0_0.set_unbuffered(True)
|
|
||||||
|
|
||||||
##################################################
|
|
||||||
# Connections
|
|
||||||
##################################################
|
|
||||||
self.msg_connect((self.foo_periodic_msg_source_0, 'out'), (self.foo_wireshark_connector_0, 'in'))
|
|
||||||
self.msg_connect((self.foo_periodic_msg_source_0, 'out'), (self.ieee802_11_ofdm_mac_0, 'app in'))
|
|
||||||
self.msg_connect((self.ieee802_11_ofdm_mac_0, 'phy out'), (self.wifi_phy_hier_0, 'mac_in'))
|
|
||||||
self.msg_connect((self.wifi_phy_hier_0, 'mac_out'), (self.foo_wireshark_connector_0, 'in'))
|
|
||||||
self.connect((self.blocks_multiply_const_vxx_0, 0), (self.channels_channel_model_0, 0))
|
|
||||||
self.connect((self.channels_channel_model_0, 0), (self.wifi_phy_hier_0, 0))
|
|
||||||
self.connect((self.foo_packet_pad2_0, 0), (self.blocks_multiply_const_vxx_0, 0))
|
|
||||||
self.connect((self.foo_wireshark_connector_0, 0), (self.blocks_file_sink_0_0, 0))
|
|
||||||
self.connect((self.wifi_phy_hier_0, 1), (self.blocks_null_sink_0, 0))
|
|
||||||
self.connect((self.wifi_phy_hier_0, 0), (self.foo_packet_pad2_0, 0))
|
|
||||||
|
|
||||||
def get_chan_est(self):
|
|
||||||
return self.chan_est
|
|
||||||
|
|
||||||
def set_chan_est(self, chan_est):
|
|
||||||
self.chan_est = chan_est
|
|
||||||
self.wifi_phy_hier_0.set_chan_est(self.chan_est)
|
|
||||||
|
|
||||||
def get_encoding(self):
|
|
||||||
return self.encoding
|
|
||||||
|
|
||||||
def set_encoding(self, encoding):
|
|
||||||
self.encoding = encoding
|
|
||||||
self.blocks_file_sink_0_0.open("" + self.resultdir + "/ofdm_" + str(self.ntrials) + "_" + str(self.nmessages) + "_" + str(self.snr) + "_" + str(self.encoding) + "_" + str(self.interval) + ".pcap")
|
|
||||||
self.wifi_phy_hier_0.set_encoding(self.encoding)
|
|
||||||
|
|
||||||
def get_freq_offset(self):
|
|
||||||
return self.freq_offset
|
|
||||||
|
|
||||||
def set_freq_offset(self, freq_offset):
|
|
||||||
self.freq_offset = freq_offset
|
|
||||||
self.channels_channel_model_0.set_frequency_offset(self.freq_offset)
|
|
||||||
|
|
||||||
def get_interval(self):
|
|
||||||
return self.interval
|
|
||||||
|
|
||||||
def set_interval(self, interval):
|
|
||||||
self.interval = interval
|
|
||||||
self.blocks_file_sink_0_0.open("" + self.resultdir + "/ofdm_" + str(self.ntrials) + "_" + str(self.nmessages) + "_" + str(self.snr) + "_" + str(self.encoding) + "_" + str(self.interval) + ".pcap")
|
|
||||||
|
|
||||||
def get_nmessages(self):
|
|
||||||
return self.nmessages
|
|
||||||
|
|
||||||
def set_nmessages(self, nmessages):
|
|
||||||
self.nmessages = nmessages
|
|
||||||
self.blocks_file_sink_0_0.open("" + self.resultdir + "/ofdm_" + str(self.ntrials) + "_" + str(self.nmessages) + "_" + str(self.snr) + "_" + str(self.encoding) + "_" + str(self.interval) + ".pcap")
|
|
||||||
|
|
||||||
def get_ntrials(self):
|
|
||||||
return self.ntrials
|
|
||||||
|
|
||||||
def set_ntrials(self, ntrials):
|
|
||||||
self.ntrials = ntrials
|
|
||||||
self.blocks_file_sink_0_0.open("" + self.resultdir + "/ofdm_" + str(self.ntrials) + "_" + str(self.nmessages) + "_" + str(self.snr) + "_" + str(self.encoding) + "_" + str(self.interval) + ".pcap")
|
|
||||||
|
|
||||||
def get_resultdir(self):
|
|
||||||
return self.resultdir
|
|
||||||
|
|
||||||
def set_resultdir(self, resultdir):
|
|
||||||
self.resultdir = resultdir
|
|
||||||
self.blocks_file_sink_0_0.open("" + self.resultdir + "/ofdm_" + str(self.ntrials) + "_" + str(self.nmessages) + "_" + str(self.snr) + "_" + str(self.encoding) + "_" + str(self.interval) + ".pcap")
|
|
||||||
|
|
||||||
def get_snr(self):
|
|
||||||
return self.snr
|
|
||||||
|
|
||||||
def set_snr(self, snr):
|
|
||||||
self.snr = snr
|
|
||||||
self.blocks_file_sink_0_0.open("" + self.resultdir + "/ofdm_" + str(self.ntrials) + "_" + str(self.nmessages) + "_" + str(self.snr) + "_" + str(self.encoding) + "_" + str(self.interval) + ".pcap")
|
|
||||||
self.blocks_multiply_const_vxx_0.set_k((((10**(self.snr/10.0))**0.5)/(2**0.5), ))
|
|
||||||
|
|
||||||
def get_out_buf_size(self):
|
|
||||||
return self.out_buf_size
|
|
||||||
|
|
||||||
def set_out_buf_size(self, out_buf_size):
|
|
||||||
self.out_buf_size = out_buf_size
|
|
||||||
|
|
||||||
|
|
||||||
def argument_parser():
|
|
||||||
parser = OptionParser(option_class=eng_option, usage="%prog: [options]")
|
|
||||||
parser.add_option(
|
|
||||||
"-c", "--chan-est", dest="chan_est", type="intx", default=1,
|
|
||||||
help="Set chan_est [default=%default]")
|
|
||||||
parser.add_option(
|
|
||||||
"-e", "--encoding", dest="encoding", type="intx", default=0,
|
|
||||||
help="Set encoding [default=%default]")
|
|
||||||
parser.add_option(
|
|
||||||
"-o", "--freq-offset", dest="freq_offset", type="eng_float", default=eng_notation.num_to_str(0),
|
|
||||||
help="Set freq_offset [default=%default]")
|
|
||||||
parser.add_option(
|
|
||||||
"-i", "--interval", dest="interval", type="intx", default=500,
|
|
||||||
help="Set interval [default=%default]")
|
|
||||||
parser.add_option(
|
|
||||||
"-n", "--nmessages", dest="nmessages", type="intx", default=50,
|
|
||||||
help="Set nmessages [default=%default]")
|
|
||||||
parser.add_option(
|
|
||||||
"-t", "--ntrials", dest="ntrials", type="intx", default=0,
|
|
||||||
help="Set ntrials [default=%default]")
|
|
||||||
parser.add_option(
|
|
||||||
"-r", "--resultdir", dest="resultdir", type="string", default="0",
|
|
||||||
help="Set resultdir [default=%default]")
|
|
||||||
parser.add_option(
|
|
||||||
"-s", "--snr", dest="snr", type="eng_float", default=eng_notation.num_to_str(10),
|
|
||||||
help="Set snr [default=%default]")
|
|
||||||
return parser
|
|
||||||
|
|
||||||
|
|
||||||
def main(top_block_cls=wifi_loopback_noGUI, options=None):
|
|
||||||
if options is None:
|
|
||||||
options, _ = argument_parser().parse_args()
|
|
||||||
|
|
||||||
tb = top_block_cls(chan_est=options.chan_est, encoding=options.encoding, freq_offset=options.freq_offset, interval=options.interval, nmessages=options.nmessages, ntrials=options.ntrials, resultdir=options.resultdir, snr=options.snr)
|
|
||||||
tb.start()
|
|
||||||
tb.wait()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
||||||
Reference in New Issue
Block a user