Esempio n. 1
0
 public MorseCodeEngine(MorseCodeEngineConfiguration configuration, ICharacterSet morseCharacterSet, IDisplayEngine displayEngine)
 {
     _configuration    = configuration;
     MorseCharacterSet = morseCharacterSet;
     ProcessCharacterSet(MorseCharacterSet);
     DisplayEngine = displayEngine;
 }
Esempio n. 2
0
 public static IMorseCodeEngine GenerateEngine(Languages languageChoice, MorseCodeEngineConfiguration configuration)
 {
     if (!EngineGenerators.ContainsKey(languageChoice))
     {
         throw new NotImplementedException();
     }
     return(EngineGenerators[languageChoice](configuration));
 }
Esempio n. 3
0
        static void Main(string[] args)
        {
            var blinkConfig = new MorseCodeEngineConfiguration
            {
                BreakPauseInMilliseconds              = 100,
                DashLengthInMilliseconds              = 400,
                DotLengthInMilliseconds               = 100,
                EndOfStringPauseInMilliseconds        = 1000,
                LetterPauseInMilliseconds             = 300,
                MissingCharacterDisplayInMilliseconds = 400,
                WordPauseInMilliseconds               = 300,
                EndOfStringFlicker = false
            };

            var morseEngine = MorseCodeEngineFactory.GenerateEngine(Languages.American, blinkConfig);

            morseEngine.ProcessString("Hello World!");
        }
Esempio n. 4
0
 public bool UpdateConfiguration(MorseCodeEngineConfiguration configuration)
 {
     _configuration = configuration;
     return(true);
 }
Esempio n. 5
0
 public bool ProcessString(string inputString, Dictionary <char, List <int> > characterMappingDictionary, MorseCodeEngineConfiguration configuration)
 {
     try
     {
         lock (SynLock)
         {
             var replaceMultiSpace = new Regex(" +");
             inputString = replaceMultiSpace.Replace(inputString, " ");
             var inputCharArray = inputString.ToCharArray();
             inputCharArray.ToList().ForEach(character =>
             {
                 if (characterMappingDictionary.ContainsKey(character))
                 {
                     characterMappingDictionary[character].ForEach(
                         blinkLength =>
                         Blink(BlyncLightController.Color.Green, blinkLength,
                               configuration.BreakPauseInMilliseconds));
                 }
                 else
                 {
                     Blink(character == ' ' ? BlyncLightController.Color.White : BlyncLightController.Color.Red,
                           configuration.MissingCharacterDisplayInMilliseconds,
                           configuration.BreakPauseInMilliseconds);
                 }
             });
             if (!configuration.EndOfStringFlicker)
             {
                 return(true);
             }
             var colors = new List <int> {
                 6, 4, 5, 3, 1, 8
             };
             for (int i = 0; i < 50; i++)
             {
                 colors.ForEach(x => Blink((BlyncLightController.Color)x, 10, 0));
             }
             return(true);
         }
     }
     catch (Exception ex)
     {
         Debug.WriteLine("Exception Fired: {0}", ex.Message);
         throw;
     }
 }
Esempio n. 6
0
 static IMorseCodeEngine MakeCustomEngine(MorseCodeEngineConfiguration configuration)
 {
     return(new MorseCodeEngine(configuration, configuration.CustomCharacterSet, BlyncEngine.Instance));
 }
Esempio n. 7
0
 static IMorseCodeEngine MakeAmericanEngine(MorseCodeEngineConfiguration configuration)
 {
     return(new MorseCodeEngine(configuration, new American(), BlyncEngine.Instance));
 }