simulations: adapt makefile

This commit is contained in:
Bastian Bloessl
2015-11-30 08:34:46 -08:00
parent 72d089d9cc
commit 3ae290ec87
+20 -48
View File
@@ -1,57 +1,29 @@
ifdef DIR SHELL=/bin/bash
result_dir = $(DIR)
else
DIR := $(shell date '+%m_%d__%H_%M_%S')
result_dir := result_$(DIR)
endif
trials := 10 MESSAGES=100
packets := 50
min_snr := -2
max_snr := 25
snr_steps := 1
interval := 100
# logfile name: loop_(trials)_(npackets)_(snr)_(encoding)_interval PCAPFILES=$(shell python -c 'import itertools; import numpy as np; print(" ".join(["results/sim_%d_%d_%.1f_.pcap" % x for x in itertools.product(range(20), range(8), np.arange(0, 30,.5))]))')
LOGFILES=$(shell /bin/bash -c "echo $(result_dir)/loop_{1..$(trials)}_$(packets)_{$(min_snr)..$(max_snr)..$(snr_steps)}.0_{0..7}_$(interval).log")
PCAPFILES=$(shell /bin/bash -c "echo $(result_dir)/ofdm_{1..$(trials)}_$(packets)_{$(min_snr)..$(max_snr)..$(snr_steps)}.0_{0..7}_$(interval).pcap")
all: $(result_dir)/plot.png all: pdr.pdf
# Will parse logfiles and create a plot pdr.pdf: plot.py results/all.csv
$(result_dir)/plot.png: $(LOGFILES) python -c 'execfile("./plot.py")'
./parse.py $(result_dir) $(trials)
%.pcap: sim.py: sim.grc
grcc -d . sim.grc
results/all.csv: $(PCAPFILES)
./parse.sh
%.pcap: sim.py
@echo $@ @echo $@
$(eval PARAMS=$(shell python -c "print \"$@\".split(\"/\")[1]")) mkdir -p results
@echo PARAMS=$(PARAMS) $(eval REPETITION=$(shell python -c "print \"$@\".split(\"_\")[1]"))
$(eval TRIAL=$(shell python -c "print \"$(PARAMS)\".split(\"_\")[1]")) $(eval ENCODING=$(shell python -c "print \"$@\".split(\"_\")[2]"))
$(eval NPKTS=$(shell python -c "print \"$(PARAMS)\".split(\"_\")[2]")) $(eval SNR=$(shell python -c "print \"$@\".split(\"_\")[3]"))
$(eval SNR=$(shell python -c "print \"$(PARAMS)\".split(\"_\")[3]")) @echo REPETITION=$(REPETITION)
$(eval ENC=$(shell python -c "print \"$(PARAMS)\".split(\"_\")[4]")) @echo ENCODING=$(ENCODING)
$(eval INTVL=$(shell python -c "print \"$(PARAMS)\".split(\"_\")[5][:-5]"))
@echo TRIAL=$(TRIAL)
@echo NPKTS=$(NPKTS)
@echo SNR=$(SNR) @echo SNR=$(SNR)
@echo ENC=$(ENC) ./sim.py --messages=$(MESSAGES) --encoding=$(ENCODING) --snr=$(SNR) --repetition=$(REPETITION)
@echo INTVL=$(INTVL)
$(shell mkdir -p $(result_dir))
./wifi_loopback_noGUI.py -t $(TRIAL) -n $(NPKTS) -c 1 -s $(SNR) -o 0 -e $(ENC) -i $(INTVL) -r $(result_dir)
sleep 1 sleep 1
%.log: $(PCAPFILES)
@echo $@
$(eval PARAMS=$(shell python -c "print \"$@\".split(\"/\")[1]"))
@echo PARAMS=$(PARAMS)
$(eval TRIAL=$(shell python -c "print \"$(PARAMS)\".split(\"_\")[1]"))
$(eval NPKTS=$(shell python -c "print \"$(PARAMS)\".split(\"_\")[2]"))
$(eval SNR=$(shell python -c "print \"$(PARAMS)\".split(\"_\")[3]"))
$(eval ENC=$(shell python -c "print \"$(PARAMS)\".split(\"_\")[4]"))
$(eval INTVL=$(shell python -c "print \"$(PARAMS)\".split(\"_\")[5][:-4]"))
@echo TRIAL=$(TRIAL)
@echo NPKTS=$(NPKTS)
@echo SNR=$(SNR)
@echo ENC=$(ENC)
@echo INTVL=$(INTVL)
tshark -r $(result_dir)/ofdm_$(TRIAL)_$(NPKTS)_$(SNR)_$(ENC)_$(INTVL).pcap > $@