From 2e696574c9547728d58a41b2caef9431a95a2ff7 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 28 Feb 2020 11:24:24 -0500 Subject: [PATCH 1/4] Add a TIP about *Alternate F1-F6 bindings* to User Guide. --- doc/common/links.adoc | 1 + doc/user_guide/en/tutorial-example4.adoc | 7 +++++++ 2 files changed, 8 insertions(+) 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. From f9322f2b43d915516ff3f8bd596ad13e328feabf Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 28 Feb 2020 11:25:32 -0500 Subject: [PATCH 2/4] Add calls to timer() around calls to subtractft8(). --- lib/ft8/ft8b.f90 | 6 +++++- lib/ft8_decode.f90 | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/ft8/ft8b.f90 b/lib/ft8/ft8b.f90 index ec575426c..7e742aaa7 100644 --- a/lib/ft8/ft8b.f90 +++ b/lib/ft8/ft8b.f90 @@ -418,7 +418,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,f7.2,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 From 8e7a56634bf66f1e432a762db6fcfabe525ff57f Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 28 Feb 2020 15:03:39 -0500 Subject: [PATCH 3/4] Set nearly=41; don't write after the early decode pass. --- lib/decoder.f90 | 8 +++++--- lib/jt9.f90 | 2 +- lib/jt9a.f90 | 2 +- widgets/mainwindow.h | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 3f58f8b3e..114771c70 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,11 @@ 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) 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/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; From 6c1efac576fa93fefef1effadc080cfa53cd2f72 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 28 Feb 2020 15:45:51 -0500 Subject: [PATCH 4/4] Once more, to get the behavior right for realtime monitoring as well as data from disk. --- lib/decoder.f90 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 114771c70..c837d7350 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -276,7 +276,8 @@ 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.ne.8 .or. params%nzhsym.ge.48) then + 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)