static void Main(string[] args) { var settings = new AppSettings() { FilePath = AppSettingsFilePath, }; settings.ReadFromFile(); using (var sensorManager = new SensorManager(settings)) { var continueLooping = true; while (continueLooping) { ConsoleExtensions.Write(">"); continueLooping = HandleInput(settings, sensorManager); } } }
private static bool HandleInput(AppSettings settings, SensorManager manager) { string input = Console.ReadLine(); if (input.Equals("exit", StringComparison.InvariantCultureIgnoreCase)) { return(false); } else if (input.Equals("help", StringComparison.InvariantCultureIgnoreCase)) { PrintOptions(settings); } else if (input.Equals("clear", StringComparison.InvariantCultureIgnoreCase)) { Console.Clear(); } else if (input.Equals("reset", StringComparison.InvariantCultureIgnoreCase)) { ConsoleExtensions.WriteLine("Please confirm this action by typing 'yes please'"); if (Console.ReadLine() == "yes please") { settings.ResetToDefaults(); manager.UpdateFromSettings(settings); settings.SaveSettings(); } } else if (input.StartsWith("msg: ")) { var msg = input.Substring(4).Trim(); manager.ProbePublisher.Publish(msg); } else if (input.Equals("stop", StringComparison.InvariantCultureIgnoreCase)) { manager.Probe.Stop(); ConsoleExtensions.WriteDebugLocation(" ", 0); } else if (input.Equals("start", StringComparison.InvariantCultureIgnoreCase)) { manager.Probe.Start(); } else if (input.Equals("list probes", StringComparison.InvariantCultureIgnoreCase) && manager.Probe is Probes.LinuxTempProbe) { var lprobe = manager.Probe as Probes.LinuxTempProbe; foreach (var name in lprobe.GetOneWireDeviceNames()) { ConsoleExtensions.WriteLine(" " + name); } } else { if (ReadProperty(settings, input)) { manager.UpdateFromSettings(settings); settings.SaveSettings(); } else { ConsoleExtensions.WriteLine("Unrecognized command"); } } return(true); }