2012-05-22 13:09:48 -04:00
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
|
|
// Some code in this file and accompanying files is based on work by
|
|
|
|
// Moe Wheatley, AE4Y, released under the "Simplified BSD License".
|
|
|
|
// For more details see the accompanying file LICENSE_WHEATLEY.TXT
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
#ifndef PLOTTER_H
|
|
|
|
#define PLOTTER_H
|
|
|
|
|
|
|
|
#include <QtGui>
|
|
|
|
#include <QFrame>
|
|
|
|
#include <QImage>
|
|
|
|
#include <cstring>
|
|
|
|
#include "commons.h"
|
|
|
|
|
|
|
|
#define VERT_DIVS 7 //specify grid screen divisions
|
|
|
|
#define HORZ_DIVS 20
|
|
|
|
|
|
|
|
class CPlotter : public QFrame
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
public:
|
|
|
|
explicit CPlotter(QWidget *parent = 0);
|
|
|
|
~CPlotter();
|
|
|
|
|
|
|
|
QSize minimumSizeHint() const;
|
|
|
|
QSize sizeHint() const;
|
|
|
|
QColor m_ColorTbl[256];
|
2017-01-13 21:35:43 -05:00
|
|
|
bool m_bDecodeFinished;
|
2012-05-22 13:09:48 -04:00
|
|
|
int m_plotZero;
|
|
|
|
int m_plotGain;
|
|
|
|
float m_fSpan;
|
|
|
|
qint32 m_nSpan;
|
|
|
|
qint32 m_binsPerPixel;
|
|
|
|
qint32 m_fQSO;
|
|
|
|
qint32 m_DF;
|
|
|
|
qint32 m_tol;
|
|
|
|
qint32 m_fCal;
|
|
|
|
|
|
|
|
void draw(float sw[], int i0, float splot[]); //Update the waterfalls
|
|
|
|
void SetRunningState(bool running);
|
|
|
|
void setPlotZero(int plotZero);
|
|
|
|
int getPlotZero();
|
|
|
|
void setPlotGain(int plotGain);
|
|
|
|
int getPlotGain();
|
|
|
|
void SetCenterFreq(int f);
|
|
|
|
qint64 centerFreq();
|
|
|
|
void SetStartFreq(quint64 f);
|
|
|
|
qint64 startFreq();
|
|
|
|
void SetFreqOffset(quint64 f);
|
|
|
|
qint64 freqOffset();
|
|
|
|
int plotWidth();
|
|
|
|
void setNSpan(int n);
|
|
|
|
void UpdateOverlay();
|
|
|
|
void setDataFromDisk(bool b);
|
|
|
|
void setTol(int n);
|
|
|
|
void setBinsPerPixel(int n);
|
|
|
|
int binsPerPixel();
|
|
|
|
void setFQSO(int n, bool bf);
|
|
|
|
void setFcal(int n);
|
|
|
|
void setNkhz(int n);
|
2017-01-13 21:35:43 -05:00
|
|
|
void DecodeFinished();
|
2012-05-22 13:09:48 -04:00
|
|
|
void DrawOverlay();
|
|
|
|
int fQSO();
|
|
|
|
int DF();
|
|
|
|
int autoZero();
|
|
|
|
void setPalette(QString palette);
|
|
|
|
void setFsample(int n);
|
|
|
|
void setMode65(int n);
|
|
|
|
void set2Dspec(bool b);
|
|
|
|
double fGreen();
|
2013-11-03 14:30:00 -05:00
|
|
|
void setLockTxRx(bool b);
|
2013-11-10 11:11:04 -05:00
|
|
|
double rxFreq();
|
2013-11-03 15:28:14 -05:00
|
|
|
double txFreq();
|
2013-11-10 11:11:04 -05:00
|
|
|
// void updateFreqLabel();
|
2012-05-22 13:09:48 -04:00
|
|
|
|
|
|
|
signals:
|
|
|
|
void freezeDecode0(int n);
|
|
|
|
void freezeDecode1(int n);
|
|
|
|
|
|
|
|
protected:
|
|
|
|
//re-implemented widget event handlers
|
|
|
|
void paintEvent(QPaintEvent *event);
|
|
|
|
void resizeEvent(QResizeEvent* event);
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
void MakeFrequencyStrs();
|
|
|
|
void UTCstr();
|
|
|
|
int XfromFreq(float f);
|
|
|
|
float FreqfromX(int x);
|
|
|
|
qint64 RoundFreq(qint64 freq, int resolution);
|
|
|
|
|
|
|
|
QPixmap m_WaterfallPixmap;
|
|
|
|
QPixmap m_ZoomWaterfallPixmap;
|
|
|
|
QPixmap m_2DPixmap;
|
|
|
|
unsigned char m_zwf[32768*400];
|
|
|
|
QPixmap m_ScalePixmap;
|
|
|
|
QPixmap m_ZoomScalePixmap;
|
|
|
|
QSize m_Size;
|
|
|
|
QString m_Str;
|
|
|
|
QString m_HDivText[483];
|
|
|
|
bool m_Running;
|
|
|
|
bool m_paintEventBusy;
|
|
|
|
bool m_2Dspec;
|
|
|
|
bool m_paintAllZoom;
|
2013-11-03 14:30:00 -05:00
|
|
|
bool m_bLockTxRx;
|
2012-05-22 13:09:48 -04:00
|
|
|
double m_CenterFreq;
|
|
|
|
double m_fGreen;
|
2013-11-03 14:30:00 -05:00
|
|
|
double m_TXfreq;
|
2012-05-22 13:09:48 -04:00
|
|
|
qint64 m_StartFreq;
|
|
|
|
qint64 m_ZoomStartFreq;
|
|
|
|
qint64 m_FreqOffset;
|
|
|
|
qint32 m_dBStepSize;
|
|
|
|
qint32 m_FreqUnits;
|
|
|
|
qint32 m_hdivs;
|
|
|
|
bool m_dataFromDisk;
|
|
|
|
char m_sutc[5];
|
|
|
|
qint32 m_line;
|
|
|
|
qint32 m_hist1[256];
|
|
|
|
qint32 m_hist2[256];
|
|
|
|
qint32 m_z1;
|
|
|
|
qint32 m_z2;
|
|
|
|
qint32 m_nkhz;
|
|
|
|
qint32 m_fSample;
|
|
|
|
qint32 m_mode65;
|
|
|
|
qint32 m_i0;
|
|
|
|
qint32 m_xClick;
|
2013-11-03 14:30:00 -05:00
|
|
|
qint32 m_TXkHz;
|
|
|
|
qint32 m_TxDF;
|
2012-05-22 13:09:48 -04:00
|
|
|
|
|
|
|
private slots:
|
|
|
|
void mousePressEvent(QMouseEvent *event);
|
|
|
|
void mouseDoubleClickEvent(QMouseEvent *event);
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // PLOTTER_H
|