File indexing completed on 2024-04-28 15:09:02

0001 /*
0002     SPDX-FileCopyrightText: 2019 Jasem Mutlaq <mutlaqja@ikarustech.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "astrometryparser.h"
0010 #include "indi/indicamera.h"
0011 
0012 #include <QPointer>
0013 #include <QProcess>
0014 
0015 namespace Ekos
0016 {
0017 class Align;
0018 
0019 /**
0020  * @class  ASTAPAstrometryParser
0021  * ASTAPAstrometryParser invokes the local ASTAP solver.
0022  *
0023  * @author Jasem Mutlaq
0024  */
0025 class ASTAPAstrometryParser : public AstrometryParser
0026 {
0027         Q_OBJECT
0028 
0029     public:
0030         ASTAPAstrometryParser();
0031         virtual ~ASTAPAstrometryParser() override = default;
0032 
0033         virtual void setAlign(Align *_align) override
0034         {
0035             align = _align;
0036         }
0037         virtual bool init() override;
0038         virtual void verifyIndexFiles(double fov_x, double fov_y) override;
0039         virtual bool startSolver(const QString &filename, const QStringList &args, bool generated = true) override;
0040         virtual bool stopSolver() override;
0041 
0042     public slots:
0043         void solverComplete(int exitCode, QProcess::ExitStatus exitStatus);
0044 
0045     private:
0046         Align *align { nullptr };
0047         QTime solverTimer;
0048         QPointer<QProcess> solver;
0049 };
0050 }