def setRSSI(self, sta=None, ap=None, wlan=0, dist=0): """set RSSI :param sta: station :param ap: access point :param wlan: wlan ID :param dist: distance """ lF = self.lF sl = self.sl nFloors = self.nFloors gRandom = self.gRandom pL = self.pL gT = 0 hT = 0 if ap != None: pT = ap.params['txpower'][0] else: pT = sta.params['txpower'][wlan] gR = sta.params['antennaGain'][wlan] hR = sta.params['antennaHeight'][wlan] value = propagationModel(sta, ap, dist, wlan, pT, gT, gR, hT, hR, sl, lF, pL, nFloors, gRandom) return float(value.rssi) # random.uniform(value.rssi-1, value.rssi+1)
def calculateNoise(self, sta, station, signalPower, wlan): dist = self.getDistance(sta, station) totalRange = sta.range + station.range if dist < totalRange: value = propagationModel(sta, station, dist, wlan) n = value.rssi + signalPower self.noise += n self.i += 1 self.dist += dist
def setRSSI(self, node1=None, node2=None, wlan=0, dist=0): """set RSSI :param node1: station :param node2: access point :param wlan: wlan ID :param dist: distance """ value = propagationModel(node1, node2, dist, wlan) return float(value.rssi) # random.uniform(value.rssi-1, value.rssi+1)
def calculateNoise(self, sta, station, signalPower, wlan, model): dist = self.getDistance(sta, station) totalRange = sta.range + station.range systemLoss = 1 if dist < totalRange: dist = totalRange - dist value = propagationModel(sta, station, dist, wlan, model, systemLoss) n = value.rssi + signalPower self.noise =+ n self.i+=1 self.dist =+ dist
def calculate (self, node1, node2, propagation_Model, staList, wlan): sta = node1 ap = node2 model = propagation_Model totalRange = 0 noise = 0 i=0 signalPower = sta.rssi[wlan] if node2 == None: for station in staList: if station != sta and sta.isAssociated[wlan] == True: d = distance(sta, station) dist = d.dist totalRange = sta.range + station.range systemLoss = 1 if dist < totalRange: value = propagationModel(sta, station, dist, wlan, model, systemLoss) n = value.rssi + signalPower noise =+ n i+=1 else: for station in ap.associatedStations: if station != sta and sta.associatedAp[wlan] != 'NoAssociated': d = distance(sta, station) dist = d.dist totalRange = sta.range + station.range systemLoss = 1 if dist < totalRange: value = propagationModel(sta, station, dist, wlan, model, systemLoss) n = value.rssi + signalPower noise =+ n i+=1 if i != 0: noisePower = noise/i signalPower = sta.rssi[wlan] if i != 0: sta.snr[wlan] = self.signalToNoiseRatio(signalPower, noisePower) else: sta.snr[wlan] = abs(signalPower)
def bw(self, node1, node2, dist, staList, wlan): systemLoss = 1 self.rate = 0 if self.propagModel == '': self.propagModel = 'friisPropagationLossModel' value = deviceDataRate(node1, node2, wlan) custombw = value.rate if node2 == None: node1.rssi[wlan] = -50 - dist self.rate = custombw * (1.1 ** -dist) else: if dist != 0: value = propagationModel(node1, node2, dist, wlan, self.propagModel, systemLoss) node1.rssi[wlan] = value.rssi if node2.equipmentModel == None: self.rate = custombw * (1.1 ** -dist) return self.rate
def bw(self, sta, ap, dist, wlan): lF = channelParams.lF sl = channelParams.sl nFloors = channelParams.nFloors gRandom = channelParams.gRandom pL = channelParams.pL pT = ap.params['txpower'][0] gT = ap.params['antennaGain'][0] hT = ap.params['antennaHeight'][0] gR = sta.params['antennaGain'][wlan] hR = sta.params['antennaHeight'][wlan] value = propagationModel(sta, ap, dist, wlan, pT, gT, gR, hT, hR, sl, lF, pL, nFloors, gRandom) sta.params['rssi'][wlan] = value.rssi # random.uniform(value.rssi-1, value.rssi+1) value = deviceDataRate(sta, ap, wlan) custombw = value.rate rate = eval(channelParams.equationBw) if rate <= 0.0: rate = 0.1 return rate
def bw(self, sta, dist, wlan): lF = channelParams.lF sl = channelParams.sl nFloors = channelParams.nFloors gRandom = channelParams.gRandom pL = channelParams.pL gT = 0 hT = 0 pT = sta.params['txpower'][wlan] gR = sta.params['antennaGain'][wlan] hR = sta.params['antennaHeight'][wlan] if self.i != 0: dist = self.dist / self.i value = propagationModel(sta, None, dist, wlan, pT, gT, gR, hT, hR, sl, lF, pL, nFloors, gRandom) sta.params['rssi'][wlan] = value.rssi value = deviceDataRate(sta, None, wlan) custombw = value.rate rate = eval(channelParams.equationBw) if rate <= 0: rate = 0.1 return rate
def bw(self, node1, node2, dist, wlan): systemLoss = 1 self.rate = 0 if emulationEnvironment.propagation_Model == '': emulationEnvironment.propagation_Model = 'friisPropagationLossModel' value = deviceDataRate(node1, node2, wlan) custombw = value.rate self.rate = value.rate if node2 == None: if self.i != 0: dist = self.dist/self.i node1.rssi[wlan] = -50 - float(dist) self.rate = (custombw * (1.1 ** -dist))/5 else: if dist != 0: value = propagationModel(node1, node2, dist, wlan, emulationEnvironment.propagation_Model, systemLoss) node1.rssi[wlan] = random.uniform(value.rssi-1, value.rssi+1) if node2.equipmentModel == None: self.rate = custombw * (1.1 ** -dist) self.rate = self.rate - self.loss*2 if self.rate <= 0: self.rate = 1 return self.rate