Exemplo n.º 1
0
        static void ReplMain(string[] cmd, ref QhyCcd camera, ref Mount mount)
        {
            switch (cmd[0])
            {
            case "camera":
                if (cmd.Length == 1)
                {
                    var numCameras = QhyCcd.NumCameras();
                    if (numCameras == 0)
                    {
                        Console.WriteLine("No QHY cameras found");
                    }
                    else if (numCameras == 1)
                    {
                        camera = new QhyCcd(false, 0);
                        Console.WriteLine("One QHY camera found, automatically connected");
                    }
                    else
                    {
                        Console.WriteLine($"Num cameras: {numCameras}");
                        for (var i = 0; i < numCameras; i++)
                        {
                            var name = QhyCcd.CameraName(i);
                            Console.WriteLine($"{i} = {name}");
                        }
                    }
                }
                else if (cmd.Length == 2 && int.TryParse(cmd[1], out var index))
                {
                    camera = new QhyCcd(false, index);
                }
                else
                {
                    goto default;
                }
                break;

            case "mount":
                if (cmd.Length == 1)
                {
                    mount = Mount.Create();
                    if (mount == null)
                    {
                        var ports = Mount.Ports();
                        if (ports.Length == 0)
                        {
                            Console.WriteLine("No serial ports");
                        }
                        else
                        {
                            Console.WriteLine("More than one serial ports:");
                            Console.WriteLine(string.Join(", ", ports));
                        }
                    }
                    else
                    {
                        Console.WriteLine("One serial port, automatically connected to mount");
                    }
                }
                else if (cmd.Length == 2)
                {
                    mount = new Mount(cmd[1]);
                }
                else
                {
                    goto default;
                }
                break;

            case "solve":
                if (cmd.Length == 2)
                {
                    //var task = PlateSolve.SolveFile(cmd[1]);
                    Console.WriteLine("TODO");
                }
                else
                {
                    goto default;
                }
                break;

            default:
                Console.WriteLine($"Unknown command {string.Join(" ", cmd)}");
                break;
            }
        }