From 05c3dadc9965ec920c5324e30b2ce3a97c222c49 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 30 Oct 2012 16:49:24 +0000 Subject: [PATCH] Remove m_DF and associated code. Disable some presently un-implemented controls. Begin implemnting "Save Synced" and "Save Decoded". Set compilation to CONSOLE mode. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@2706 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- WSJT-X_Quick_Start_Guide.docx | Bin 175676 -> 176992 bytes commons.h | 2 ++ devsetup.ui | 5 ++- lib/decoder.f90 | 7 +++- mainwindow.cpp | 58 ++++++++++++++++++++++------------ mainwindow.h | 8 +++-- mainwindow.ui | 24 ++++++++++++++ plotter.cpp | 3 -- plotter.h | 2 -- soundin.cpp | 2 ++ widegraph.cpp | 13 -------- widegraph.h | 2 -- wsjtx.pro | 2 +- 13 files changed, 83 insertions(+), 45 deletions(-) diff --git a/WSJT-X_Quick_Start_Guide.docx b/WSJT-X_Quick_Start_Guide.docx index 902e49c403800d9e0c5081dbb50bbdbbba3617a8..0f5864ee146c383cc9e2fae078473481e5baafee 100644 GIT binary patch delta 15278 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 Station - + 10 @@ -121,6 +121,9 @@ + + false + 60 diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 49792e534..281a536e4 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -15,13 +15,15 @@ subroutine decoder(ntrSeconds,nRxLog,c0) integer*2 id2 complex c0(NDMAX) common/jt9com/ss(184,NSMAX),savg(NSMAX),id2(NMAX),nutc,ndiskdat, & - ntr,nfqso,nagain,newdat,npts8,nfb,ntol,kin + ntr,nfqso,nagain,newdat,npts8,nfb,ntol,kin,nsynced,ndecoded logical first data first/.true./ save ntrMinutes=ntrSeconds/60 newdat=1 + nsynced=0 + ndecoded=0 nsps=0 if(ntrMinutes.eq.1) then @@ -79,6 +81,7 @@ subroutine decoder(ntrSeconds,nRxLog,c0) if(ccfred(i).gt.sbest .and. fgood.eq.0.0) then sbest=ccfred(i) write(line,1010) nutc,nsync,nsnr,xdt,1000.0+fpk,width + if(nsync.gt.0) nsynced=1 endif if(msg.ne.' ') then @@ -86,6 +89,8 @@ subroutine decoder(ntrSeconds,nRxLog,c0) 1010 format(i4.4,i4,i5,f6.1,f8.2,f6.2,3x,a22) write(14,1010) nutc,nsync,nsnr,xdt,1000.0+fpk,width,msg fgood=f + nsynced=1 + ndecoded=1 endif endif enddo diff --git a/mainwindow.cpp b/mainwindow.cpp index 6d102a998..d0682f5bc 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -49,8 +49,10 @@ MainWindow::MainWindow(QWidget *parent) : ui->actionJT9_30->setActionGroup(modeGroup); QActionGroup* saveGroup = new QActionGroup(this); - ui->actionSave_all->setActionGroup(saveGroup); ui->actionNone->setActionGroup(saveGroup); + ui->actionSave_synced->setActionGroup(saveGroup); + ui->actionSave_decoded->setActionGroup(saveGroup); + ui->actionSave_all->setActionGroup(saveGroup); QActionGroup* DepthGroup = new QActionGroup(this); ui->actionNo_Deep_Search->setActionGroup(DepthGroup); @@ -101,6 +103,8 @@ MainWindow::MainWindow(QWidget *parent) : m_setftx=0; m_loopall=false; m_startAnother=false; + m_saveSynced=false; + m_saveDecoded=false; m_saveAll=false; m_sec0=-1; m_palette="CuteSDR"; @@ -231,6 +235,8 @@ void MainWindow::writeSettings() settings.setValue("PaletteBlue",ui->actionBlue->isChecked()); settings.setValue("Mode",m_mode); settings.setValue("SaveNone",ui->actionNone->isChecked()); + settings.setValue("SaveSynced",ui->actionSave_synced->isChecked()); + settings.setValue("SaveDecoded",ui->actionSave_decoded->isChecked()); settings.setValue("SaveAll",ui->actionSave_all->isChecked()); settings.setValue("NDepth",m_ndepth); settings.setValue("KB8RQ",m_kb8rq); @@ -277,6 +283,10 @@ void MainWindow::readSettings() "PaletteBlue",false).toBool()); m_mode=settings.value("Mode","JT9-1").toString(); ui->actionNone->setChecked(settings.value("SaveNone",true).toBool()); + ui->actionSave_synced->setChecked(settings.value( + "SaveSynced",false).toBool()); + ui->actionSave_decoded->setChecked(settings.value( + "SaveDecoded",false).toBool()); ui->actionSave_all->setChecked(settings.value("SaveAll",false).toBool()); m_NB=settings.value("NB",false).toBool(); ui->NBcheckBox->setChecked(m_NB); @@ -285,6 +295,8 @@ void MainWindow::readSettings() m_txFreq=settings.value("TxFreq",1500).toInt(); ui->TxFreqSpinBox->setValue(m_txFreq); soundOutThread.setTxFreq(m_txFreq); + m_saveSynced=ui->actionSave_synced->isChecked(); + m_saveDecoded=ui->actionSave_decoded->isChecked(); m_saveAll=ui->actionSave_all->isChecked(); m_ndepth=settings.value("NDepth",0).toInt(); ui->actionF4_sets_Tx6->setChecked(m_kb8rq); @@ -377,7 +389,9 @@ void MainWindow::dataSink(int k) QDateTime t = QDateTime::currentDateTimeUtc(); m_dateTime=t.toString("yyyy-MMM-dd hh:mm"); decode(); //Start the decoder - if(m_saveAll and !m_diskData) { + if(!m_diskData and + (m_saveAll or (m_saveSynced and (jt9com_.nsynced==1)) + or (m_saveDecoded and (jt9com_.ndecoded==1)))) { int ihr=t.time().toString("hh").toInt(); int imin=t.time().toString("mm").toInt(); imin=imin - (imin%(m_TRperiod/60)); @@ -539,22 +553,6 @@ void MainWindow::keyPressEvent( QKeyEvent *e ) //keyPressEvent } } -void MainWindow::bumpDF(int n) //bumpDF() -{ - if(n==11) { - int n0=g_pWideGraph->DF(); - int n=(n0 + 10000) % 5; - if(n==0) n=5; - g_pWideGraph->setDF(n0-n); - } - if(n==12) { - int n0=g_pWideGraph->DF(); - int n=(n0 + 10000) % 5; - if(n==0) n=5; - g_pWideGraph->setDF(n0+n); - } -} - bool MainWindow::eventFilter(QObject *object, QEvent *event) //eventFilter() { if (event->type() == QEvent::KeyPress) { @@ -654,8 +652,6 @@ void MainWindow::on_actionWide_Waterfall_triggered() //Display Waterfalls g_pWideGraph->setWindowFlags(flags); connect(g_pWideGraph, SIGNAL(freezeDecode2(int)),this, SLOT(freezeDecode(int))); - connect(g_pWideGraph, SIGNAL(f11f12(int)),this, - SLOT(bumpDF(int))); } g_pWideGraph->show(); } @@ -801,12 +797,34 @@ void MainWindow::on_actionAggressive_Deep_Search_triggered() //Aggressive DS void MainWindow::on_actionNone_triggered() //Save None { + m_saveSynced=false; + m_saveDecoded=false; m_saveAll=false; + ui->actionNone->setChecked(true); +} + +void MainWindow::on_actionSave_synced_triggered() +{ + m_saveSynced=true; + m_saveDecoded=false; + m_saveAll=false; + ui->actionSave_synced->setChecked(true); +} + +void MainWindow::on_actionSave_decoded_triggered() +{ + m_saveSynced=false; + m_saveDecoded=true; + m_saveAll=false; + ui->actionSave_decoded->setChecked(true); } void MainWindow::on_actionSave_all_triggered() //Save All { + m_saveSynced=false; + m_saveDecoded=false; m_saveAll=true; + ui->actionSave_all->setChecked(true); } void MainWindow::on_actionKeyboard_shortcuts_triggered() diff --git a/mainwindow.h b/mainwindow.h index 08504a1f1..1748c5fd6 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -94,7 +94,6 @@ private slots: void on_dxGridEntry_textChanged(const QString &arg1); void selectCall2(bool ctrl); void on_genStdMsgsPushButton_clicked(); - void bumpDF(int n); void on_logQSOButton_clicked(); void on_actionErase_wsjtx_rx_log_triggered(); void on_actionErase_wsjtx_tx_log_triggered(); @@ -110,13 +109,16 @@ private slots: void on_TxFreqSpinBox_valueChanged(int arg1); void on_pbTxFreq_clicked(); + void on_actionSave_synced_triggered(); + + void on_actionSave_decoded_triggered(); + private: Ui::MainWindow *ui; qint32 m_nDevIn; qint32 m_nDevOut; qint32 m_idInt; qint32 m_waterfallAvg; - qint32 m_DF; qint32 m_tol; qint32 m_QSOfreq0; qint32 m_ntx; @@ -149,6 +151,8 @@ private: bool m_restart; bool m_killAll; bool m_startAnother; + bool m_saveSynced; + bool m_saveDecoded; bool m_saveAll; bool m_widebandDecode; bool m_kb8rq; diff --git a/mainwindow.ui b/mainwindow.ui index 7ffe85ed4..097e4074f 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -1186,6 +1186,8 @@ p, li { white-space: pre-wrap; } Save + + @@ -1582,6 +1584,28 @@ p, li { white-space: pre-wrap; } JT9-30 + + + true + + + false + + + Save synced + + + + + true + + + false + + + Save decoded + + diff --git a/plotter.cpp b/plotter.cpp index 5fda181be..be6c28456 100644 --- a/plotter.cpp +++ b/plotter.cpp @@ -416,8 +416,6 @@ void CPlotter::setFcal(int n) //setFcal() int CPlotter::fQSO() {return m_fQSO;} //get fQSO -int CPlotter::DF() {return m_DF;} // get DF - void CPlotter::mousePressEvent(QMouseEvent *event) //mousePressEvent { int x=event->x(); @@ -429,7 +427,6 @@ void CPlotter::mouseDoubleClickEvent(QMouseEvent *event) //mouse2click // int h = (m_Size.height()-60)/2; int x=event->x(); int y=event->y(); - m_DF=0; setFQSO(x,false); emit freezeDecode1(2); //### ??? } diff --git a/plotter.h b/plotter.h index 0e05145ae..116ac3086 100644 --- a/plotter.h +++ b/plotter.h @@ -35,7 +35,6 @@ public: qint32 m_nSpan; qint32 m_binsPerPixel; qint32 m_fQSO; - qint32 m_DF; qint32 m_tol; qint32 m_fCal; qint32 m_w; @@ -59,7 +58,6 @@ public: void setFcal(int n); void DrawOverlay(); int fQSO(); - int DF(); int autoZero(); void setPalette(QString palette); void setFsample(int n); diff --git a/soundin.cpp b/soundin.cpp index ca6209c09..61e47ac5f 100644 --- a/soundin.cpp +++ b/soundin.cpp @@ -20,6 +20,8 @@ extern struct { int nfb; //High decode limit (kHz) int ntol; //+/- decoding range around fQSO (Hz) int kin; + int nsynced; + int ndecoded; } jt9com_; } diff --git a/widegraph.cpp b/widegraph.cpp index ba9161151..85a51400c 100644 --- a/widegraph.cpp +++ b/widegraph.cpp @@ -224,25 +224,12 @@ int WideGraph::Tol() return ui->widePlot->m_tol; } -void WideGraph::setDF(int n) -{ - ui->widePlot->m_DF=n; - ui->widePlot->DrawOverlay(); - ui->widePlot->update(); -} - void WideGraph::setFcal(int n) { m_fCal=n; ui->widePlot->setFcal(n); } - -int WideGraph::DF() -{ - return ui->widePlot->m_DF; -} - void WideGraph::on_autoZeroPushButton_clicked() { int nzero=ui->widePlot->autoZero(); diff --git a/widegraph.h b/widegraph.h index 611d35f66..1467b6d7b 100644 --- a/widegraph.h +++ b/widegraph.h @@ -24,8 +24,6 @@ public: int nStartFreq(); float fSpan(); void saveSettings(); - void setDF(int n); - int DF(); int Tol(); void setTol(int n); void setFcal(int n); diff --git a/wsjtx.pro b/wsjtx.pro index d1f6199d6..2e502dd54 100644 --- a/wsjtx.pro +++ b/wsjtx.pro @@ -6,7 +6,7 @@ QT += core gui network CONFIG += qwt thread -#CONFIG += console +CONFIG += console TARGET = wsjtx VERSION = 0.2