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

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 <QDialog>
0010 #include <QStandardItemModel>
0011 #include <QNetworkAccessManager>
0012 #include <QJsonObject>
0013 
0014 #include <memory>
0015 
0016 #include "indi/indistd.h"
0017 #include "profileinfo.h"
0018 
0019 #include "ui_serialportassistant.h"
0020 
0021 class SerialPortAssistant : public QDialog, public Ui::SerialPortAssistant
0022 {
0023     public:
0024         explicit SerialPortAssistant(ProfileInfo *profile, QWidget *parent = nullptr);
0025 
0026         void addDevice(const QSharedPointer<ISD::GenericDevice> &device);
0027 
0028 
0029     private:
0030         bool loadRules();
0031         bool removeActiveRule();
0032         bool addRule(const QJsonObject &rule);
0033         void addDevicePage(const QSharedPointer<ISD::GenericDevice> &device);
0034         void gotoDevicePage(const QSharedPointer<ISD::GenericDevice> &device);
0035         void resetCurrentPage();
0036 
0037         void scanDevices();
0038         void parseDevices();
0039         void discoverDevice();
0040 
0041         QList<QSharedPointer<ISD::GenericDevice>> m_Devices;
0042 
0043         std::unique_ptr<QStandardItemModel> model;
0044         QSharedPointer<ISD::GenericDevice> m_CurrentDevice;
0045         const ProfileInfo *m_Profile;
0046 
0047         QNetworkAccessManager manager;
0048 };