mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-23 12:48:40 -05:00
Adjustable start frequency for waterfall.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3502 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
88c73582a0
commit
18f1119b1a
16
in.dat
16
in.dat
@ -1,16 +0,0 @@
|
||||
35 36 22 8 31 11 14 55 20 36 55 13 24 15 56 38 16 28 61 58
|
||||
15 26 45 8 41 53 37 57 59 60 29 29 41 46 44 35 52 61 24 26
|
||||
16 20 53 35 2 6 9 27 47 28 57 6 15 9 16 10 56 9 63 46
|
||||
9 15 3
|
||||
74 61 44 233 29 245 254 64 119 64 250 111 38 145 53 29 140 194 119 99
|
||||
55 86 48 110 142 95 48 120 61 66 252 252 245 88 62 41 124 249 246 68
|
||||
250 249 65 64 140 142 88 190 237 90 240 52 79 216 55 31 112 135 66 44
|
||||
99 57 68
|
||||
54 61 26 5 13 60 3 56 30 58 57 4 16 43 28 43 6 61 13 19
|
||||
56 8 4 9 45 32 9 7 14 52 4 38 40 27 3 26 51 54 40 29
|
||||
36 63 34 43 3 48 36 49 46 30 8 20 40 59 29 28 17 11 8 19
|
||||
11 63 5
|
||||
38 25 35 8 28 0 0 60 60 25 0 31 28 52 14 24 9 30 18 54
|
||||
49 55 48 15 27 54 26 22 30 27 1 1 4 31 35 29 23 2 2 27
|
||||
0 1 25 32 21 84 28 19 5 60 2 27 15 9 39 23 42 12 29 17
|
||||
16 50 49
|
@ -35,7 +35,7 @@ QTextEdit* pShortcuts;
|
||||
QTcpSocket* commanderSocket = new QTcpSocket(0);
|
||||
|
||||
QString rev="$Rev$";
|
||||
QString Program_Title_Version=" WSJT-X v1.1, r" + rev.mid(6,4) +
|
||||
QString Program_Title_Version=" WSJT-X v1.1.1, r" + rev.mid(6,4) +
|
||||
" by K1JT";
|
||||
|
||||
//-------------------------------------------------- MainWindow constructor
|
||||
|
25
plotter.cpp
25
plotter.cpp
@ -15,7 +15,7 @@ CPlotter::CPlotter(QWidget *parent) : //CPlotter Constructor
|
||||
setAttribute(Qt::WA_OpaquePaintEvent, false);
|
||||
setAttribute(Qt::WA_NoSystemBackground, true);
|
||||
|
||||
m_StartFreq = 0;
|
||||
m_startFreq = 0;
|
||||
m_nSpan=2; //used for FFT bins/pixel
|
||||
m_fSpan=(float)m_nSpan;
|
||||
m_hdivs = HORZ_DIVS;
|
||||
@ -83,12 +83,11 @@ void CPlotter::paintEvent(QPaintEvent *) // paintEvent()
|
||||
m_paintEventBusy=false;
|
||||
}
|
||||
|
||||
void CPlotter::draw(float swide[], int i0) //draw()
|
||||
void CPlotter::draw(float swide[]) //draw()
|
||||
{
|
||||
int j,y2;
|
||||
float y;
|
||||
|
||||
m_i0=i0;
|
||||
double gain = pow(10.0,0.05*(m_plotGain+7));
|
||||
|
||||
//move current data down one line (must do this before attaching a QPainter object)
|
||||
@ -306,16 +305,15 @@ void CPlotter::MakeFrequencyStrs() //MakeFrequencyStrs
|
||||
{
|
||||
float freq;
|
||||
for(int i=0; i<=m_hdivs; i++) {
|
||||
freq = m_StartFreq + i*m_freqPerDiv;
|
||||
freq = m_startFreq + i*m_freqPerDiv;
|
||||
m_HDivText[i].setNum((int)freq);
|
||||
// StartFreq += m_freqPerDiv;
|
||||
}
|
||||
}
|
||||
|
||||
int CPlotter::XfromFreq(float f) //XfromFreq()
|
||||
{
|
||||
// float w = m_WaterfallPixmap.width();
|
||||
int x = int(m_w * (f - m_StartFreq)/m_fSpan + 0.5);
|
||||
int x = int(m_w * (f - m_startFreq)/m_fSpan + 0.5);
|
||||
if(x<0 ) return 0;
|
||||
if(x>m_w) return m_w;
|
||||
return x;
|
||||
@ -323,8 +321,7 @@ int CPlotter::XfromFreq(float f) //XfromFreq()
|
||||
|
||||
float CPlotter::FreqfromX(int x) //FreqfromX()
|
||||
{
|
||||
// return float(1000.0 + x*m_binsPerPixel*m_fftBinWidth);
|
||||
return float(x*m_binsPerPixel*m_fftBinWidth);
|
||||
return float(m_startFreq + x*m_binsPerPixel*m_fftBinWidth);
|
||||
}
|
||||
|
||||
void CPlotter::SetRunningState(bool running) //SetRunningState()
|
||||
@ -352,16 +349,16 @@ int CPlotter::getPlotGain() //getPlotGain()
|
||||
return m_plotGain;
|
||||
}
|
||||
|
||||
void CPlotter::SetStartFreq(quint64 f) //SetStartFreq()
|
||||
void CPlotter::setStartFreq(int f) //SetStartFreq()
|
||||
{
|
||||
m_StartFreq=f;
|
||||
// resizeEvent(NULL);
|
||||
DrawOverlay();
|
||||
m_startFreq=f;
|
||||
resizeEvent(NULL);
|
||||
update();
|
||||
}
|
||||
|
||||
qint64 CPlotter::startFreq() //startFreq()
|
||||
int CPlotter::startFreq() //startFreq()
|
||||
{
|
||||
return m_StartFreq;
|
||||
return m_startFreq;
|
||||
}
|
||||
|
||||
int CPlotter::plotWidth(){return m_WaterfallPixmap.width();}
|
||||
|
11
plotter.h
11
plotter.h
@ -43,14 +43,14 @@ public:
|
||||
qint32 m_binsPerPixel;
|
||||
qint32 m_w;
|
||||
|
||||
void draw(float sw[], int i0); //Update the waterfall
|
||||
void draw(float sw[]); //Update the waterfall
|
||||
void SetRunningState(bool running);
|
||||
void setPlotZero(int plotZero);
|
||||
int getPlotZero();
|
||||
void setPlotGain(int plotGain);
|
||||
int getPlotGain();
|
||||
void SetStartFreq(quint64 f);
|
||||
qint64 startFreq();
|
||||
void setStartFreq(int f);
|
||||
int startFreq();
|
||||
int plotWidth();
|
||||
void setNSpan(int n);
|
||||
void UpdateOverlay();
|
||||
@ -87,7 +87,6 @@ private:
|
||||
void UTCstr();
|
||||
int XfromFreq(float f);
|
||||
float FreqfromX(int x);
|
||||
qint64 RoundFreq(qint64 freq, int resolution);
|
||||
|
||||
QPixmap m_WaterfallPixmap;
|
||||
QPixmap m_2DPixmap;
|
||||
@ -108,14 +107,11 @@ private:
|
||||
double m_fftBinWidth;
|
||||
double m_dialFreq;
|
||||
|
||||
qint64 m_StartFreq;
|
||||
|
||||
qint32 m_dBStepSize;
|
||||
qint32 m_FreqUnits;
|
||||
qint32 m_hdivs;
|
||||
qint32 m_line;
|
||||
qint32 m_fSample;
|
||||
qint32 m_i0;
|
||||
qint32 m_xClick;
|
||||
qint32 m_freqPerDiv;
|
||||
qint32 m_nsps;
|
||||
@ -128,6 +124,7 @@ private:
|
||||
qint32 m_txFreq;
|
||||
qint32 m_fMin;
|
||||
qint32 m_fMax;
|
||||
qint32 m_startFreq;
|
||||
|
||||
char m_sutc[6];
|
||||
|
||||
|
@ -5,22 +5,23 @@ F3 Display keyboard shortcuts
|
||||
F4 Clear Dx Call and Dx Grid entries
|
||||
Alt+F4 Exit program
|
||||
F5 Display special mouse commands
|
||||
F6 Open next in directory
|
||||
F6 Open next file in directory
|
||||
Shift+F6 Decode all remaining files in directrory
|
||||
F11 Move Rx frequency down 1 Hz
|
||||
Ctrl+F11 Move Rx and Tx frequencies down 1 Hz
|
||||
F12 Move Rx frequency up 1 Hz
|
||||
Ctrl+F12 Move Rx and Tx frequencies up 1 Hz
|
||||
Shift+F6 Decode remaining files in directory
|
||||
Alt+1-6 Set next transmission to this number on Tab 1
|
||||
Alt+D Decode again at QSO frequency
|
||||
Shift+D Full-bandwidth decode (both windows)
|
||||
Alt+E Erase()
|
||||
Shift+D Full decode (both windows)
|
||||
Alt+E Erase
|
||||
Ctrl+F Edit the free text message box
|
||||
Alt+G Generate standard messages
|
||||
Alt+H Halt Tx()
|
||||
Alt+H Halt Tx
|
||||
Ctrl+L Lookup callsign in database, generate standard messages
|
||||
Alt M Monitor()
|
||||
Alt+N Enable Tx()
|
||||
Alt+Q Log QSO()
|
||||
Alt+S Stop()
|
||||
Alt M Monitor
|
||||
Alt+N Enable Tx
|
||||
Alt+Q Log QSO
|
||||
Alt+S Stop monitoring
|
||||
Alt+T Tune
|
||||
Alt+V Save the most recently completed *.wav file
|
||||
|
@ -49,6 +49,8 @@ WideGraph::WideGraph(QWidget *parent) :
|
||||
ui->widePlot->setBinsPerPixel(nbpp);
|
||||
m_slope=settings.value("Slope",0.0).toDouble();
|
||||
ui->slopeSpinBox->setValue(m_slope);
|
||||
ui->widePlot->setStartFreq(settings.value("StartFreq",0).toInt());
|
||||
ui->fStartSpinBox->setValue(ui->widePlot->startFreq());
|
||||
settings.endGroup();
|
||||
}
|
||||
|
||||
@ -75,6 +77,7 @@ void WideGraph::saveSettings()
|
||||
settings.setValue("Cumulative",ui->widePlot->m_bCumulative);
|
||||
settings.setValue("BinsPerPixel",ui->widePlot->binsPerPixel());
|
||||
settings.setValue("Slope",m_slope);
|
||||
settings.setValue("StartFreq",ui->widePlot->startFreq());
|
||||
settings.endGroup();
|
||||
}
|
||||
|
||||
@ -100,16 +103,12 @@ void WideGraph::dataSink2(float s[], float df3, int ihsym,
|
||||
for (int i=0; i<NSMAX; i++)
|
||||
splot[i] /= n; //Normalize the average
|
||||
n=0;
|
||||
|
||||
// int w=ui->widePlot->plotWidth();
|
||||
int i0=-1; //###
|
||||
int i=i0;
|
||||
int i=int(ui->widePlot->startFreq()/df3 + 0.5);
|
||||
int jz=5000.0/(nbpp*df3);
|
||||
for (int j=0; j<jz; j++) {
|
||||
float sum=0;
|
||||
for (int k=0; k<nbpp; k++) {
|
||||
i++;
|
||||
sum += splot[i];
|
||||
sum += splot[i++];
|
||||
}
|
||||
swide[j]=sum;
|
||||
}
|
||||
@ -123,7 +122,7 @@ void WideGraph::dataSink2(float s[], float df3, int ihsym,
|
||||
}
|
||||
}
|
||||
m_ntr0=ntr;
|
||||
ui->widePlot->draw(swide,i0);
|
||||
ui->widePlot->draw(swide);
|
||||
}
|
||||
}
|
||||
|
||||
@ -312,3 +311,8 @@ void WideGraph::setDialFreq(double d)
|
||||
m_dialFreq=d;
|
||||
ui->widePlot->setDialFreq(d);
|
||||
}
|
||||
|
||||
void WideGraph::on_fStartSpinBox_valueChanged(int n)
|
||||
{
|
||||
ui->widePlot->setStartFreq(n);
|
||||
}
|
||||
|
@ -61,6 +61,7 @@ private slots:
|
||||
void on_spec2dComboBox_currentIndexChanged(const QString &arg1);
|
||||
void on_fMinSpinBox_valueChanged(int n);
|
||||
void on_slopeSpinBox_valueChanged(double d);
|
||||
void on_fStartSpinBox_valueChanged(int n);
|
||||
|
||||
private:
|
||||
double m_slope;
|
||||
|
46
widegraph.ui
46
widegraph.ui
@ -68,6 +68,50 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="fStartSpinBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>80</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string> Hz</string>
|
||||
</property>
|
||||
<property name="prefix">
|
||||
<string>Start </string>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>5000</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>100</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_5">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Minimum</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>8</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="freqSpanSpinBox">
|
||||
<property name="sizePolicy">
|
||||
@ -256,7 +300,7 @@
|
||||
<widget class="QDoubleSpinBox" name="slopeSpinBox">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>60</width>
|
||||
<width>80</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
|
Loading…
Reference in New Issue
Block a user