#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "qcustomplot.h" #include "include/model/hardware/core/TrxBoard.h" #include "api.h" #include "H5Cpp.h" #include "hdf5.h" #include "H5File.h" #define MESSAGE_BOX(M) \ emit showMessage(M) #define SCENARIO_FILE_PATH "scenarioFilePath" #define ADC_SIM_FILE_PATH "adcSimFilePath" #define PARAM_FILE_PATH "paramFilePath" #define TX_DAC_FILE_PATH "txDacFilePath" #define FPGA_FILE_PATH "fpgaFilePath" #define REG_ACCESS_SEL "regAccessType" #define START "Start" #define STOP "Stop" #define PAUSE "Pause" #define RESUME "Resume" #define ON "On" #define OFF "Off" #define THSD_State_Update "THSD State Update" #define DACS_ENABLE "DACs_Enable" #define UPDATE "Update" #define VALID "Valid" #define ENABLE "Enable" #define DISABLE "Disable" #define TRANSFER_LENGTH 4 * 1024 * 1024 #define TRANSFER_RATE 30.0f #define RAM_BUFFER_OFFSET 0U #define ULTIMATE_LOG_COUNT 50 #define MAX_ARRAY_DEPTH 131072U QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE using namespace H5; using namespace std; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: Ui::MainWindow *ui; TrxBoard _trx; QSettings* _settings; UltraSoundDevice* _usd; QMutex _mutex; QCPColorMap *_colorMap; static QThread* _uiThread; QTimer* _timeout; QEventLoop loop; QTimer delayTimer; EmulatorProperties* _emul; BoardsCtrlMngt* _bCtrl; SupervisorRbValue* _supRbValue; MpsFaultStatus* _faultStatus; HealthStatus* _healStatus; FpgaCodeVersion* _version; StatusVec* _vec; AfeConfig _afeConfig; ScenGenHardwareOutput_t scenParams; QFutureWatcher scenEndWather; H5File _file; // int32_t intArray [MAX_ARRAY_DEPTH][MAX_ARRAY_LENGTH]; // float_t floatArray[MAX_ARRAY_DEPTH][MAX_ARRAY_LENGTH]; float_t floatArray[MAX_ARRAY_DEPTH]; template void datasetBranch(const string& branchPath, T datasetValue[MAX_ARRAY_DEPTH]); template QByteArray Uint2ByteArray(T data); void setScenario(const string& h5Path); void fpgaProgrammer(QString path); void timeout(); void delay(int ms); const QString enum2String (ePg state) const; void changeLabelTextColor(QLabel* label, QColor color); void setAfeConfig (void); void fillRam(QString path); void logPcie(); void continuousFrameRepresent(void); QByteArray str2ByteArray (QString& str); QString uint2IdString (quint32& id); QString byteArray2InfoString (QByteArray& arr); QString _logFolder = "/home/hasis/Desktop/TrxBoardFile/_log/dma/"; QString _emulFolder = "/home/hasis/Desktop/Develop_HardwareTest/developHw/sram_frame.bin"; QVector _dmaBuffer; QByteArray _lastBuffer; qint32 _dmaLogCount; bool _dmaLog; bool _dmaRun; bool _dmaShow; // QString _adcloggerFolder = "/home/hasis/Desktop/TrxBoardFile/_log/adc/"; // bool _csvReadStopFlag = false; // bool _adcLoggerDone = false; // bool _adcLoggerTrnsDone = false; private slots: void getPrbChange(); void getFramePacket (QByteArray packet); void restartTimer(); void on_rbtn_reg_toggled(bool checked); void on_rbtn_offset_toggled(bool checked); void on_btn_readReg_clicked(); void on_btn_writeReg_clicked(); // void newBlockProgressValue(int percentage, QProgressBar* prg); // void newFpgaProgressValue(int percentage); // void newBlockProgressVisibility(bool show, QProgressBar* prg); // void newFpgaProgressVisibility(bool show); void on_btn_fpgaBrowse_clicked(); void on_btn_fpgaProgram_clicked(); void newMessage(QString message); // void on_btn_scenarioBrowse_clicked(); // void on_btn_scenarioVerify_clicked(); // void on_btn_ParamBrowse_clicked(); // void on_btn_scenarioUpload_clicked(); // void on_btn_scenarioStartStop_clicked(); // void on_btn_scenarioPauseResume_clicked(); // void on_btn_txDacBrowse_clicked(); // void on_btn_txDacUpload_clicked(); // void on_btn_txDacStartStop_clicked(); // void on_btn_txDacOnOff_clicked(); void on_cb_selectedProbe_currentIndexChanged(int index); // void on_btn_pllClkSt_clicked(); // void on_btn_pllClkTps_clicked(); // void on_btn_mulDacTrig_clicked(); // void on_pushButton_3_clicked(); // void on_btn_hvRegulatorConfig_clicked(); // void on_btn_pm5RegulatorConfig_clicked(); // void on_btn_DacsOnOff_clicked(); void on_btn_updateRdbackValue_clicked(); void on_btn_supJump_clicked(); void on_btn_setAo_clicked(); // void on_chk_usrMulDac_stateChanged(int arg1); // void on_btn_afeProg_clicked(); // void on_btn_gtReg_clicked(); // void on_btn_browse_clicked(); // void on_btn_dbgTransferStrt_clicked(); // void on_btn_adcLoggerStrt_clicked(); // void on_prg_adcLoggerFileWr_valueChanged(int value); // void on_btn_adcSimBrowse_clicked(); // void on_btn_adcSimStart_clicked(); // void on_btn_adcLoggerAutoCount_clicked(); // void on_btn_scenRead_clicked(); void on_btn_getFpgaVersion_clicked(); // void on_btn_txTrig_clicked(); // void adcLoggerStatusCheck(); // void binFileUploader(quint32 bar, quint32 offset, QString path, QProgressBar* prg); // void binAdcFileUploader(quint32 bar, QString path, QProgressBar* prg); // void CsvFileUploader(quint32 bar, QString path, QProgressBar *prg); // void CsvFileChecker(quint32 bar, QString pathBase, QString pathTarget, QProgressBar* prg); // void AdcLogCsvFileWriter(QString folderPath, QProgressBar* prg); // void scenarioFileVerifier(quint32 bar, quint32 offset, QString path); // // quint64 byteArrayTo64LittleEndian(QByteArray data); // quint32 byteArrayTo32LittleEndian(QByteArray data); // quint32 byteArrayTo32BigEndian(QByteArray data); // // void scenarioStart(); // void scenarioStop(); // bool checkTermalShutdown(quint8 value); void on_btn_setAtgcMode_clicked(); void on_btn_trxRomWrite_clicked(); void on_btn_trxRomIdRead_clicked(); void on_btn_trxRomInfoRead_clicked(); void on_btn_mpsRomWrite_clicked(); void on_btn_mpsRomIdRead_clicked(); void on_btn_mpsRomInfoRead_clicked(); void on_btn_prbCtrlRomWrite_clicked(); void on_btn_prbCtrlRomIdRead_clicked(); void on_btn_prbCtrlRomInfoRead_clicked(); void on_btn_prbRomWrite_clicked(); void on_btn_prbRomIdRead_clicked(); void on_btn_prbRomInfoRead_clicked(); void on_btn_scenStart_clicked(); void on_btn_emulator_clicked(); void on_btn_dmaShow_clicked(); void on_btn_emulBrowse_clicked(); void on_btn_logBrowse_clicked(); void on_btn_dmaLogLast_clicked(); void on_btn_afeRead_clicked(); void on_chk_continuousShowing_clicked(); void show3d(); void show2d(); void catchLogCount(qint32 counter, QProgressDialog* _progress); void on_chk_mpsInit_clicked(); void on_btn_afeConfig_clicked(); void on_btn_h5Browse_clicked(); void on_btn_setScenario_clicked(); signals: // void updateBlockProgressValue(int percentage, QProgressBar* prg); // void updateFpgaProgressValue(int percentage); // void updateBlockProgressVisibility(bool show, QProgressBar* prg); // void updateFpgaProgressVisibility(bool show); void showMessage(QString message); void threeDReady(); void twoDReady(); void sendLogCount(qint32 counter, QProgressDialog* _progress); void connectedPrbChange(); }; #endif // MAINWINDOW_H