File indexing completed on 2024-04-28 03:43:09
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 };