#ifndef COMMANDUI_H #define COMMANDUI_H #include #include "QFile" #include "QDebug" #include "QPushButton" #include "CommandButton.h" #include "DragButton.h" #include "QJsonArray" #include "QJsonDocument" #include "QJsonObject" #include "QJsonParseError" #include "QDir" #include "QFileDialog" #include #include "QStyle" #include "multiselector.h" #include "Selector.h" #include "Inputter.h" #include "CharInputter.h" #include "Confirm.h" #include "CommandEditor.h" #include "QMouseEvent" #include "mavlink.h" #include "QAction" #include "QContextMenuEvent" #include "QMenu" #include #include "Config/Config.h" #include "QMessageBox" namespace Ui { class CommandUI; } class CommandUI : public QWidget { Q_OBJECT public: enum state{ success = 0, failure, twinkle, }; explicit CommandUI(QWidget *parent = nullptr); ~CommandUI(); protected: void wheelEvent(QWheelEvent *e); void mousePressEvent(QMouseEvent *event); void keyPressEvent(QKeyEvent *event); void loadCommandJson(const QString& jsonFilename); public slots: void commandAccepted(bool flag,uint16_t command,uint8_t result); void missionConfirm(int seq); void setCommandFile(QString File); void addVehicles(int sysid, int compid); void setCurrent(QVariant value); void setPointCount(QList nums); signals: void Accepted(bool flag,uint16_t command,uint8_t result); void showMessage(const QString &message,int TimeOut = 0); void SetCurrentPoint(int seq); void SetCurrentUAV(int seq); void cmd_int(float param1, float param2, float param3, float param4, int x, int y, float z); void cmd_long( float param1,float param2,float param3,float param4,float param5,float param6,float param7,uint16_t command,uint8_t confirmation); /* void searchallPoint(void); void searchallUav(void); */ private slots: void updateUI(void); void on_commandClicked(); void DoubleClickTimeout(); void setSecondConfirm(QVariant value); void setSecondValue(QVariant value); void on_groupBox_Command_clicked(); void on_pushButton_setSeq_clicked(); void on_pushButton_setUAV_clicked(); private: const char* _spacingJsonKey = "spacing"; const char* _WidthJsonKey = "Width"; const char* _HeightJsonKey = "Height"; const char* _versionJsonKey = "version"; const char* _commentJsonKey = "comment"; const char* _ButtonsJsonKey = "Buttons"; const char* _PageJsonKey = "Page"; const char* _TitleJsonKey = "Title"; const char* _CommandsJsonKey = "Commands"; const char* _dialogJsonKey = "Dialog"; const char* _TextJsonKey = "Text"; const char* _rowJsonKey = "row"; const char* _colunmJsonKey = "column"; const char* _noticeJsonKey = "Notice"; const char* _param1JsonKey = "param1"; const char* _param2JsonKey = "param2"; const char* _param3JsonKey = "param3"; const char* _param4JsonKey = "param4"; const char* _param5JsonKey = "param5"; const char* _param6JsonKey = "param6"; const char* _param7JsonKey = "param7"; const char* _commandJsonKey = "command"; const char* _confirmJsonKey = "confirm"; QJsonArray CMD_infoArray; int m_spacing = 5; int m_width = 75; int m_height = 30; QString m_version = 0; QWidget *m_parent; bool floatflag = false; Ui::CommandUI *ui; QTimer *DoubleClickTimer = nullptr; QString CommandFile = "./commands/Command.json"; QString m_name = 0; QVariant m_param1 = 0; QVariant m_param2 = 0; QVariant m_param3 = 0; QVariant m_param4 = 0; QVariant m_param5 = 0; QVariant m_param6 = 0; QVariant m_param7 = 0; uint16_t m_command = 10; uint8_t m_confirm = 10; int m_currentSeq = 0; }; #endif // COMMANDUI_H