diff --git a/doc/common/links.adoc b/doc/common/links.adoc index ae1738f63..71f8f0483 100644 --- a/doc/common/links.adoc +++ b/doc/common/links.adoc @@ -67,6 +67,7 @@ d). Edit lines as needed. Keeping them in alphabetic order help see dupes. :fmt_group: https://groups.yahoo.com/neo/groups/FMT-nuts/info[FMT Group] :fmt_k5cm: http://www.k5cm.com/[FMT Event Info] :fmt_wspr: http://www.physics.princeton.edu/pulsar/K1JT/FMT_User.pdf[Accurate Frequency Measurements with your WSPR Setup] +:ft4_protocol: http://physics.princeton.edu/pulsar/k1jt/FT4_Protocol.pdf[The FT4 Protocol for Digital Contesting] :ft8_tips: http://www.g4ifb.com/FT8_Hinson_tips_for_HF_DXers.pdf[FT8 Operating Guide] :ft8_DXped: http://physics.princeton.edu/pulsar/k1jt/FT8_DXpedition_Mode.pdf[FT8 DXpedition Mode] :gnu_gpl: http://www.gnu.org/licenses/gpl-3.0.txt[GNU General Public License] diff --git a/doc/user_guide/en/tutorial-example4.adoc b/doc/user_guide/en/tutorial-example4.adoc index 8659088c3..dc22e78a5 100644 --- a/doc/user_guide/en/tutorial-example4.adoc +++ b/doc/user_guide/en/tutorial-example4.adoc @@ -73,5 +73,12 @@ in message* and *Transmitted message*, reading from top to bottom. TIP: Keyboard shortcuts *Shift+F11* and *Shift+F12* provide an easy way to move your FT4 Tx frequency down or up in 90 Hz steps. +TIP: For easy keyboard control of transmitted messages, check +*Alternate F1–F6 bindings* on the Settings | General tab. In +contest-style operation you can then hit *F1* to solicit a QSO by +sending CQ. Similarly, keys *F2* to *F5* will send the messages in +entry fields *Tx2* to *Tx5*. More details on contest-style operation +can be found in {ft4_protocol}. + IMPORTANT: When finished with this Tutorial, don't forget to re-enter your own callsign as *My Call* on the *Settings | General* tab. diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 3f58f8b3e..c837d7350 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -85,7 +85,7 @@ subroutine multimode_decoder(ss,id2,params,nfsample) if(params%nmode.eq.8) then ! We're in FT8 mode - + if(ncontest.eq.6) then ! Fox mode: initialize and open houndcallers.txt inquire(file=trim(temp_dir)//'/houndcallers.txt',exist=ex) @@ -276,9 +276,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 - write(*,1010) nsynced,ndecoded + if(params%nmode.ne.8 .or. params%nzhsym.ge.48 .or. & + .not.params%ndiskdat) then + write(*,1010) nsynced,ndecoded 1010 format('',2i4) - call flush(6) + call flush(6) + endif close(13) if(ncontest.eq.6) close(19) if(params%nmode.eq.4 .or. params%nmode.eq.65) close(14) diff --git a/lib/ft8/ft8b.f90 b/lib/ft8/ft8b.f90 index 2adb5336f..21ee14ce2 100644 --- a/lib/ft8/ft8b.f90 +++ b/lib/ft8/ft8b.f90 @@ -431,7 +431,11 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,nzhsym,lapon, & endif nbadcrc=0 ! If we get this far: valid codeword, valid (i3,n3), nonquirky message. call get_ft8_tones_from_77bits(message77,itone) - if(lsubtract) call subtractft8(dd0,itone,f1,xdt,.false.) + if(lsubtract) then + call timer('sub_ft8b',0) + 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) diff --git a/lib/ft8_decode.f90 b/lib/ft8_decode.f90 index d43f5948f..2a4fd1328 100644 --- a/lib/ft8_decode.f90 +++ b/lib/ft8_decode.f90 @@ -76,9 +76,11 @@ contains ndecodes=ndec_early endif if(nzhsym.eq.50 .and. ndec_early.ge.1) then + call timer('sub_ft8a',0) do i=1,ndec_early call subtractft8(dd,itone_save(1,i),f1_save(i),xdt_save(i),.true.) enddo + call timer('sub_ft8a',1) endif ifa=nfa ifb=nfb diff --git a/lib/jt9.f90 b/lib/jt9.f90 index 6eb732a82..7fb4756b0 100644 --- a/lib/jt9.f90 +++ b/lib/jt9.f90 @@ -304,7 +304,7 @@ program jt9 if(mode.eq.9 .and. fsplit.ne.2700) shared_data%params%nfa=fsplit if(mode.eq.8) then ! "Early" decoding pass, FT8 only - nearly=35 + nearly=41 shared_data%params%nzhsym=nearly id2a(1:nearly*3456)=shared_data%id2(1:nearly*3456) id2a(nearly*3456+1:)=0 diff --git a/lib/jt9a.f90 b/lib/jt9a.f90 index ac3a98462..eb513f1d8 100644 --- a/lib/jt9a.f90 +++ b/lib/jt9a.f90 @@ -64,7 +64,7 @@ subroutine jt9a() 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 - nearly=35 + nearly=41 local_params%nzhsym=nearly id2a(1:nearly*3456)=shared_data%id2(1:nearly*3456) id2a(nearly*3456+1:)=0 diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index dea12db1c..fb16a3dcd 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -467,7 +467,7 @@ private: qint32 m_nFoxFreq; //Audio freq at which Hound received a call from Fox qint32 m_nSentFoxRrpt=0; //Serial number for next R+rpt Hound will send to Fox qint32 m_kin0=0; - qint32 m_earlyDecode=35; + qint32 m_earlyDecode=41; bool m_btxok; //True if OK to transmit bool m_diskData;