mirror of https://github.com/EspoTek/Labrador.git
320 lines
8.8 KiB
C++
320 lines
8.8 KiB
C++
#ifndef MAINWINDOW_H
|
|
#define MAINWINDOW_H
|
|
|
|
#include <QMainWindow>
|
|
#include <QActionGroup>
|
|
#include <QAction>
|
|
#include <QShortcut>
|
|
#include <QFont>
|
|
#include <QDateTime>
|
|
#include <QDir>
|
|
#include <QFile>
|
|
#include <QThread>
|
|
#include <QPalette>
|
|
#include <QDebug>
|
|
#include <QBrush>
|
|
#include <QGridLayout>
|
|
|
|
#include <math.h>
|
|
#include "qcustomplot.h"
|
|
|
|
#include "platformspecific.h"
|
|
#include "qcustomplot.h"
|
|
#include "ui_mainwindow.h"
|
|
#include "scoperangeenterdialog.h"
|
|
//#include "isobuffer.h"
|
|
#include "q_debugstream.h"
|
|
#include "pinchcatcher.h"
|
|
|
|
|
|
//The Main Window object. This has a lot of control information too (keyboard shortcuts etc.)!
|
|
|
|
|
|
|
|
namespace Ui {
|
|
class MainWindow;
|
|
}
|
|
|
|
class MainWindow : public QMainWindow
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit MainWindow(QWidget *parent = 0);
|
|
~MainWindow();
|
|
void resizeEvent(QResizeEvent *event);
|
|
void showFileDialog(QString *fileName);
|
|
void openFileDialog(QString *fileName);
|
|
private slots:
|
|
//Oscilloscope
|
|
void on_actionGain0_5_triggered();
|
|
void on_actionGain1_triggered();
|
|
void on_actionGain2_triggered();
|
|
void on_actionGain4_triggered();
|
|
void on_actionGain8_triggered();
|
|
void on_actionGain16_triggered();
|
|
void on_actionGain32_triggered();
|
|
void on_actionGain64_triggered();
|
|
void on_actionGainAuto_triggered();
|
|
void on_actionCursor_Stats_triggered(bool checked);
|
|
void on_actionAutomatically_Enable_Cursors_toggled(bool arg1);
|
|
void on_action60FPS_toggled(bool enabled);
|
|
void on_action30FPS_toggled(bool enabled);
|
|
void on_action20FPS_toggled(bool enabled);
|
|
void on_action15FPS_toggled(bool enabled);
|
|
void on_action10FPS_toggled(bool enabled);
|
|
void on_action5FPS_toggled(bool enabled);
|
|
void on_actionSnap_to_Cursors_triggered();
|
|
void on_actionEnter_Manually_triggered();
|
|
|
|
void connectDisplaySignals();
|
|
void calibrateStage2();
|
|
void calibrateStage3();
|
|
|
|
|
|
//Logic Analyzer
|
|
void on_action300_toggled(bool arg1);
|
|
void on_action600_toggled(bool arg1);
|
|
void on_action1200_toggled(bool arg1);
|
|
void on_action2400_toggled(bool arg1);
|
|
void on_action4800_toggled(bool arg1);
|
|
void on_action9600_toggled(bool arg1);
|
|
void on_action14400_toggled(bool arg1);
|
|
void on_action19200_toggled(bool arg1);
|
|
void on_action28800_toggled(bool arg1);
|
|
void on_action38400_toggled(bool arg1);
|
|
void on_action57600_toggled(bool arg1);
|
|
void on_action115200_toggled(bool arg1);
|
|
|
|
void on_action300_2_toggled(bool arg1);
|
|
void on_action600_2_toggled(bool arg1);
|
|
void on_action1200_2_toggled(bool arg1);
|
|
void on_action2400_2_toggled(bool arg1);
|
|
void on_action4800_2_toggled(bool arg1);
|
|
void on_action9600_2_toggled(bool arg1);
|
|
void on_action14400_2_toggled(bool arg1);
|
|
void on_action19200_2_toggled(bool arg1);
|
|
void on_action28800_2_toggled(bool arg1);
|
|
void on_action38400_2_toggled(bool arg1);
|
|
void on_action57600_2_toggled(bool arg1);
|
|
void on_action115200_2_toggled(bool arg1);
|
|
void cycleBaudRate_CH1();
|
|
void cycleBaudRateBackwards_CH1();
|
|
void cycleBaudRate_CH2();
|
|
void cycleBaudRateBackwards_CH2();
|
|
|
|
//Deprecated/Unsupported
|
|
void timeBaseNeedsChanging(bool positive);
|
|
void on_actionForce_Square_triggered(bool checked);
|
|
void helloWorld();
|
|
|
|
//Keyboard Shortcuts
|
|
void arrowUpTriggered();
|
|
void arrowDownTriggered();
|
|
void ctrlArrowUpTriggered();
|
|
void ctrlArrowDownTriggered();
|
|
void cycleDelayLeft();
|
|
void cycleDelayRight();
|
|
void cycleDelayLeft_large();
|
|
void cycleDelayRight_large();
|
|
void enableLabradorDebugging(bool enabled);
|
|
|
|
//Power Supply
|
|
void on_actionAuto_Lock_toggled(bool arg1);
|
|
|
|
//File/other
|
|
void reinitUsb(void);
|
|
void reinitUsbStage2(void);
|
|
void resetUsbState(void);
|
|
void rSourceIndexChanged(int newSource);
|
|
void multimeterStateChange(bool state);
|
|
|
|
#ifdef PLATFORM_ANDROID
|
|
//Android Special
|
|
void on_actionOld_Person_Mode_triggered(bool checked);
|
|
void screenRotateEvent(Qt::ScreenOrientation orientation);
|
|
bool eventFilter(QObject *obj, QEvent *event);
|
|
bool gestureFilter(QGestureEvent *event);
|
|
void horiScaleEvent(bool enabled);
|
|
void vertScaleEvent(bool enabled);
|
|
void dpiAutoScaling();
|
|
void on_androidMenuButton_clicked();
|
|
#endif
|
|
|
|
void on_actionCalibrate_triggered();
|
|
void on_actionLo_bw_triggered();
|
|
|
|
void on_actionSingle_ep_msync_triggered();
|
|
|
|
void on_actionSingle_ep_async_triggered();
|
|
|
|
void on_actionExportImage_triggered();
|
|
|
|
void on_actionSnapshot_CH1_triggered();
|
|
|
|
void on_actionSnapshot_CH2_triggered();
|
|
|
|
void on_actionRecord_CH1_triggered(bool checked);
|
|
|
|
void on_actionRecord_CH2_triggered(bool checked);
|
|
|
|
void serialEmergencyDisable(int channel);
|
|
|
|
void on_actionFirmware_Recovery_triggered();
|
|
|
|
void on_actionDAQ_Settings_triggered();
|
|
|
|
void fileLimitReached_CH1(void);
|
|
void fileLimitReached_CH2(void);
|
|
|
|
void daq_updatedAveraging(int newVal);
|
|
void daq_updatedMaxFileSize(qulonglong newVal);
|
|
void daq_saveButtonPressed();
|
|
|
|
|
|
|
|
void on_actionAbout_triggered();
|
|
|
|
void on_actionOpen_DAQ_File_triggered();
|
|
|
|
void on_actionQuit_triggered();
|
|
|
|
void on_kickstartIsoButton_clicked();
|
|
|
|
void on_actionCalibrate_2_triggered();
|
|
|
|
void calibrate_psu_stage2();
|
|
|
|
void calibrate_psu_stage3();
|
|
|
|
void on_actionSerial_triggered(bool checked);
|
|
|
|
void on_actionI2C_triggered(bool checked);
|
|
|
|
void on_actionShow_Range_Dialog_on_Main_Page_triggered(bool checked);
|
|
|
|
void paused(bool enabled);
|
|
|
|
void on_actionNone_triggered();
|
|
|
|
void on_actionNone_2_triggered();
|
|
|
|
void on_actionEven_triggered();
|
|
|
|
void on_actionOdd_triggered();
|
|
|
|
void on_actionEven_2_triggered();
|
|
|
|
void on_actionOdd_2_triggered();
|
|
|
|
void on_actionDocumentation_triggered();
|
|
|
|
void on_actionPinout_triggered();
|
|
|
|
void cursorGroupEnabled(bool enabled);
|
|
|
|
void on_actionHide_Widget_Oscilloscope_triggered(bool checked);
|
|
|
|
void on_actionHide_Widget_SignalGen_triggered(bool checked);
|
|
|
|
void on_actionHide_Widget_Multimeter_triggered(bool checked);
|
|
|
|
void on_actionHide_Widget_PowerSupply_triggered(bool checked);
|
|
|
|
void on_actionHide_Widget_LogicAnalyzer_triggered(bool checked);
|
|
|
|
void on_actionDark_Mode_triggered(bool checked);
|
|
|
|
void on_actionShow_Debug_Console_triggered(bool checked);
|
|
void on_actionFrequency_Spectrum_triggered(bool checked);
|
|
|
|
private:
|
|
//Generic Vars
|
|
Ui::MainWindow *ui;
|
|
QWheelEvent *wheelEmu;
|
|
bool forceSquare = false;
|
|
QCPItemText *textLabel;
|
|
QFile *output375_CH1, *output375_CH2, *output750;
|
|
unsigned char caibrateStage;
|
|
QMessageBox *calibrationMessages;
|
|
double PSU5, PSU10;
|
|
double psu_voltage_calibration_offset;
|
|
|
|
int reinitdeviceMode;
|
|
double reinitScopeGain;
|
|
double reinitCurrentPsuVoltage;
|
|
int reinitDigitalPinState;
|
|
|
|
QSettings *settings;
|
|
bool calibrationCanceled = false;
|
|
|
|
QPalette defaultPalette;
|
|
QString defaultStyleName;
|
|
|
|
//Generic Functions
|
|
void initialisePlot();
|
|
void labelPsu();
|
|
void menuSetup();
|
|
void initShortcuts();
|
|
void readSettingsFile();
|
|
void setDarkMode(bool dark);
|
|
|
|
//Shortcut pointers
|
|
QActionGroup *gainGroup;
|
|
QActionGroup *rangeGroupV;
|
|
QActionGroup *rangeGroupI;
|
|
QActionGroup *rangeGroupR;
|
|
QActionGroup *rangeGroupC;
|
|
QActionGroup *uartBaudGroup_CH1;
|
|
QActionGroup *uartBaudGroup_CH2;
|
|
QActionGroup *uartParityGroup_CH1;
|
|
QActionGroup *uartParityGroup_CH2;
|
|
QActionGroup *fpsGroup;
|
|
QActionGroup *connectionTypeGroup;
|
|
QActionGroup *serialProtocolGroup;
|
|
QShortcut *shortcut_cycleBaudRate_CH1;
|
|
QShortcut *shortcut_cycleBaudRateBackwards_CH1;
|
|
QShortcut *shortcut_cycleBaudRate_CH2;
|
|
QShortcut *shortcut_cycleBaudRateBackwards_CH2;
|
|
QShortcut *shortcut_ArrowUp;
|
|
QShortcut *shortcut_ArrowDown;
|
|
QShortcut *shortcut_CtrlArrowUp;
|
|
QShortcut *shortcut_CtrlArrowDown;
|
|
QShortcut *shortcut_w;
|
|
QShortcut *shortcut_ctrlW;
|
|
QShortcut *shortcut_s;
|
|
QShortcut *shortcut_ctrlS;
|
|
QShortcut *shortcut_a;
|
|
QShortcut *shortcut_d;
|
|
QShortcut *shortcut_ArrowLeft;
|
|
QShortcut *shortcut_ArrowRight;
|
|
QShortcut *shortcut_CtrlArrowLeft;
|
|
QShortcut *shortcut_CtrlArrowRight;
|
|
QShortcut *shortcut_snapScopeToCursors;\
|
|
QShortcut *shortcut_manualRange;
|
|
QShortcut *shortcut_snapshot_CH1;
|
|
QShortcut *shortcut_snapshot_CH2;
|
|
QShortcut *shortcut_Debug;
|
|
QShortcut *shortcut_Esc;
|
|
|
|
QWidget* spectrumLayoutWidget = nullptr;
|
|
QSpinBox* spectrumMinXSpinbox = nullptr;
|
|
QSpinBox* spectrumMaxXSpinbox = nullptr;
|
|
|
|
//Duct Tape
|
|
bool dt_AlreadyAskedAboutCalibration = false;
|
|
int dt_userWantsToCalibrate;
|
|
int daq_num_to_average;
|
|
qulonglong daq_max_file_size;
|
|
|
|
scopeRangeEnterDialog* scopeRangeSwitch = nullptr;
|
|
|
|
#ifdef PLATFORM_ANDROID
|
|
//Android Special
|
|
QScreen *screenPtr;
|
|
bool scalingInTimeAxis = false;
|
|
#endif
|
|
};
|
|
|
|
#endif // MAINWINDOW_H
|