From e60fc1ca196914d4bf0431abe1ae940eefb237ba Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 16 Sep 2020 20:16:32 -0400 Subject: [PATCH] FST4 GUI controls for FLow, FHigh, should disappear when Single Decode is checked. And some related improvements. --- widgets/mainwindow.cpp | 26 ++++++++++++++++++++++---- widgets/plotter.cpp | 13 +++++++++++-- widgets/plotter.h | 3 ++- widgets/widegraph.cpp | 5 +++++ widgets/widegraph.h | 1 + 5 files changed, 41 insertions(+), 7 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 99d42cb6a..7d81f6868 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -3077,8 +3077,13 @@ void MainWindow::decode() //decode() } if(m_mode=="FST4") { dec_data.params.ntol=ui->sbFtol->value(); - dec_data.params.nfa=ui->sbF_Low->value(); - dec_data.params.nfb=ui->sbF_High->value(); + if(m_config.single_decode()) { + dec_data.params.nfa=m_wideGraph->rxFreq() - ui->sbFtol->value(); + dec_data.params.nfb=m_wideGraph->rxFreq() + ui->sbFtol->value(); + } else { + dec_data.params.nfa=ui->sbF_Low->value(); + dec_data.params.nfb=ui->sbF_High->value(); + } } if(m_mode=="FST4W") dec_data.params.ntol=ui->sbFST4W_FTol->value(); if(dec_data.params.nutc < m_nutc0) m_RxLog = 1; //Date and Time to file "ALL.TXT". @@ -5916,8 +5921,14 @@ void MainWindow::on_actionFST4_triggered() ui->label_6->setText(tr ("Band Activity")); ui->label_7->setText(tr ("Rx Frequency")); WSPR_config(false); -// 012345678901234567890123456789012345 - displayWidgets(nWidgets("111111000100111000010000000100000011")); + if(m_config.single_decode()) { +// 012345678901234567890123456789012345 + displayWidgets(nWidgets("111111000100111000010000000100000000")); + m_wideGraph->setSingleDecode(true); + } else { + displayWidgets(nWidgets("111111000100111000010000000100000011")); + m_wideGraph->setSingleDecode(false); + } setup_status_bar(false); ui->sbTR->values ({15, 30, 60, 120, 300, 900, 1800}); on_sbTR_valueChanged (ui->sbTR->value()); @@ -6649,6 +6660,13 @@ void MainWindow::on_sbF_High_valueChanged(int n) void MainWindow::chk_FST4_freq_range() { +// qDebug() << "aa" << m_wideGraph->nStartFreq() << m_wideGraph->Fmax() +// << ui->sbF_Low->value() << ui->sbF_High->value(); + if(ui->sbF_Low->value() < m_wideGraph->nStartFreq()) ui->sbF_Low->setValue(m_wideGraph->nStartFreq()); + if(ui->sbF_High->value() > m_wideGraph->Fmax()) { + int n=m_wideGraph->Fmax()/100; + ui->sbF_High->setValue(100*n); + } int maxDiff=2000; if(m_TRperiod==120) maxDiff=1000; if(m_TRperiod==300) maxDiff=400; diff --git a/widgets/plotter.cpp b/widgets/plotter.cpp index bc7b2270d..ab979af64 100644 --- a/widgets/plotter.cpp +++ b/widgets/plotter.cpp @@ -163,7 +163,6 @@ void CPlotter::draw(float swide[], bool bScroll, bool bRed) int iz=XfromFreq(5000.0); int jz=iz*m_binsPerPixel; m_fMax=FreqfromX(iz); - if(bScroll and swide[0]<1.e29) { flat4_(swide,&iz,&m_Flatten); if(!m_bReplot) flat4_(&dec_data.savg[j0],&jz,&m_Flatten); @@ -506,7 +505,7 @@ void CPlotter::DrawOverlay() //DrawOverlay() or m_mode=="QRA64" or m_mode=="FT8" or m_mode=="FT4" or m_mode.startsWith("FST4")) { - if(m_mode=="FST4") { + if(m_mode=="FST4" and !m_bSingleDecode) { x1=XfromFreq(m_nfa); x2=XfromFreq(m_nfb); painter0.drawLine(x1,25,x1+5,30); // Mark FST4 F_Low @@ -663,7 +662,9 @@ void CPlotter::setPlot2dZero(int plot2dZero) //setPlot2dZero void CPlotter::setStartFreq(int f) //SetStartFreq() { m_startFreq=f; + m_fMax=FreqfromX(XfromFreq(5000.0)); resizeEvent(NULL); + DrawOverlay(); update(); } @@ -684,6 +685,7 @@ void CPlotter::setRxRange(int fMin) //setRxRange void CPlotter::setBinsPerPixel(int n) //setBinsPerPixel { m_binsPerPixel = n; + m_fMax=FreqfromX(XfromFreq(5000.0)); DrawOverlay(); //Redraw scales and ticks update(); //trigger a new paintEvent} } @@ -824,8 +826,15 @@ void CPlotter::setFST4_FreqRange(int fLow,int fHigh) m_nfa=fLow; m_nfb=fHigh; DrawOverlay(); + update(); } +void CPlotter::setSingleDecode(bool b) +{ + m_bSingleDecode=b; +} + + void CPlotter::setColours(QVector const& cl) { g_ColorTbl = cl; diff --git a/widgets/plotter.h b/widgets/plotter.h index 3787fafe0..ac13b5408 100644 --- a/widgets/plotter.h +++ b/widgets/plotter.h @@ -84,7 +84,7 @@ public: void setVHF(bool bVHF); void setRedFile(QString fRed); void setFST4_FreqRange(int fLow,int fHigh); - + void setSingleDecode(bool b); bool scaleOK () const {return m_bScaleOK;} signals: @@ -114,6 +114,7 @@ private: bool m_bReference; bool m_bReference0; bool m_bVHF; + bool m_bSingleDecode; float m_fSpan; diff --git a/widgets/widegraph.cpp b/widgets/widegraph.cpp index 389986c84..a369f6296 100644 --- a/widgets/widegraph.cpp +++ b/widgets/widegraph.cpp @@ -505,6 +505,11 @@ void WideGraph::setFST4_FreqRange(int fLow,int fHigh) ui->widePlot->setFST4_FreqRange(fLow,fHigh); } +void WideGraph::setSingleDecode(bool b) +{ + ui->widePlot->setSingleDecode(b); +} + void WideGraph::on_smoSpinBox_valueChanged(int n) { m_nsmo=n; diff --git a/widgets/widegraph.h b/widgets/widegraph.h index d26328fdb..f5f70c281 100644 --- a/widgets/widegraph.h +++ b/widgets/widegraph.h @@ -50,6 +50,7 @@ public: void setVHF(bool bVHF); void setRedFile(QString fRed); void setFST4_FreqRange(int fLow,int fHigh); + void setSingleDecode(bool b); signals: void freezeDecode2(int n);