You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

439 lines
10 KiB

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTimer>
#include <QTime>
#include <QLabel>
#include <QList>
#include <QString>
#include <QDebug>
#include <QSettings>
#include <QtConcurrent/QtConcurrent>
#include <QMessageBox>
#include <QFileDialog>
#include <QColormap>
#include <QProgressDialog>
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <QFuture>
#include <QFutureWatcher>
#include <QMovie>
#include <QLCDNumber>
#include <QElapsedTimer>
#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<void> biteLogWatcher;
QFutureWatcher<void> dmaLogWatcher;
QFutureWatcher<void> programWatcher;
QFutureWatcher<void> mcsProgWatcher;
QFutureWatcher<void> 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<QByteArray> _dmaBuffer;
QByteArray _lastBuffer;
QList<QByteArray> _frame;
QList<QByteArray> _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