static void Main(string[] args) { QhyCcd camera = null; Mount mount = null; CameraDisplay display = null; while (true) { Console.Write("> "); Console.Out.Flush(); var cmd = Console.ReadLine().Split((char[])null, StringSplitOptions.RemoveEmptyEntries); if (cmd.Length == 0) { continue; } if (cmd[0] == "quit") { break; } try { if (camera != null) { ReplCamera(cmd, camera, ref display); } else if (mount != null) { ReplMount(cmd, mount).Wait(); } else { ReplMain(cmd, ref camera, ref mount); } } catch (Exception e) { Console.WriteLine($"Error processing command - {e.GetType().FullName}: {e.Message}"); Console.WriteLine(e.ToString()); } } camera?.Dispose(); }