File indexing completed on 2024-07-21 06:28:25

0001 /*
0002     SPDX-FileCopyrightText: 2003 Jasem Mutlaq <mutlaqja@ikarustech.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "ui_telescopewizard.h"
0010 #include "indi/indistd.h"
0011 
0012 #include <QHash>
0013 #include <QStringList>
0014 
0015 #include <memory>
0016 
0017 class DriverInfo;
0018 
0019 class QProgressDialog;
0020 
0021 class telescopeWizardProcess : public QDialog
0022 {
0023     Q_OBJECT
0024 
0025   public:
0026     explicit telescopeWizardProcess(QWidget *parent = nullptr);
0027     ~telescopeWizardProcess();
0028 
0029     unsigned int currentPage;
0030     enum
0031     {
0032         INTRO_P     = 0,
0033         MODEL_P     = 1,
0034         TELESCOPE_P = 2,
0035         LOCAL_P     = 3,
0036         PORT_P      = 4
0037     };
0038 
0039 private:
0040     void establishLink();
0041     void Reset();
0042 
0043 public slots:
0044     void cancelCheck();
0045     void processNext();
0046     void processBack();
0047     void newTime();
0048     void newLocation();
0049     void processTelescope(ISD::GDInterface *);
0050     void scanPorts();
0051     void linkSuccess();
0052 
0053 private:
0054     std::unique_ptr<Ui::telescopeWizard> ui;
0055     ISD::GDInterface *scopeDevice { nullptr };
0056     QProgressDialog *progressScan { nullptr };
0057     QStringList portList;
0058     int currentPort { -1 };
0059     bool INDIMessageBar { false };
0060     bool linkRejected { false };
0061     QHash<QString, DriverInfo *> driversList;
0062     QList<DriverInfo *> managedDevice;
0063 };