1. Fix a bug that could cause decoder to hang when presented with

bad data.

2. Fix a bug that could allow a Koetter-Vardy false decode instead of
a valid Berlekamp-Massey decode, sometimes leading to program crash.

3. Many more edits in the User's Guide, *.adoc files.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3664 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2014-01-27 21:28:54 +00:00
parent fbe4a52f2f
commit 784e246557
38 changed files with 468 additions and 346 deletions

View File

@ -1,6 +1,6 @@
// Status=review
The Band Settings tab allows you to set the default frequency and a
brief description of your antenna for each amateur band. The antenna
information will be included with reception reports to {pskreporter},
if they have been enabled.
The Band Settings tab allows you to set the default frequency and
enter a brief description of your antenna for each amateur band. The
antenna information will be included with reception reports to
{pskreporter}, if they have been enabled.

View File

@ -1,9 +1,9 @@
// Status=review
- Start _WSJT-X_ and Select Configuration from its Setup menu. Enter
- Start _WSJT-X_ and select *Configuration* from its *Setup* menu. Enter
the following information:
* *Call Sign*: <Your Call Sign>
* *Grid*: <Your Maidenhead Locator>
* *Grid*: <Your Maidenhead locator>
* *PTT method*: choose from RTS, DTR, CAT, VOX, or None.
* *PTT port*: if you will use RTS or DTR, choose a serial port.
* *PSK Reporter*: check to enable sending reception reports to the
@ -54,16 +54,7 @@ any interface equipment turned on and connected before starting
_WSJT-X_, and to exit the program before turning your equipment off.
- Click the *Test CAT Control* and *Test PTT* buttons to see that you
have established the desired control of station functions. _ Select
the devices you will use for Audio input and output.
have established the desired control of station functions.
- Select the devices you will use for Audio input and output.
- Click OK to dismiss the *Configuration* window.
- _WSJT-X_ expects your sound card to do its raw sampling at 48000 Hz.
To ensure that this will be so when running under recent versions of
Windows, open the system's sound control panel and select in turn the
*Recording* and *Playback* options. Click on *Properties*, then
*Advanced*, and select “16 bit, 48000 Hz (DVD Quality).”
CAUTION: If you are using a sound card that is also the default device
for Windows sounds, be sure to turn off all such sounds so they are
not transmitted over the air.

View File

@ -5,24 +5,24 @@ use when making QSOs:
//.Misc Controls Center
image::images/misc-controls-center.png[align="center",alt="Misc Controls Center"]
* Select *Tx even* to transmit in even-numbered UTC minutes. Uncheck
* Check *Tx even* to transmit in even-numbered UTC minutes. Uncheck
this box to transmit in the odd intervals. This selection is made
automatically when you double-click on a decoded text line as
described in the Basic Operating Tutorial.
described in the <<X5,Basic Operating Tutorial>>.
* Your audio Tx and Rx frequencies can be adjusted with spinner
controls. These settings are usually handled automatically by the
double-click procedure.
* The Tx and Rx audio frequencies can be adjusted with spinner
controls. These settings are usually set automatically by
double-clicking on decoded text or on thw waterfall.
* The on-the-air frequency of your lowest JT9 or JT65 tone is the sum
of dial and audio frequencies. You can force Tx frequency to the
current Rx frequency by clicking the *Tx=Rx* button, and vice-versa
for *Rx=Tx*. Check the box *Lock Tx=Rx* to make the frequencies
always track one another.
of dial frequency and audio Tx frequency. You can force Tx frequency
to the current Rx frequency by clicking the *Tx=Rx* button, and
vice-versa for *Rx=Tx*. Check the box *Lock Tx=Rx* to make the
frequencies always track one another.
* The *Report* control lets you change a signal report that has been
inserted automatically. Most reports will fall in the range 26 to
+10 dB. Remember that JT65 reports cannot be greater than -1 dB.
+10 dB. Remember that JT65 reports must lie in the range -30 to -1 dB.
IMPORTANT: When signals are close to or above 0 dB, you and your QSO
partner should probably reduce power. JT65 and JT9 are supposed to be

View File

@ -2,6 +2,63 @@
The following keyboard shortcuts give quick access to some
frequently used program functions.
[horizontal]
F1::
Display online User's Guide in browser
Ctrl+F1::
About WSJT-X
F2::
Open the Setup >> Configuration window
F3::
Display keyboard shortcuts
F4::
Clear Dx Call and Dx Grid entries
Alt+F4::
Exit program
F5::
Display special mouse commands
F6::
Open next file in directory
Shift+F6::
Decode all remaining files in directory
F11::
Move Rx frequency down 1 Hz
Ctrl+F11::
Move Rx and Tx frequencies down 1 Hz
F12::
Move Rx frequency up 1 Hz
Ctrl+F12::
Move Rx and Tx frequencies up 1 Hz
Alt+1-6::
Set next transmission to this number on Tab 1
Alt+D::
Decode again at Rx frequency
Shift+D::
Full decode (both windows)
Alt+E::
Erase
Ctrl+F::
Edit the free text message box
Alt+G::
Generate standard messages
Alt+H::
Halt Tx
Ctrl+L::
Lookup callsign in database, generate standard messages
Alt M::
Monitor
Alt+N::
Enable Tx
Alt+Q::
Log QSO
Alt+S::
Stop monitoring
Alt+T::
Tune
Alt+V::
Save the most recently completed `*.wav'' file
////
//.Keyboard Shortcuts
[width="70%",cols="2,30",options="header",align="center"]
|=====
@ -34,3 +91,4 @@ frequently used program functions.
|Alt+T|Tune
|Alt+V|Save the most recently completed `*.wav'' file
|=====
////

View File

@ -7,9 +7,11 @@ left of the main window:
//.Misc Controls Left
image::images/misc-main-ui.png[align="center",alt="Mist Menu Items"]
* The drop-down band selector at upper left lets you select the
* The drop-down list of bands at upper left lets you select the
operating band and sets dial frequency to a default value taken from
the *Default Frequencies* tab on the *Setup | Configuration* screen.
If CAT control is active the radio's dial frequency will be set
accordingly; if not, you must tune the radio manually.
* If you are using CAT control, a small colored square appears in
green if the CAT control is two-way between _WSJT-X_ and your radio, or

View File

@ -8,38 +8,40 @@ image::images/main-ui-controls.png[align="left",alt="Main UI Controls"]
* *Log QSO* pops up a confirmation screen pre-filled with known
information about a QSO you have nearly completed. You can edit or
add to this information before clicking *OK* to log the QSO. If you
check *Prompt me to log QSO* on the *Setup* menu, the program will pop
up the confirmation screen automatically when you send a 73 or
check *Prompt me to log QSO* on the *Setup* menu, the program will
raise the confirmation screen automatically when you send a 73 or
free-text message.
//.Log QSO Window
image::images/log-qso.png[align="center",alt="Log QSO"]
* *Stop* will stop normal data acquisition in case you want to open
and explore previously recorded audio files.
* *Stop* will stop normal data acquisition in case you want to freeze
the waterfall, or perhaps to open and explore a previously recorded
audio file.
* *Monitor* restarts normal receive operation. This button is
highlighted in green when the program is receiving.
* *Erase* clears the right (*Rx frequency*) window. Double-clicking
*Erase* clears both text windows.
* *Erase* clears the right (*Rx frequency*) text window. Double-clicking
Erase* clears both text windows.
* *Decode* tells the program to repeat the decoding procedure at the
Rx frequency (green marker on waterfall), using the most recently
completed sequence of Rx data.
* *Enable Tx* puts the program into automatic Rx/Tx sequencing mode
* *Enable Tx* puts the program into automatic T/R sequencing mode
and highlights the button in red. A transmission will start at the
beginning of the selected (odd or even) sequence, or immediately if
appropriate. A transmission will not be started any later than 24 s
into a UTC minute.
* *Halt Tx* terminates a transmission in progress and disables
automatic Rx/Tx sequencing.
automatic T/R sequencing.
* *Tune* may be used to switch into Tx mode and generate an
unmodulated carrier at the specified Tx frequency (red marker on
waterfall). This process may be useful for adjusting an antenna
tuner. Toggle the button a second time to terminate the *Tune*
tuner. The button is highlighted in [red]*RED* while *Tune* is
active. Toggle the button a second time to terminate the *Tune*
process.

View File

@ -4,8 +4,8 @@ Two arrangements of controls are provided for generating and selecting
Tx messages. Traditional controls carried over from program _WSJT_
appear on *Tab 1* and provide six fields for message entry.
Pre-formatted messages for the standard minimal QSO are generated when
you click *Generate Std Msgs* or when you double-click on an
appropriate line in one of the decoded text windows.
you click *Generate Std Msgs* or double-click on an appropriate line
in one of the decoded text windows.
//.Traditional Message Menu
image::images/traditional-msg-box.png[align="center",alt="Traditional Message Menu"]
@ -20,7 +20,7 @@ probably succeed if done in the first 10 s of a Tx period.
* Right-clicking on the entry field for message #5 pops up a list of
free-text messages entered on the *Setup | Configuration | Tx Macros*
tab. You can select any of these pre-stored messages by using the
screen. You can select any of these pre-stored messages by using the
left mouse button.
The second arrangement of controls for generating and selecting

View File

@ -6,7 +6,6 @@ information about operating conditions.
//.Status Bar
image::images/status-bar-a.png[align="left",alt="New Message Menu"]
Reading from left to right, these labels provide information about the
current operating state (Receiving, Transmitting, Tune, or an opened
file name), operating mode, and content of the most recent transmitted
message.
Labels on the Status Bar provide information about the current
operating state (Receiving, Transmitting, Tune, or an open file name),
operating mode, and content of your most recent transmitted message.

View File

@ -27,12 +27,13 @@ waterfall colors. Values around 0 for both parameters are usually
about right, depending on the input signal level and your own
preferences.
- *Palette* lets you select from a number of waterfall color palettes.
- *Palette* lets you select from a wide range of waterfall color
palettes.
- Check the *Flatten* box to have _WSJT-X_ compensate for uneven
spectral response across the received passband.
- Check *Flatten* if you want _WSJT-X_ to compensate for uneven
response across the received passband.
- You can select *Current* or *Cumulative* for the spectrum displayed
- Select *Current* or *Cumulative* for the spectrum displayed
in the bottom one-third of the Wide Graph window. *Current* is the
average spectrum over the most recent *N Avg* FFT calculations.
*Cumulative* is the average spectrum since the start of the current

View File

@ -1,5 +0,0 @@
// Status=review
This section describes the various menus, screens, controls, and
functions for both the Main Window and Wide Graph. Small differences
may exist between displayed images and that of the application.

View File

@ -9,6 +9,7 @@ scale) of most labels on the user interface. The last two numbers
control size and weight of text in the *Band Activity* and *Rx
Frequency* windows.
- The default is ``8 50 10 50''. If you need larger fonts and bold
text in the decode windows, try ``10 50 12 100'' (without the quotes).
- The default is ``8 50 10 50''. If you need larger fonts in the user
interface and bold text in the decode windows, try ``10 50 12 100''
(without the quotes).

View File

@ -1,12 +1,12 @@
// Status=review
Separate compiled versions of _WSJT-X_ are available for OS X 10.6
through 10.8, and OS X 10.9. The two versions are not interchangeable.
Two different packages are available: one for OS X 10.6 through 10.8,
and one for OS X 10.9. The two versions are _not_ interchangeable.
- Select the correct package for your OS X and download it to your desktop.
- Double-click on the file to see a new folder, +WSJT-X+. Drop down
into that folder, where the +Readme+ file provides detailed instructions
into that folder, where a +Readme+ file provides detailed instructions
on how to configure your system for _WSJT-X_.
- Some additional information can be found {osx-instructions}.

View File

@ -14,3 +14,12 @@ _WSJT-X_ by removing the installation directory and its contents.
not adequate. We recommend Meinberg NTP: see {ntpsetup} for
downloading and installation instructions.
- _WSJT-X_ expects your sound card to do its raw sampling at 48000 Hz.
To ensure that this will be so when running under recent versions of
Windows, open the system's sound control panel and select in turn the
*Recording* and *Playback* options. Click on *Properties*, then
*Advanced*, and select ``16 bit, 48000 Hz (DVD Quality).''
CAUTION: If you are using a sound card that is also the default device
for Windows sounds, be sure to turn off all such sounds so they are
not transmitted over the air.

View File

@ -1,49 +1,47 @@
// Status=review
After installing _WSJT-X_ as described in <<X3, Installation>>, the
following files will be present in the installation directory:
.Files Present After Installation
[width="60%",cols="2,60",options="header",valign="middle"]
|========
|File Name|Description
|afmhot.dat|Data for AFMHot palette
|blue.dat|Data for Blue palette
|CALL3.TXT|Callsign database
|hamlib-alinco.dll|Hamlib, Alinco libraries
|hamlib-amsat.dll|Hamlib, Asmat libraries
|kamlib-dummy.dll|Hamlib, Dummy Kam libraries
|hamlib-flexradio.dll|Hamlib, Flex Radio libraries
|hamlib-icom.dll|Hamkib, Icom libraries
|hamlib-jrc.dll|Hamlib, JRC libraries
|hamlib-kachina.dll|Hamlib, Kachina libraries
|hamlib-kenwood.dll|Hamlib, Kenwood libraries
|hamlib-kit.dll|Hamlib, Kit libraries
|hamlib-tapr.dll|Hamlib, Tapr libraries
|hamlib-tentec.dll|Hamlib, TenTec libraries
|hamlib-winradio.dll|Hamlib, WinRadio libraries
|hamlib-yaesu.dll|Hamlib, Yaesu libraries
|HRDInterface001.dll|Ham Radio Deluxe interface library
|jt9.exe|Executable for JT9 decoder
|jt9code.exe|Test program to illustrate JT9 encoding
|kvasd.dat|Data for Koetter-Vardy decoder
|kvasd.exe|Executable Koetter-Vardy decoder
|libfftw3f-3.dll|Optimized FFT library
|libgcc_s_dw2-1.dll|gcc runtime
|libhamlib-2.dll|Hamlib, Base library
|libstdc\+\+-6.dll|Standard C function library
|libusb0.dll|USB interface functions
|mingwm10.dll|MinGW library
|mouse_commands.txt|Special mouse commands
|palir-02.dll|Linrad functions
|PSKReporter.dll|Library for PSK reporter
|QtCore4.dll|QtCore libraries
|QtGui4.dll|QtGui4 libraries
|QtNetwork4.dll|QtNetwork4 libraries
|save|Directory for saved .wav files
|shortcuts.txt|Keyboard shortcuts
|unins000.dat|Uninstall Data File
|unins000.exe|Executable for uninstalling _WSJT-X_
|wsjt.ico|WSJT icon
|wsjtx.exe|Executable for _WSJT-X_
|========
After a clean install of _WSJT-X_ the following files should be
present in the installation directory:
[horizontal]
+CALL3.TXT+:: Callsign database
+HRDInterface001.dll+:: Ham Radio Deluxe interface library
+Palettes+:: directory for waterfall palettes
+Qt5Core.dll+:: Qt5 library
+Qt5Gui.dll+:: Qt5 library
+Qt5Multimedia.dll+:: Qt5 library
+Qt5Network.dll+:: Qt5 library
+Qt5Widgets.dll+:: Qt5 library
+cty.dat+:: DXCC countries list
+hamlib-alinco.dll+:: Hamlib, Alinco library
+hamlib-amsat.dll+:: Hamlib, Amsat library
+hamlib-dummy.dll+:: Hamlib library
+hamlib-flexradio.dll+:: Hamlib Flex radio library
+hamlib-icom.dll+:: Hamlib Icom library
+hamlib-jrc.dll+:: Hamlib JRC library
+hamlib-kachina.dll+:: Hamlib Kachina library
+hamlib-kenwood.dll+:: Hamlib Kenwood library
+hamlib-kit.dll+:: Hamlib Kit library
+hamlib-tapr.dll+:: Hamlib TAPR library
+hamlib-tentec.dll+:: Hamlib TenTec library
+hamlib-winradio.dll+:: Hamlib WinRadio library
+hamlib-yaesu.dll+:: Hamlib Yaesu library
+icudt51.dll+:: ICU library
+icuin51.dll+:: ICU library
+icuuc51.dll+:: ICU library
+jt9.exe+:: Executable for JT9 and JT65 decoder
+kvasd.exe+:: Executable for Koetter-Vardy decoder
+libgcc_s_dw2-1.dll+:: gcc runtime library
+libhamlib-2.dll+:: Hamlib base library
+libstdc++-6.dll+:: Standard C function library
+libwinpthread-1.dll+:: Windows pthreads library
+mouse_commands.txt+:: Special mouse commands
+platforms+:: Directory for platform-specific libraries
+prefixes.txt+:: Add-on prefixes and suffixes (*Type 1*)
+qt.conf+:: Qt configuration file
+save+:: Directory for saved *.wav files
+shortcuts.txt+:: Keyboard shortcuts
+unins000.dat+:: Uninstall data file
+unins000.exe+:: Executable for uninstalling _WSJT-X_
+wsjt.ico+:: _WSJT_ icon
+wsjtx.exe+:: Executable for _WSJT-X_

View File

@ -9,7 +9,7 @@ _WSJT-X_ offers two protocols or “modes,” JT65 and JT9. Both are
designed for making reliable, confirmed QSOs under extreme weak-signal
conditions. They use nearly identical message structure and source
encoding. JT65 was designed for EME (“moon-bounce”) on the VHF/UHF
bands and has also proved very effective for worldwide QRP
bands, and has also proved very effective for worldwide QRP
communication at HF. JT9 is optimized for the LF, MF, and HF bands.
It is about 2 dB more sensitive than JT65 while using less than 10% of
the bandwidth. Both modes use one-minute timed sequences of
@ -22,12 +22,12 @@ _WSJT-X_ can display a bandpass as large as 5 kHz and transparently
provides dual-mode reception of both JT65 and JT9 signals. If your
receiver can be configured with at least 4 kHz bandwidth in USB mode,
you can set the dial frequency to one of the standard JT65 frequencies
— for example, 14.076 MHz for the 20-meter band — and have the full
JT65 and JT9 sub-bands displayed simultaneously on the waterfall. You
can then make QSOs in both modes using nothing more than mouse clicks.
— for example, 14.076 MHz for the 20-meter band — and display the full
JT65 and JT9 sub-bands simultaneously on the waterfall. You can then
make QSOs in both modes using nothing more than mouse clicks.
Plans for future program development call for _WSJT-X_ and _WSJT_ to
merge together: _WSJT-X_ will gradually acquire the additional modes
merge together. _WSJT-X_ will gradually acquire the additional modes
JT4, FSK441, and ISCAT that are now supported in _WSJT_. The entire
WSJT-related effort is an open-source project. If you have
programming or documentation skills or would like to contribute to the

View File

@ -10,29 +10,35 @@ bits to carry message information. At the user level the two modes
support nearly identical message structures.
JT65 signal reports are constrained to the range 1 to 30 dB. This
range is more than adequate for EME purposes, but not enough for
optimum use at HF and below. S/N values displayed by the JT65 decoder
are clamped at an upper limit 1 dB. Moreover, the S/N scale in
present JT65 decoders is nonlinear above 10 dB.
range is more than adequate for EME purposes, but not really enough
for optimum use at HF and below. S/N values displayed by the JT65
decoder are clamped at an upper limit 1 dB. Moreover, the S/N scale
in present JT65 decoders is nonlinear above 10 dB.
By comparison, JT9 allows for signal reports in the range 50 to +49
dB. It manages this by taking over a small portion of ``message
space'' that would otherwise be used for grid locators within 1 degree
of the south pole. The S/N scale of the present JT9 decoder is
reasonably linear (although its not intended to be a precision
measurement tool). With clean signals and a clean nose background,
JT65 achieves nearly 100% probability of correct decoding down to
S/N = 22 dB and about 50% at 24 dB. JT9 is about 2 dB better,
achieving 50% decoding at about 26 dB. Both modes produce extremely
low false-decode rates.
measurement tool).
With clean signals and a clean nose background, JT65 achieves nearly
100% decoding down to S/N = 22 dB and about 50% at 24 dB. JT9 is
about 2 dB better, achieving 50% decoding at about 26 dB. Both modes
produce extremely low false-decode rates.
Early experience suggests that under most HF propagation conditions
the two modes have comparable reliability. The tone spacing of JT9 is
about two-thirds that of JT65, so in some disturbed ionospheric
conditions in the higher portion of the HF spectrum, JT65 may do
better. JT9 is an order of magnitude better in spectral efficiency.
On a busy HF band, we often find the 2-kHz-wide JT65 sub-band filled
wall-to-wall with signals. Ten times as many JT9 signals can fit
into the same frequency range, without overlap.
better.
JT9 is an order of magnitude better in spectral efficiency. On a busy
HF band, we often find the 2-kHz-wide JT65 sub-band filled
wall-to-wall with signals. Ten times as many JT9 signals can fit into
the same frequency range, without overlap.
JT65 signals often decode correctly even when they overlap. Such
behavior is much less likely with JT9 signals, which fill their occupied
bandwisth more densely. JT65 may also be more forgiving of small
frequency drifts.

View File

@ -0,0 +1,46 @@
// Status=review
JT65 was designed for making minimal QSOs via EME (``moon-bounce'') on
the VHF and UHF bands. A detailed description of the protocol and its
implementation in program _WSJT_ was published in {jt65protocol} for
September-October, 2005. Briefly stated, JT65 uses 60 s T/R sequences
and carefully structured messages. Standard messages are compressed
so that two callsigns and a grid locator can be transmitted with just
71 bits. A 72^nd^ bit serves as a flag to indicate that the message
consists of arbitrary text (up to 13 characters) instead of callsigns
and a grid locator. Special formats allow other information such as
add-on callsign prefixes (e.g., ZA/K1ABC) or numerical signal reports
(in dB) to be substituted for the grid locator. The aim of source
encoding is to compress the common messages used for minimal QSOs into
a minimum fixed number of bits. After compression, a Reed Solomon
(63,12) error-correcting code converts 72-bit user messages into
sequences of 63 six-bit channel symbols.
JT65 requires tight synchronization of time and frequency between
transmitter and receiver. Each transmission is divided into 126
contiguous time intervals or symbols, each of length 4096/11025 =
0.372 s. Within each interval the waveform is a constant-amplitude
sinusoid at one of 65 pre-defined frequencies. Frequency steps
between intervals are accomplished in a phase-continuous manner. Half
of the channel symbols are devoted to a pseudo-random synchronizing
vector interleaved with the encoded information symbols. The sync
vector allows calibration of time and frequency offsets between
transmitter and receiver. A transmission nominally begins at t = 1 s
after the start of a UTC minute and finishes at t = 47.8 s. The
synchronizing tone is at 11025*472/4096 = 1270.5 Hz, and is normally
sent in each interval having a “1” in the following pseudo-random
sequence:
100110001111110101000101100100011100111101101111000110101011001
101010100100000011000000011010010110101010011001001000011111111
Encoded user information is transmitted during the 63 intervals not
used for the sync tone. Each channel symbol generates a tone at
frequency 1275.8 + 2.6917 Nm Hz, where N is the value of the six-bit
symbol, 0 ≤ N ≤ 63, and m is 1, 2, or 4 for JT65 sub-modes A, B, or C.
The signal report “OOO” is conveyed by reversing sync and data
positions in the transmitted sequence. Shorthand messages dispense
with the sync vector and use intervals of 1.486 s (16,384 samples) for
the alternating tones. The lower frequency is always 1270.5 Hz, the
same as that of the sync tone, and the frequency separation is 26.92
nm Hz with n = 2, 3, 4 for the messages RO, RRR, and 73.

View File

@ -1,94 +1,24 @@
// Status=review
//Needs work!
JT9 is a mode designed for making minimal QSOs at LF, MF, and HF. It
uses 72-bit structured messages nearly identical (at the user level)
to those in JT65. Error control coding (ECC) uses a strong
convolutional code with constraint length K=32, rate r=1/2, and a zero
tail, leading to an encoded message length of (72+31) × 2 = 206
information-carrying bits. Modulation is 9-FSK: eight tones are used
for data, one for synchronization. Thus, three data bits or one
synchronization bit are conveyed by each transmitted symbol. Sixteen
symbol intervals are devoted to synchronization, so a transmission
requires a total of 206 / 3 + 16 = 85 (rounded up) channel
symbols. The sync symbols are those numbered 1, 2, 5, 10, 16, 23, 33,
35, 51, 52, 55, 60, 66, 73, 83, and 85 in the transmitted sequence.
JT9 is designed for making minimal QSOs at LF, MF, and HF. It uses
72-bit structured messages nearly identical (at the user level) to
those in JT65. Error control coding (ECC) uses a strong convolutional
code with constraint length K=32, rate r=1/2, and a zero tail, leading
to an encoded message length of (72+31) × 2 = 206 information-carrying
bits. Modulation is nine-tone frequency-shift keying, or 9-FSK.
Eight tones are used for data, one for synchronization. Eight data
tones means that three data bits are conveyed by each transmitted
information symbol. Sixteen symbol intervals are devoted to
synchronization, so a transmission therefore requires a total of 206 / 3
+ 16 = 85 (rounded up) channel symbols. The sync symbols are those
numbered 1, 2, 5, 10, 16, 23, 33, 35, 51, 52, 55, 60, 66, 73, 83, and
85 in the transmitted sequence.
Each symbol lasts for 6912 sample intervals at 12000 samples per
second, or about 0.576 s. Tone spacing of the 9-FSK modulation is
12000/6912 = 1.736 Hz, the inverse of the symbol duration. The total
occupied bandwidth is 9 × 1.736 = 15.6 Hz. A generated JT9 signal has
continuous phase and constant amplitude. There are no key clicks, and
the transmitter's power amplifier need not be highly linear.
continuous phase and constant amplitude, and there are no key clicks.
The transmitter's power amplifier need not be highly linear.
.Transmitting
Immediately before the start of a transmission WSJT-X encodes a
users message and computes the sequence of tones to be sent. The
transmitted audio waveform is computed on-the-fly, using 16-bit
integer samples at a 48000 Hz rate. The digital samples are converted
to an analog waveform in the sound card or equivalent D/A interface.
.Receiving and Decoding
WSJT-X acquires 16-bit integer samples from the sound card at a 48000
Hz rate, and immediately downsamples the stream to 12000 Hz. Spectra
from overlapping segments are computed for the waterfall display and
saved at intervals of 0.188 s, half the JT9 symbol length. As shown
in screen shots earlier in this guide, a JT9 signal appears in the
*Cumulative* spectrum as a nearly rectangular shape about 16 Hz wide.
Although there is no clearly visible “sync tone” like the one at the
low-frequency edge of a JT65 signal, by convention the nominal
frequency of a JT9 signal is taken to be that of the lowest tone, at
the left edge of the spectrum.
At the end of a reception sequence, about 50 seconds into the UTC
minute, received data samples are forwarded to the decoder. For
operator convenience the decoder goes through its full procedure
twice: first at the selected Rx frequency, and then in the full
displayed frequency range (or in JT9+JT65 mode, the displayed range
above the blue *JT65 nnnn JT9* marker). Decoding of clean JT9 signals
in a white-noise background starts to fail below signal-to-noise
ratio 25 dB and reaches 50% copy at -26 dB.
Each decoding pass can be described as a sequence of discrete blocks.
The blocks are labeled here with the names of functional procedures in
the code.
sync9: Use sync symbols to find candidate JT9 signals
in the specified frequency range
Then, at the frequency of each plausible candidate:
downsam9: Mix, filter and downsample to 16 complex
samples/symbol
peakdt9: Using sync symbols, time-align to start of JT9 symbol
sequence
afc9: Measure frequency offset and any possible drift
twkfreq: Remove frequency offset and drift
symspec2: Compute 8-bin spectra for 69 information-carrying
symbols, using the time- and frequency-aligned data;
transform to yield 206 single-bit soft symbols
interleave9: Remove single-bit symbol interleaving imposed at the
transmitter
decode9: Retrieve a 72-bit user message using the sequential
Fano algorithm for convolutional codes
unpackmsg: Unpack a human-readable message from the 72-bit
compressed format
With marginal or unrecognizable signals the sequential Fano algorithm
can take exponentially long times. If the +sync9+ step in the above
sequence finds many seemingly worthy candidate signals, and if many of
them turn out to be undecodable, the decoding loop can take a very
long time. For this reason the step labeled +decode9+ is programmed
to “time out” and report failure if it is taking too long. The
choices *Fast | Normal | Deepest* on the Decode menu provide a
three-step adjustment of this timeout limit.

View File

@ -20,58 +20,93 @@ recommended basic QSO goes something like this:
*Standard messages* consist of two callsigns (or CQ, QRZ, or DE and
one callsign) followed by the transmitting stations grid locator, a
signal report, acknowledgement R plus a signal report, or the final
acknowledgements RRR or 73. Messages are compressed and encoded
in a highly efficient and reliable way.
signal report, R plus a signal report, or the final acknowledgements
RRR or 73. These messages are compressed and encoded in a highly
efficient and reliable way, and may contain up to 18 characters in
uncompressed form.
*Signal reports* are specified as signal-to-noise ratio (S/N) in dB,
using a standard reference noise bandwidth 2500 Hz. JT65 reports must
lie in the range 30 to 1 dB, while JT9 supports the extended range
50 to +49 dB. Thus, in example message #0003, K1ABC is telling G0XYZ
that his signal is 19 dB below the noise power in bandwidth 2500 Hz.
In message #0004, G0XYZ acknowledges receipt of that report and
responds with a 22 dB signal report.
using a standard reference noise bandwidth of 2500 Hz. Thus, in
example message #0003, K1ABC is telling G0XYZ that his signal is 19 dB
below the noise power in bandwidth 2500 Hz. In message #0004, G0XYZ
acknowledges receipt of that report and responds with a 22 dB signal
report. JT65 reports are constrained to lie in the range 30 to 1
dB, while JT9 supports the extended range 50 to +49 dB.
TIP: Signals become visible on the waterfall around S/N = 26 dB and
audible around 15 dB. Thresholds for signal decodability are
approximately 24 dB for JT65, 26 dB for JT9.
audible (to those with very good hearing) around 15 dB. Thresholds
for signal decodability are approximately 24 dB for JT65, 26 dB for
JT9.
*Free Text Messages*: Users often add some friendly chit-chat as a
final transmission, in place of the formatted 73 message. Free-format
messages such as TNX JOE 73 GL or 5W VERT 73 GL are supported, up to a
maximum of 13 characters (including spaces). It should be obvious
that JT9 and JT65 are not suitable for extensive conversations or
rag-chewing.
*Free Text Messages*: Users often add some friendly chit-chat at the
end of a QSO. Free-format messages such as ``TNX JOE 73'' or ``5W
VERT 73 GL'' are supported, up to a maximum of 13 characters
(including spaces). It should be obvious that the JT9 and JT65
protocols are not suitable for extensive conversations or rag-chewing.
=== Compound Callsigns
//This section needs work!! Must describe and give examples for both
//JT65v1 and JT65v2 formats.
Compound call-signs such as PJ4/K1ABC or G0XYZ/P are handled in a slightly
different way. The following formats are all valid:
.Valid Messages with Compound Callsigns
Compound callsigns such as xx/K1ABC or K1ABC/x are handled in one of
two possible ways.
[width="40%",cols="2,2,2",options="header"]
|=====================
|Action|Callsign|Grid
|CQ|pfx/callsign|grid
|QRZ|pfx/callsign|grid
|DE|pfx/callsign|grid
|CQ|callsign/sfx|grid
|QRZ|callsign/sfx|grid
|DE|callsign/sfx|grid
|=====================
.Type 1 Compound-Callsign Messages
- ``pfx'' is a 1-4 character prefix
- ``callsign'' is a standard callsign
- ``sfx'' is a 1-3 character suffix
- ``grid'' is a 4-character Maidenhead locator
A list of about 350 of the most common prefixes and suffixes can be
displayed from the *Help* menu. A single compound callsign involving
one item from this list can be used in a message in place of the third
``word'' (normally a locator, signal report, RRR, or 73). Thus, the
following examples are all properly formatted *Type 1* messages:
- A signal report of the form “±nn” or “R±nn”, or the acknowledgment
or sign-off messages “RRR” or “73”. _WSJT-X_ generates messages in
these forms automatically, as required.
CQ ZA/K1ABC
CQ K1ABC/4
ZA/K1ABC G0XYZ
G0XYZ K1ABC/4
- A QSO between two stations using compound call-signs might look like this:
However, the following messages are _not_ valid because a third
word is not permitted in a *Type 1* compound callsign message:
ZA/K1ABC G0XYZ -22 #These messages will be sent
G0XYZ K1ABC/4 73 #without the third word
A QSO between two stations using *Type 1* compound-callsign messages
might look like this:
CQ ZA/K1ABC
ZA/K1ABC G0XYZ
G0XYZ K1ABC 19
K1ABC G0XYZ R22
G0XYZ K1ABC RRR
K1ABC G0XYZ 73
Notice that both operators have sent and received the full compound
callsign in the first two transmissions; after that, they omit the
add-on prefix or suffix.
.Type 2 Compound-Callsign Messages
Prefixes and suffixes _not_ found in the short displayable list can be
handled in a *Type 2* message. The compound callsign must be the
second word in a two- or three-word message, and the first word must
be CQ, DE, or QRZ. Prefixes can be up 1-4 characters, suffixes 1-3
characters. A third word conveying a locator, report, RRR, or 73 is
optional. The following are valid *Type 2* messages with compound
callsigns:
CQ W4/G0XYZ FM07 #OK because W4 is not in short-list
DE W4/G0XYZ -22
QRZ K1ABC/VE6 DO33 #OK because VE6 is not in short-list
In each case, the message is treated as *Type 2* because the add-on
prefix or suffix is not one of those in the displayable liet. Note
that a second callsign is never permissible in these messages, but a
locator, report, RRR, or 73 is allowed.
TIP: Remember that your transmitted message is always displayed in the
first panel of the *Status Bar*, highlighted in yellow, exactly as another
station will receive it.
A QSO between two stations using *Type 2* compound-callsign messages
might look like this:
CQ KP4/K1ABC FK68
DE G0XYZ/P IO91
@ -80,19 +115,6 @@ these forms automatically, as required.
G0XYZ K1ABC RRR
DE G0XYZ/P 73
////
.Compound Exch Example
[width="40%",cols="2,2,2",options="header"]
|=====================
|Action|Callsign|Grid
|CQ|KP4/K1ABC|FK68
|DE|G0XYZ/P|IO91
|G0XYZ|K1ABC|19
|K1ABC|G0XYZ|R22
|G0XYZ|K1ABC|RRR
|DE|G0XYZ/P|73
|=====================
////
=== Pre-QSO Checklist
Before attempting your first QSO with JT9 or JT65, be sure to go

View File

@ -19,9 +19,9 @@ specific rig models, e.g. Icom 756 Pro-III, Kenwood TS-2000, Yaesu
FT-1000MP, Flex-5000, etc. This is a work-in-progress, and some rigs
may never be covered.
NOTE: If you have configuration data for a rig that is not listed, or comments
about a particular rig configuration, please use the {rig_template} and send it
to {devmail}.
TIP: If you have configuration data for a rig that is not listed, or
comments about a particular rig configuration, please use the
{rig_template} and send it to {devmail}.
.Select Manufacturer
[align="center",valign="middle",halign="center"]

View File

@ -4,14 +4,11 @@ You might be curious about additional files that appear in the WSJTX
installation directory after using the program. These include the
following:
[horizontal]
.Files created when running WSJT-X
[width="60%",cols="2,60",options="header",valign="middle"]
|========
|File Name|Description
|ALL.TXT|Log of all received and transmitted messages
|decoded.txt|Decoded text from the most recent Rx interval
|timer.out|Diagnostic information for decoder optimization
|wsjtx.ini|Saved configuration parameters
|wsjtx_log.adi|ADIF log
|wsjtx_status.txt|Information sent to companion program JT-Alert
|========
+ALL.TXT+:: Log of all received and transmitted messages
+decoded.txt+:: Decoded text from the most recent Rx interval
+timer.out+:: Diagnostic information for decoder optimization
+wsjtx.ini+:: Saved configuration parameters
+wsjtx_log.adi+:: ADIF log
+wsjtx_status.txt+:: Information sent to companion program JT-Alert

View File

@ -4,7 +4,7 @@
- 1.5 GHz or faster CPU and 100 MB of available memory
- Monitor with at least 1024 x 780 resolution (more is better)
- Computer-to-radio interface using a serial port for T/R switching, or CAT
control, or VOX.
control, or VOX
- Audio input and output devices supported by your operating system
- Audio or equivalent USB connections between transceiver and computer
- A means for synchronizing your computer clock to UTC within ±1 s.
- A means for synchronizing your computer clock to UTC within ±1 s

View File

@ -18,12 +18,13 @@ Taking full advantage of the wide-band, dual-mode capability of
_WSJT-X_ requires a receiver bandwidth of at least 4 kHz. Many SSB
transceivers have a fixed-width Tx filter that will not pass audio
frequencies higher than about 2700 Hz. _WSJT-X_ takes care of this by
using Split mode, receiving with *VFO A* and transmitting with *VFO
B*. Under CAT control _WSJT-X_ offsets the Tx dial frequency (*VFO
B*) in 500 Hz steps, adjusting the generated audio frequency so that
it always falls in the range 1500 2000 Hz. With *CAT* and *Split Tx*
enabled on the configuration screen and your transceiver set to *Tx
Split* mode, this frequency control will be handled automatically.
using *Split Tx* mode, receiving with *VFO A* and transmitting with
*VFO B*. Under CAT control _WSJT-X_ offsets the Tx dial frequency
(*VFO B*) in 500 Hz steps, adjusting the generated audio frequency so
that it always falls in the range 1500 2000 Hz. With *CAT* and
*Split Tx* enabled on the configuration screen and your transceiver
set to *Split* mode, this frequency control will be handled
automatically.
If your transceiver has only a standard SSB filter you wont be able
to use more than about 2.7 kHz bandwidth. You can still have all of
@ -37,3 +38,7 @@ concentrate on one mode at a time, setting your dial frequency to
the nominal JT9 dial frequency 2 kHz higher than the JT65 dial
frequency, and the checkbox labeled *+2 kHz*, just below the *Band*
selector, makes the appropriate settings easy.
IMPORTANT: When finished with this Tutorial, dont forget to re-enter
your own call-sign as *My Call*.

View File

@ -43,27 +43,27 @@ spectral display. You should be able to confirm the following
behavior:
- Double-click on either of the decoded lines highlighted in
green. This action should produce the following:
green. This action produces the following results:
** Callsign and locator of a station calling CQ are copied to the *DX
Call* and *DX Grid* entry fields.
** Messages for a minimal QSO are generated.
** Messages are generated for a minimal QSO.
** The *Tx even* box is checked or cleared appropriately, so that you
will transmit in the proper (odd or even) minutes.
** The Rx and Tx frequency markers are moved to the CQ stations
frequency.
** The Rx and Tx frequency markers are moved to the frequency of the
CQing station.
** The *Gen Msg* (“generated message”) radio button at bottom right
** The *Gen Msg* (``generated message'') radio button at bottom right
of the main window is selected.
** If you have checked *Double-click on call sets Tx Enable* on the
*Setup* menu, *Enable Tx* is activated and a transmission starts
automatically at the appropriate time.
- Double-click on the decoded line with the message “K1JT N5KDV EM41”,
- Double-click on the decoded message ``K1JT N5KDV EM41'',
highlighted in [red]*RED*. Results will be similar to those in the
previous step, except the Tx frequency ([red]*RED* marker) is not
moved. Such messages are usually in response to your own CQ, or from
@ -74,11 +74,12 @@ was.
you can cause both Tx and Rx frequencies to be moved. This behavior
can also be forced by checking Lock Tx=Rx.
- Double-click on the message from KF4RWA in either window. He is
sending “73” to K1JT, signifying that the QSO is over. Most likely you
want to send 73 to him, so the message “KF4RWA K1JT 73” is automatically
generated and selected for your next transmission. (Alternatively, you might
choose to send a free text message or to call CQ again.)
- Double-click on the message from KF4RWA in either window. He is
sending ``73'' to K1JT, signifying that the QSO is over. Most likely
you want to send 73 to him, so the message ``KF4RWA K1JT 73'' is
automatically generated and selected for your next transmission.
(Alternatively, you might choose to send a free text message or to
call CQ again.)
- Click on the waterfall to set Rx frequency ([green]*GREEN* marker).

View File

@ -14,7 +14,7 @@ frequencies to 1718 Hz.
.Open a Wave File:
- Select *File | Open* and navigate to +...\save\samples\130610_2343.wav+.
The waterfall should look like the following figure:
The waterfall should look like this:
//.130610_2343.wav Decode
[[X14]]
@ -22,19 +22,23 @@ image::images/130610_2343-wav-80.png[align="left",alt="Wide Graph Decode 130610_
This sample file contains 17 decodable signals — nine in JT65 mode
(flagged with the character # in the decoded text windows), and eight
in JT9 mode (flagged with @). Since the Tx mode was set to *Tx JT65*,
in JT9 mode (flagged with @).
... Figure here showing text windows ...
Since the Tx mode was set to *Tx JT65*,
signals in that mode were decoded first. If you had selected *Tx JT9*,
JT9 signals would have been decoded first.
TIP: Notice the [blue]*BLUE* marker on the waterfall scale, by
default set at 2500 Hz. Its position is set by the spinner control
*JT65 nnnn JT9*, where nnnn is a frequency in Hz. In *JT9+JT65* mode the
program will decode JT65 signals below this frequency and JT9 signals
above it.
TIP: Notice the [blue]*BLUE* marker on the waterfall scale, by default
set at 2500 Hz. Its position is set by the spinner control *JT65 nnnn
JT9*, where nnnn is a frequency in Hz. In *JT9+JT65* mode the program
will automatically decode JT65 signals below this frequency and JT9
signals above it.
- Confirm that mouse-click behavior is similar to that described
<<X13,above>>. The program automatically determines the mode of each
JT9 or JT65 signal.
<<X13,above>>, in Example 1. The program automatically determines the
mode of each JT9 or JT65 signal.
- Double-click on the waterfall near 815 Hz: a JT65 message
originating from W7VP will be decoded and appear in the *Rx Frequency*
@ -61,7 +65,7 @@ frequency markers on the waterfall scale resize themselves
accordingly.
- Scroll back in the *Band Activity* window and double-click on the
message CQ DL7ACA JO40. The program will set Tx mode to JT65 and Tx
message CQ DL7ACA JO40. The program will set *Tx mode* to JT65 and Tx
and Rx frequencies to that of DL7ACA, 975 Hz. If you had checked
*Double-click on call sets Tx Enable* on the *Setup* menu, the program
would configure itself to start a QSO with DL7ACA.
@ -70,8 +74,6 @@ would configure itself to start a QSO with DL7ACA.
will set Tx mode to JT9 and the Rx and Tx frequencies to 3567 Hz. The
program is now configured properly for a JT9 QSO with TA4A.
IMPORTANT: Dont forget to re-enter your own call-sign as *My Call*.
.Reopen the First Sample File:
- Select *File | Open* and navigate to +...\save\samples\130418_1742.wav+.

View File

@ -1,5 +1,5 @@
// Status=review
- Click the *Stop* button on the main window to halt any data acquisition.
- Select JT9 from the *Mode* menu and *Deepest* from the *Decode* menu.
- Select *JT9* from the *Mode* menu and *Deepest* from the *Decode* menu.
- Set the audio Tx and Rx frequencies to 1224 Hz.
//Maybe show small screen shots here?

View File

@ -26,7 +26,7 @@
:osx-108: http://physics.princeton.edu/pulsar/K1JT/wsjtx_3nov13.tar.gz[ OS X 10.6, 10.7, and 10.8 ]
:osx-109: http://physics.princeton.edu/pulsar/K1JT/wsjtx_10.9_29nov13.tar.gz[OS X 10.9]
:pskreporter: http://pskreporter.info/pskmap.html[PSK Reporter]
:jt65protocol: http://physics.princeton.edu/pulsar/K1JT/JT65.pdf[QEX article]
:jt65protocol: http://physics.princeton.edu/pulsar/K1JT/JT65.pdf[QEX]
// These [[X?]] numbers are HTML anchors, and can be used to
// navigate though the document easily: <<[X1],See Introduction]>> will
@ -46,9 +46,8 @@ include::system-requirments.adoc[]
[[X3]]
== Installation
- Download _WSJT-X_ from the {homepage}.
- Click on _WSJT-X_ at the left margin and then on the appropriate
link(s) for your operating system.
- Download _WSJT-X_ from the {homepage}. Click on _WSJT-X_ at the left
margin and then on the appropriate link(s) for your operating system.
=== Windows
include::install-windows.adoc[]
@ -122,7 +121,6 @@ include::make-qso.adoc[]
[[X7]]
== Controls & Functions
include::controls-functions.adoc[]
[[X71]]
=== Wide Graph Controls
@ -161,32 +159,40 @@ include::controls-functions-kb-shortcuts.adoc[]
include::controls-functions-special-mouse-cmds.adoc[]
[[X8]]
== JT65 Protocol
include::jt65-protocol.adoc[]
[[X9]]
== JT9 Protocol
include::jt9-protocol.adoc[]
[[XA]]
== JT65 & JT9 Differences
include::jt65-jt9-differences.adoc[]
[[X9]]
== The JT9 Protocol
include::jt9-protocol.adoc[]
[[XB]]
== Transmitting and Receiving in _WSJT-X_
include::tx-rx.adoc[]
[[XA10]]
[[XAPPA]]
== Appendix A
// Note to Dev-Team, this list of files needs to be updated.
[[XA11]]
[[XAPPA1]]
=== Installed Files
include::installed-files.adoc[]
[[XA12]]
[[XAPPA2]]
=== Runtime Files
include::runtime-files.adoc[]
[[XB10]]
[[XAPPB]]
== Appendix B
[[XB11]]
[[XAPPB1]]
=== Rig Configuration
include::rig-config-main.adoc[]
[[XACK10]]
[[XACK]]
== Acknowledgments
include::acknowledgements.adoc[]

View File

@ -51,7 +51,7 @@ OBJS1 = pctile.o graycode.o sort.o ssort.o \
extract.o fchisq65.o demod64a.o chkhist.o interleave63.o ccf2.o \
move.o indexx.o graycode65.o twkfreq65.o smo121.o \
wrapkarn.o init_rs.o encode_rs.o decode_rs.o gen65.o fil4.o \
flat3.o polfit.o determ.o badmsg.o
flat3.o polfit.o determ.o baddata.o
libjt9.a: $(OBJS1)
ar cr libjt9.a $(OBJS1)

View File

@ -42,7 +42,7 @@ OBJS1 = pctile.o graycode.o sort.o ssort.o \
extract.o fchisq65.o demod64a.o chkhist.o interleave63.o ccf2.o \
move.o indexx.o graycode65.o twkfreq65.o smo121.o \
wrapkarn.o init_rs.o encode_rs.o decode_rs.o gen65.o fil4.o \
flat3.o polfit.o determ.o badmsg.o
flat3.o polfit.o determ.o baddata.o
libjt9.a: $(OBJS1)
ar cr libjt9.a $(OBJS1)

27
lib/baddata.f90 Normal file
View File

@ -0,0 +1,27 @@
logical function baddata(id2,nz)
integer*2 id2(nz)
nadd=1200
j=0
smin=1.e30
smax=-smin
iz=49*12000/nadd
do i=1,iz
sq=0.
do n=1,nadd
j=j+1
x=id2(j)
sq=sq + x*x
enddo
rms=sqrt(sq/nadd)
smin=min(smin,rms)
smax=max(smax,rms)
enddo
sratio=smax/(smin+1.e-30)
baddata=.false.
if(sratio.gt.1.e30) baddata=.true.
return
end function baddata

View File

@ -1,18 +0,0 @@
logical function badmsg(msg)
character*22 msg
character*42 c
data c/'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ +-./?'/
do i=1,22
do j=1,42
if(msg(i:i).eq.c(j:j)) go to 10
enddo
badmsg=.true.
return
10 continue
enddo
badmsg=.false.
return
end function badmsg

View File

@ -10,7 +10,7 @@ subroutine decoder(ss,id2)
real*4 red2(NSMAX)
logical ccfok(NSMAX)
logical done(NSMAX)
logical done65
logical done65,baddata
integer*2 id2(NTMAX*12000)
real*4 dd(NTMAX*12000)
integer*1 i1SoftSymbols(207)
@ -29,6 +29,12 @@ subroutine decoder(ss,id2)
open(22,file='kvasd.dat',access='direct',recl=1024,status='unknown')
npts65=52*12000
if(baddata(id2,npts65)) then
nsynced=0
ndecoded=0
go to 800
endif
ntol65=20
done65=.false.
if(nmode.ge.65 .and. ntxmode.eq.65) then

View File

@ -4,7 +4,7 @@ subroutine extract(s3,nadd,ncount,nhist,decoded,ltext,nbmkv)
character decoded*22
integer era(51),dat4(12),indx(64)
integer mrsym(63),mr2sym(63),mrprob(63),mr2prob(63)
logical nokv,ltext,badmsg
logical nokv,ltext
data nokv/.false./,nsec1/0/
save
@ -93,7 +93,7 @@ subroutine extract(s3,nadd,ncount,nhist,decoded,ltext,nbmkv)
ltext=.false.
if(ncount.ge.0) then
call unpackmsg(dat4,decoded) !Unpack the user message
if(badmsg(decoded)) then
if(index(decoded,'...... ').gt.0) then
ncount=-1
go to 900
endif

View File

@ -5,6 +5,7 @@ subroutine unpackcall(ncall,word,iv2,psfx)
data c/'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ '/
word='......'
n=ncall
iv2=0
if(n.ge.262177560) go to 20

View File

@ -1,4 +1,4 @@
//------------------------------------------------------------- MainWindow
//------------------------------------------------------------ MainWindow
#include "mainwindow.h"
#include "ui_mainwindow.h"
@ -31,6 +31,7 @@ wchar_t buffer[256];
Rig* rig = NULL;
QTextEdit* pShortcuts;
QTextEdit* pPrefixes;
QTcpSocket* commanderSocket = new QTcpSocket(0);
QString rev="$Rev$";
@ -3053,3 +3054,29 @@ void MainWindow::on_outAttenuation_valueChanged (int a)
ui->outAttenuation->setToolTip (tr ("Transmit digital gain ") + (a ? QString::number (-dBAttn, 'f', 1) : "0") + "dB");
Q_EMIT outAttenuationChanged (dBAttn);
}
void MainWindow::on_actionShort_list_of_add_on_prefixes_and_suffixes_triggered()
{
pPrefixes = new QTextEdit(0);
pPrefixes->setReadOnly(true);
pPrefixes->setFontPointSize(10);
pPrefixes->setWindowTitle("Prefixes");
pPrefixes->setGeometry(QRect(45,50,565,450));
Qt::WindowFlags flags = Qt::WindowCloseButtonHint |
Qt::WindowMinimizeButtonHint;
pPrefixes->setWindowFlags(flags);
QString prefixes = m_appDir + "/prefixes.txt";
QFile f(prefixes);
if(!f.open(QIODevice::ReadOnly | QIODevice::Text)) {
msgBox("Cannot open " + prefixes);
return;
}
QTextStream s(&f);
QString t;
for(int i=0; i<100; i++) {
t=s.readLine();
pPrefixes->append(t);
if(s.atEnd()) break;
}
pPrefixes->show();
}

View File

@ -180,7 +180,9 @@ private slots:
void on_cbPlus2kHz_toggled(bool checked);
void on_outAttenuation_valueChanged (int);
private:
void on_actionShort_list_of_add_on_prefixes_and_suffixes_triggered();
private:
Q_SIGNAL void startAudioOutputStream (QAudioDeviceInfo, unsigned channels, unsigned msBuffered);
Q_SIGNAL void stopAudioOutputStream ();

View File

@ -2279,7 +2279,7 @@ p, li { white-space: pre-wrap; }
<x>0</x>
<y>0</y>
<width>780</width>
<height>20</height>
<height>21</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
@ -2357,6 +2357,7 @@ p, li { white-space: pre-wrap; }
<addaction name="actionKeyboard_shortcuts"/>
<addaction name="actionSpecial_mouse_commands"/>
<addaction name="actionAbout"/>
<addaction name="actionShort_list_of_add_on_prefixes_and_suffixes"/>
</widget>
<widget class="QMenu" name="menuMode">
<property name="title">
@ -2674,6 +2675,11 @@ p, li { white-space: pre-wrap; }
<string>Show DXCC entity and worked B4 status</string>
</property>
</action>
<action name="actionShort_list_of_add_on_prefixes_and_suffixes">
<property name="text">
<string>Short list of add-on prefixes and suffixes</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<customwidgets>

View File

@ -1,6 +1,6 @@
[Setup]
AppName=wsjtx
AppVerName=wsjtx Version 1.2.2 r3644
AppVerName=wsjtx Version 1.2.2 r3659
AppCopyright=Copyright (C) 2001-2014 by Joe Taylor, K1JT
DefaultDirName=c:\wsjtx1.2
DefaultGroupName=wsjtx1.2