wfview/wfmain.h

199 wiersze
4.5 KiB
C
Czysty Zwykły widok Historia

2018-06-19 19:58:52 +00:00
#ifndef WFMAIN_H
#define WFMAIN_H
#include <QMainWindow>
#include <QThread>
#include <QString>
#include <QVector>
#include <QTimer>
#include "commhandler.h"
#include "rigcommander.h"
#include <qcustomplot.h>
#include<qserialportinfo.h>
2018-06-19 19:58:52 +00:00
namespace Ui {
class wfmain;
}
class wfmain : public QMainWindow
{
Q_OBJECT
public:
explicit wfmain(QWidget *parent = 0);
~wfmain();
signals:
void getFrequency();
void setFrequency(double freq);
void getMode();
void setMode(char modeIndex);
2018-11-07 23:54:03 +00:00
void setDataMode(bool dataOn);
void getDataMode();
2018-11-07 23:54:03 +00:00
void getPTT();
void setPTT(bool pttOn);
void getBandStackReg(char band, char regCode);
void getRfGain();
2018-06-19 19:58:52 +00:00
void getDebug();
void spectOutputEnable();
void spectOutputDisable();
void scopeDisplayEnable();
void scopeDisplayDisable();
void setScopeCenterMode(bool centerEnable);
void setScopeSpan(char span);
void setScopeEdge(char edge);
private slots:
void on_startBtn_clicked();
void receiveFreq(double);
void receiveMode(QString);
void receiveSpectrumData(QByteArray spectrum, double startFreq, double endFreq);
2018-11-07 23:54:03 +00:00
void receivePTTstatus(bool pttOn);
void receiveDataModeStatus(bool dataOn);
void receiveBandStackReg(float freq, char mode, bool dataOn); // freq, mode, (filter,) datamode
2018-06-19 19:58:52 +00:00
void handlePlotClick(QMouseEvent *);
void handlePlotDoubleClick(QMouseEvent *);
void handleWFClick(QMouseEvent *);
void handleWFDoubleClick(QMouseEvent *);
void runDelayedCommand();
2018-11-07 23:54:03 +00:00
void showStatusBarText(QString text);
2018-06-19 19:58:52 +00:00
void on_getFreqBtn_clicked();
void on_getModeBtn_clicked();
void on_debugBtn_clicked();
void on_stopBtn_clicked();
void on_clearPeakBtn_clicked();
void on_drawPeakChk_clicked(bool checked);
void on_fullScreenChk_clicked(bool checked);
void on_goFreqBtn_clicked();
void on_f0btn_clicked();
void on_f1btn_clicked();
void on_f2btn_clicked();
void on_f3btn_clicked();
void on_f4btn_clicked();
void on_f5btn_clicked();
void on_f6btn_clicked();
void on_f7btn_clicked();
void on_f8btn_clicked();
void on_f9btn_clicked();
void on_fDotbtn_clicked();
void on_fBackbtn_clicked();
void on_fCEbtn_clicked();
void on_scopeCenterModeChk_clicked(bool checked);
void on_fEnterBtn_clicked();
void on_scopeBWCombo_currentIndexChanged(int index);
void on_scopeEdgeCombo_currentIndexChanged(int index);
// void on_modeSelectCombo_currentIndexChanged(int index);
2018-06-19 19:58:52 +00:00
void on_useDarkThemeChk_clicked(bool checked);
void on_modeSelectCombo_activated(int index);
// void on_freqDial_actionTriggered(int action);
void on_freqDial_valueChanged(int value);
void on_band6mbtn_clicked();
void on_band10mbtn_clicked();
void on_band12mbtn_clicked();
void on_band15mbtn_clicked();
void on_band17mbtn_clicked();
void on_band20mbtn_clicked();
void on_band30mbtn_clicked();
void on_band40mbtn_clicked();
void on_band60mbtn_clicked();
void on_band80mbtn_clicked();
void on_band160mbtn_clicked();
void on_bandGenbtn_clicked();
void on_aboutBtn_clicked();
void on_aboutQtBtn_clicked();
2018-06-19 19:58:52 +00:00
private:
Ui::wfmain *ui;
QCustomPlot *plot; // line plot
QCustomPlot *wf; // waterfall image
QCPItemTracer * tracer; // marker of current frequency
2018-06-19 19:58:52 +00:00
//commHandler *comm;
void setAppTheme(bool isDark);
void setPlotTheme(QCustomPlot *plot, bool isDark);
void getInitialRigState();
QWidget * theParent;
QStringList portList;
2018-06-19 19:58:52 +00:00
rigCommander * rig;
QThread * rigThread;
QCPColorMap * colorMap;
QCPColorMapData * colorMapData;
QCPColorScale * colorScale;
QTimer * delayedCommand;
QStringList modes;
int currentModeIndex;
QStringList spans;
QStringList edges;
QStringList commPorts;
quint16 spectWidth;
quint16 wfLength;
quint16 spectRowCurrent;
QByteArray spectrumPeaks;
QVector <QByteArray> wfimage;
bool drawPeaks;
bool freqTextSelected;
void checkFreqSel();
double oldLowerFreq;
double oldUpperFreq;
double freqMhz;
double knobFreqMhz;
enum cmds {cmdNone, cmdGetFreq, cmdGetMode, cmdGetDataMode, cmdSetDataModeOn, cmdSetDataModeOff,
cmdSpecOn, cmdSpecOff, cmdDispEnable, cmdDispDisable};
2018-06-19 19:58:52 +00:00
cmds cmdOut;
QVector <cmds> cmdOutQue;
int oldFreqDialVal;
2018-06-19 19:58:52 +00:00
void bandStackBtnClick();
bool waitingForBandStackRtn;
char bandStkBand;
char bandStkRegCode;
2018-06-19 19:58:52 +00:00
};
#endif // WFMAIN_H