From 91b7544ba16d524ac44e9c51b909732c86094186 Mon Sep 17 00:00:00 2001 From: Steve Franke Date: Tue, 3 Jul 2018 09:49:11 -0500 Subject: [PATCH 1/4] More progress toward switching to (i3,n3). wsjtx runs without crashing now. --- lib/ft8/ft8apset.f90 | 2 +- lib/ft8/ft8apset_174_91.f90 | 5 +++-- lib/ft8/ft8b_1.f90 | 6 ++++-- lib/ft8/genft8.f90 | 1 + 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/ft8/ft8apset.f90 b/lib/ft8/ft8apset.f90 index 08dff8012..c7e5cbe18 100644 --- a/lib/ft8/ft8apset.f90 +++ b/lib/ft8/ft8apset.f90 @@ -16,7 +16,7 @@ subroutine ft8apset(mycall12,mygrid6,hiscall12,hisgrid6,bcontest,apsym) hisgrid=hisgrid6(1:4) if(index(hisgrid," ").eq.0) hisgrid="AA00" msg=mycall//' '//hiscall//' '//hisgrid - i3=0 ! ### TEMPORARY ??? ### + i3=1 ! ### TEMPORARY ??? ### n3=0 !TEMPORARY call genft8(msg,mygrid6,bcontest,i3,n3,msgsent,msgbits,itone) apsym=2*msgbits-1 diff --git a/lib/ft8/ft8apset_174_91.f90 b/lib/ft8/ft8apset_174_91.f90 index f2f2aeb77..11f427f8e 100644 --- a/lib/ft8/ft8apset_174_91.f90 +++ b/lib/ft8/ft8apset_174_91.f90 @@ -16,8 +16,9 @@ subroutine ft8apset_174_91(mycall12,mygrid6,hiscall12,hisgrid6,bcontest,apsym) hisgrid=hisgrid6(1:4) if(index(hisgrid," ").eq.0) hisgrid="AA00" msg=mycall//' '//hiscall//' '//hisgrid - i5bit=0 ! ### TEMPORARY ??? ### - call genft8_174_91(msg,mygrid6,bcontest,i5bit,msgsent,msgbits,itone) + i3=1 ! ### TEMPORARY ??? ### + n3=0 + call genft8_174_91(msg,mygrid6,bcontest,i3,n3,msgsent,msgbits,itone) apsym=2*msgbits-1 return end subroutine ft8apset_174_91 diff --git a/lib/ft8/ft8b_1.f90 b/lib/ft8/ft8b_1.f90 index 05b0ac12c..d2ed64dda 100644 --- a/lib/ft8/ft8b_1.f90 +++ b/lib/ft8/ft8b_1.f90 @@ -380,8 +380,10 @@ subroutine ft8b_1(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,lapon,lapcqonly, & if(i3bit.eq.1) decoded(57:)=0 call extractmessage174(decoded,message,ncrcflag) decoded=decoded0 -! This needs fixing for messages with i3bit=1: - call genft8(message,mygrid6,bcontest,i3bit,0,msgsent,msgbits,itone) +! This needs fixing for messages with i3bit=1: + i3=1 !TEMPORARY + n3=0 + call genft8(message,mygrid6,bcontest,i3,0,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 9400293a2..6d66b5cda 100644 --- a/lib/ft8/genft8.f90 +++ b/lib/ft8/genft8.f90 @@ -20,6 +20,7 @@ subroutine genft8(msg,mygrid,bcontest,i3,n3,msgsent,msgbits,itone) itype=1 if( ( i3.eq.0 .and. n3.ge.2) .or. i3.ge.2 ) itype=2 write(*,*) 'generating type ',itype,' message' +write(*,*) 'msg ',msg if(itype.eq.2 ) goto 900 call packmsg(msg,i4Msg6BitWords,itype,bcontest) !Pack into 12 6-bit bytes From 3f897225feacc7a72319b9fa808736e6ff36d38d Mon Sep 17 00:00:00 2001 From: Steve Franke Date: Tue, 3 Jul 2018 11:10:47 -0500 Subject: [PATCH 2/4] genft8 now looks at sign of n3 and i3. If either sign is negative, generate a type 1 (classic) message. Otherwise generate type 2. Type 1 seems to work. Type 2 does not yet work. --- lib/ft8/ft8apset.f90 | 2 +- lib/ft8/ft8apset_174_91.f90 | 4 ++-- lib/ft8/genft8.f90 | 12 ++++++++---- lib/ft8_decode.f90 | 2 +- mainwindow.cpp | 2 +- 5 files changed, 13 insertions(+), 9 deletions(-) diff --git a/lib/ft8/ft8apset.f90 b/lib/ft8/ft8apset.f90 index c7e5cbe18..50d1d18fc 100644 --- a/lib/ft8/ft8apset.f90 +++ b/lib/ft8/ft8apset.f90 @@ -16,7 +16,7 @@ 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=-1 ! ### TEMPORARY ??? ### n3=0 !TEMPORARY call genft8(msg,mygrid6,bcontest,i3,n3,msgsent,msgbits,itone) apsym=2*msgbits-1 diff --git a/lib/ft8/ft8apset_174_91.f90 b/lib/ft8/ft8apset_174_91.f90 index 11f427f8e..95be206e3 100644 --- a/lib/ft8/ft8apset_174_91.f90 +++ b/lib/ft8/ft8apset_174_91.f90 @@ -6,8 +6,8 @@ subroutine ft8apset_174_91(mycall12,mygrid6,hiscall12,hisgrid6,bcontest,apsym) character*6 mygrid6,hisgrid6 character*4 hisgrid logical bcontest - integer apsym(KK) - integer*1 msgbits(KK) + integer apsym(77) + integer*1 msgbits(77) integer itone(KK) mycall=mycall12(1:6) diff --git a/lib/ft8/genft8.f90 b/lib/ft8/genft8.f90 index 6d66b5cda..24f5819d9 100644 --- a/lib/ft8/genft8.f90 +++ b/lib/ft8/genft8.f90 @@ -11,17 +11,21 @@ subroutine genft8(msg,mygrid,bcontest,i3,n3,msgsent,msgbits,itone) logical bcontest,checksumok integer*4 i4Msg6BitWords(12) !72-bit message as 6-bit words integer*1 msgbits(KK),codeword(3*ND) + integer*1 msgbits77(77) integer*1, target:: i1Msg8BitBytes(11) integer itone(NN) 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.2) .or. i3.ge.2 ) itype=2 + if( ( i3.eq.0 .and. n3.ge.1) .or. i3.ge.1 ) itype=2 + write(*,*) 'generating type ',itype,' message' -write(*,*) 'msg ',msg +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 unpackmsg(i4Msg6BitWords,msgsent,bcontest,mygrid) !Unpack to get msgsent @@ -56,7 +60,7 @@ write(*,*) 'msg ',msg 900 continue - call genft8_174_91(msg,mygrid,bcontest,i3,n3,msgsent,msgbits,itone) + call genft8_174_91(msg,mygrid,bcontest,i3,n3,msgsent,msgbits77,itone) return end subroutine genft8 diff --git a/lib/ft8_decode.f90 b/lib/ft8_decode.f90 index ce71f00f6..c2c8cef46 100644 --- a/lib/ft8_decode.f90 +++ b/lib/ft8_decode.f90 @@ -51,7 +51,7 @@ contains character*12 mycall12, hiscall12 character*6 mygrid6,hisgrid6 integer*2 iwave(15*12000) - integer apsym1(KK),apsym2(91) + integer apsym1(KK),apsym2(77) character datetime*13,message*22,msg37*37 character*22 allmessages(100) integer allsnrs(100) diff --git a/mainwindow.cpp b/mainwindow.cpp index 24e6e725d..4fd08f7ac 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -3479,7 +3479,7 @@ void MainWindow::guiUpdate() if(m_config.bFox() and ui->tabWidget->currentIndex()==2) { foxTxSequencer(); } else { - m_i3=1; // Temporary!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + m_i3=-1; // Temporary!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! m_n3=0; 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), From 385cda8e01ddec24ce3040a5ec015a6a611c0e27 Mon Sep 17 00:00:00 2001 From: Steve Franke Date: Tue, 3 Jul 2018 11:17:21 -0500 Subject: [PATCH 3/4] Comment out a debug message. --- lib/ft8/genft8.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ft8/genft8.f90 b/lib/ft8/genft8.f90 index 24f5819d9..8a67d0ac4 100644 --- a/lib/ft8/genft8.f90 +++ b/lib/ft8/genft8.f90 @@ -20,8 +20,8 @@ subroutine genft8(msg,mygrid,bcontest,i3,n3,msgsent,msgbits,itone) itype=1 if( ( i3.eq.0 .and. n3.ge.1) .or. i3.ge.1 ) itype=2 -write(*,*) 'generating type ',itype,' message' -write(*,*) 'msg ',msg,i3,n3 +!write(*,*) 'generating type ',itype,' message' +!write(*,*) 'msg ',msg,i3,n3 if(itype.eq.2 ) goto 900 i3=i3*i3 From 92957269311f859db6f5bd524662f473bd51e12d Mon Sep 17 00:00:00 2001 From: Steve Franke Date: Tue, 3 Jul 2018 11:24:42 -0500 Subject: [PATCH 4/4] Fix the sign of i3 when trying to subtract a type message. --- lib/ft8/ft8b_1.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/ft8/ft8b_1.f90 b/lib/ft8/ft8b_1.f90 index d2ed64dda..a9ac4b0f9 100644 --- a/lib/ft8/ft8b_1.f90 +++ b/lib/ft8/ft8b_1.f90 @@ -381,7 +381,7 @@ 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 + i3=-1 !TEMPORARY n3=0 call genft8(message,mygrid6,bcontest,i3,0,msgsent,msgbits,itone) if(lsubtract) call subtractft8(dd0,itone,f1,xdt2)