static void Main(string[] args) { Console.WriteLine("TRAINING MENTAL COMMAND DEMO"); Console.WriteLine("Please wear Headset with good signal!!!"); _ctxClient = CortexClient.Instance; _trainer.OnReadyForTraning += ReadyForTraining; _trainer.OnTrainingSucceeded += TrainingSucceededOK; _trainer.OnProfileLoaded += ProfileLoadedOK; _trainer.OnUnProfileLoaded += ProfileUnloadedOK; Console.WriteLine("Prepare to training"); // Start _trainer.Start("mentalCommand"); if (_readyForTrainingEvent.WaitOne(50000)) { Console.WriteLine("Press C to create a Profile."); Console.WriteLine("Press L to load a Profile."); Console.WriteLine("Press U to unload a Profile."); Console.WriteLine("Press 0 to start Neutral training."); Console.WriteLine("Press 1 to start Push training."); Console.WriteLine("Press 2 to start Pull training."); Console.WriteLine("Press A to accept training."); Console.WriteLine("Press R to reject training."); Console.WriteLine("Press H to show all commands."); Console.WriteLine("Press Esc to quit"); Console.WriteLine("Ignore Tab, Enter, Spacebar and Backspace key"); ConsoleKeyInfo keyInfo; while (true) { keyInfo = Console.ReadKey(true); Console.WriteLine(keyInfo.KeyChar.ToString() + " has pressed"); if (keyInfo.Key == ConsoleKey.C) { if (string.IsNullOrEmpty(Program._profileName)) { _profileName = Utils.GenerateUuidProfileName("McDemo"); } Console.WriteLine("Create profile: " + _profileName); _trainer.CreateProfile(_profileName); Thread.Sleep(1000); } else if (keyInfo.Key == ConsoleKey.L) { //Load profile Console.WriteLine("Load profile: " + _profileName); _trainer.LoadProfile(_profileName); Thread.Sleep(1000); } else if (keyInfo.Key == ConsoleKey.U) { //Load profile Console.WriteLine("UnLoad profile: " + _profileName); _trainer.UnLoadProfile(_profileName); Thread.Sleep(1000); } else if (keyInfo.Key == ConsoleKey.D0) { if (_isProfileLoaded) { _currentAction = "neutral"; //Start neutral training _trainer.DoTraining(_currentAction, "start"); Thread.Sleep(2000); } } else if (keyInfo.Key == ConsoleKey.D1) { if (_isProfileLoaded) { //Start push training _currentAction = "push"; _trainer.DoTraining(_currentAction, "start"); Thread.Sleep(2000); } } else if (keyInfo.Key == ConsoleKey.D2) { if (_isProfileLoaded) { //Start pull training _currentAction = "pull"; _trainer.DoTraining(_currentAction, "start"); Thread.Sleep(2000); } } else if (keyInfo.Key == ConsoleKey.A) { //Accept training if (_isSucceeded) { _trainer.DoTraining(_currentAction, "accept"); Thread.Sleep(1000); _isSucceeded = false; // reset } } else if (keyInfo.Key == ConsoleKey.R) { //Reject training if (_isSucceeded) { _trainer.DoTraining(_currentAction, "reject"); Thread.Sleep(1000); _isSucceeded = false; // reset } } else if (keyInfo.Key == ConsoleKey.H) { Console.WriteLine("Press C to create a Profile."); Console.WriteLine("Press L to load a Profile."); Console.WriteLine("Press U to unload a Profile."); Console.WriteLine("Press 0 to start Neutral training."); Console.WriteLine("Press 1 to start Push training."); Console.WriteLine("Press 2 to start Pull training."); Console.WriteLine("Press A to accept training."); Console.WriteLine("Press R to reject training."); Console.WriteLine("Press H to show all commands"); Console.WriteLine("Press Esc to quit"); } else if (keyInfo.Key == ConsoleKey.Tab) { continue; } else if (keyInfo.Key == ConsoleKey.Backspace) { continue; } else if (keyInfo.Key == ConsoleKey.Enter) { continue; } else if (keyInfo.Key == ConsoleKey.Spacebar) { continue; } else if (keyInfo.Key == ConsoleKey.Escape) { _trainer.CloseSession(); break; } else { Console.WriteLine("Unsupported key"); } } Thread.Sleep(10000); } else { Console.WriteLine("The preparation for training is unsuccessful. Please try again"); } }