From 1186b0bb8b41439f47aead09bf7a1f2edcd17c8d Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 14 Aug 2024 10:03:46 -0400 Subject: [PATCH] Send RxFreq and FTol from wsjtx to sfrx, and display them on WideGraph. --- displayWidgets.txt | 1 + lib/decoder.f90 | 9 ++++++++- widgets/mainwindow.cpp | 10 ++++++++-- widgets/plotter.cpp | 12 ++++++++++-- widgets/plotter.h | 2 ++ widgets/widegraph.cpp | 5 +++++ widgets/widegraph.h | 1 + 7 files changed, 35 insertions(+), 5 deletions(-) diff --git a/displayWidgets.txt b/displayWidgets.txt index 0dc285f6e..751c18ed9 100644 --- a/displayWidgets.txt +++ b/displayWidgets.txt @@ -21,6 +21,7 @@ FT8 11101000010011100001000010011000100000 FT8/VHF 11101000010011100001000010011000100000 FT8/Fox 11101000010011100001000000000010000000 FT8/Hound 11101000010011100001000000000011000000 +FT8/SupHou 11111000010011100001000000000011000000 ------------------------------------------------- 1 2 3 01234567890123456789012345678901234567 diff --git a/lib/decoder.f90 b/lib/decoder.f90 index fe6a31676..b7c8bc954 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -53,6 +53,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample) character(len=12) :: mycall, hiscall character(len=6) :: mygrid, hisgrid character*60 line + character*256 cmnd,cmndmsg + character*6 crxfreq,cftol data ndec8/0/,ntr0/-1/ save type(counting_jt4_decoder) :: my_jt4 @@ -146,7 +148,12 @@ subroutine multimode_decoder(ss,id2,params,nfsample) access='stream') write(47) params%yymmdd,params%nutc,id2(1:20),id2(1:180000) close(47) - call execute_command_line(trim(exe_dir)//'/sfrx '//'"'//trim(temp_dir)//'/fort.47"') + write(crxfreq,'(i6)') params%nfqso + write(cftol,'(i5)') params%ntol + cmnd=trim(exe_dir)//char(92)//'sfrx'//crxfreq//cftol// '"' // & + trim(temp_dir)//char(92)//'fort.47"' + call execute_command_line(trim(cmnd),exitstat=nexitstat, & + cmdstat=ncmdstat,cmdmsg=cmndmsg) else call timer('decft8 ',0) newdat=params%newdat diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 684b94df7..63a6e72c0 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -7279,14 +7279,20 @@ void MainWindow::on_actionFT8_triggered() ui->cbAutoSeq->setEnabled(false); ui->tabWidget->setCurrentIndex(0); ui->cbHoldTxFreq->setChecked(true); - // 01234567890123456789012345678901234567 - displayWidgets(nWidgets("11101000010011000001000000000011000000")); if(m_config.superFox()) { + // 01234567890123456789012345678901234567 + displayWidgets(nWidgets("11111000010011000001000000000011000000")); ui->labDXped->setText(tr ("Super Hound")); ui->cbRxAll->setEnabled(false); + m_wideGraph->setRxFreq(ui->RxFreqSpinBox->value()); + m_wideGraph->setTol(ui->sbFtol->value()); + m_wideGraph->setSuperHound(true); } else { + // 01234567890123456789012345678901234567 + displayWidgets(nWidgets("11101000010011000001000000000011000000")); ui->labDXped->setText(tr ("Hound")); ui->cbRxAll->setEnabled(true); + m_wideGraph->setSuperHound(false); } ui->txrb1->setChecked(true); ui->txrb2->setEnabled(false); diff --git a/widgets/plotter.cpp b/widgets/plotter.cpp index df88831dd..995c0ef61 100644 --- a/widgets/plotter.cpp +++ b/widgets/plotter.cpp @@ -483,7 +483,10 @@ void CPlotter::DrawOverlay() //DrawOverlay() float bw=9.0*12000.0/m_nsps; //JT9 if(m_mode=="FT4") bw=3*12000.0/576.0; //FT4 ### (3x, or 4x???) ### - if(m_mode=="FT8") bw=7*12000.0/1920.0; //FT8 + if(m_mode=="FT8") { + bw=7*12000.0/1920.0; //FT8 + if(m_bSuperHound) bw=1500.0; + } if(m_mode.startsWith("FST4")) { int h=int(pow(2.0,m_nSubMode)); int nsps=800; @@ -585,7 +588,7 @@ void CPlotter::DrawOverlay() //DrawOverlay() painter0.drawLine(x2,25,x2-5,20); } - if(m_mode=="Q65" or (m_mode=="JT65" and m_bVHF)) { + if(m_mode=="Q65" or (m_mode=="JT65" and m_bVHF) or (m_mode=="FT8" and m_bSuperHound) ) { painter0.setPen(penGreen); x1=XfromFreq(m_rxFreq-m_tol); x2=XfromFreq(m_rxFreq+m_tol); @@ -885,6 +888,11 @@ void CPlotter::setFlatten(bool b1, bool b2) if(b2) m_Flatten=2; } +void CPlotter::setSuperHound(bool b) +{ + m_bSuperHound=b; +} + void CPlotter::setTol(int n) //setTol() { m_tol=n; diff --git a/widgets/plotter.h b/widgets/plotter.h index d01c98102..54bbfe9c9 100644 --- a/widgets/plotter.h +++ b/widgets/plotter.h @@ -77,6 +77,7 @@ public: void setColours(QVector const& cl); void setFlatten(bool b1, bool b2); void setTol(int n); + void setSuperHound(bool b); void setRxBand(QString band); void setReference(bool b) {m_bReference = b;} bool Reference() const {return m_bReference;} @@ -125,6 +126,7 @@ private: bool m_bSingleDecode; bool m_bFirst=true; bool m_bResized; + bool m_bSuperHound=false; float m_fSpan; float m_pdB=0.0; diff --git a/widgets/widegraph.cpp b/widgets/widegraph.cpp index 7119eda35..c115ee6f2 100644 --- a/widgets/widegraph.cpp +++ b/widgets/widegraph.cpp @@ -498,6 +498,11 @@ void WideGraph::on_zero2dSlider_valueChanged(int value) //Zero2 } } +void WideGraph::setSuperHound(bool b) +{ + ui->widePlot->setSuperHound(b); +} + void WideGraph::setTol(int n) //setTol { ui->widePlot->setTol(n); diff --git a/widgets/widegraph.h b/widgets/widegraph.h index 795031a46..17f3eecc2 100644 --- a/widgets/widegraph.h +++ b/widgets/widegraph.h @@ -42,6 +42,7 @@ public: bool flatten(); bool useRef(); void setTol(int n); + void setSuperHound(bool b); int smoothYellow(); void setRxBand (QString const& band); void setWSPRtransmitted();