Beispiel #1
0
    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)
Beispiel #2
0
 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
Beispiel #3
0
 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)
Beispiel #4
0
 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   
Beispiel #5
0
 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)
Beispiel #6
0
 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     
Beispiel #7
0
    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
Beispiel #8
0
    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
Beispiel #9
0
 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