static void Main(string[] args) { CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); var buttonReader = new ButtonReader(RunMachineLearningCode); buttonReader.ReadButton(cancellationTokenSource.Token); _ledRed = new Led(Led.LedColor.Red); _ledGreen = new Led(Led.LedColor.Green); _ledBlue = new Led(Led.LedColor.Blue); _buzzer = new Buzzer(); // Do the test run _ledRed.Flash(); _ledGreen.Flash(); _ledBlue.Flash(); _buzzer.Buzz(); Console.WriteLine("Ready to get going. Press any key to stop the program."); try { while (!Console.KeyAvailable) { _ledBlue.On(); RunMachineLearningCode(false); _ledBlue.Off(); Task.Delay(2000).Wait(); } } finally { cancellationTokenSource.Cancel(); cancellationTokenSource.Dispose(); _ledRed.Off(); _ledGreen.Off(); _ledBlue.Off(); buttonReader.Dispose(); _buzzer.Dispose(); _ledRed.Dispose(); _ledGreen.Dispose(); _ledBlue.Dispose(); } }
public MainForm( ILogger logger, IInputReader input, App app, Emulator emu) { _logger = logger; _logger.LogEvent += WriteToLog; _input = input as ButtonReader; _app = app; _emu = emu; InitializeComponent(); _logger.SetFile(null); _timer = new Timer(400); _timer.Elapsed += (source, e) => RefreshButtons(); }