Exemple #1
0
        private void FlushKeyLength(List <RotorKeyReaderStructure> rotorArrangement)
        {
            var cache = coreRotor.Current;

            for (int i = 0; i < rotorArrangement.Count; i++)
            {
                rotorArrangement[i] = new RotorKeyReaderStructure()
                {
                    Position = rotorArrangement[i].Position, Length = cache[i]
                };
            }
        }
Exemple #2
0
 private void FlushKeyPosition(List <RotorKeyReaderStructure> rotorArrangement)
 {
     //add 1
     rotorArrangement[0] = new RotorKeyReaderStructure()
     {
         Position = rotorArrangement[0].Position + 1, Length = rotorArrangement[0].Length
     };
     for (int i = 0; i < rotorArrangement.Count; i++)
     {
         //check overflow
         if (rotorArrangement[i].Position == core.KeyLength)
         {
             //set this item's position is 0
             rotorArrangement[i] = new RotorKeyReaderStructure()
             {
                 Position = 0, Length = rotorArrangement[i].Length
             };
             if (i == (rotorArrangement.Count - 1))
             {
                 //last. give up push number
             }
             else
             {
                 //push to next number
                 rotorArrangement[i + 1] = new RotorKeyReaderStructure()
                 {
                     Position = rotorArrangement[i + 1].Position + 1, Length = rotorArrangement[i + 1].Length
                 };
             }
         }
         else
         {
             return;
         }
     }
 }