diff --git a/lib/ft8/foxgen.f90 b/lib/ft8/foxgen.f90 index 2a266bcb4..7167c69fc 100644 --- a/lib/ft8/foxgen.f90 +++ b/lib/ft8/foxgen.f90 @@ -58,7 +58,7 @@ subroutine foxgen() msg=cmsg(n)(1:i1)//cmsg(n)(i2+1:i3-2)//' ' read(cmsg(n)(i4+2:i4+4),*) irpt endif - call genft8(msg,mygrid,bcontest,0,1,msgsent,msgbits,itone) + call genft8(msg,mygrid,bcontest,0,1,1,msgsent,msgbits,itone) ! print*,'Foxgen:',n,cmsg(n),msgsent if(i3b.eq.1) then diff --git a/lib/ft8/ft8apset.f90 b/lib/ft8/ft8apset.f90 index 50d1d18fc..049c8bb2e 100644 --- a/lib/ft8/ft8apset.f90 +++ b/lib/ft8/ft8apset.f90 @@ -16,9 +16,10 @@ subroutine ft8apset(mycall12,mygrid6,hiscall12,hisgrid6,bcontest,apsym) hisgrid=hisgrid6(1:4) if(index(hisgrid," ").eq.0) hisgrid="AA00" msg=mycall//' '//hiscall//' '//hisgrid - i3=-1 ! ### TEMPORARY ??? ### + i3=0 ! ### TEMPORARY ??? ### n3=0 !TEMPORARY - call genft8(msg,mygrid6,bcontest,i3,n3,msgsent,msgbits,itone) + isync=1 + call genft8(msg,mygrid6,bcontest,i3,n3,isync,msgsent,msgbits,itone) apsym=2*msgbits-1 return end subroutine ft8apset diff --git a/lib/ft8/ft8b_1.f90 b/lib/ft8/ft8b_1.f90 index a9ac4b0f9..2db4b2401 100644 --- a/lib/ft8/ft8b_1.f90 +++ b/lib/ft8/ft8b_1.f90 @@ -381,9 +381,10 @@ subroutine ft8b_1(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly, & call extractmessage174(decoded,message,ncrcflag) decoded=decoded0 ! This needs fixing for messages with i3bit=1: - i3=-1 !TEMPORARY - n3=0 - call genft8(message,mygrid6,bcontest,i3,0,msgsent,msgbits,itone) + i3=0 !TEMPORARY + n3=0 + isync=1 + call genft8(message,mygrid6,bcontest,i3,n3,isync,msgsent,msgbits,itone) if(lsubtract) call subtractft8(dd0,itone,f1,xdt2) xsig=0.0 xnoi=0.0 diff --git a/lib/ft8/genft8.f90 b/lib/ft8/genft8.f90 index 8a67d0ac4..bb03083f0 100644 --- a/lib/ft8/genft8.f90 +++ b/lib/ft8/genft8.f90 @@ -1,4 +1,4 @@ -subroutine genft8(msg,mygrid,bcontest,i3,n3,msgsent,msgbits,itone) +subroutine genft8(msg,mygrid,bcontest,i3,n3,isync,msgsent,msgbits,itone) ! Encode an FT8 message, producing array itone(). @@ -17,17 +17,9 @@ subroutine genft8(msg,mygrid,bcontest,i3,n3,msgsent,msgbits,itone) integer icos7(0:6) data icos7/2,5,6,0,4,1,3/ !Costas 7x7 tone pattern - itype=1 - if( ( i3.eq.0 .and. n3.ge.1) .or. i3.ge.1 ) itype=2 + if(isync.eq.2 ) goto 900 -!write(*,*) 'generating type ',itype,' message' -!write(*,*) 'msg ',msg,i3,n3 - - if(itype.eq.2 ) goto 900 - i3=i3*i3 - n3=n3*n3 - - call packmsg(msg,i4Msg6BitWords,itype,bcontest) !Pack into 12 6-bit bytes + call packmsg(msg,i4Msg6BitWords,istdtype,bcontest) !Pack into 12 6-bit bytes call unpackmsg(i4Msg6BitWords,msgsent,bcontest,mygrid) !Unpack to get msgsent write(cbits,1000) i4Msg6BitWords,32*i3 diff --git a/mainwindow.cpp b/mainwindow.cpp index 758e62df4..ecc1fd7bb 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -77,7 +77,7 @@ extern "C" { fortran_charlen_t); // float s[], int* jh, char line[], char mygrid[], - void genft8_(char* msg, char* MyGrid, bool* bcontest, int* i3, int* n3, char* msgsent, + void genft8_(char* msg, char* MyGrid, bool* bcontest, int* i3, int* n3, int* isync, char* msgsent, char ft8msgbits[], int itone[], fortran_charlen_t, fortran_charlen_t, fortran_charlen_t); @@ -3479,11 +3479,13 @@ void MainWindow::guiUpdate() if(m_config.bFox() and ui->tabWidget->currentIndex()==2) { foxTxSequencer(); } else { - m_i3=-1; // Temporary!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + m_i3=0; // Temporary!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! m_n3=0; + m_isync=1; +// if(m_config.bGenerate77()) m_isync=2; char ft8msgbits[75 + 12]; //packed 75 bit ft8 message plus 12-bit CRC - genft8_(message, MyGrid, &bcontest, &m_i3, &m_n3, msgsent, const_cast (ft8msgbits), - const_cast (itone), 22, 6, 22); + genft8_(message, MyGrid, &bcontest, &m_i3, &m_n3, &m_isync, msgsent, + const_cast (ft8msgbits), const_cast (itone), 22, 6, 22); if(m_config.bFox()) { QString fm = QString::fromStdString(message).trimmed(); foxGenWaveform(0,fm); diff --git a/mainwindow.h b/mainwindow.h index 004768567..55b5e07e7 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -423,6 +423,7 @@ private: qint32 m_wait; qint32 m_i3; qint32 m_n3; + qint32 m_isync; qint32 m_isort; qint32 m_max_dB; qint32 m_nDXped=0;