#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 #include #include #include "qcustomplot.h" #include "include/model/hardware/core/lowLevelApi/TrxBoard.h" #include "hdf5Scenario/hdf5Scenario.h" #include "api.h" #define MESSAGE_BOX(M) \ emit showMessage(M) #define SCENARIO_FILE_PATH "scenarioFilePath" #define SCENARIOS_FOLDER_PATH "scenariosFolderPath" #define BITE_SCEN_FILE_PATH "biteScenarioFilePath" #define FRAME_LOG_PATH "frameLogPath" #define ADC_LOG_PATH "adcLogPath" #define BITE_FILE_PATH "biteFilePath" #define FPGA_FILE_PATH "fpgaFilePath" #define MCS_FILE_PATH "mcsFilePath" #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 LOG_COUNT_FROM_FIRST 50U #define TRANSFER_LENGTH 128 * 1024 #define TRANSFER_RATE 30.0f #define RAM_BUFFER_OFFSET 0U QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE using namespace std; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: Ui::MainWindow *ui; TrxBoard _trx; QMovie *movie; QSettings* _settings; UltraSoundDevice* _usd; QMutex _mutex; QCPColorMap *_colorMap; QFutureWatcher biteLogWatcher; QFutureWatcher dmaLogWatcher; QFutureWatcher programWatcher; QFutureWatcher mcsProgWatcher; QFutureWatcher mcsReadWatcher; static QThread* _uiThread; QFile* _headerLogFile; QFile* _headerEndurance; QFile* _statusLogPSFile; QTimer* _timeout; QEventLoop loop; QTimer _bpiTimer; EmulatorProperties* _emul; BoardsCtrlMngt* _bCtrl; BpiFlash* _bpi; SupervisorRbValue* _supRbValue; MpsFaultStatus* _faultStatus; HealthStatus* _healStatus; FpgaCodeVersion* _version; StatusVec* _vec; PrbCase* _prb; void setScenarioCompare(const QString& scenPath); void timeout(); void delay(quint16 ms); void delayEvents(quint16 ms); const QString enum2String (ePg state) const; void changeLabelTextColor(QLabel* label, QColor color); void setAfeConfig (void); void logPcie(QString logPath, quint32 logCount, QLCDNumber* lcdCounter); void continuousFrameRepresent(void); QByteArray str2ByteArray (QString& str); QString uint2IdString (quint32& id); QString byteArray2InfoString (QByteArray& arr); QString releaseCodeVersion (quint32 &value); void getProbeColor (const QBrush brush, const int item); void lcdStyle(QLCDNumber* lcdNum); void biteLogThreadFinished(); void dmaLogThreadFinished(); void dmaLogLayoutVisible(bool show); void fpgaProgram(QString &path); void mcsProgram(QString &path); void mcsRead(QString &path); void programThreadFinish(); void mcsThreadFinish(); void mcsReadFinish(); void mcsButtonsEnable(bool Enable); void slaveProgButtonsEnable(bool Enable); void logButtonsEnable (bool Enable); QString _fpgaProgramFolder = "/home/hasis/Desktop/hardware/hwCode"; QString _mcsProgramFolder = "/home/hasis/Desktop/hardware/hwCode"; QString _mcsVerifyFolder = "/home/hasis/Desktop/hardware/hwCode"; QString _scenarioFolder = "/home/hasis/Desktop/hardware/Scenarios"; QString _scenFolder = "/home/hasis/Desktop/hardware/Log/ScenariosFolder"; QString _emulFolder = "/home/hasis/Desktop/hardware/emulator"; QString _BITeScenFolder = "/home/hasis/Desktop/hardware/BITe_IQ"; QString _BITeIqFolder = "/home/hasis/Desktop/hardware/BITe_IQ"; QString _frameLogFolder = "/home/hasis/Desktop/hardware/Log/DMA"; QString _biteLogFolder = "/home/hasis/Desktop/hardware/Log/BITe"; QString _adcLoggerFolder = "/home/hasis/Desktop/hardware/Log/ADC"; QString _statusVectorPSPath = "/home/hasis/Desktop/hardware/Log/statusVectorPS"; QString _headerLogPath = "/home/hasis/Desktop/hardware/Log/frameHeader/headerLog.csv"; QString _headerEndurancePath = "/home/hasis/Desktop/hardware/Log/header_endurance/headerLog.csv"; QVector _dmaBuffer; QByteArray _lastBuffer; QList _frame; QList _bufferedFrame; quint32 _dmaLogCount; quint16 _frameCount; quint16 _batchIdBuff; double_t fps; double_t fpsBuf; bool _dmaLog; bool _dmaRun; bool _dmaShow; bool _headerLogEn; bool _headerEndur; bool _statusLogEn; bool _fpsFlag; bool _firstFrameEn; bool _programFlag; bool _discardTempTest; bool _discardAdcLog; // uncrustify off private slots: void exitApp(); void setScenario(const QString& h5Path); void getFramePacket (QByteArray packet); void getSramBinaryCreateFlag (void); void getRegisterCsvCompareFlag (void); void getSramVerifyMessage(QString message); void getPrbChange(); void getFrameLost(); void getLabelState(QLabel* label, QString str, QColor color); void getProgrammingGif(QLabel* label); void bpiTimerShot(quint16 ms); void bpiTimeout(QString message); void bpiStopTimer(); void catchGtReset(quint32 progCnt, quint32 taskItr, quint16 delayPerTask); void catchStatusLog(quint32 progCnt, quint32 taskItr, quint16 delayPerTask, quint16 scenStartDuration); void catchEndurance(quint32 progCnt, quint32 taskItr, quint16 delayPerTask); void catchAdcLog(void); void catchStatusLogPS(const quint32& statLogPS); 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 on_btn_fpgaBrowse_clicked(); void on_btn_fpgaProgram_clicked(); void newMessage(QString message); void on_cb_selectedProbe_currentIndexChanged(int index); void on_btn_updateRdbackValue_clicked(); void on_btn_supJump_clicked(); void on_btn_setAo_clicked(); void on_btn_getFpgaVersion_clicked(); void on_btn_setAtgcMode_clicked(); void on_btn_scenStart_clicked(); void on_btn_emulator_clicked(); void on_btn_dmaShow_clicked(); void on_btn_dmaLogLast_clicked(); void on_btn_afeRead_clicked(); void on_chk_continuousShowing_clicked(); void show3d(); void show2d(); void on_chk_mpsInit_clicked(); void on_btn_scenBrowse_clicked(); void on_btn_setScenario_clicked(); void on_btn_setScenVerification_clicked(); void on_btn_setIdx_clicked(); void on_btn_trxRomInfoWrite_clicked(); void on_btn_trxRomIdWrite_clicked(); void on_btn_mpsRomIdWrite_clicked(); void on_btn_mpsRomInfoWrite_clicked(); void on_btn_prbCtrlRomIdWrite_clicked(); void on_btn_prbCtrlRomInfoWrite_clicked(); void on_btn_prbRomImpulseRead_clicked(); void on_btn_trxRomIdRead_clicked(); void on_btn_trxRomInfoRead_clicked(); void on_btn_mpsRomIdRead_clicked(); void on_btn_mpsRomInfoRead_clicked(); void on_btn_prbCtrlRomIdRead_clicked(); void on_btn_prbCtrlRomInfoRead_clicked(); void on_btn_prbRomIdRead_clicked(); void on_btn_scenInfo_clicked(); void on_btn_setBiteLog_clicked(); void on_btn_biteBrowse_clicked(); void on_btn_setAdcLog_clicked(); void on_btn_gtReg_clicked(); void on_btn_frameLogBrowse_clicked(); void on_btn_biteScenBrowse_clicked(); void on_chk_logCountEn_clicked(bool checked); void on_chk_syncAdcLog_clicked(bool checked); void on_chk_scenFrameAdcLog_clicked(bool checked); void on_chk_pulserTstModeEn_clicked(bool checked); void on_chk_afeConfig_clicked(bool checked); void on_cb_syncMode_currentIndexChanged(int index); void on_btn_adcLogBrowse_clicked(); void on_btn_biteSetScenario_clicked(); void on_btn_biteIQ_clicked(); void on_cb_pulserTstMode_currentIndexChanged(int index); void on_chk_headerLogEn_clicked(bool checked); void on_btn_mcsProgram_clicked(); void on_btn_mcsBrowse_clicked(); void on_btn_mcsRead_clicked(); void on_btn_tempTest_clicked(); void on_chk_powerAo_clicked(bool checked); void on_btn_tempStatusLog_clicked(); void on_btn_discard_clicked(void); void on_btn_discardAdcLog_clicked(void); void on_btn_endurance_clicked(); void on_btn_builtINTemp_clicked(); void on_btn_headerEndurance_clicked(); void on_btn_scenFolderBrowse_clicked(); void on_btn_scenChange_clicked(); void on_chk_statusLogPS_clicked(bool checked); void on_btn_seRead_clicked(); signals: void showMessage(QString message); void threeDReady(); void twoDReady(); void connectedPrbChange(); void frameLostCall(); void labelState(QLabel* label, QString str, QColor color); void scenarioReady(const QString& h5Path); void programmingGif(QLabel* label); void adcLog(); void statusLogPS(const quint32& statLogPS); void statusLog(quint32 progCnt, quint32 taskItr, quint16 delayPerTask, quint16 scenStartDuration); void gtReset(quint32 progCnt, quint32 taskItr, quint16 delayPerTask); void endurance (quint32 progCnt, quint32 taskItr, quint16 delayPerTask); }; #endif // MAINWINDOW_H