1. Add AGC for waterfall in *Ref Spec* mode.

2. Don't display orange warning bar when in WSPR mode.
3. Fix a longstanding compiler warning.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6616 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2016-04-12 19:54:15 +00:00
parent 092a2301a0
commit 90beb50cbe
5 changed files with 36 additions and 32 deletions

View File

@ -17,35 +17,37 @@ subroutine flat4(s,npts0,nflatten)
do i=1,npts do i=1,npts
s(i)=10.0*log10(s(i)) !Convert to dB scale s(i)=10.0*log10(s(i)) !Convert to dB scale
enddo enddo
if(nflatten.eq.0) go to 900
nlen=npts/nseg !Length of test segment if(nflatten.gt.0) then
i0=npts/2 !Midpoint nterms=5
k=0 if(nflatten.eq.2) nterms=1
do n=1,nseg !Skip first segment, likely rolloff here nlen=npts/nseg !Length of test segment
ib=n*nlen i0=npts/2 !Midpoint
ia=ib-nlen+1 k=0
if(n.eq.nseg) ib=npts do n=1,nseg !Skip first segment, likely rolloff here
call pctile(s(ia),ib-ia+1,npct,base) !Find lowest npct of points in segment ib=n*nlen
do i=ia,ib ia=ib-nlen+1
if(s(i).le.base) then if(n.eq.nseg) ib=npts
if (k.lt.1000) k=k+1 !Save these "lower envelope" points call pctile(s(ia),ib-ia+1,npct,base) !Find lowest npct of points
x(k)=i-i0 do i=ia,ib
y(k)=s(i) if(s(i).le.base) then
endif if (k.lt.1000) k=k+1 !Save these "lower envelope" points
x(k)=i-i0
y(k)=s(i)
endif
enddo
enddo enddo
enddo kz=k
kz=k a=0.
a=0.
nterms=5
call polyfit(x,y,y,kz,nterms,0,a,chisqr) !Fit a low-order polynomial call polyfit(x,y,y,kz,nterms,0,a,chisqr) !Fit a low-order polynomial
do i=1,npts do i=1,npts
t=i-i0 t=i-i0
yfit=a(1)+t*(a(2)+t*(a(3)+t*(a(4)+t*(a(5))))) yfit=a(1)+t*(a(2)+t*(a(3)+t*(a(4)+t*(a(5)))))
s(i)=s(i)-yfit !Subtract the fitted baseline s(i)=s(i)-yfit !Subtract the fitted baseline
enddo enddo
endif
900 return 900 return
end subroutine flat4 end subroutine flat4

View File

@ -2167,6 +2167,7 @@ void MainWindow::on_EraseButton_clicked() //Erase
void MainWindow::decodeBusy(bool b) //decodeBusy() void MainWindow::decodeBusy(bool b) //decodeBusy()
{ {
/* ### Temporarily(?) disable the long-decode progress bar.
bool showProgress = false; bool showProgress = false;
if (b && m_firstDecode < 65 && ("JT65" == m_mode || "JT9+JT65" == m_mode)) if (b && m_firstDecode < 65 && ("JT65" == m_mode || "JT9+JT65" == m_mode))
{ {
@ -2180,7 +2181,6 @@ void MainWindow::decodeBusy(bool b) //decodeBusy()
m_firstDecode += 9; m_firstDecode += 9;
showProgress = true; showProgress = true;
} }
/* ### Temporarily(?) disable the long-decode progress bar.
if (showProgress) if (showProgress)
{ {
// this sequence is needed to create an indeterminate progress // this sequence is needed to create an indeterminate progress

View File

@ -408,7 +408,7 @@ void CPlotter::DrawOverlay() //DrawOverlay()
painter0.drawLine(x1,8,x1,28); painter0.drawLine(x1,8,x1,28);
} }
if(m_dialFreq>10.13 and m_dialFreq< 10.15) { if(m_dialFreq>10.13 and m_dialFreq< 10.15 and m_mode.mid(0,4)!="WSPR") {
float f1=1.0e6*(10.1401 - m_dialFreq); float f1=1.0e6*(10.1401 - m_dialFreq);
float f2=f1+200.0; float f2=f1+200.0;
x1=XfromFreq(f1); x1=XfromFreq(f1);
@ -625,10 +625,11 @@ void CPlotter::setRxBand(QString band)
m_rxBand=band; m_rxBand=band;
} }
void CPlotter::setFlatten(bool b) void CPlotter::setFlatten(bool b1, bool b2)
{ {
m_Flatten=0; m_Flatten=0;
if(b) m_Flatten=1; if(b1) m_Flatten=1;
if(b2) m_Flatten=2;
} }
void CPlotter::setTol(int n) //setTol() void CPlotter::setTol(int n) //setTol()

View File

@ -77,7 +77,7 @@ public:
float fSpan() const {return m_fSpan;} float fSpan() const {return m_fSpan;}
void setLockTxFreq(bool b) {m_lockTxFreq = b;} void setLockTxFreq(bool b) {m_lockTxFreq = b;}
void setColours(QVector<QColor> const& cl); void setColours(QVector<QColor> const& cl);
void setFlatten(bool b); void setFlatten(bool b1, bool b2);
void setTol(int n); void setTol(int n);
void setRxBand(QString band); void setRxBand(QString band);
void setReference(bool b) {m_bReference = b;} void setReference(bool b) {m_bReference = b;}

View File

@ -50,8 +50,8 @@ WideGraph::WideGraph(QSettings * settings, QWidget *parent) :
int n = m_settings->value("BinsPerPixel",2).toInt(); int n = m_settings->value("BinsPerPixel",2).toInt();
m_bFlatten=m_settings->value("Flatten",true).toBool(); m_bFlatten=m_settings->value("Flatten",true).toBool();
ui->cbFlatten->setChecked(m_bFlatten); ui->cbFlatten->setChecked(m_bFlatten);
ui->widePlot->setFlatten(m_bFlatten);
m_bRef=m_settings->value("UseRef",false).toBool(); m_bRef=m_settings->value("UseRef",false).toBool();
ui->widePlot->setFlatten(m_bFlatten,m_bRef);
ui->cbRef->setChecked(m_bRef); ui->cbRef->setChecked(m_bRef);
ui->widePlot->setBreadth(m_settings->value("PlotWidth",1000).toInt()); ui->widePlot->setBreadth(m_settings->value("PlotWidth",1000).toInt());
ui->bppSpinBox->setValue(n); ui->bppSpinBox->setValue(n);
@ -384,7 +384,7 @@ void WideGraph::on_cbFlatten_toggled(bool b) //Flatten
m_bRef=false; m_bRef=false;
ui->cbRef->setChecked(false); ui->cbRef->setChecked(false);
} }
ui->widePlot->setFlatten(m_bFlatten); ui->widePlot->setFlatten(m_bFlatten,m_bRef);
} }
void WideGraph::on_cbRef_toggled(bool b) void WideGraph::on_cbRef_toggled(bool b)
@ -394,6 +394,7 @@ void WideGraph::on_cbRef_toggled(bool b)
m_bFlatten=false; m_bFlatten=false;
ui->cbFlatten->setChecked(false); ui->cbFlatten->setChecked(false);
} }
ui->widePlot->setFlatten(m_bFlatten,m_bRef);
} }
void WideGraph::on_adjust_palette_push_button_clicked (bool) //Adjust Palette void WideGraph::on_adjust_palette_push_button_clicked (bool) //Adjust Palette