source: trunk/CrypPlugins/SZ42/Wheel.cs @ 1941

Last change on this file since 1941 was 1941, checked in by Wilmer Andres Daza Gomez, 11 years ago

Begin of the plugin SZ42 German Lorenz Machine
until now the plugin works fine but need to be test it

File size: 2.4 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5
6namespace Cryptool.Plugins.SZ42
7{
8    /// <summary>
9    /// Class that represents a wheel
10    /// </summary>
11    [Serializable]
12    public class Wheel
13    {
14        string name;          //name of the wheel       
15        int currentPosition;  //current position of the wheel (position of the active state)
16        char[] pattern;       //the pattern of crosses and dots of the wheel
17        int period;           //length of the tab on circunference
18
19        /// <summary>
20        /// Constructor that initialize the name
21        /// and length for the wheel
22        /// </summary>
23        public Wheel(string nombre, int period)
24        {
25            this.name = nombre;
26            this.period = period;
27            currentPosition = 0;
28            pattern = new char[period];
29        }
30
31        public string Name
32        {
33            get { return name; }
34            set { name = value; }
35        }
36
37        public int CurrentPosition
38        {
39            get { return currentPosition + 1; }
40            set { currentPosition = value - 1; }
41        }
42
43        /// <summary>
44        /// Public property of the pattern
45        /// of the wheel
46        /// </summary>
47        public char[] Pattern
48        {
49            get { return pattern; }
50            set { pattern = value; }
51        }
52
53        /// <summary>
54        /// public property of
55        /// the current active state
56        /// of the wheel
57        /// </summary>
58        public char ActiveState
59        {
60            get { return pattern[currentPosition]; }
61        }
62
63        /// <summary>
64        /// Public property of the
65        /// length of wheel (wheel period)
66        /// </summary>
67        public int Period
68        {
69            get { return period; }
70        }
71
72        public string PatternSerialized
73        {
74            get
75            {
76                string p = "";
77
78                foreach (char c in pattern)
79                    p += c;
80
81                return p;
82            }
83        }
84
85        /// <summary>
86        /// Represents the movement
87        /// of the wheel
88        /// </summary>
89        public void MoveOnce()
90        {
91            if (currentPosition == pattern.Length - 1)
92                currentPosition = 0;
93            else
94                currentPosition++;
95        }
96    }
97}
Note: See TracBrowser for help on using the repository browser.