diff --git a/WSJT-X_Quick_Start_Guide.docx b/WSJT-X_Quick_Start_Guide.docx
index 902e49c40..0f5864ee1 100644
Binary files a/WSJT-X_Quick_Start_Guide.docx and b/WSJT-X_Quick_Start_Guide.docx differ
diff --git a/commons.h b/commons.h
index 1745c9f5b..ca1dfebc4 100644
--- a/commons.h
+++ b/commons.h
@@ -19,6 +19,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/devsetup.ui b/devsetup.ui
index 46aa06637..142b6f39e 100644
--- a/devsetup.ui
+++ b/devsetup.ui
@@ -23,7 +23,7 @@
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
+
+
+
+
+ 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