From bfb5665c36e7ce43bb1e2625b53272375a1ca288 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 17 Aug 2022 09:42:33 -0400 Subject: [PATCH] Save and restore total Doppler in Echo-mode .wav files, and display that as Doppler. --- lib/save_echo_params.f90 | 21 ++++++++++++--------- widgets/mainwindow.cpp | 10 +++++----- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/lib/save_echo_params.f90 b/lib/save_echo_params.f90 index d9ae6ca9b..9de154722 100644 --- a/lib/save_echo_params.f90 +++ b/lib/save_echo_params.f90 @@ -1,15 +1,17 @@ -subroutine save_echo_params(nDop,nfrit,f1,fspread,id2,idir) +subroutine save_echo_params(nDopTotal,nDopAudio,nfrit,f1,fspread,id2,idir) - integer*2 id2(10) - integer*2 id2a(10) + integer*2 id2(12) + integer*2 id2a(12) real*8 fspread,fspread0 - equivalence (nDop0,id2a(1)) - equivalence (nfrit0,id2a(3)) - equivalence (f10,id2a(5)) - equivalence (fspread0,id2a(7)) + equivalence (nDopTotal0,id2a(1)) + equivalence (nDopAudio0,id2a(3)) + equivalence (nfrit0,id2a(5)) + equivalence (f10,id2a(7)) + equivalence (fspread0,id2a(9)) if(idir.gt.0) then - nDop0=nDop + nDopTotal0=nDopTotal + nDopAudio0=nDopAudio nfrit0=nfrit f10=f1 fspread0=fspread @@ -17,7 +19,8 @@ subroutine save_echo_params(nDop,nfrit,f1,fspread,id2,idir) else id2a=id2 id2(1:10)=0 - nDop=nDop0 + nDopTotal=nDopTotal0 + nDopAudio=nDopAudio0 nfrit=nfrit0 f1=f10 fspread=fspread0 diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 24823e74b..ee7924690 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 save_echo_params_(int* ndop, int* nfrit, float* f1, double* fspread, short id2[], int* idir); + void save_echo_params_(int* ndoptotal, int* ndop, int* nfrit, float* f1, double* fspread, short id2[], int* idir); void avecho_( short id2[], int* dop, int* nfrit, int* nauto, int* nqual, float* f1, float* level, float* sigdb, float* snr, float* dfreq, @@ -1603,16 +1603,17 @@ void MainWindow::dataSink(qint64 frames) float width=0.0; echocom_.nclearave=m_nclearave; int nDop=m_fAudioShift; + int nDopTotal=m_fDop; if(m_diskData) { int idir=-1; - save_echo_params_(&nDop,&nfrit,&f1,&m_fSpread,dec_data.d2,&idir); + save_echo_params_(&nDopTotal,&nDop,&nfrit,&f1,&m_fSpread,dec_data.d2,&idir); width=m_fSpread; } avecho_(dec_data.d2,&nDop,&nfrit,&nauto,&nqual,&f1,&xlevel,&sigdb, &dBerr,&dfreq,&width,&m_diskData); QString t; t = t.asprintf("%3d %7.1f %7.1f %7.1f %7.1f %7d %7.1f %3d",echocom_.nsum,xlevel,sigdb, - dBerr,dfreq,nDop,width,nqual); + dBerr,dfreq,nDopTotal,width,nqual); QString t0; if(m_diskData) { t0=t0.asprintf("%06d ",m_UTCdisk); @@ -1624,7 +1625,7 @@ void MainWindow::dataSink(qint64 frames) if(m_echoGraph->isVisible()) m_echoGraph->plotSpec(); if(m_saveAll) { int idir=1; - save_echo_params_(&nDop,&nfrit,&f1,&m_fSpread,dec_data.d2,&idir); + save_echo_params_(&m_fDop,&nDop,&nfrit,&f1,&m_fSpread,dec_data.d2,&idir); } m_nclearave=0; //Don't restart Monitor after an Echo transmission @@ -1632,7 +1633,6 @@ void MainWindow::dataSink(qint64 frames) monitor(false); m_bEchoTxed=false; } -// return; } if(m_mode=="FreqCal") { return;