Added debugging fromthe decoder
This commit is contained in:
parent
41321561bc
commit
2a320ddcdd
@ -71,13 +71,14 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
|
|||||||
nfox=0
|
nfox=0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
trydecode=.false.
|
write(*,1012) params%nsubmode, params%nsubmodes
|
||||||
|
1012 format('<DecodeStarted>',2i4)
|
||||||
|
|
||||||
if(params%nmode.eq.8 .and. (params%nsubmode.eq.4 .or. iand(params%nsubmodes, 8).eq.8)) then
|
if(params%nmode.eq.8 .and. (params%nsubmode.eq.4 .or. iand(params%nsubmodes, 8).eq.8)) then
|
||||||
! We're in JS8 mode E
|
! We're in JS8 mode E
|
||||||
call timer('decjs8e ',0)
|
call timer('decjs8e ',0)
|
||||||
newdat=params%newdat
|
newdat=params%newdat
|
||||||
trydecode=.true.
|
write(*,*) '<DecodeDebug> mode E decode started'
|
||||||
|
|
||||||
! copy the relevant frames for decoding
|
! copy the relevant frames for decoding
|
||||||
pos = max(0,params%kposE)
|
pos = max(0,params%kposE)
|
||||||
@ -90,6 +91,9 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
|
|||||||
params%nexp_decode,params%ndepth,logical(params%nagain), &
|
params%nexp_decode,params%ndepth,logical(params%nagain), &
|
||||||
logical(params%lft8apon),logical(params%lapcqonly),params%napwid, &
|
logical(params%lft8apon),logical(params%lapcqonly),params%napwid, &
|
||||||
mycall,mygrid,hiscall,hisgrid)
|
mycall,mygrid,hiscall,hisgrid)
|
||||||
|
|
||||||
|
write(*,*) '<DecodeDebug> mode E decode finished'
|
||||||
|
|
||||||
call timer('decjs8e ',1)
|
call timer('decjs8e ',1)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -97,7 +101,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
|
|||||||
! We're in JS8 mode C
|
! We're in JS8 mode C
|
||||||
call timer('decjs8c ',0)
|
call timer('decjs8c ',0)
|
||||||
newdat=params%newdat
|
newdat=params%newdat
|
||||||
trydecode=.true.
|
write(*,*) '<DecodeDebug> mode C decode started'
|
||||||
|
|
||||||
! copy the relevant frames for decoding
|
! copy the relevant frames for decoding
|
||||||
pos = max(0,params%kposC)
|
pos = max(0,params%kposC)
|
||||||
@ -110,6 +114,9 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
|
|||||||
params%nexp_decode,params%ndepth,logical(params%nagain), &
|
params%nexp_decode,params%ndepth,logical(params%nagain), &
|
||||||
logical(params%lft8apon),logical(params%lapcqonly),params%napwid, &
|
logical(params%lft8apon),logical(params%lapcqonly),params%napwid, &
|
||||||
mycall,mygrid,hiscall,hisgrid)
|
mycall,mygrid,hiscall,hisgrid)
|
||||||
|
|
||||||
|
write(*,*) '<DecodeDebug> mode C decode finished'
|
||||||
|
|
||||||
call timer('decjs8c ',1)
|
call timer('decjs8c ',1)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -117,7 +124,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
|
|||||||
! We're in JS8 mode B
|
! We're in JS8 mode B
|
||||||
call timer('decjs8b ',0)
|
call timer('decjs8b ',0)
|
||||||
newdat=params%newdat
|
newdat=params%newdat
|
||||||
trydecode=.true.
|
write(*,*) '<DecodeDebug> mode B decode started'
|
||||||
|
|
||||||
! copy the relevant frames for decoding
|
! copy the relevant frames for decoding
|
||||||
pos = max(0,params%kposB)
|
pos = max(0,params%kposB)
|
||||||
@ -130,6 +137,9 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
|
|||||||
params%nexp_decode,params%ndepth,logical(params%nagain), &
|
params%nexp_decode,params%ndepth,logical(params%nagain), &
|
||||||
logical(params%lft8apon),logical(params%lapcqonly),params%napwid, &
|
logical(params%lft8apon),logical(params%lapcqonly),params%napwid, &
|
||||||
mycall,mygrid,hiscall,hisgrid)
|
mycall,mygrid,hiscall,hisgrid)
|
||||||
|
|
||||||
|
write(*,*) '<DecodeDebug> mode B decode finished'
|
||||||
|
|
||||||
call timer('decjs8b ',1)
|
call timer('decjs8b ',1)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -137,7 +147,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
|
|||||||
! We're in JS8 mode A
|
! We're in JS8 mode A
|
||||||
call timer('decjs8a ',0)
|
call timer('decjs8a ',0)
|
||||||
newdat=params%newdat
|
newdat=params%newdat
|
||||||
trydecode=.true.
|
write(*,*) '<DecodeDebug> mode A decode started'
|
||||||
|
|
||||||
! copy the relevant frames for decoding
|
! copy the relevant frames for decoding
|
||||||
pos = max(0,params%kposA)
|
pos = max(0,params%kposA)
|
||||||
@ -150,16 +160,19 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
|
|||||||
params%nexp_decode,params%ndepth,logical(params%nagain), &
|
params%nexp_decode,params%ndepth,logical(params%nagain), &
|
||||||
logical(params%lft8apon),logical(params%lapcqonly),params%napwid, &
|
logical(params%lft8apon),logical(params%lapcqonly),params%napwid, &
|
||||||
mycall,mygrid,hiscall,hisgrid)
|
mycall,mygrid,hiscall,hisgrid)
|
||||||
|
|
||||||
|
write(*,*) '<DecodeDebug> mode A decode finished'
|
||||||
|
|
||||||
call timer('decjs8a ',1)
|
call timer('decjs8a ',1)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if(trydecode) go to 800
|
write(*,*) '<DecodeDebug> finished'
|
||||||
|
call flush(6)
|
||||||
|
|
||||||
!$call omp_set_dynamic(.true.)
|
ndecoded = my_js8a%decoded + my_js8b%decoded + my_js8c%decoded + my_js8e%decoded
|
||||||
|
call sleep_msec(3000)
|
||||||
800 ndecoded = my_js8a%decoded + my_js8b%decoded + my_js8c%decoded + my_js8e%decoded
|
write(*,1010) ndecoded
|
||||||
write(*,1010) nsynced,ndecoded
|
1010 format('<DecodeFinished>',i4)
|
||||||
1010 format('<DecodeFinished>',2i4)
|
|
||||||
call flush(6)
|
call flush(6)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -1604,9 +1604,6 @@ void MainWindow::initDecoderSubprocess(){
|
|||||||
if(JS8_DEBUG_DECODE) qDebug() << "decoder subprocess starting...";
|
if(JS8_DEBUG_DECODE) qDebug() << "decoder subprocess starting...";
|
||||||
|
|
||||||
auto proc = new QProcess(this);
|
auto proc = new QProcess(this);
|
||||||
proc->setProcessEnvironment (env);
|
|
||||||
proc->start(QDir::toNativeSeparators (m_appDir) + QDir::separator () +
|
|
||||||
"js8", js8_args, QIODevice::ReadWrite | QIODevice::Unbuffered);
|
|
||||||
|
|
||||||
connect(proc, &QProcess::readyReadStandardOutput, this,
|
connect(proc, &QProcess::readyReadStandardOutput, this,
|
||||||
[this, proc](){
|
[this, proc](){
|
||||||
@ -1620,9 +1617,28 @@ void MainWindow::initDecoderSubprocess(){
|
|||||||
|
|
||||||
connect(proc, static_cast<void (QProcess::*) (int, QProcess::ExitStatus)> (&QProcess::finished),
|
connect(proc, static_cast<void (QProcess::*) (int, QProcess::ExitStatus)> (&QProcess::finished),
|
||||||
[this, proc] (int exitCode, QProcess::ExitStatus status) {
|
[this, proc] (int exitCode, QProcess::ExitStatus status) {
|
||||||
|
proc->deleteLater();
|
||||||
|
proc->thread()->quit();
|
||||||
subProcessFailed (proc, exitCode, status);
|
subProcessFailed (proc, exitCode, status);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
proc->setProcessEnvironment (env);
|
||||||
|
proc->start(QDir::toNativeSeparators (m_appDir) + QDir::separator () +
|
||||||
|
"js8", js8_args, QIODevice::ReadWrite | QIODevice::Unbuffered);
|
||||||
|
|
||||||
|
// create a process watcher looking for stdout read...
|
||||||
|
// seems like we're starving the event loop or something?
|
||||||
|
// auto watcher = new QTimer(proc);
|
||||||
|
// watcher->setInterval(500);
|
||||||
|
// connect(watcher, &QTimer::timeout, this,
|
||||||
|
// [this, proc](){
|
||||||
|
// if(proc->canReadLine()){
|
||||||
|
// if(JS8_DEBUG_DECODE) qDebug() << "decode process watcher intercepted readline";
|
||||||
|
// readFromStdout(proc);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// watcher->start();
|
||||||
|
|
||||||
// kill the previous proc and set the new one
|
// kill the previous proc and set the new one
|
||||||
m_valid = false;
|
m_valid = false;
|
||||||
{
|
{
|
||||||
@ -4371,8 +4387,8 @@ bool MainWindow::decodeProcessQueue(qint32 *pSubmode){
|
|||||||
dec_data.params.nmode=8;
|
dec_data.params.nmode=8;
|
||||||
dec_data.params.lft8apon = false;
|
dec_data.params.lft8apon = false;
|
||||||
dec_data.params.napwid=50;
|
dec_data.params.napwid=50;
|
||||||
dec_data.params.ntrperiod=period; //m_TRperiod;
|
dec_data.params.ntrperiod=-1; // not needed
|
||||||
dec_data.params.nsubmode=submode; // m_nSubMode;
|
dec_data.params.nsubmode=-1; // not needed
|
||||||
dec_data.params.minw=0;
|
dec_data.params.minw=0;
|
||||||
dec_data.params.nclearave=m_nclearave;
|
dec_data.params.nclearave=m_nclearave;
|
||||||
|
|
||||||
@ -4660,6 +4676,7 @@ QList<int> generateOffsets(int minOffset, int maxOffset){
|
|||||||
void MainWindow::readFromStdout(QProcess * proc) //readFromStdout
|
void MainWindow::readFromStdout(QProcess * proc) //readFromStdout
|
||||||
{
|
{
|
||||||
if(!proc || proc->state() == QProcess::NotRunning){
|
if(!proc || proc->state() == QProcess::NotRunning){
|
||||||
|
qDebug() << "proc not running";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4669,9 +4686,19 @@ void MainWindow::readFromStdout(QProcess * proc) //r
|
|||||||
|
|
||||||
bool bAvgMsg=false;
|
bool bAvgMsg=false;
|
||||||
int navg=0;
|
int navg=0;
|
||||||
|
if(t.indexOf("<DecodeDebug>") >= 0) {
|
||||||
|
if(JS8_DEBUG_DECODE) qDebug() << "--> busy?" << m_decoderBusy << "lock exists?" << ( QFile{m_config.temp_dir ().absoluteFilePath (".lock")}.exists());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(t.indexOf("<DecodeStarted>") >= 0) {
|
||||||
|
if(JS8_DEBUG_DECODE) qDebug() << "--> busy?" << m_decoderBusy << "lock exists?" << ( QFile{m_config.temp_dir ().absoluteFilePath (".lock")}.exists());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(t.indexOf("<DecodeFinished>") >= 0) {
|
if(t.indexOf("<DecodeFinished>") >= 0) {
|
||||||
if(m_mode=="QRA64") m_wideGraph->drawRed(0,0);
|
if(m_mode=="QRA64") m_wideGraph->drawRed(0,0);
|
||||||
m_bDecoded = t.mid(20).trimmed().toInt() > 0;
|
m_bDecoded = t.mid(16).trimmed().toInt() > 0;
|
||||||
int mswait=3*1000*m_TRperiod/4;
|
int mswait=3*1000*m_TRperiod/4;
|
||||||
if(!m_diskData) killFileTimer.start(mswait); //Kill in 3/4 period
|
if(!m_diskData) killFileTimer.start(mswait); //Kill in 3/4 period
|
||||||
decodeDone();
|
decodeDone();
|
||||||
|
Loading…
Reference in New Issue
Block a user