#ifndef CONTROLADVPARAMWIDGET_H
#define CONTROLADVPARAMWIDGET_H

#include <QWidget>
#include <wDevicesManager/ledcard.h>
#include <communication/hpptclient.h>
#include <LoUIClass/loemptydialog.h>
#include <QJsonObject>
namespace Ui {
class ControlAdvParamWidget;
}
class cApkInfo
{
public:
    QString strApkPageName;
    QString strVersion;
};

class ControlAdvParamWidget : public QWidget
{
    Q_OBJECT

public:
    explicit ControlAdvParamWidget(QWidget *parent = nullptr,QList<LedCard *> *m_pLedlist=nullptr);
    ~ControlAdvParamWidget();

private:
    Ui::ControlAdvParamWidget *ui;

protected slots:
    void refreshLable();
    void On0degrees();
    void On90degrees();
    void On180degrees();
    void On270degrees();
    void OnSendMinBrightness();
    void OnSendMaxBrightness();
    void OnGetMinBrightness();
    void OnGetMaxBrightness();
    void OnSendCustomJson();
protected:

    virtual void keyPressEvent(QKeyEvent *ev);
    virtual void mousePressEvent(QMouseEvent *event);
signals:
    void sigSend(QJsonObject &,QString);
    void sigSetTipTextContent(QString);
protected slots:
    void DeletePostingDlg();
    void OnProHttpResponse(QString url, QString postMD5, QByteArray data);
    void OnProHttpResponseAll(QString url, QString postMD5, QByteArray data);
    void onSelectedDeviceList(QList<LedCard*> *);
    void onReadbackAllThisPage();
    void OnControlTypeSwitchIndexChanged(int index);
    void OnSetPhyPixels();
    void OnSetAlias();
    void OnSetWebServerParam();
    void OnSetRealtimeServer();
    void OnClearRealtimeServer();
    void OnStartConfigLedScreenSoft();
    void onInputPasswordPro(QString strPassword);
    void OnRestart();
    void OnSoftUpgrade();
    void OnApkCheck();
    void OnUnistall();
    void OnRunningCheck();
    void OnFpgaUpgrade();
    void OnFpgaVerCheck();
    void OnSyncFpgaVer();
    void OnSyncFirmware();
    void OnCheckLog();
    void slotUploadFinished();
    void slotUploadFpgaFinished();
    void slotUploadProgress(qint64 A,qint64 B);
    void OnProHttpGetResponse(QString url, QByteArray data);
    void OnClearPrograms();
    void OnM80Set();
    void OnM80Refresh();
    void OnM80Restore();
    void OnSetTaxiTopScreen();
    void OnReadbackTaxiTopScreen();
    void OnBindingIc();
    void OnOpenAdb();
private:
    QList<LedCard *> *m_pLedlist=nullptr;
    LedCard   *m_pLedCard = nullptr;
    LedCard   *m_oldLedlist = nullptr;
    HpptClient *pHpptClient = nullptr;
    HpptClient *pHpptClientAll = nullptr;
    QString m_strUrl="";
    QString m_strStartUrl="";
    LoEmptyDialog * m_PostingDlg=nullptr;
    QTimer *m_pGetAskTimer=nullptr;
    bool m_bSelected=false;
    bool m_passwordOk=false;
    QList<cApkInfo> m_listApk;
    QString m_strUpgradeApkFile="";
    QString m_strUpgradeFpgaFile="";
    QJsonObject oM80ResolutionsObject;
    bool m_lockFlag=true;
    //void UpLoadForm(QString Path,QString fileFormName,QFile *uploadFile,QString newFileName);
    void UpLoadForm(QString Path,QMap<QString,QString> params,QString fileFormName,QFile *uploadFile,QString newFileName,int iType);
    QString GetPasswordPro();
    QString qs2B64(QString qs1);
    QString b64ToQs(QString b64qs1);
 };

#endif // CONTROLADVPARAMWIDGET_H
