diff --git a/OffloadingDemo/.idea/misc.xml b/OffloadingDemo/.idea/misc.xml
index 1caa136..95f0f03 100755
--- a/OffloadingDemo/.idea/misc.xml
+++ b/OffloadingDemo/.idea/misc.xml
@@ -37,7 +37,7 @@
-
+
diff --git a/energy_model/energy_analyzer.py b/energy_model/energy_analyzer.py
index c329e8a..8b73e99 100644
--- a/energy_model/energy_analyzer.py
+++ b/energy_model/energy_analyzer.py
@@ -34,26 +34,13 @@ def checkFiles(folderpath, timestamp):
return status
-if __name__ == "__main__":
- DEBUG = True
- logger = EmptyLogger("App", isDebugging=DEBUG, printout=True)
- # remoteIP = '128.111.68.220'
- remoteIP = '192.168.2.1'
- # sizeOptions = [1, 5, 10, 20, 50, 100] # MB
- sizeOptions = [None] # MB
- # folder = sys.argv[1]
- # folder = './models/bypass/120MBps/'
- folder = '/Users/yanzi/GDrive/UCSB/Projects/Offloading_2017/Data/' +\
- 'initial_comparison/udp_mtu20k/160Mbps'
+def analyzeit(logger, folder, myAnalyzer, remoteIP, sizeOptions=[None]):
# check if is folder
if os.path.isdir(folder):
files = [x for x in os.listdir(folder) if '.cpuRaw' in x]
else:
logger.error('{0} does not exist (or is not a folder)'.format(folder))
- sys.exit(1)
- # create analyzer obj
- myAnalyzer = EnergyAnalyzer(
- "shamu", isDebugging=DEBUG, unit="mW", output_path=folder)
+ return False
for i in xrange(len(files)):
file = files[i]
logger.debug(file)
@@ -72,7 +59,7 @@ if __name__ == "__main__":
# parse wifi
if 'tcpdump' in status:
logger.debug('reading tcpdump...')
- if 'bypass' in folder:
+ if 'bypass' in folder or 'RawSocket' in folder:
myfilter = ""
else:
myfilter = "host {0}".format(remoteIP)
@@ -103,3 +90,21 @@ if __name__ == "__main__":
myAnalyzer.generate_result_summary(
wifi='tcpdump' in status,
f_suffix="_{0}".format(i))
+
+if __name__ == "__main__":
+ DEBUG = False
+ logger = EmptyLogger("App", isDebugging=DEBUG, printout=True)
+ # remoteIP = '128.111.68.220'
+ remoteIP = '192.168.2.1'
+ # sizeOptions = [1, 5, 10, 20, 50, 100] # MB
+ sizeOptions = [None] # MB
+ # folder = sys.argv[1]
+ # folder = './models/bypass/120MBps/'
+ folder = '/Users/yanzi/GDrive/UCSB/Projects/Offloading_2017/Data/' +\
+ 'bg_measurement_test'
+ # 'initial_comparison/udp_mtu20k/160Mbps'
+ # create analyzer obj
+ myAnalyzer = EnergyAnalyzer(
+ "shamu", isDebugging=DEBUG, unit="mW", output_path=folder)
+
+ analyzeit(logger, folder, myAnalyzer, remoteIP, sizeOptions)
diff --git a/energy_model/file_organizer.py b/energy_model/file_organizer.py
new file mode 100644
index 0000000..eba1c3b
--- /dev/null
+++ b/energy_model/file_organizer.py
@@ -0,0 +1,102 @@
+import sys
+import os
+import re
+import subprocess
+import collections
+
+from energy_analyzer import *
+sys.path.append("modules")
+try:
+ from analyzer import *
+except:
+ raise
+
+
+def fetchfile(foldername):
+ subprocess.call(
+ './pullTarsFromPhone.sh {0}'.format(foldername), shell=True)
+
+
+def load_folder(
+ mydict,
+ foldername,
+ folderbase):
+ rootfolder = '{0}/{1}'.format(folderbase, foldername)
+ folders = [f for f in os.listdir(rootfolder)
+ if os.path.isdir('{0}/{1}'.format(rootfolder, f))]
+ while len(folders) > 0:
+ folder = folders.pop()
+ folder_path = '{0}/{1}'.format(rootfolder, folder)
+ thrpt_folders = [f for f in os.listdir(folder_path)
+ if os.path.isdir('{0}/{1}'.format(folder_path, f))]
+ for thrpt in thrpt_folders:
+ thrpt_folder_path = '{0}/{1}'.format(folder_path, thrpt)
+ files = [f for f in os.listdir(thrpt_folder_path)
+ if '.tar.gz' in f]
+ mydict[folder][thrpt] = files
+
+ # reorganize files
+ files = os.listdir(rootfolder)
+ files = sorted([file for file in files if '.tar.gz' in file])
+
+ for file in files:
+ # print file
+ tmp = file.split('_')
+ mode = tmp[0]
+ method = '{0}_{1}'.format(tmp[1], tmp[2])
+ filesize = tmp[3]
+ repeats = tmp[4][:-7]
+ thrpt = tmp[6]
+ mydict[method][thrpt].append(file)
+
+ for method in mydict.keys():
+ method_folder = '{0}/{1}'.format(rootfolder, method)
+ if not os.path.isdir(method_folder):
+ os.mkdir(method_folder)
+ for thrpt in mydict[method].keys():
+ thrpt_folder = '{0}/{1}'.format(method_folder, thrpt)
+ if not os.path.isdir(thrpt_folder):
+ os.mkdir(thrpt_folder)
+ subprocess.call('rm {0}/*.csv'.format(thrpt_folder),
+ shell=True)
+ for file in mydict[method][thrpt]:
+ if os.path.isfile('{0}/{1}'.format(rootfolder, file)):
+ subprocess.call(
+ 'mv {0}/{1} {2}'.format(
+ rootfolder, file, thrpt_folder),
+ shell=True)
+ subprocess.call(
+ 'cd {0} && tar -xzf {0}/{1}'.format(
+ thrpt_folder, file),
+ shell=True)
+
+# construct dict
+mydict = collections.defaultdict(lambda: collections.defaultdict(list))
+
+# folder name
+foldername = 'low_thrpt_tests'
+folderbase = '/Users/yanzi/GDrive/UCSB/Projects/Offloading_2017/Data/'
+
+# get files
+# fetchfile(foldername)
+
+# load
+load_folder(mydict, foldername, folderbase)
+
+DEBUG = False
+logger = EmptyLogger("App", isDebugging=DEBUG, printout=True)
+# remoteIP = '128.111.68.220'
+remoteIP = '192.168.2.1'
+# sizeOptions = [1, 5, 10, 20, 50, 100] # MB
+sizeOptions = [None] # MB
+
+myAnalyzer = EnergyAnalyzer(
+ "shamu", isDebugging=DEBUG, unit="mW", logger=logger)
+
+for method in mydict.keys():
+ for thrpt in mydict[method].keys():
+ folder = '{0}/{1}/{2}/{3}'.format(
+ folderbase, foldername, method, thrpt)
+ # analyzer obj
+ myAnalyzer.output_path = folder
+ analyzeit(logger, folder, myAnalyzer, remoteIP, sizeOptions)
diff --git a/energy_model/modules/analyzer.py b/energy_model/modules/analyzer.py
index 89353c8..b0e142e 100644
--- a/energy_model/modules/analyzer.py
+++ b/energy_model/modules/analyzer.py
@@ -15,7 +15,7 @@ class EnergyAnalyzer():
Energy analyzer
'''
def __init__(self, productname,
- isDebugging=False, unit="mW", output_path=None):
+ isDebugging=False, unit="mW", output_path=None, logger=None):
self.myModel = Model(isDebugging=isDebugging, unit=unit)
self.myModel.load(productname)
self.num_of_cores = getCoreNum(productname)
@@ -26,8 +26,11 @@ class EnergyAnalyzer():
self.output_path = output_path
self.DEBUG = isDebugging
- self.logger = EmptyLogger(
- "EnergyAnalyzer", isDebugging=self.DEBUG, printout=True)
+ if logger is None:
+ self.logger = EmptyLogger(
+ "EnergyAnalyzer", isDebugging=self.DEBUG, printout=True)
+ else:
+ self.logger = logger
'''
Variable clean up functions
@@ -444,7 +447,7 @@ class EnergyAnalyzer():
while self.wifi_rssi[
curRSSI_idx + 1][0] < self.data_tcpdump[i][0]:
curRSSI_idx += 1
- if curRSSI_idx >= len(self.wifi_rssi):
+ if curRSSI_idx >= len(self.wifi_rssi) - 1:
curRSSI_idx -= 1
break
curRSSI = self.wifi_rssi[curRSSI_idx][1]
diff --git a/energy_model/pullTarsFromPhone.sh b/energy_model/pullTarsFromPhone.sh
index d5a5902..9ca1a73 100755
--- a/energy_model/pullTarsFromPhone.sh
+++ b/energy_model/pullTarsFromPhone.sh
@@ -2,6 +2,8 @@
loc=/Users/yanzi/GDrive/UCSB/Projects/Offloading_2017/Data/$1;
+adb devices
+
if [ ! -d $loc ]; then
mkdir -p $loc;
fi