Progress toward decoding at 41/47/50 buffers. Not yet complete!

This commit is contained in:
Joe Taylor 2020-03-05 15:37:31 -05:00
parent 6773768586
commit 431ec50212
7 changed files with 26 additions and 15 deletions

View File

@ -277,12 +277,12 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
! JT65 is not yet producing info for nsynced, ndecoded.
800 ndecoded = my_jt4%decoded + my_jt65%decoded + my_jt9%decoded + &
my_ft8%decoded + my_ft4%decoded
if(params%nmode.eq.8 .and. params%nzhsym.lt.48) ndec8=ndec8+ndecoded
if(params%nmode.eq.8 .and. params%nzhsym.ge.48) then
ndecoded=ndec8+ndecoded
ndec8=0
if(params%nmode.eq.8 .and. params%nzhsym.eq.41) ndec41=ndecoded
if(params%nmode.eq.8 .and. params%nzhsym.eq.47) ndec47=ndecoded
if(params%nmode.eq.8 .and. params%nzhsym.eq.50) then
ndecoded=ndec41+ndec47+ndecoded
endif
if(params%nmode.ne.8 .or. params%nzhsym.ge.48 .or. &
if(params%nmode.ne.8 .or. params%nzhsym.eq.50 .or. &
.not.params%ndiskdat) then
write(*,1010) nsynced,ndecoded
1010 format('<DecodeFinished>',2i4)

View File

@ -436,9 +436,6 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,nzhsym,lapon, &
call subtractft8(dd0,itone,f1,xdt,.false.)
call timer('sub_ft8b',1)
endif
! write(21,3001) nzhsym,npasses,nqsoprogress,ipass,iaptype,lsubtract, &
! f1,xdt,msg37(1:22); flush(21)
!3001 format(5i3,L3,f7.1,f9.4,2x,a22)
xsig=0.0
xnoi=0.0
do i=1,79

View File

@ -68,14 +68,15 @@ contains
call ft8apset(mycall12,hiscall12,ncontest,apsym2,aph10)
dd=iwave
if(nzhsym.lt.50) then
if(nzhsym.eq.41) then
ndecodes=0
allmessages=' '
allsnrs=0
else
ndecodes=ndec_early
endif
if(nzhsym.eq.50 .and. ndec_early.ge.1) then
if(nzhsym.gt.41 .and. ndec_early.ge.1) then
! print*,'AAA',nzhsym,ndec_early
call timer('sub_ft8a',0)
do i=1,ndec_early
call subtractft8(dd,itone_save(1,i),f1_save(i),xdt_save(i),.true.)
@ -156,6 +157,7 @@ contains
enddo
ndec_early=0
if(nzhsym.lt.50) ndec_early=ndecodes
! print*,'BBB',nzhsym,ndecodes
return
end subroutine decode

View File

@ -303,7 +303,7 @@ program jt9
shared_data%params%datetime=transfer(datetime,shared_data%params%datetime)
if(mode.eq.9 .and. fsplit.ne.2700) shared_data%params%nfa=fsplit
if(mode.eq.8) then
! "Early" decoding pass, FT8 only
! "Early" decoding pass, FT8 only, when jt9 reads data from disk
nearly=41
shared_data%params%nzhsym=nearly
id2a(1:nearly*3456)=shared_data%id2(1:nearly*3456)

View File

@ -63,12 +63,17 @@ subroutine jt9a()
call flush(6)
call timer('decoder ',0)
if(local_params%nmode.eq.8 .and. local_params%ndiskdat) then
! "Early" decoding pass for data read from disk: FT8 only
! Early decoding pass, FT8 only, when wsjtx reads from disk
nearly=41
local_params%nzhsym=nearly
id2a(1:nearly*3456)=shared_data%id2(1:nearly*3456)
id2a(nearly*3456+1:)=0
call multimode_decoder(shared_data%ss,id2a,local_params,12000)
nearly=47
local_params%nzhsym=nearly
id2a(1:nearly*3456)=shared_data%id2(1:nearly*3456)
id2a(nearly*3456+1:)=0
call multimode_decoder(shared_data%ss,id2a,local_params,12000)
local_params%nzhsym=50
endif
! Normal decoding pass

View File

@ -1411,7 +1411,8 @@ void MainWindow::dataSink(qint64 frames)
m_dialFreqRxWSPR=m_freqNominal;
}
if(m_ihsym==m_hsymStop or (m_mode=="FT8" and m_ihsym==m_earlyDecode and !m_diskData)) {
if(m_ihsym==m_hsymStop or (m_mode=="FT8" and m_ihsym==m_earlyDecode and !m_diskData) or
(m_mode=="FT8" and m_ihsym==m_earlyDecode2 and !m_diskData)) {
if(m_mode=="Echo") {
float snr=0;
int nfrit=0;
@ -1449,10 +1450,11 @@ void MainWindow::dataSink(qint64 frames)
dec_data.params.nagain=0;
dec_data.params.nzhsym=m_hsymStop;
if(m_mode=="FT8" and m_ihsym==m_earlyDecode and !m_diskData) dec_data.params.nzhsym=m_earlyDecode;
if(m_mode=="FT8" and m_ihsym==m_earlyDecode2 and !m_diskData) dec_data.params.nzhsym=m_earlyDecode2;
QDateTime now {QDateTime::currentDateTimeUtc ()};
m_dateTime = now.toString ("yyyy-MMM-dd hh:mm");
if(!m_mode.startsWith ("WSPR")) decode(); //Start decoder
if(m_mode=="FT8" and m_ihsym==m_earlyDecode and !m_diskData) return;
if(m_mode=="FT8" and !m_diskData and (m_ihsym==m_earlyDecode or m_ihsym==m_earlyDecode2)) return;
if(!m_diskData) { //Always save; may delete later
if(m_mode=="FT8" or m_mode=="FT4") {
@ -2845,6 +2847,7 @@ void MainWindow::decode() //decode()
if(m_mode=="FT4") ms=1000.0*(2.0-m_TRperiod);
//Adjust for FT8 early decode:
if(m_mode=="FT8" and m_ihsym==m_earlyDecode and !m_diskData) ms+=(m_hsymStop-m_earlyDecode)*288;
if(m_mode=="FT8" and m_ihsym==m_earlyDecode2 and !m_diskData) ms+=(m_hsymStop-m_earlyDecode2)*288;
QDateTime t=QDateTime::currentDateTimeUtc().addMSecs(ms);
ihr=t.toString("hh").toInt();
imin=t.toString("mm").toInt();
@ -3045,14 +3048,16 @@ void MainWindow::decodeDone ()
m_RxLog=0;
m_blankLine=true;
if(m_mode=="FT8" and dec_data.params.nzhsym==m_earlyDecode) m_blankLine=false;
if(m_mode=="FT8" and dec_data.params.nzhsym==m_earlyDecode2) m_blankLine=false;
if(SpecOp::FOX == m_config.special_op_id()) houndCallers();
qDebug() << "cc" << QDateTime::currentDateTimeUtc().toString("hh:mm:ss.zzz") << "decodeDone()";
}
void MainWindow::readFromStdout() //readFromStdout
{
while(proc_jt9.canReadLine()) {
auto line_read = proc_jt9.readLine ();
// qDebug() << "cc" << line_read;
// qDebug() << "aa" << line_read;
if (auto p = std::strpbrk (line_read.constData (), "\n\r"))
{
// truncate before line ending chars
@ -3066,6 +3071,7 @@ void MainWindow::readFromStdout() //readFromStdout
bool bAvgMsg=false;
int navg=0;
if(line_read.indexOf("<DecodeFinished>") >= 0) {
// qDebug() << "bb" << QDateTime::currentDateTimeUtc().toString("hh:mm:ss.zzz") << line_read;
if(m_mode=="QRA64") m_wideGraph->drawRed(0,0);
m_bDecoded = line_read.mid(20).trimmed().toInt() > 0;
int mswait=750.0*m_TRperiod;

View File

@ -468,6 +468,7 @@ private:
qint32 m_nSentFoxRrpt=0; //Serial number for next R+rpt Hound will send to Fox
qint32 m_kin0=0;
qint32 m_earlyDecode=41;
qint32 m_earlyDecode2=47;
bool m_btxok; //True if OK to transmit
bool m_diskData;