Пример #1
0
        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);
                }
            }
        }
Пример #2
0
        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);
        }