diff options
Diffstat (limited to 'src/ns3/parseEnergy.awk')
| -rwxr-xr-x | src/ns3/parseEnergy.awk | 55 |
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]) + } +} |
