From ddef0a4fa5cf5bc0f522ac089c2b8d48f1d07bb4 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 26 Sep 2012 15:20:43 +0000 Subject: [PATCH] More progress toward JT8 mode. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@2599 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- getfile.cpp | 13 +++-- getfile.h | 4 +- libm65/symspecx.f90 | 10 ++-- mainwindow.cpp | 137 ++------------------------------------------ mainwindow.h | 34 +---------- mainwindow.ui | 10 +--- widegraph.cpp | 6 +- 7 files changed, 26 insertions(+), 188 deletions(-) diff --git a/getfile.cpp b/getfile.cpp index aa583ffe8..c0291a67f 100644 --- a/getfile.cpp +++ b/getfile.cpp @@ -4,14 +4,14 @@ #include #include -void getfile(QString fname, bool xpol, int dbDgrd) +void getfile(QString fname, int ntrperiod) { char name[80]; strcpy(name,fname.toAscii()); FILE* fp=fopen(name,"rb"); - int npts=30*48000; + int npts=ntrperiod*12000; memset(jt8com_.d2,0,2*npts); if(fp != NULL) { @@ -19,10 +19,11 @@ void getfile(QString fname, bool xpol, int dbDgrd) fread(jt8com_.d2,1,44,fp); int nrd=fread(jt8com_.d2,2,npts,fp); fclose(fp); + for(int i=0; i #include "commons.h" -void getfile(QString fname, bool xpol, int dbDgrd); -void savetf2(QString fname); +void getfile(QString fname, int ntrperiod); +void savetf2(QString fname, int ntrperiod); float gran(); #endif // GETFILE_H diff --git a/libm65/symspecx.f90 b/libm65/symspecx.f90 index 22d96f08a..0ac762a46 100644 --- a/libm65/symspecx.f90 +++ b/libm65/symspecx.f90 @@ -69,17 +69,17 @@ subroutine symspecx(k,nsps,ndiskdat,nb,nbslider,pxdb,s,nkhz,ihsym, & nzh=min(nint(500.0/df),2200) nz=2*nzh i0=nint(1500.0/df) - nzh -! rewind 71 + rewind 71 do i=1,nz sx=real(cx(i0+i))**2 + aimag(cx(i0+i))**2 - sx=1.e-5*sx + sx=1.e-8*sx s(i)=sx savg(i)=savg(i) + sx if(ihsym.le.184) ss(ihsym,i)=sx -! write(71,3001) (i-1)*df,savg(i) -!3001 format(f12.6,e12.3) + write(71,3001) (i0+i-1)*df,savg(i),db(savg(i)) +3001 format(f12.6,2f12.3) enddo -! flush(71) + flush(71) nkhz=100 diff --git a/mainwindow.cpp b/mainwindow.cpp index c6cae25d9..f60d517b8 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -102,7 +102,6 @@ MainWindow::MainWindow(QWidget *parent) : m_loopall=false; m_startAnother=false; m_saveAll=false; - m_onlyEME=false; m_sec0=-1; m_palette="CuteSDR"; m_RxLog=1; //Write Date and Time to RxLog @@ -110,7 +109,6 @@ MainWindow::MainWindow(QWidget *parent) : m_NB=false; m_mode="JT8-1"; m_TRperiod=60; - m_colors="000066ff0000ffff00969696646464"; ui->xThermo->setFillBrush(Qt::green); @@ -168,7 +166,6 @@ MainWindow::MainWindow(QWidget *parent) : if(line.length()<=0) break; t=line.mid(18,12); callsign=t.mid(0,t.indexOf(",")); - m_worked[callsign]=true; } f.close(); @@ -221,28 +218,12 @@ void MainWindow::writeSettings() settings.setValue("MyGrid",m_myGrid); settings.setValue("IDint",m_idInt); settings.setValue("PTTport",m_pttPort); - settings.setValue("Xpol",m_xpol); - settings.setValue("XpolX",m_xpolx); settings.setValue("SaveDir",m_saveDir); - settings.setValue("AzElDir",m_azelDir); settings.setValue("DXCCpfx",m_dxccPfx); - settings.setValue("Timeout",m_timeout); - settings.setValue("IQamp",m_IQamp); - settings.setValue("IQphase",m_IQphase); - settings.setValue("ApplyIQcal",m_applyIQcal); - settings.setValue("dPhi",m_dPhi); - settings.setValue("Fcal",m_fCal); - settings.setValue("Fadd",m_fAdd); - settings.setValue("NetworkInput", m_network); - settings.setValue("FSam96000", m_fs96000); settings.setValue("SoundInIndex",m_nDevIn); settings.setValue("paInDevice",m_paInDevice); settings.setValue("SoundOutIndex",m_nDevOut); settings.setValue("paOutDevice",m_paOutDevice); - settings.setValue("IQswap",m_IQswap); - settings.setValue("Plus10dB",m_10db); - settings.setValue("InitIQplus",m_initIQplus); - settings.setValue("UDPport",m_udpPort); settings.setValue("PaletteCuteSDR",ui->actionCuteSDR->isChecked()); settings.setValue("PaletteLinrad",ui->actionLinrad->isChecked()); settings.setValue("PaletteAFMHot",ui->actionAFMHot->isChecked()); @@ -251,17 +232,9 @@ void MainWindow::writeSettings() settings.setValue("SaveNone",ui->actionNone->isChecked()); settings.setValue("SaveAll",ui->actionSave_all->isChecked()); settings.setValue("NDepth",m_ndepth); - settings.setValue("NEME",m_onlyEME); settings.setValue("KB8RQ",m_kb8rq); settings.setValue("NB",m_NB); settings.setValue("NBslider",m_NBslider); - settings.setValue("GainX",(double)m_gainx); - settings.setValue("GainY",(double)m_gainy); - settings.setValue("PhaseX",(double)m_phasex); - settings.setValue("PhaseY",(double)m_phasey); - settings.setValue("Mult570",m_mult570); - settings.setValue("Cal570",m_cal570); - settings.setValue("Colors",m_colors); settings.endGroup(); } @@ -309,7 +282,6 @@ void MainWindow::readSettings() ui->NBslider->setValue(m_NBslider); m_saveAll=ui->actionSave_all->isChecked(); m_ndepth=settings.value("NDepth",0).toInt(); - m_onlyEME=settings.value("NEME",false).toBool(); ui->actionF4_sets_Tx6->setChecked(m_kb8rq); settings.endGroup(); @@ -362,17 +334,6 @@ void MainWindow::dataSink(int k) g_pWideGraph->dataSink2(s,nkhz,ihsym,m_diskData,lstrong); } - if(nadj == 10) { - if(m_xpol) { - t.sprintf("Amp: %6.4f %6.4f Phase: %6.4f %6.4f", - m_gainx,m_gainy,m_phasex,m_phasey); - } else { - t.sprintf("Amp: %6.4f Phase: %6.4f",m_gainx,m_phasex); - } - ui->decodedTextBrowser->append(t); - m_adjustIQ=0; - } - //Average over specified number of spectra if (n==0) { for (int i=0; isetFuture(*future2); } } @@ -429,7 +390,6 @@ void MainWindow::on_actionDeviceSetup_triggered() //Setup Dialog dlg.m_idInt=m_idInt; dlg.m_pttPort=m_pttPort; dlg.m_saveDir=m_saveDir; - dlg.m_azelDir=m_azelDir; dlg.m_dxccPfx=m_dxccPfx; dlg.m_nDevIn=m_nDevIn; dlg.m_nDevOut=m_nDevOut; @@ -703,8 +663,7 @@ void MainWindow::on_actionOpen_triggered() //Open File if(fname != "") { m_path=fname; int i; - i=fname.indexOf(".iq") - 11; - if(m_xpol) i=fname.indexOf(".tf2") - 11; + i=fname.indexOf(".wav") - 11; if(i>=0) { lab1->setStyleSheet("QLabel{background-color: #66ff66}"); lab1->setText(" " + fname.mid(i,15) + " "); @@ -712,7 +671,7 @@ void MainWindow::on_actionOpen_triggered() //Open File on_stopButton_clicked(); m_diskData=true; int dbDgrd=0; - *future1 = QtConcurrent::run(getfile, fname, m_xpol, dbDgrd); + *future1 = QtConcurrent::run(getfile, fname, m_TRperiod); watcher1->setFuture(*future1); } } @@ -739,7 +698,7 @@ void MainWindow::on_actionOpen_next_in_directory_triggered() //Open Next m_diskData=true; int dbDgrd=0; if(m_myCall=="K1JT" and m_idInt<0) dbDgrd=m_idInt; - *future1 = QtConcurrent::run(getfile, fname, m_xpol, dbDgrd); + *future1 = QtConcurrent::run(getfile, fname, m_TRperiod); watcher1->setFuture(*future1); return; } @@ -754,13 +713,10 @@ void MainWindow::on_actionDecode_remaining_files_in_directory_triggered() void MainWindow::diskDat() //diskDat() { - int kstep=2048; - int nsteps; + int kstep=m_nsps/2; m_diskData=true; - nsteps=29.8*48000/kstep; - - for(int n=1; nprocessEvents(); //Keep the GUI responsive @@ -803,11 +759,6 @@ void MainWindow::on_actionF4_sets_Tx6_triggered() //F4 sets Tx6 m_kb8rq = !m_kb8rq; } -void MainWindow::on_actionOnly_EME_calls_triggered() //EME calls only -{ - m_onlyEME = ui->actionOnly_EME_calls->isChecked(); -} - void MainWindow::on_actionNo_shorthands_if_Tx1_triggered() { stub(); @@ -1119,9 +1070,6 @@ void MainWindow::selectCall2(bool ctrl) //selectCall2 //doubleClickOnCall void MainWindow::doubleClickOnCall(QString hiscall, bool ctrl) { - if(m_worked[hiscall]) { - msgBox("Possible dupe: " + hiscall + " already in log."); - } ui->dxCallEntry->setText(hiscall); QString t = ui->decodedTextBrowser->toPlainText(); //Full contents int i2=ui->decodedTextBrowser->textCursor().position(); @@ -1216,78 +1164,6 @@ void MainWindow::on_lookupButton_clicked() //Lookup button void MainWindow::on_addButton_clicked() //Add button { - if(ui->dxGridEntry->text()=="") { - msgBox("Please enter a valid grid locator."); - return; - } - m_call3Modified=false; - QString hiscall=ui->dxCallEntry->text().toUpper().trimmed(); - QString hisgrid=ui->dxGridEntry->text().trimmed(); - QString newEntry=hiscall + "," + hisgrid; - - int ret = QMessageBox::warning(this, "Add", - newEntry + "\n" + "Is this station known to be active on EME?", - QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes); - if(ret==QMessageBox::Yes) { - newEntry += ",EME,,"; - } else { - newEntry += ",,,"; - } - QString call3File = m_appDir + "/CALL3.TXT"; - QFile f1(call3File); - if(!f1.open(QIODevice::ReadOnly | QIODevice::Text)) { - msgBox("Cannot open " + call3File); - return; - } - QString tmpFile = m_appDir + "/CALL3.TMP"; - QFile f2(tmpFile); - if(!f2.open(QIODevice::WriteOnly | QIODevice::Text)) { - msgBox("Cannot open " + tmpFile); - return; - } - QTextStream in(&f1); - QTextStream out(&f2); - QString hc=hiscall; - QString hc1=""; - QString hc2=""; - QString s; - do { - s=in.readLine(); - hc1=hc2; - if(s.mid(0,2)=="//") { - out << s + "\n"; - } else { - int i1=s.indexOf(","); - hc2=s.mid(0,i1); - if(hc>hc1 && hchc1 && !m_call3Modified) - out << newEntry + "\n"; - if(m_call3Modified) { - QFile f0(m_appDir + "/CALL3.OLD"); - if(f0.exists()) f0.remove(); - QFile f1(m_appDir + "/CALL3.TXT"); - f1.rename(m_appDir + "/CALL3.OLD"); - f2.rename(m_appDir + "/CALL3.TXT"); - f2.close(); - } } void MainWindow::msgtype(QString t, QLineEdit* tx) //msgtype() @@ -1402,7 +1278,6 @@ void MainWindow::on_logQSOButton_clicked() //Log QSO button QTextStream out(&f); out << logEntry; f.close(); - m_worked[m_hisCall]=true; } /* diff --git a/mainwindow.h b/mainwindow.h index e49a60937..fc2a400c2 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -68,7 +68,6 @@ private slots: void on_actionDelete_all_wav_files_in_SaveDir_triggered(); void on_actionFind_Delta_Phi_triggered(); void on_actionF4_sets_Tx6_triggered(); - void on_actionOnly_EME_calls_triggered(); void on_actionNo_shorthands_if_Tx1_triggered(); void on_actionNo_Deep_Search_triggered(); void on_actionNormal_Deep_Search_triggered(); @@ -129,32 +128,20 @@ private: qint32 m_ntx; qint32 m_pttPort; qint32 m_timeout; - qint32 m_dPhi; - qint32 m_fCal; qint32 m_txFreq; qint32 m_setftx; qint32 m_ndepth; qint32 m_sec0; qint32 m_RxLog; qint32 m_nutc0; - qint32 m_mode65; qint32 m_nrx; qint32 m_hsym0; qint32 m_paInDevice; qint32 m_paOutDevice; - qint32 m_udpPort; qint32 m_NBslider; - qint32 m_adjustIQ; - qint32 m_applyIQcal; - qint32 m_mult570; qint32 m_TRperiod; qint32 m_nsps; - double m_fAdd; - double m_IQamp; - double m_IQphase; - double m_cal570; - bool m_monitoring; bool m_transmitting; bool m_diskData; @@ -165,24 +152,12 @@ private: bool m_txMute; bool m_restart; bool m_killAll; - bool m_xpol; - bool m_xpolx; - bool m_call3Modified; bool m_startAnother; bool m_saveAll; - bool m_onlyEME; bool m_widebandDecode; bool m_kb8rq; bool m_NB; - bool m_fs96000; - bool m_IQswap; - bool m_10db; - bool m_initIQplus; - float m_gainx; - float m_gainy; - float m_phasex; - float m_phasey; float m_pctZap; QRect m_wideGraphGeom; @@ -202,7 +177,6 @@ private: QFutureWatcher* watcher2; QProcess proc_m65; - QProcess proc_qthid; QString m_path; QString m_pbdecoding_style1; @@ -214,14 +188,10 @@ private: QString m_hisGrid; QString m_appDir; QString m_saveDir; - QString m_azelDir; QString m_dxccPfx; QString m_palette; QString m_dateTime; QString m_mode; - QString m_colors; - - QHash m_worked; SoundInThread soundInThread; //Instantiate the audio threads SoundOutThread soundOutThread; @@ -239,8 +209,8 @@ private: void stub(); }; -extern void getfile(QString fname, bool xpol, int idInt); -extern void savewav(QString fname); +extern void getfile(QString fname, int ntrperiod); +extern void savewav(QString fname, int ntrperiod); extern int killbyname(const char* progName); extern void getDev(int* numDevices,char hostAPI_DeviceName[][50], int minChan[], int maxChan[], diff --git a/mainwindow.ui b/mainwindow.ui index 66edcd377..ffb5524aa 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -29,7 +29,7 @@ - + 10 @@ -1284,14 +1284,6 @@ p, li { white-space: pre-wrap; } F4 sets Tx6 - - - true - - - Only EME calls - - true diff --git a/widegraph.cpp b/widegraph.cpp index c2812dc35..a3bb5cbd9 100644 --- a/widegraph.cpp +++ b/widegraph.cpp @@ -78,7 +78,7 @@ void WideGraph::dataSink2(float s[], int nkhz, int ihsym, int ndiskdata, int nbpp = ui->widePlot->binsPerPixel(); static int n=0; static int nkhz0=-999; - static int ntrz=0; + static int ntr0=0; df = 12000.0/m_nsps; if(nkhz != nkhz0) { @@ -126,7 +126,7 @@ void WideGraph::dataSink2(float s[], int nkhz, int ihsym, int ndiskdata, qint64 ms = QDateTime::currentMSecsSinceEpoch() % 86400000; int ntr = (ms/1000) % m_TRperiod; - if((ndiskdata && ihsym <= m_waterfallAvg) || (!ndiskdata && ntrwidePlot->draw(swide,i0,splot); } }