From 181e70ebe04fad827a7669d35e3e05a45fc0be8e Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 28 Apr 2020 11:37:59 -0400 Subject: [PATCH 01/10] Code cleanup in hint65.f90. Remove the warning about short or missing CALL3.TXT. --- lib/hint65.f90 | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/lib/hint65.f90 b/lib/hint65.f90 index ec414a236..00eaf40c9 100644 --- a/lib/hint65.f90 +++ b/lib/hint65.f90 @@ -62,10 +62,6 @@ subroutine hint65(s3,mrs,mrs2,nadd,nflip,mycall,hiscall,hisgrid,qual,decoded) grid2(j)=grid enddo 10 ncalls=j - if(ncalls.lt.10) then - write(*,1010) ncalls -1010 format('CALL3.TXT very short (N =',i2,') or missing?') - endif close(23) ! NB: generation of test messages is not yet complete! @@ -146,19 +142,11 @@ subroutine hint65(s3,mrs,mrs2,nadd,nflip,mycall,hiscall,hisgrid,qual,decoded) endif enddo -!### Just in case ??? -! rewind 77 -! write(77,*) u1,u2,ipk,ipk2 -! call flush(77) -!### - decoded=' ' bias=max(1.12*u2,0.35) if(nadd.ge.4) bias=max(1.08*u2,0.45) if(nadd.ge.8) bias=max(1.04*u2,0.60) qual=100.0*(u1-bias) -! write(*,3301) u1,u2,u1/u2,bias,qual,nadd,ipk,ipk2 -!3301 format(5f6.2,i3,2i6) qmin=1.0 if(qual.ge.qmin) decoded=msg0(ipk) From ef1c8b079cfaf0750bbc3c2e24340d31e3a6fa1f Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 30 Apr 2020 12:15:23 -0400 Subject: [PATCH 02/10] Aid for color blindness: darken the green used to mark Rx freq and signal BW. --- widgets/plotter.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/widgets/plotter.cpp b/widgets/plotter.cpp index 74fc2c020..b4aecbde5 100644 --- a/widgets/plotter.cpp +++ b/widgets/plotter.cpp @@ -330,7 +330,8 @@ void CPlotter::DrawOverlay() //DrawOverlay() double df = m_binsPerPixel*m_fftBinWidth; QPen penOrange(QColor(255,165,0),3); - QPen penGreen(Qt::green, 3); //Mark Tol range with green line +// QPen penGreen(Qt::green, 3); //Mark Tol range with green line + QPen penGreen(QColor(15,153,105), 3); //Mark Tol range or BW with dark green line QPen penRed(Qt::red, 3); //Mark Tx freq with red QPainter painter(&m_OverlayPixmap); painter.setBackground (palette ().brush (backgroundRole ())); From a81c9acdce60a32bf0835cdf631aa312f4cd724c Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 30 Apr 2020 14:44:51 -0400 Subject: [PATCH 03/10] Offer instruction in the "Should you switch to EU VHF Contest?" messagebox. --- widgets/mainwindow.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 5ce930f96..ff98fa13a 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4601,7 +4601,10 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie } bool bEU_VHF_w2=(nrpt>=520001 and nrpt<=594000); if(bEU_VHF_w2 and SpecOp::EU_VHF!=m_config.special_op_id()) { - MessageBox::information_message (this, tr ("Should you switch to EU VHF Contest mode?")); + auto const& message = tr("Should you switch to EU VHF Contest mode?\n" + "To do so, check 'Special operating activity' and\n" + "'EU VHF Contest' on the Settings | Advanced tab."); + MessageBox::information_message (this, message); } QStringList t=message.string().split(' ', QString::SkipEmptyParts); From 9709b195857848cdc45c57028dd4bd7d982a8013 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 30 Apr 2020 15:05:28 -0400 Subject: [PATCH 04/10] Better format for warning message. --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index ff98fa13a..880f7c9e7 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4601,7 +4601,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie } bool bEU_VHF_w2=(nrpt>=520001 and nrpt<=594000); if(bEU_VHF_w2 and SpecOp::EU_VHF!=m_config.special_op_id()) { - auto const& message = tr("Should you switch to EU VHF Contest mode?\n" + auto const& message = tr("Should you switch to EU VHF Contest mode?\n\n" "To do so, check 'Special operating activity' and\n" "'EU VHF Contest' on the Settings | Advanced tab."); MessageBox::information_message (this, message); From 0a14984d6aab1d230e541d7bcbe1bbd41198b151 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 30 Apr 2020 16:53:44 -0400 Subject: [PATCH 05/10] Add a program to sum together several .wav files of simulated data. --- CMakeLists.txt | 3 +++ lib/sumsim.f90 | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 lib/sumsim.f90 diff --git a/CMakeLists.txt b/CMakeLists.txt index e1ccf1389..2c196cbb2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1295,6 +1295,9 @@ target_link_libraries (jt4sim wsjt_fort wsjt_cxx) add_executable (jt65sim lib/jt65sim.f90 wsjtx.rc) target_link_libraries (jt65sim wsjt_fort wsjt_cxx) +add_executable (sumsim lib/sumsim.f90 wsjtx.rc) +target_link_libraries (sumsim wsjt_fort wsjt_cxx) + add_executable (qra64sim lib/qra/qra64/qra64sim.f90 wsjtx.rc) target_link_libraries (qra64sim wsjt_fort wsjt_cxx) diff --git a/lib/sumsim.f90 b/lib/sumsim.f90 new file mode 100644 index 000000000..e05f8d4d0 --- /dev/null +++ b/lib/sumsim.f90 @@ -0,0 +1,41 @@ +program sumsim + +! Sum a number of *.wav files so that multiple signals are present + + use wavhdr + parameter (NMAX=60*12000) + type(hdr) h !Header for the .wav file + integer*2 iwave(NMAX) !i*2 data + real wave(NMAX) !r*4 data + character*80 fname + + nargs=iargc() + if(nargs.lt.1) then + print*,'Usage: sumsim file1 [file2, ...]' + go to 999 + endif + wave=0. + + do ifile=1,nargs + call getarg(ifile,fname) + open(10,file=trim(fname),status='old',access='stream') + read(10) h + npts=h%ndata/2 + nfsample=h%nsamrate + read(10) iwave(1:npts) + n=len(trim(fname)) + wave(1:npts)=wave(1:npts)+iwave(1:npts) + rms=sqrt(dot_product(wave(1:npts),wave(1:npts))/npts) + write(*,1000) ifile,npts,float(npts)/nfsample,rms,fname(n-14:n) +1000 format(i3,i8,f6.1,f10.3,2x,a15) + close(10) + enddo + + fac=1.0/sqrt(float(nargs)) + iwave(1:npts)=nint(fac*wave(1:npts)) + + open(12,file='000000_0000.wav',access='stream',status='unknown') + write(12) h,iwave(1:npts) + close(12) + +999 end program sumsim From 1a39ed1e5d35797193527dffd6eee4a3f64033d3 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 30 Apr 2020 16:54:53 -0400 Subject: [PATCH 06/10] Code cleanup. --- lib/sync65.f90 | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/sync65.f90 b/lib/sync65.f90 index 974bdc2da..cfb3accb7 100644 --- a/lib/sync65.f90 +++ b/lib/sync65.f90 @@ -55,8 +55,6 @@ subroutine sync65(nfa,nfb,ntol,nqsym,ca,ncand,nrobust,bVHF) do i=ia,ib freq=i*df itry=0 -! if(naggressive.gt.0 .and. ntol.lt.1000 .and. ccfmax.ge.thresh0) then -! if(naggressive.gt.0 .and. ccfmax.ge.thresh0) then if(bVHF) then if(i.ne.ipk .or. ccfmax.lt.thresh0) cycle itry=1 From 11633afb280e7394148456f4d71214625ac3d472 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Thu, 30 Apr 2020 16:55:07 -0400 Subject: [PATCH 07/10] Additions to User Guide for v2.2. --- doc/user_guide/en/make-qso.adoc | 10 +++- doc/user_guide/en/new_features.adoc | 91 ++++++++++++++++++++++++----- doc/user_guide/en/vhf-features.adoc | 6 +- 3 files changed, 89 insertions(+), 18 deletions(-) diff --git a/doc/user_guide/en/make-qso.adoc b/doc/user_guide/en/make-qso.adoc index 4e6b65db3..fb3ed4110 100644 --- a/doc/user_guide/en/make-qso.adoc +++ b/doc/user_guide/en/make-qso.adoc @@ -79,6 +79,7 @@ NOTE: When *Auto-Seq* is enabled the program de-activates *Enable Tx* at the end of each QSO. It is not intended that _WSJT-X_ should make fully automated QSOs. +[[CONTEST_MSGS]] === Contest Messages The new FT4, FT8, and MSK144 protocols support special messages optimized @@ -105,12 +106,17 @@ place of RRR, and the final 73 is optional. CQ TEST G4ABC IO91 G4ABC PA9XYZ JO22 - PA9XYZ 570123 IO91NP - G4ABC R 580071 JO22DB + 570123 IO91NP + R 580071 JO22DB PA9XYZ G4ABC RR73 Either callsign (or both) may have /P appended. +IMPORTANT: Messages conveying signal reports, QSO serial numbers, and +6-character locators have been changed in _WSJT-X v2.2_ and are *NOT* +compatible with the formats used in earlier program versions. Be sure +to upgrade _WSJT-X_ if you will use *EU VHF Contest* messages. + *ARRL Field Day* CQ FD K1ABC FN42 diff --git a/doc/user_guide/en/new_features.adoc b/doc/user_guide/en/new_features.adoc index 2b8efe4c4..fc44dccab 100644 --- a/doc/user_guide/en/new_features.adoc +++ b/doc/user_guide/en/new_features.adoc @@ -1,15 +1,81 @@ === New in Version {VERSION} -The most important feature added to _WSJT-X_ since Version 2.0.1 is -the new *FT4 protocol*, designed especially for radio contesting. It -has T/R sequence length 7.5 s, bandwidth 80 Hz, and threshold -sensitivity -17.5 dB. Version 2.1.0 also has improvements to FT8 -waveform generation, waterfall and spectrum display, contest logging, -rig control, the user interface, keyboard shortcuts, UDP messaging for -inter-program communication, and accessibility, as well as a number of -more minor enhancements and bug fixes. We now provide a separate -installation package for 64-bit Windows Vista and later, offering -significant improvements in decoding speed. +*Improvements to decoders* + +*FT4:* Corrected bugs that prevented AP (_a priori_) decoding and/or +multi-pass decoding in some circumstances. Improved the algorithm for +AP decoding. + +*FT8:* Decoding is now spread over three intervals. The first starts +11.8 s into an Rx sequence and typically yields around 85% of the +possible decodes, so you see all of these decodes much earlier than +before. A second processing step starts at 13.5 s, and the final one +at 14.7 s. Overall decoding yield on the most crowded bands is +improved by 10% or more. Systems with receive latency greater than +0.2 s will see smaller improvements, but will still see many decodes +earlier than before. In FT8 DXpedition Mode, AP decoding is now +implemented for Hounds when the Fox has a compound callsign. + +SNR estimates no longer saturate at +20 dB, and large signals in the +passband no longer cause the SNR of weaker signals to be biased low. +Times written to cumulative journal file ALL.TXT are now correct even +when the decode occurs after the T/R sequence boundary. + +*JT4:* Formatting and display of averaged and Deep Search decodes has +been cleaned up and made consistent with other modes used for EME and +extreme weak-signal work at VHF and above. + +*JT65:* Many improvements have been made for averaged and Deep Search +decodes and their display to the user. For details see <> +in the <> section. + +*WSPR:* Significant improvements have been made to the WSPR decoder's +sensitivity, its ability to cope with many signals in a crowded +sub-band, and its rate of undetected false decodes. We now use up to +three decoding passes. Passes 1 and 2 use noncoherent demodulation of +single symbols and allow for frequency drifts up to ±4 Hz in a +transmission. Pass 3 assumes no drift and does coherent block +detection of up to three symbols. It also applies bit-by-bit +normalization of the single-symbol bit metrics, which has proven +helpful for signals corrupted by artifacts of the subtraction of +stronger signals and also for LF/MF signals heavily contaminated by +lightning transients. With these improvements the number of decodes in a +crowded WSPR sub-band typically increases by 10 to 15%. + +*New message format:* When *EU VHF Contest* is selected, the Tx2 and +Tx3 messages -- those conveying signal report, serial number, and +6-character locator -- now use hashcodes for both callsigns . This +change is not backward compatible with earlier versions of _WSJT-X_. +See <> for details. + +*New modes FT4W and FT4S* are now available for use with extremely +weak signals on the LF and MF bands. + +*FT4W* behaves like WSPR but uses different schemes for coding and +modulation. On the AWGN (Additive White Gaussian Noise) channel and +with 2-minute T/R sequences, FT4W is about 1.5 dB more sensitive than +WSPR, even with the enhanced decoder outlined above. With 5-minute +T/R sequences FT4W reaches a threshold sensitivity close to -37 dB. + +*FT4S* is desighned for 2-way QSOs on the 620 amd 2200 m bands. It +uses the same message formats as FT4, FT8, and MSK144, but different +coding and modulation and much slower T/R sequences lasting 2 minutes. +We intend FT4S to be a replacement for JT9 on the LF and MF bands. + +*Minor enhancements and bug fixes* + +- *Save None* now writes no .wav files to disk, even temporarily. + +- An explicit entry *WW Digi Contest* has been added to *Special + operating activities* on the *Settings | Advanced* tab. + +- The contest mode FT4 now always uses RR73 for the Tx4 message. + +- *Keyboard shortcuts* have been added as an aid to accessibility: +*Alt+R* sets Tx4 message to RR73, *Ctrl+R* sets it to RRR. + +- The *Status bar* now displays the number of decodes found in the +most recent Rx sequence. === Documentation Conventions @@ -34,6 +100,5 @@ your interests known to the development team. The project's source-code repository can be found at {devrepo}, and communication among the developers takes place on the email reflector {devmail}. Bug reports and suggestions for new features, improvements to the -_WSJT-X_ User Guide, etc., may also be sent to the {wsjt_yahoo_group} -email reflector. You must join the relevant group before posting to -either email list. +_WSJT-X_ User Guide, etc., may be sent there as well. You must join +the group before posting to the email list. diff --git a/doc/user_guide/en/vhf-features.adoc b/doc/user_guide/en/vhf-features.adoc index b16842112..88ec55db8 100644 --- a/doc/user_guide/en/vhf-features.adoc +++ b/doc/user_guide/en/vhf-features.adoc @@ -1,6 +1,5 @@ -_WSJT-X_ v{VERSION_MAJOR}.{VERSION_MINOR} supports a number of -features designed for use on the VHF and higher bands. These features -include: +_WSJT-X_ supports a number of features designed for use on the VHF and +higher bands. These features include: - *FT8*, a mode designed for making fast QSOs with weak, fading signals @@ -155,6 +154,7 @@ QSO using submode JT4F. image::JT4F.png[align="center",alt="JT4F"] +[[VHF_JT65]] === JT65 In many ways JT65 operation on VHF and higher bands is similar to HF From 82657db51b11e88f104de7aab3db4246c39f3c94 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 1 May 2020 11:15:43 -0400 Subject: [PATCH 08/10] More work on User Guide for v2.2.0. --- doc/user_guide/en/make-qso.adoc | 2 +- doc/user_guide/en/new_features.adoc | 62 +++++++++++++---------------- 2 files changed, 28 insertions(+), 36 deletions(-) diff --git a/doc/user_guide/en/make-qso.adoc b/doc/user_guide/en/make-qso.adoc index fb3ed4110..da4c0ada5 100644 --- a/doc/user_guide/en/make-qso.adoc +++ b/doc/user_guide/en/make-qso.adoc @@ -82,7 +82,7 @@ fully automated QSOs. [[CONTEST_MSGS]] === Contest Messages -The new FT4, FT8, and MSK144 protocols support special messages optimized +The FT4, FT8, and MSK144 protocols support special messages optimized for *NA VHF* and *EU VHF* contests. FT8 also supports messages for *ARRL Field Day* and the *ARRL RTTY Roundup*. The decoders recognize and decode these messages at any time. Configure the program to diff --git a/doc/user_guide/en/new_features.adoc b/doc/user_guide/en/new_features.adoc index fc44dccab..4bc78be2d 100644 --- a/doc/user_guide/en/new_features.adoc +++ b/doc/user_guide/en/new_features.adoc @@ -3,31 +3,32 @@ *Improvements to decoders* *FT4:* Corrected bugs that prevented AP (_a priori_) decoding and/or -multi-pass decoding in some circumstances. Improved the algorithm for -AP decoding. +multi-pass decoding in some circumstances. Improved and extended the +algorithm for AP decoding. *FT8:* Decoding is now spread over three intervals. The first starts 11.8 s into an Rx sequence and typically yields around 85% of the -possible decodes, so you see all of these decodes much earlier than -before. A second processing step starts at 13.5 s, and the final one -at 14.7 s. Overall decoding yield on the most crowded bands is -improved by 10% or more. Systems with receive latency greater than -0.2 s will see smaller improvements, but will still see many decodes -earlier than before. In FT8 DXpedition Mode, AP decoding is now -implemented for Hounds when the Fox has a compound callsign. +possible decodes, so you see most decodes much earlier than before. A +second processing step starts at 13.5 s, and the final one at 14.7 s. +Overall decoding yield on crowded bands is improved by 10% or more. +Systems with receive latency greater than 0.2 s will see smaller +improvements, but will still see many decodes earlier than before. SNR estimates no longer saturate at +20 dB, and large signals in the passband no longer cause the SNR of weaker signals to be biased low. Times written to cumulative journal file ALL.TXT are now correct even -when the decode occurs after the T/R sequence boundary. +when the decode occurs after the T/R sequence boundary. In FT8 +DXpedition Mode, AP decoding is now implemented for Hounds when the +Fox has a compound callsign. + *JT4:* Formatting and display of averaged and Deep Search decodes has been cleaned up and made consistent with other modes used for EME and -extreme weak-signal work at VHF and above. +extreme weak-signal work on microwave bands. *JT65:* Many improvements have been made for averaged and Deep Search -decodes and their display to the user. For details see <> -in the <> section. +decodes, and their display to the user. For details see <> +in the <> section of this guide. *WSPR:* Significant improvements have been made to the WSPR decoder's sensitivity, its ability to cope with many signals in a crowded @@ -36,37 +37,24 @@ three decoding passes. Passes 1 and 2 use noncoherent demodulation of single symbols and allow for frequency drifts up to ±4 Hz in a transmission. Pass 3 assumes no drift and does coherent block detection of up to three symbols. It also applies bit-by-bit -normalization of the single-symbol bit metrics, which has proven -helpful for signals corrupted by artifacts of the subtraction of -stronger signals and also for LF/MF signals heavily contaminated by -lightning transients. With these improvements the number of decodes in a -crowded WSPR sub-band typically increases by 10 to 15%. +normalization of the single-symbol bit metrics, a technique that has +proven helpful for signals corrupted by artifacts of the subtraction +of stronger signals and also for LF/MF signals heavily contaminated by +lightning transients. With these improvements the number of decodes +in a crowded WSPR sub-band typically increases by 10 to 15%. *New message format:* When *EU VHF Contest* is selected, the Tx2 and Tx3 messages -- those conveying signal report, serial number, and 6-character locator -- now use hashcodes for both callsigns . This -change is not backward compatible with earlier versions of _WSJT-X_. -See <> for details. - -*New modes FT4W and FT4S* are now available for use with extremely -weak signals on the LF and MF bands. - -*FT4W* behaves like WSPR but uses different schemes for coding and -modulation. On the AWGN (Additive White Gaussian Noise) channel and -with 2-minute T/R sequences, FT4W is about 1.5 dB more sensitive than -WSPR, even with the enhanced decoder outlined above. With 5-minute -T/R sequences FT4W reaches a threshold sensitivity close to -37 dB. - -*FT4S* is desighned for 2-way QSOs on the 620 amd 2200 m bands. It -uses the same message formats as FT4, FT8, and MSK144, but different -coding and modulation and much slower T/R sequences lasting 2 minutes. -We intend FT4S to be a replacement for JT9 on the LF and MF bands. +change is *not* backward compatible with earlier versions of _WSJT-X_, so +all users of *EU VHF Contest* messages should be sure to upgrade to +versiion 2.2.0. See <> for details. *Minor enhancements and bug fixes* - *Save None* now writes no .wav files to disk, even temporarily. -- An explicit entry *WW Digi Contest* has been added to *Special +- An explicit entry for *WW Digi Contest* has been added to *Special operating activities* on the *Settings | Advanced* tab. - The contest mode FT4 now always uses RR73 for the Tx4 message. @@ -77,6 +65,10 @@ We intend FT4S to be a replacement for JT9 on the LF and MF bands. - The *Status bar* now displays the number of decodes found in the most recent Rx sequence. +- As an aid for partial color-blindness, the "`inverted goal posts`" +marking Rx frequency on the Wide Graph's frequency scale are now in a +darker shade of green. + === Documentation Conventions In this manual the following icons call attention to particular types From f3e0eed06b5f9d17b684986cf1ecfa389d67eb5e Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 1 May 2020 13:33:27 -0400 Subject: [PATCH 09/10] Correct bug in RTTY RU autosequencing introduced with the new EU VHF Contest message format. --- widgets/mainwindow.cpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 880f7c9e7..3a01b9df3 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4592,19 +4592,24 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie QString w2; if(w.size()>=3) w2=w.at(2); - QString w34; - if(w.size()>=4) w34=w.at(3); int nrpt=w2.toInt(); - if(w2=="R") { - nrpt=w34.toInt(); - w34=w.at(4); - } bool bEU_VHF_w2=(nrpt>=520001 and nrpt<=594000); + QString w34; + if(w.size()>=4) { + int i=2; + if(bEU_VHF_w2) i=3; + w34=w.at(i); + if(w2=="R") { + nrpt=w34.toInt(); + w34=w.at(i+1); + } + } + if(bEU_VHF_w2 and SpecOp::EU_VHF!=m_config.special_op_id()) { - auto const& message = tr("Should you switch to EU VHF Contest mode?\n\n" + auto const& msg = tr("Should you switch to EU VHF Contest mode?\n\n" "To do so, check 'Special operating activity' and\n" "'EU VHF Contest' on the Settings | Advanced tab."); - MessageBox::information_message (this, message); + MessageBox::information_message (this, msg); } QStringList t=message.string().split(' ', QString::SkipEmptyParts); @@ -4641,7 +4646,6 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie && (message_words.at(1).contains(m_baseCall) || "DE" == message_words.at(1)) && (message_words.at(2).contains(qso_partner_base_call) or m_bDoubleClicked or bEU_VHF_w2 or (m_QSOProgress==CALLING))) { - if(message_words.at(3).contains(grid_regexp) and SpecOp::EU_VHF!=m_config.special_op_id()) { if(SpecOp::NA_VHF==m_config.special_op_id() or SpecOp::WW_DIGI==m_config.special_op_id()){ gen_msg=setTxMsg(3); From 38db9276733f5be34f9ca0a9c591cdee8502ce76 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 1 May 2020 16:39:40 -0400 Subject: [PATCH 10/10] Fix another bug: I believe all contest modes autosequence properly now. --- widgets/mainwindow.cpp | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 3a01b9df3..f9379bf4d 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -4591,20 +4591,17 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie || (firstcall == "DE")) { QString w2; - if(w.size()>=3) w2=w.at(2); + int nw=w.size(); + if(nw>=3) w2=w.at(2); int nrpt=w2.toInt(); - bool bEU_VHF_w2=(nrpt>=520001 and nrpt<=594000); QString w34; - if(w.size()>=4) { - int i=2; - if(bEU_VHF_w2) i=3; - w34=w.at(i); - if(w2=="R") { - nrpt=w34.toInt(); - w34=w.at(i+1); - } + if(nw>=4) { +// w34=w.at(nw-2); + nrpt=w.at(nw-2).toInt(); + w34=w.at(nw-1); } - + bool bRTTY = (nrpt>=529 and nrpt<=599); + bool bEU_VHF_w2=(nrpt>=520001 and nrpt<=594000); if(bEU_VHF_w2 and SpecOp::EU_VHF!=m_config.special_op_id()) { auto const& msg = tr("Should you switch to EU VHF Contest mode?\n\n" "To do so, check 'Special operating activity' and\n" @@ -4628,9 +4625,6 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie MessageBox::information_message (this, tr ("Should you switch to ARRL Field Day mode?")); } - n=w34.toInt(); - bool bRTTY = (n>=529 and n<=599); - if(bRTTY and SpecOp::RTTY != m_config.special_op_id()) { // ### Should be in RTTY contest mode ??? ### MessageBox::information_message (this, tr ("Should you switch to RTTY contest mode?")); @@ -4660,6 +4654,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie } } } else if(w34.contains(grid_regexp) and SpecOp::EU_VHF==m_config.special_op_id()) { + if(nrpt==0) { gen_msg=setTxMsg(2); m_QSOProgress=REPORT; @@ -4673,11 +4668,15 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie } } } else if(SpecOp::RTTY == m_config.special_op_id() and bRTTY) { - gen_msg=setTxMsg(3); - m_QSOProgress=ROGER_REPORT; - int n=t.size(); - int nRpt=t[n-2].toInt(); - if(nRpt>=529 and nRpt<=599) m_xRcvd=t[n-2] + " " + t[n-1]; + if(w2=="R") { + gen_msg=setTxMsg(4); + m_QSOProgress=ROGERS; + } else { + gen_msg=setTxMsg(3); + m_QSOProgress=ROGER_REPORT; + } + m_xRcvd=t[n-2] + " " + t[n-1]; +// qDebug() << "bb" << w2 << w34 << t0 << m_xRcvd; } else if(SpecOp::FIELD_DAY==m_config.special_op_id() and bFieldDay_msg) { if(t0=="R") { gen_msg=setTxMsg(4);