mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-21 19:55:20 -05:00
Merge branch 'release-2.1.0' into f2008
This commit is contained in:
commit
77094c88bf
64
INSTALL
64
INSTALL
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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]
|
||||
|
BIN
doc/user_guide/en/images/ft4_decodes.png
Normal file
BIN
doc/user_guide/en/images/ft4_decodes.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 23 KiB |
BIN
doc/user_guide/en/images/ft4_waterfall.png
Normal file
BIN
doc/user_guide/en/images/ft4_waterfall.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
51
doc/user_guide/en/tutorial-example4.adoc
Normal file
51
doc/user_guide/en/tutorial-example4.adoc
Normal 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.
|
@ -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[]
|
||||
|
@ -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.
|
||||
----------------------------------------------------------------------------------
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -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 &&
|
||||
|
Loading…
Reference in New Issue
Block a user