diff --git a/OffloadingDemo/.idea/misc.xml b/OffloadingDemo/.idea/misc.xml index 95f0f03..1caa136 100755 --- a/OffloadingDemo/.idea/misc.xml +++ b/OffloadingDemo/.idea/misc.xml @@ -37,7 +37,7 @@ - + diff --git a/energy_model/analyze.py b/energy_model/analyze.py index 063d026..eb49768 100644 --- a/energy_model/analyze.py +++ b/energy_model/analyze.py @@ -66,6 +66,8 @@ class EnergyAnalyzer(): self.wifi_rssi = [] # LTE self.lte_rsrp = [] + # GSM + self.gsm_rssi = [] def clean_up_wifi_result(self): self.wifi_energy = 0 @@ -217,20 +219,24 @@ class EnergyAnalyzer(): for pattern in myPatterns: myMatch = re.search(pattern, line) if myMatch is not None: - # [timestamp (us), wifi rssi] + # [timestamp (ms), wifi rssi] # or - # [timestamp (us), gsm rssi, lte ss, lte rsrp, lte rsrq] + # [timestamp (ms), gsm rssi, lte ss, lte rsrp, lte rsrq] tmp = myMatch.groups() break if tmp is None: self.logger.debug("nothing found in {0}".format(line.rstrip())) continue if len(tmp) > 2: + # [timestamp (ss), lte rsrp] self.lte_rsrp.append([int(tmp[0]) / 1000.0, int(tmp[3])]) + # [timestamp (ss), gsm rssi] + self.gsm_rssi.append([int(tmp[0]) / 1000.0, int(tmp[1])]) else: + # [timestamp (s), wifi rssi] self.wifi_rssi.append([int(tmp[0]) / 1000.0, int(tmp[1])]) # self.logger.debug(self.lte_rsrp) - # self.logger.debug(self.wifi_rssi) + self.logger.debug(self.wifi_rssi) def read_tcpdump_file(self, fp_tcpdump, isWiFi=False, isLTE=False, is3G=False): @@ -350,10 +356,26 @@ class EnergyAnalyzer(): return self.logger.debug("parse_wifi_energy started") # by default assume the rssi is the max - curRSSI = sorted( + curRSSI_max = sorted( self.myModel.net_wifi['active'].keys(), reverse=True)[0] + curRSSI = curRSSI_max + curRSSI_idx = None + if len(self.wifi_rssi) > 0: + curRSSI_idx = 0 + curRSSI = self.wifi_rssi[0][1] # derive energy for wifi network for i in xrange(len(self.data_tcpdump) - 1): + # find my current rssi (only if sslogger has the data) + if curRSSI_idx is not None and \ + curRSSI_idx < len(self.wifi_rssi) - 1: + while self.wifi_rssi[ + curRSSI_idx + 1][0] < self.data_tcpdump[i][0]: + curRSSI_idx += 1 + if curRSSI_idx >= len(self.wifi_rssi): + curRSSI_idx -= 1 + break + curRSSI = self.wifi_rssi[curRSSI_idx][1] + # self.logger.debug("myRSSI: {0}dB".format(curRSSI)) diffT = self.data_tcpdump[i + 1][0] - self.data_tcpdump[i][0] # self.logger.debug("diffT: {0:.8f}".format(diffT)) # self.logger.debug("{0}".format(self.data_tcpdump[i]))