public MorseCodeEngine(MorseCodeEngineConfiguration configuration, ICharacterSet morseCharacterSet, IDisplayEngine displayEngine) { _configuration = configuration; MorseCharacterSet = morseCharacterSet; ProcessCharacterSet(MorseCharacterSet); DisplayEngine = displayEngine; }
public static IMorseCodeEngine GenerateEngine(Languages languageChoice, MorseCodeEngineConfiguration configuration) { if (!EngineGenerators.ContainsKey(languageChoice)) { throw new NotImplementedException(); } return(EngineGenerators[languageChoice](configuration)); }
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!"); }
public bool UpdateConfiguration(MorseCodeEngineConfiguration configuration) { _configuration = configuration; return(true); }
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; } }
static IMorseCodeEngine MakeCustomEngine(MorseCodeEngineConfiguration configuration) { return(new MorseCodeEngine(configuration, configuration.CustomCharacterSet, BlyncEngine.Instance)); }
static IMorseCodeEngine MakeAmericanEngine(MorseCodeEngineConfiguration configuration) { return(new MorseCodeEngine(configuration, new American(), BlyncEngine.Instance)); }