From 0ef914fb5cccb2b70ba6c6301719e1972d409a0f Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 22 Jun 2022 14:34:50 -0400 Subject: [PATCH] Let Echo-mode "Measure" function use the computed fspread for DX grid. --- lib/astro0.f90 | 6 ++++-- lib/avecho.f90 | 10 ++++++---- widgets/mainwindow.cpp | 8 +++++--- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/lib/astro0.f90 b/lib/astro0.f90 index 0ffe4d611..e59b7effc 100644 --- a/lib/astro0.f90 +++ b/lib/astro0.f90 @@ -11,7 +11,7 @@ subroutine astro0(nyear,month,nday,uth8,freq8,mygrid,hisgrid, & real*8 uth8,techo8,freq8 real*8 xl,b common/librcom/xl(2),b(2) - common/echocom2/echo_spread + common/echocom2/fspread_self,fspread_dx data uth8z/0.d0/ save @@ -43,9 +43,11 @@ subroutine astro0(nyear,month,nday,uth8,freq8,mygrid,hisgrid, & dbdt2=DEGS*(b2a-b2) rate1=2.0*sqrt(dldt1**2 + dbdt1**2) width1=0.5*6741*fghz*rate1 - echo_spread=width1 !Save echo_spread for avecho() rate2=sqrt((dldt1+dldt2)**2 + (dbdt1+dbdt2)**2) width2=0.5*6741*fghz*rate2 + if(hisgrid(1:4).eq.' ') width2=width1 !No hisgrid, use self width + fspread_self=width1 !Save for avecho() + fspread_dx=width2 !Save for avecho() AzSun8=AzSun ElSun8=ElSun diff --git a/lib/avecho.f90 b/lib/avecho.f90 index aa56e66d9..04b80df65 100644 --- a/lib/avecho.f90 +++ b/lib/avecho.f90 @@ -1,4 +1,5 @@ -subroutine avecho(id2,ndop,nfrit,nqual,f1,xlevel,snrdb,db_err,dfreq,width) +subroutine avecho(id2,ndop,nfrit,nauto,nqual,f1,xlevel,snrdb,db_err, & + dfreq,width) integer TXLENGTH parameter (TXLENGTH=27648) !27*1024 @@ -17,18 +18,19 @@ subroutine avecho(id2,ndop,nfrit,nqual,f1,xlevel,snrdb,db_err,dfreq,width) complex c(0:NH) equivalence (x,c),(ipk,ipkv) common/echocom/nclearave,nsum,blue(NZ),red(NZ) - common/echocom2/echo_spread + common/echocom2/fspread_self,fspread_dx save dop0,sa,sb - fspread=echo_spread !### Use the predicted Doppler spread ### + fspread=fspread_dx !### Use the predicted Doppler spread ### + if(nauto.eq.1) fspread=fspread_self inquire(file='fspread.txt',exist=ex) if(ex) then open(39,file='fspread.txt',status='old') read(39,*) fspread close(39) endif + fspread=min(max(0.1,fspread),700.0) width=fspread - dop=ndop sq=0. do i=1,TXLENGTH diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index c68dc971a..67bf1e9ba 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -153,7 +153,7 @@ extern "C" { int savec2_(char const * fname, int* TR_seconds, double* dial_freq, fortran_charlen_t); - void avecho_( short id2[], int* dop, int* nfrit, int* nqual, float* f1, + void avecho_( short id2[], int* dop, int* nfrit, int* nauto, int* nqual, float* f1, float* level, float* sigdb, float* snr, float* dfreq, float* width); @@ -1576,6 +1576,8 @@ void MainWindow::dataSink(qint64 frames) if(m_mode=="Echo") { float dBerr=0.0; int nfrit=0; + int nauto=0; + if(m_auto) nauto=1; int nqual=0; float f1=1500.0; float xlevel=0.0; @@ -1584,7 +1586,7 @@ void MainWindow::dataSink(qint64 frames) float width=0.0; echocom_.nclearave=m_nclearave; int nDop=0; - avecho_(dec_data.d2,&nDop,&nfrit,&nqual,&f1,&xlevel,&sigdb, + avecho_(dec_data.d2,&nDop,&nfrit,&nauto,&nqual,&f1,&xlevel,&sigdb, &dBerr,&dfreq,&width); QString t; t = t.asprintf("%3d %7.1f %7.1f %7.1f %7.1f %7.1f %3d",echocom_.nsum,xlevel,sigdb, @@ -7090,7 +7092,7 @@ void MainWindow::WSPR_config(bool b) ui->rh_decodes_widget->setVisible(!b); ui->controls_stack_widget->setCurrentIndex (b && m_mode != "Echo" ? 1 : 0); ui->QSO_controls_widget->setVisible (!b); - ui->DX_controls_widget->setVisible (!b); + ui->DX_controls_widget->setVisible (true); ui->WSPR_controls_widget->setVisible (b); ui->lh_decodes_title_label->setVisible(!b and ui->cbMenus->isChecked()); ui->logQSOButton->setVisible(!b);