SyncStats should be output differently than DecoderDebug

This commit is contained in:
Jordan Sherer 2020-05-07 16:15:38 -04:00
parent bf8fb4aa85
commit 25d644955f
3 changed files with 67 additions and 57 deletions

View File

@ -225,7 +225,7 @@ subroutine js8dec(dd0,icos,newdat,syncStats,nQSOProgress,nfqso,nftx,ndepth,lapon
endif endif
if(syncStats) then if(syncStats) then
write(*,*) '<DecodeDebug> candidate ', NSUBMODE, 'f1', f1, 'sync', nsync, 'xdt', xdt write(*,*) '<DecodeSyncStat> candidate ', NSUBMODE, 'f1', f1, 'sync', nsync, 'xdt', xdt
flush(6) flush(6)
endif endif
@ -423,7 +423,7 @@ subroutine js8dec(dd0,icos,newdat,syncStats,nQSOProgress,nfqso,nftx,ndepth,lapon
if(nbadcrc.eq.0) then if(nbadcrc.eq.0) then
if(syncStats) then if(syncStats) then
write(*,*) '<DecodeDebug> decode ', NSUBMODE, 'f1', f1, 'sync', (sync*10), 'xdt', xdt2 write(*,*) '<DecodeSyncStat> decode ', NSUBMODE, 'f1', f1, 'sync', (sync*10), 'xdt', xdt2
flush(6) flush(6)
endif endif

View File

@ -20,7 +20,7 @@ subroutine subtractjs8(dd,itone,f0,dt)
nstart=dt*12000+1 nstart=dt*12000+1
if(NWRITELOG.eq.0) then if(NWRITELOG.eq.1) then
write(*,*) '<DecodeDebug> generating reference signal', nstart write(*,*) '<DecodeDebug> generating reference signal', nstart
flush(6) flush(6)
endif endif
@ -33,14 +33,14 @@ subroutine subtractjs8(dd,itone,f0,dt)
if(id.ge.1.and.id.le.NMAX) camp(i)=dd(id)*conjg(cref(i)) if(id.ge.1.and.id.le.NMAX) camp(i)=dd(id)*conjg(cref(i))
enddo enddo
if(NWRITELOG.eq.0) then if(NWRITELOG.eq.1) then
write(*,*) '<DecodeDebug> filtering', NFFT write(*,*) '<DecodeDebug> filtering', NFFT
flush(6) flush(6)
endif endif
if(first) then if(first) then
! Create and normalize the filter ! Create and normalize the filter
if(NWRITELOG.eq.0) then if(NWRITELOG.eq.1) then
write(*,*) '<DecodeDebug> creating and normalizing filter' write(*,*) '<DecodeDebug> creating and normalizing filter'
flush(6) flush(6)
endif endif
@ -94,7 +94,7 @@ subroutine subtractjs8(dd,itone,f0,dt)
endif endif
endif endif
if(NWRITELOG.eq.0) then if(NWRITELOG.eq.1) then
write(*,*) '<DecodeDebug> generating complex amplitude' write(*,*) '<DecodeDebug> generating complex amplitude'
flush(6) flush(6)
endif endif
@ -105,7 +105,7 @@ subroutine subtractjs8(dd,itone,f0,dt)
cfilt(1:NFFT)=cfilt(1:NFFT)*cw(1:NFFT) cfilt(1:NFFT)=cfilt(1:NFFT)*cw(1:NFFT)
call four2a(cfilt,NFFT,1,1,1) call four2a(cfilt,NFFT,1,1,1)
if(NWRITELOG.eq.0) then if(NWRITELOG.eq.1) then
write(*,*) '<DecodeDebug> subtracting filtered reference', NFFT write(*,*) '<DecodeDebug> subtracting filtered reference', NFFT
flush(6) flush(6)
endif endif

View File

@ -4874,10 +4874,12 @@ void MainWindow::processDecodedLine(QByteArray t){
static bool hasNewDrift = false; static bool hasNewDrift = false;
static int newDrift = 0; static int newDrift = 0;
if(t.indexOf("<DecodeDebug>") >= 0) { if(t.indexOf("<DecodeSyncStat>") >= 0) {
if(t.indexOf("f1") >= 0){
auto segs = QString(t.trimmed()).split(QRegExp("[\\s\\t]+"), QString::SkipEmptyParts); auto segs = QString(t.trimmed()).split(QRegExp("[\\s\\t]+"), QString::SkipEmptyParts);
if(!segs.isEmpty()){ if(segs.isEmpty()){
return;
}
auto m1 = QString(segs.at(2)); auto m1 = QString(segs.at(2));
auto m = int(m1.toInt()); auto m = int(m1.toInt());
auto period = computePeriodForSubmode(m); auto period = computePeriodForSubmode(m);
@ -4891,6 +4893,7 @@ void MainWindow::processDecodedLine(QByteArray t){
auto xdt1 = QString(segs.at(8)); auto xdt1 = QString(segs.at(8));
auto xdt = int(xdt1.toFloat()); auto xdt = int(xdt1.toFloat());
// only draw candidates
if(abs(xdt) <= 2){ if(abs(xdt) <= 2){
if(s < 10){ if(s < 10){
m_wideGraph->drawLine(QColor(Qt::darkCyan), f, f + computeBandwidthForSubmode(m)); m_wideGraph->drawLine(QColor(Qt::darkCyan), f, f + computeBandwidthForSubmode(m));
@ -4899,7 +4902,11 @@ void MainWindow::processDecodedLine(QByteArray t){
} }
} }
if(t.contains("decode")){ if(!t.contains("decode")){
return;
}
// but use decodes for drift
auto now = QDateTime::currentDateTimeUtc(); auto now = QDateTime::currentDateTimeUtc();
float n = 0; float n = 0;
@ -4914,7 +4921,7 @@ void MainWindow::processDecodedLine(QByteArray t){
n -= (float)period; n -= (float)period;
n += computeFramesNeededForDecode(m)/RX_SAMPLE_RATE; n += computeFramesNeededForDecode(m)/RX_SAMPLE_RATE;
n -= xdt/2; n -= xdt;
int xdtmin = qMin(n*1000, (float)DriftingDateTime::drift()); int xdtmin = qMin(n*1000, (float)DriftingDateTime::drift());
int xdtmax = qMax(n*1000, (float)DriftingDateTime::drift()); int xdtmax = qMax(n*1000, (float)DriftingDateTime::drift());
@ -4925,11 +4932,9 @@ void MainWindow::processDecodedLine(QByteArray t){
newDrift = (xdtmin + (xdtmax-xdtmin)/2); newDrift = (xdtmin + (xdtmax-xdtmin)/2);
newDrift = qMin(oldNewDrift, newDrift) + (qMax(oldNewDrift, newDrift)-qMin(oldNewDrift, newDrift))/2; newDrift = qMin(oldNewDrift, newDrift) + (qMax(oldNewDrift, newDrift)-qMin(oldNewDrift, newDrift))/2;
hasNewDrift = true; hasNewDrift = true;
}
}
}
if(JS8_DEBUG_DECODE) qDebug() << "--> busy?" << m_decoderBusy << "lock exists?" << ( QFile{m_config.temp_dir ().absoluteFilePath (".lock")}.exists()); if(JS8_DEBUG_DECODE) qDebug() << "--> busy?" << m_decoderBusy << "lock exists?" << ( QFile{m_config.temp_dir ().absoluteFilePath (".lock")}.exists());
return; return;
} }
@ -4938,7 +4943,12 @@ void MainWindow::processDecodedLine(QByteArray t){
return; return;
} }
if(t.indexOf("<DecodeDebug>") >= 0) {
return;
}
if(t.indexOf("<DecodeFinished>") >= 0) { if(t.indexOf("<DecodeFinished>") >= 0) {
// TODO: decide if we should adjust here...
if(hasNewDrift){ if(hasNewDrift){
static int driftN = 1; static int driftN = 1;
newDrift = ((driftN-1)*DriftingDateTime::drift() + newDrift)/driftN; newDrift = ((driftN-1)*DriftingDateTime::drift() + newDrift)/driftN;