コード例 #1
0
 private void EnsureUniqueFrequenciesWithinCell(FrequencyHandler freqHandler)
 {
     Random r = new Random();
     for (int i = 0; i < freqHandler.Length; i++)
     {
         if (freqHandler.Count(f => f == freqHandler[i]) > 1)
         {
             int newFrequency = r.Next(0,Channels.Length);
             while (freqHandler.Contains(newFrequency)) {
                 newFrequency = r.Next(0,Channels.Length);
             }
             freqHandler[i] = new TRX(newFrequency);
         }
     }
 }
コード例 #2
0
        public override void ResolveCollisions(FrequencyHandler freqHandler)
        {
            if (hasLBC(freqHandler))
            {
                ResolveLBCCollisions(freqHandler);
            }
            if (freqHandler is FrequencyHandlerWithTabu)
            {
                FrequencyHandlerWithTabu frequencyHandler = freqHandler as FrequencyHandlerWithTabu;

                foreach (TRXTabu tabu in frequencyHandler.TabuList)
                {
                    var collisions = FindCollisionsForTabuItem(frequencyHandler, tabu);

                    HandleCollisions(collisions, frequencyHandler);
                }
            }
            else
                return;
        }
コード例 #3
0
 private bool hasLBC(FrequencyHandler freqHandler)
 {
     return freqHandler.GetParentCell().HasLocallyBlockedChannels();
 }
コード例 #4
0
 private void ResolveLBCCollisions(FrequencyHandler freqHandler)
 {
     Random r = new Random();
     int count = 0;
     for (int i = 0; i < freqHandler.Length; i++)
     {
         int channelValue = Channels[freqHandler[i]];
         if (freqHandler.GetParentCell().LocallyBlocked.Contains(channelValue))
         {
             freqHandler[i] = r.Next(0, Channels.Length);
             count++;
             if (count <= 10)
             {
                 i--;
             }
         }
         else
         {
             count = 0;
         }
     }
 }
コード例 #5
0
ファイル: BasicCell.cs プロジェクト: Burmudar/FAPPSO
 private void InitializeFrequencyHandlerIfNotNullFromCell(BasicCell basicCell)
 {
     if (basicCell.frequencyHandler != null)
     {
         frequencyHandler = CreateFrequencyHandler();
     }
 }
コード例 #6
0
 public abstract void ResolveCollisions(FrequencyHandler frequencyHandler);