summaryrefslogtreecommitdiff
path: root/src/ns3/parseEnergy.awk
diff options
context:
space:
mode:
Diffstat (limited to 'src/ns3/parseEnergy.awk')
-rwxr-xr-xsrc/ns3/parseEnergy.awk55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/ns3/parseEnergy.awk b/src/ns3/parseEnergy.awk
new file mode 100755
index 0000000..6c5cce8
--- /dev/null
+++ b/src/ns3/parseEnergy.awk
@@ -0,0 +1,55 @@
+#!/usr/bin/awk -f
+
+BEGIN {
+ durationECOFEN=0
+ sum=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
+ energyWIFI[$2]=$4
+}
+
+
+
+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("nodeId,energy")
+ for(key in overallEnergy){
+ print(key "," overallEnergy[key])
+ }
+}