summaryrefslogtreecommitdiff
path: root/ns3-simulations/parseEnergy.awk
diff options
context:
space:
mode:
authorLoic Guegan <manzerberdes@gmx.com>2019-04-24 16:49:40 +0200
committerLoic Guegan <manzerberdes@gmx.com>2019-04-24 16:49:40 +0200
commit1da73fb60964a92442d66454265897259120582a (patch)
tree3e64e0083ba73ad6c5b2aceca42ce5de726a197e /ns3-simulations/parseEnergy.awk
parent39507e0bb50cc77a377a506f8aee73d7ee306b0e (diff)
Add simulation scripts
Diffstat (limited to 'ns3-simulations/parseEnergy.awk')
-rwxr-xr-xns3-simulations/parseEnergy.awk59
1 files changed, 59 insertions, 0 deletions
diff --git a/ns3-simulations/parseEnergy.awk b/ns3-simulations/parseEnergy.awk
new file mode 100755
index 0000000..ec383b8
--- /dev/null
+++ b/ns3-simulations/parseEnergy.awk
@@ -0,0 +1,59 @@
+#!/bin/awk -f
+
+BEGIN {
+ durationECOFEN=0
+}
+
+# For ECOFEN energy model
+/Node [0-9]+ Conso/ {
+ if (!($4 in energyECOFEN)){
+ energyECOFEN[$4]=$6
+ countECOFEN[$4]=1
+ }
+ else {
+ energyECOFEN[$4]=$6+energyECOFEN[$4]
+ countECOFEN[$4]++
+ }
+ durationECOFEN=$2
+}
+
+# For WIFI ns-3 energy model
+/Node [0-9]+ consumes/ {
+ gsub("J","",$4) # Remove trailling Joule symbol
+ if (!($2 in energy)){
+ energyWIFI[$2]=$4
+ }
+ else {
+ energyWIFI[$2]=$4+energyWIFI[$2]
+ }
+}
+
+
+
+END {
+ # Extract ECOFEN energy
+ for(key in energyECOFEN){
+ if (countECOFEN[key]>0){ # Otherwise: 0 division
+ overallEnergy[key]=energyECOFEN[key]/countECOFEN[key]*durationECOFEN
+ }
+ else {
+ overallEnergy[key]=0
+ }
+ }
+
+ # Extract WIFI energy
+ for(key in energyWIFI){
+ if(key in overallEnergy){ # Combine WIFI+ECOFEN
+ overallEnergy[key]+=energyWIFI[key] # Add wifi to ECOFEN
+ }
+ else {
+ overallEnergy[key]=energyWIFI[key] # Only add WIFI since there is no ECOFEN value
+ }
+ }
+
+ # CSV output
+ print("node,energy")
+ for(key in overallEnergy){
+ print(key "," overallEnergy[key])
+ }
+}