#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include "RecordQuery.h" #include "LoggerWidget.h" #include "msg.h" #include "spdlog/spdlog.h" QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class QPolarChart; class QChart; class QBarCategoryAxis; class QValueAxis; class QTableWidgetItem; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); void test1(); private slots: void on_rdbChannelUHF_clicked(); void on_rdbChannelS_clicked(); void on_rdbChannelBeiDou_clicked(); void on_rdbChannelAuto_clicked(); void on_btnCallAnswer_clicked(); void on_btnCallReject_clicked(); void on_btnSendMessage_clicked(); void on_btnRecordQuery_clicked(); void readPendingDatagrams(); void on_tblMessageList_currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous); void handleHovered(bool status, int index, QBarSet *barset); protected: void keyPressEvent(QKeyEvent* event) override; private: void createBeiDouSignalStrengthChart(); void createAzimuthMapChart(); void setSignalStrengthValues(const QStringList& categories,const QList &yValues); void setAzimuthValues(const QList &points); //------------------------------------------------- // 消息列表操作 //------------------------------------------------- void UpdateMessageList(); //------------------------------------------------- // 与底层消息交互 //------------------------------------------------- bool sendUdpMessage(const QByteArray &udpMessage); bool call(const QString& number); bool hangUpCall(); bool acceptCall(); bool rejectCall(); bool sendShortMessage(const QString &number,const QString& message); void processCommand(const QByteArray& cmd); void processTianTongVoiceCmd(const QByteArray& cmd); void processUhfVoiceCmd(const QByteArray& cmd); void processTianTongShortMessageCmd(const QByteArray& cmd); void processUhfShortMessageCmd(const QByteArray& cmd); void processBeiDouShortMessageCmd(const QByteArray& cmd); void processStatusReportCmd(const QByteArray& cmd); void processSearchSatelliteStatusReport(const QByteArray& cmd); void StartupTalkingTimer(); void ShutdownTalkingTimer(); void test(); private: Ui::MainWindow *ui; CallStatus m_callStatus = CallStatus::kIdle; std::vector m_msgList; int m_unReadMsgCount = 0; int m_callDuration = 0; std::shared_ptr m_timer; std::shared_ptr m_logger; std::shared_ptr m_udpSocket; std::shared_ptr m_udpServerSocket; std::shared_ptr m_recordQueryWidget; std::shared_ptr m_loggerWidget; QChart* m_signalStrengthChart; QPolarChart* m_azimuthChart; QBarCategoryAxis* m_signalStrengthChartXAxis; QValueAxis* m_signalStrengthChartYAxis; QStackedBarSeries *m_stackedSeries; }; #endif // MAINWINDOW_H