Merge branch 'release-2.1.0' into f2008

This commit is contained in:
Bill Somerville 2019-06-07 17:17:01 +01:00
commit 77094c88bf
No known key found for this signature in database
GPG Key ID: D864B06D1E81618F
16 changed files with 231 additions and 122 deletions

64
INSTALL
View File

@ -30,13 +30,13 @@ Mac".
Qt v5, preferably v5.5 or later is required to build WSJT-X.
Qt v5 multimedia support and serial port is necessary as well as the
core Qt v5 components, normally installing the Qt multimedia
development package and Qt serialport development package are
sufficient to pull in all the required Qt components and dependants as
a single transaction. On some systems the Qt multimedia plugin
component is separate in the distribution repository an it may also
need installing.
Qt v5 multimedia support, serial port, and Linguist is necessary as
well as the core Qt v5 components, normally installing the Qt
multimedia development, Qt serialport development packages, and the Qt
Linguist packages are sufficient to pull in all the required Qt
components and dependants as a single transaction. On some systems
the Qt multimedia plugin component is separate in the distribution
repository an it may also need installing.
The single precision FFTW v3 library libfftw3f is required along with
the libfftw library development package. Normally installing the
@ -256,47 +256,6 @@ The above commands will build hamlib and install it into
~/hamlib-prefix. If `make install-strip` fails, try `make install`.
Qt
--
NOTE: As of Qt v5.4 building Qt from source on Mac OS X is no longer
necessary since the Qt team have switched to using the modern libc++
Standard C++ Library for all distributable run time
components. Instead you may simply download a binary installer for OS
X 64-bit. The binary installer is here:
http://www.qt.io/download
The binary Qt distributions prior to Qt v5.4 from
http://www.qt.io/download unfortunately are built to use the libstdc++
C++ support library, WSJT-X uses a less geriatric C++ dialect which
uses the libc++ C++ support library. This means that you need to
build Qt from sources. This is not difficult but does take some time.
Download the Qt source tarball from
http://www.qt.io/download-open-source/, the link is about half way
down the page, you want the full sources tar ball shown as a 'tar.gz'
link.
Unpack the sources and cd into the top level directory then type:
$ ./configure -prefix ~/local/qt-macx-clang -opensource \
-confirm-license -platform macx-clang -silent -nomake tests \
-nomake examples -sdk macosx10.10 -skip qtwebkit \
-skip qtwebkit-examples -skip qtquick1 -skip qtconnectivity \
-skip qtlocation -skip qtsensors -skip qtscript \
-skip qtwebsockets -skip qtwebengine -skip qtwebchannel \
-skip qtwayland -skip qtquickcontrols -skip qtdeclarative \
-skip qtxmlpatterns -skip qtenginio
$ make -j4
$ make install
If you are building on 10.8 or don't have the 10.10 Mac SDK (Xcode 6)
available, you can substitute '-sdk macosx10.9' above.
The build above will take a few hours to complete.
CMake
-----
Although CMake is available via MacPorts I prefer to use the binary
@ -328,6 +287,13 @@ $ sudo chgrp wheel /usr/local/bin
and then retry the install command.
Qt
--
Download the latest on-line installer package from the Qt web site and
isntall the latest Qt stable version development package.
WSJT-X
------
First fetch the source from the repository:
@ -411,4 +377,4 @@ $ cmake --build . --target install
73
Bill
G4WJS.
G4WJS.

View File

@ -52,6 +52,7 @@ set (UG_SRCS
tutorial-example1.adoc
tutorial-example2.adoc
tutorial-example3.adoc
tutorial-example4.adoc
tutorial-main-window.adoc
tutorial-wide-graph-settings.adoc
utilities.adoc
@ -77,6 +78,8 @@ set (UG_IMGS
images/FreqCal_Graph.png
images/FreqCal_Results.png
images/freemsg.png
images/ft4_decodes.png
images/ft4_waterfall.png
images/ft8_decodes.png
images/FT8_waterfall.png
images/help-menu.png

View File

@ -116,6 +116,7 @@ d). Edit lines as needed. Keeping them in alphabetic order help see dupes.
:QRA64_EME: http://physics.princeton.edu/pulsar/K1JT/QRA64_EME.pdf[QRA64 for microwave EME]
:svn: http://subversion.apache.org/packages.html#windows[Subversion]
:win32: http://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-win32.exe[wsjtx-{VERSION}-win32.exe]
:win64: http://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-win64.exe[wsjtx-{VERSION}-win64.exe]
:wsjt-devel: https://lists.sourceforge.net/lists/listinfo/wsjt-devel[here]
:wsjt_repo: https://sourceforge.net/p/wsjt/wsjt_orig/ci/master/tree/[WSJT Source Repository]
:wspr_code: http://physics.princeton.edu/pulsar/K1JT/WSPRcode.exe[WSPRcode.exe]

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -1,11 +1,12 @@
// Status=review
Download and execute the package file {win32}, following these
instructions:
Download and execute the package file {win32} (WinXP, Vista, Win 7,
Win 8, Win10, 32-bit) or {win64} (Vista, Win 7, Win 8, Win10, 64-bit)
following these instructions:
* Install _WSJT-X_ into its own directory, for example `C:\WSJTX` or `
C:\WSJT\WSJTX`, rather than the conventional location `C:\Program
Files (x86)\WSJTX`.
Files ...\WSJTX`.
* All program files relating to _WSJT-X_ will be stored in the chosen
installation directory and its subdirectories.

View File

@ -7,10 +7,10 @@ K1**JT**,`" while the suffix "`-X`" indicates that _WSJT-X_ started as
an extended and experimental branch of the program
_WSJT_.
_WSJT-X_ Version {VERSION_MAJOR}.{VERSION_MINOR} offers nine different
protocols or modes: *FT8*, *JT4*, *JT9*, *JT65*, *QRA64*, *ISCAT*,
*MSK144*, *WSPR*, and *Echo*. The first five are designed for making
reliable QSOs under extreme weak-signal conditions. They use nearly
_WSJT-X_ Version {VERSION_MAJOR}.{VERSION_MINOR} offers ten different
protocols or modes: *FT4*, *FT8*, *JT4*, *JT9*, *JT65*, *QRA64*,
*ISCAT*, *MSK144*, *WSPR*, and *Echo*. The first six are designed for
making reliable QSOs under weak-signal conditions. They use nearly
identical message structure and source encoding. JT65 and QRA64 were
designed for EME ("`moonbounce`") on the VHF/UHF bands and have also
proven very effective for worldwide QRP communication on the HF bands.
@ -25,12 +25,17 @@ one-minute timed sequences of alternating transmission and reception,
so a minimal QSO takes four to six minutes — two or three
transmissions by each station, one sending in odd UTC minutes and the
other even. FT8 is operationally similar but four times faster
(15-second T/R sequences) and less sensitive by a few dB. On the HF
bands, world-wide QSOs are possible with any of these modes using
power levels of a few watts (or even milliwatts) and compromise
antennas. On VHF bands and higher, QSOs are possible (by EME and
other propagation types) at signal levels 10 to 15 dB below those
required for CW.
(15-second T/R sequences) and less sensitive by a few dB. FT4 is
faster still (7.5 s T/R sequences) and especially well suited for
radio contesting. On the HF bands, world-wide QSOs are possible with
any of these modes using power levels of a few watts (or even
milliwatts) and compromise antennas. On VHF bands and higher, QSOs
are possible (by EME and other propagation types) at signal levels 10
to 15 dB below those required for CW.
Note that even though their T/R sequences are short, FT4 and FT8 are
classified as slow modes because their message frames are sent
only once per transmission.
*ISCAT*, *MSK144*, and optionally submodes *JT9E-H* are "`fast`"
protocols designed to take advantage of brief signal enhancements from
@ -65,10 +70,10 @@ are available for all three platforms.
*Version Numbers:* _WSJT-X_ release numbers have major, minor, and
patch numbers separated by periods: for example, _WSJT-X_ Version
1.9.0. Temporary "`beta`" release candidates are sometimes made in
2.1.0. Temporary _beta release_ candidates are sometimes made in
advance of a new general-availability release, in order to obtain user
feedback. For example, version 1.9.0-rc1, 1.9.0-rc2, etc., would
be beta releases leading up to the final release of v1.9.0.
feedback. For example, version 2.1.0-rc1, 2.1.0-rc2, etc., would
be beta releases leading up to the final release of v2.1.0.
Release candidates should be used _only_ during a short testing
period. They carry an implied obligation to provide feedback to the
program development group. Candidate releases should not be used on

View File

@ -1,40 +1,17 @@
=== New in Version {VERSION}
For quick reference, here's a short list of features and capabilities
added to _WSJT-X_ since Version 1.9.1:
added to _WSJT-X_ since Version 2.0.1:
- New FT8 and MSK144 protocols with 77-bit payloads permit these enhancements:
- New FT4 protocol, designed especially for radio contesting
* Optimized contest messages for NA VHF, EU VHF, Field Day, RTTY Roundup
* T/R sequence length 7.5 s
* Full support for "/R" and "/P" calls in relevant contests
* Bandwidth 80 Hz
* New logging features for contesting
* Integration with {n1mm_logger} and {writelog} for contesting
* Improved support for compound and nonstandard callsigns
* Nearly equal (or better) sensitivity compared to old protocols
* Lower false decode rates
- Improved color highlighting of received messages
- Improved WSPR sensitivity
- Expanded and improved UDP messages sent to companion programs
- Bug fixes and other minor tweaks to user interface
IMPORTANT: Note that for FT8 and MSK144 there is no backward
compatibility with WSJT-X 1.9.1 and earlier. Everyone using these
modes should upgrade to WSJT-X 2.0 by January 1, 2019.
IMPORTANT: _WSJT-X_ Version 2.0 drops support for Apple Mac OS X 10.9
(Mavericks). It is possible to build from source for this operating
system version but the DMG installer package requires 10.10 or later.
* Threshold sensitivity -17.5 dB
- Improvements to accessibility
=== Documentation Conventions

View File

@ -12,10 +12,10 @@ Special cases allow other information such as add-on callsign prefixes
aim is to compress the most common messages used for minimally valid
QSOs into a fixed 72-bit length.
The information payload for FT8 and MSK144 contains 77 bits. The 5
additional bits are used to flag special message types used for FT8
DXpedition Mode, contesting, nonstandard callsigns, and a few other
special types.
The information payload for FT4, FT8, and MSK144 contains 77 bits.
The 5 additional bits are used to flag special message types used for
FT8 DXpedition Mode, contesting, nonstandard callsigns, and a few
other special types.
A standard amateur callsign consists of a one- or two-character
prefix, at least one of which must be a letter, followed by a digit
@ -67,18 +67,29 @@ _WSJT-X_ modes have continuous phase and constant envelope.
[[SLOW_MODES]]
=== Slow Modes
[[FT4PRO]]
==== FT4
Forward error correction (FEC) in FT4 uses a low-density parity check
(LDPC) code with 77 information bits, a 14-bit cyclic redundancy check
(CRC), and 83 parity bits making a 174-bit codeword. It is thus
called an LDPC (174,91) code. Synchronization uses four 4×4 Costas
arrays, and ramp-up and ramp-down symbols are inserted at the start
and end of each transmission. Modulation is 4-tone frequency-shift
keying with Gaussian smoothing of frequency transitions (4-GFSK). The
keying rate is 12000/576 = 20.8333 baud. Each transmitted symbol
conveys two bits, so the total number of channel symbols is 174/2 + 16
+ 2 = 105. The total bandwidth is 4 × 20.8333 = 83.3 Hz.
[[FT8PRO]]
==== FT8
Forward error correction (FEC) in FT8 uses a low-density parity check
(LDPC) code with 77 information bits, a 14-bit cyclic redundancy check
(CRC), and 83 parity bits making a 174-bit codeword. It is thus
called an LDPC (174,91) code. Synchronization uses 7×7 Costas arrays
at the beginning, middle, and end of each transmission. Modulation is
8-tone frequency-shift keying (8-FSK) at 12000/1920 = 6.25 baud. Each
transmitted symbol carries three bits, so the total number of channel
symbols is 174/3 + 21 = 79. The total occupied bandwidth is 8 × 6.25
= 50 Hz.
FT8 uses the same LDPC (174,91) code as FT4. Modulation is 8-tone
frequency-shift keying (8-GFSK) at 12000/1920 = 6.25 baud.
Synchronization uses 7×7 Costas arrays at the beginning, middle, and
end of each transmission. Transmitted symbols carry three bits, so
the total number of channel symbols is 174/3 + 21 = 79. The total
occupied bandwidth is 8 × 6.25 = 50 Hz.
[[JT4PRO]]
==== JT4
@ -227,7 +238,8 @@ which the probability of decoding is 50% or higher.
|===============================================================================
|Mode |FEC Type |(n,k) | Q|Modulation type|Keying rate (Baud)|Bandwidth (Hz)
|Sync Energy|Tx Duration (s)|S/N Threshold (dB)
|FT8 |LDPC, r=1/2|(174,91)| 8| 8-FSK| 6.25 | 50.0 | 0.27| 12.6 | -21
|FT4 |LDPC, r=1/2|(174,91)| 4| 4-GFSK| 20.8333 | 83.3 | 0.15| 5.04 | -17.5
|FT8 |LDPC, r=1/2|(174,91)| 8| 8-GFSK| 6.25 | 50.0 | 0.27| 12.6 | -21
|JT4A |K=32, r=1/2|(206,72)| 2| 4-FSK| 4.375| 17.5 | 0.50| 47.1 | -23
|JT9A |K=32, r=1/2|(206,72)| 8| 9-FSK| 1.736| 15.6 | 0.19| 49.0 | -27
|JT65A |Reed Solomon|(63,12) |64|65-FSK| 2.692| 177.6 | 0.50| 46.8 | -25
@ -246,6 +258,7 @@ comparable to tone spacing.
[width="50%",cols="h,3*^",frame=topbot,options="header"]
|=====================================
|Mode |Tone Spacing |BW (Hz)|S/N (dB)
|FT4 |20.8333 | 83.3 |-17.5
|FT8 |6.25 | 50.0 |-21
|JT4A |4.375| 17.5 |-23
|JT4B |8.75 | 30.6 |-22

View File

@ -0,0 +1,51 @@
// Status=review
.Main Window:
- Select *FT4* on the *Mode* menu.
- Double-click on *Erase* to clear both text windows.
.Wide Graph Settings:
- *Bins/Pixel* = 7, *Start* = 100 Hz, *N Avg* = 1
- Adjust the width of the Wide Graph window so that the upper
frequency limit is approximately 4000 Hz.
.Open a Wave File:
- Select *File | Open* and navigate to
+...\save\samples\FT4\000000_000002.wav+. The waterfall and Band
Activity window should look something like the following screen shots.
Most of the decoded messages use the *RTTY Roundup* message formats.
[[X15]]
image::ft4_waterfall.png[align="left",alt="Wide Graph Decode FT4"]
image::ft4_decodes.png[align="left"]
- Click with the mouse anywhere on the waterfall display. The green Rx
frequency marker will jump to your selected frequency, and the Rx
frequency control on the main window will be updated accordingly.
- Do the same thing with the *Shift* key held down. Now the red Tx
frequency marker and its associated control on the main window will
follow your frequency selections.
- Do the same thing with the *Ctrl* key held down. Now the both colored
markers and both spinner controls will follow your selections.
- Now double-click on any of the the lines of decoded text in the Band
Activity window. Any line will show similar behavior, setting
Rx frequency to that of the selected message and leaving Tx frequency
unchanged. To change both Rx and Tx frequencies, hold *Ctrl* down
when double-clicking.
TIP: To avoid QRM from competing callers, it is frequently desirable
to answer a CQ on a different frequency from that of the CQing
station. The same is true when you tail-end another QSO. Choose a Tx
frequency that appears to be not in use. You might want to check the
box *Hold Tx Freq*.
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.
IMPORTANT: When finished with this Tutorial, don't forget to re-enter
your own callsign as *My Call* on the *Settings | General* tab.

View File

@ -140,6 +140,10 @@ include::tutorial-example2.adoc[]
=== FT8
include::tutorial-example3.adoc[]
[[TUT_EX4]]
=== FT4
include::tutorial-example4.adoc[]
[[MAKE_QSOS]]
== Making QSOs
include::make-qso.adoc[]

View File

@ -22,15 +22,10 @@ i3.n3 Example message Bits Total Purpose
2 PA3XYZ/P GM4ABC/P R JO22 28 1 28 1 1 15 74 EU VHF contest
3 TU; W9XYZ K1ABC R 579 MA 1 28 28 1 3 13 74 ARRL RTTY Roundup
4 <WA9XYZ> PJ4/KA1ABC RR73 12 58 1 2 1 74 Nonstandard calls
5 ... tbd
5 TU; W9XYZ K1ABC R-07 FN 1 28 28 1 7 9 74 WWROF contest ?
6 ... tbd
7 ... tbd
----------------------------------------------------------------------------------
In case we need them, later:
5 TU; W9XYZ K1ABC R 579 8 MA 1 28 28 1 3 6 7 74 CQ WW RTTY
6 TU; W9XYZ K1ABC R 579 MA 1 28 28 1 3 13 74 CQ WPX RTTY
----------------------------------------------------------------------------------
NB: three 74-bit message types and two 71-bit message subtypes are still TBD.
----------------------------------------------------------------------------------

View File

@ -72,7 +72,18 @@ CQ W9XYZ EN37
W9XYZ <YW18FIFA> R-09
YW18FIFA <W9XYZ> RRR
<W9XYZ> YW18FIFA 73
10. Other stuff
10. WWROF FT8/FT4 contest
-----------------------------------------------------------
CQ TEST K1ABC FN42
K1ABC W9XYZ -16 EN
W9XYZ K1ABC R-07 FN
K1ABC W9XYZ RR73
K1ABC G3AAA -11 IO
TU; G3AAA K1ABC R-09 FN
K1ABC G3AAA RR73
11. Other stuff
-----------------------------------------------------------
TNX BOB 73 GL
CQ YW18FIFA

View File

@ -172,6 +172,10 @@ subroutine pack77(msg0,i3,n3,c77)
call pack77_4(nwords,w,i3,n3,c77)
if(i3.ge.0) go to 900
! Check Type 5 (WWROF contest exchange)
call pack77_5(nwords,w,i3,n3,c77)
if(i3.ge.0) go to 900
! It defaults to free text
800 i3=0
n3=0
@ -204,6 +208,7 @@ subroutine unpack77(c77,nrx,msg,unpk77_success)
character*6 cexch,grid6
character*4 grid4,cserial
character*3 csec(NSEC)
character*2 cfield
character*38 c
integer hashmy10,hashmy12,hashmy22,hashdx10,hashdx12,hashdx22
logical unpk28_success,unpk77_success
@ -491,8 +496,31 @@ subroutine unpack77(c77,nrx,msg,unpk77_success)
else
msg='CQ '//trim(call_2)
endif
else if(i3.eq.5) then
! 5 TU; W9XYZ K1ABC R-09 FN 1 28 28 1 7 9 74 WWROF contest
read(c77,1041) itu,n28a,n28b,ir,irpt,nexch,i3
1041 format(b1,2b28.28,b1,b7.7,b9.9,b3.3)
call unpack28(n28a,call_1,unpk28_success)
if(.not.unpk28_success) unpk77_success=.false.
call unpack28(n28b,call_2,unpk28_success)
if(.not.unpk28_success) unpk77_success=.false.
write(crpt,'(i3.2)') irpt-35
if(crpt(1:1).eq.' ') crpt(1:1)='+'
n1=nexch/18
n2=nexch - 18*n1
cfield(1:1)=char(ichar('A')+n1)
cfield(2:2)=char(ichar('A')+n2)
if(itu.eq.0 .and. ir.eq.0) msg=trim(call_1)//' '//trim(call_2)// &
' '//crpt//' '//cfield
if(itu.eq.1 .and. ir.eq.0) msg='TU; '//trim(call_1)//' '//trim(call_2)// &
' '//crpt//' '//cfield
if(itu.eq.0 .and. ir.eq.1) msg=trim(call_1)//' '//trim(call_2)// &
' R'//crpt//' '//cfield
if(itu.eq.1 .and. ir.eq.1) msg='TU; '//trim(call_1)//' '//trim(call_2)// &
' R'//crpt//' '//cfield
endif
if(msg(1:4).eq.'CQ <') unpk77_success=.false.
! if(msg(1:4).eq.'CQ <') unpk77_success=.false.
return
end subroutine unpack77
@ -1040,12 +1068,11 @@ subroutine pack77_3(nwords,w,i3,n3,c77)
call chkcall(w(i1+1),bcall_2,ok2)
if(.not.ok1 .or. .not.ok2) go to 900
crpt=w(nwords-1)(1:3)
if(index(crpt,'-').ge.1 .or. index(crpt,'+').ge.1) go to 900
if(crpt(1:1).eq.'5' .and. crpt(2:2).ge.'2' .and. crpt(2:2).le.'9' .and. &
crpt(3:3).eq.'9') then
nserial=0
read(w(nwords),*,err=1) nserial
!1 i3=3
! n3=0
endif
1 mult=' '
imult=-1
@ -1150,6 +1177,60 @@ subroutine pack77_4(nwords,w,i3,n3,c77)
900 return
end subroutine pack77_4
subroutine pack77_5(nwords,w,i3,n3,c77)
! Check Type 5 (WWROF contest exchange)
character*13 w(19)
character*77 c77
character*6 bcall_1,bcall_2
character*3 mult
character crpt*4
character c1*1,c2*2
logical ok1,ok2
if(nwords.eq.4 .or. nwords.eq.5 .or. nwords.eq.6) then
i1=1
if(trim(w(1)).eq.'TU;') i1=2
call chkcall(w(i1),bcall_1,ok1)
call chkcall(w(i1+1),bcall_2,ok2)
if(.not.ok1 .or. .not.ok2) go to 900
crpt=w(nwords-1)(1:4)
if(index(crpt,'-').lt.1 .and. index(crpt,'+').lt.1) go to 900
c1=crpt(1:1)
c2=crpt(1:2)
irpt=-1
if(c1.eq.'+' .or. c1.eq.'-') then
ir=0
read(w(nwords-1),*,err=900) irpt
irpt=irpt+35
else if(c2.eq.'R+' .or. c2.eq.'R-') then
ir=1
read(w(nwords-1)(2:),*) irpt
irpt=irpt+35
endif
if(irpt.eq.-1 .or. len(trim(w(nwords))).ne.2) go to 900
c2=w(nwords)(1:2)
n1=ichar(c2(1:1)) - ichar('A')
n2=ichar(c2(2:2)) - ichar('A')
if(n1.lt.0 .or. n1.gt.17) go to 900
if(n2.lt.0 .or. n2.gt.17) go to 900
nexch=18*n1 + n2
i3=5
n3=0
itu=0
if(trim(w(1)).eq.'TU;') itu=1
call pack28(w(1+itu),n28a)
call pack28(w(2+itu),n28b)
! 5 TU; W9XYZ K1ABC R-09 FN 1 28 28 1 7 9 74 WWROF contest
write(c77,1010) itu,n28a,n28b,ir,irpt,nexch,i3
1010 format(b1,2b28.28,b1,b7.7,b9.9,b3.3)
end if
900 return
end subroutine pack77_5
subroutine packtext77(c13,c71)
character*13 c13,w

View File

@ -13,11 +13,11 @@
<tr><td><b>F7 </b></td><td>Display Message Averaging window</td></tr>
<tr><td><b>F11 </b></td><td>Move Rx frequency down 1 Hz</td></tr>
<tr><td><b>Ctrl+F11 </b></td><td>Move identical Rx and Tx frequencies down 1 Hz</td></tr>
<tr><td><b>Shift+F11 </b></td><td>Move Tx frequency down 60 Hz</td></tr>
<tr><td><b>Shift+F11 </b></td><td>Move Tx frequency down 60 Hz (FT8) or 90 Hz (FT4)</td></tr>
<tr><td><b>Ctrl+Shift+F11 </b></td><td>Move dial frequency down 2000 Hz</td></tr>
<tr><td><b>F12 </b></td><td>Move Rx frequency up 1 Hz</td></tr>
<tr><td><b>Ctrl+F12 </b></td><td>Move identical Rx and Tx frequencies up 1 Hz</td></tr>
<tr><td><b>Shift+F12 </b></td><td>Move Tx frequency up 60 Hz</td></tr>
<tr><td><b>Shift+F12 </b></td><td>Move Tx frequency up 60 Hz (FT8) or 90 Hz (FT4)</td></tr>
<tr><td><b>Ctrl+Shift+F12 </b></td><td>Move dial frequency up 2000 Hz</td></tr>
<tr><td><b>Alt+1-6 </b></td><td>Set now transmission to this number on Tab 1</td></tr>
<tr><td><b>Ctl+1-6 </b></td><td>Set next transmission to this number on Tab 1</td></tr>

View File

@ -1991,7 +1991,7 @@ void MainWindow::keyPressEvent (QKeyEvent * e)
if(e->modifiers() & Qt::ControlModifier) n+=100;
if(e->modifiers() & Qt::ShiftModifier) {
int offset=60;
if(m_mode=="FT4") offset=100;
if(m_mode=="FT4") offset=90;
ui->TxFreqSpinBox->setValue(ui->TxFreqSpinBox->value()-offset);
} else{
bumpFqso(n);
@ -2007,7 +2007,7 @@ void MainWindow::keyPressEvent (QKeyEvent * e)
if(e->modifiers() & Qt::ControlModifier) n+=100;
if(e->modifiers() & Qt::ShiftModifier) {
int offset=60;
if(m_mode=="FT4") offset=100;
if(m_mode=="FT4") offset=90;
ui->TxFreqSpinBox->setValue(ui->TxFreqSpinBox->value()+offset);
} else {
bumpFqso(n);
@ -5559,6 +5559,7 @@ void MainWindow::acceptQSO (QDateTime const& QSO_date_off, QString const& call,
}
if(m_config.clear_DX () and SpecOp::HOUND != m_config.special_op_id()) clearDX ();
auto_tx_mode (false);
m_dateTimeQSOOn = QDateTime {};
auto special_op = m_config.special_op_id ();
if (SpecOp::NONE < special_op && special_op < SpecOp::FOX &&