Merge branch 'master' into develop
@ -58,7 +58,7 @@ set (PROJECT_MANUAL wsjtx-main)
|
||||
set (PROJECT_MANUAL_DIRECTORY_URL http://www.physics.princeton.edu/pulsar/K1JT/wsjtx-doc/)
|
||||
set (PROJECT_SAMPLES_URL http://downloads.sourceforge.net/project/wsjt/)
|
||||
set (PROJECT_SAMPLES_UPLOAD_DEST frs.sourceforge.net:/home/frs/project/wsjt/)
|
||||
set (PROJECT_SUMMARY_DESCRIPTION "${PROJECT_NAME} - Digital Modes for Weak Signal Communicaitons in Amateur Radio.")
|
||||
set (PROJECT_SUMMARY_DESCRIPTION "${PROJECT_NAME} - Digital Modes for Weak Signal Communications in Amateur Radio.")
|
||||
set (PROJECT_DESCRIPTION "${PROJECT_SUMMARY_DESCRIPTION}
|
||||
${PROJECT_NAME} is a computer program designed to facilitate basic amateur
|
||||
radio communication using very weak signals. The first four letters in
|
||||
@ -1306,9 +1306,6 @@ target_link_libraries (jt4code wsjt_fort wsjt_cxx)
|
||||
add_executable (msk144code lib/msk144code.f90 wsjtx.rc)
|
||||
target_link_libraries (msk144code wsjt_fort wsjt_cxx)
|
||||
|
||||
add_executable (jt65 lib/jt65.f90 lib/jt65_test.f90 wsjtx.rc)
|
||||
target_link_libraries (jt65 wsjt_fort wsjt_cxx)
|
||||
|
||||
add_executable (ft8code lib/ft8/ft8code.f90 wsjtx.rc)
|
||||
target_link_libraries (ft8code wsjt_fort wsjt_cxx)
|
||||
|
||||
@ -1627,6 +1624,7 @@ if (NOT is_debug_build)
|
||||
${QT_PLUGINS_DIR}/audio
|
||||
${QT_PLUGINS_DIR}/accessible
|
||||
${QT_PLUGINS_DIR}/imageformats
|
||||
${QT_PLUGINS_DIR}/styles
|
||||
DESTINATION ${WSJT_PLUGIN_DESTINATION}
|
||||
CONFIGURATIONS Release MinSizeRel
|
||||
#COMPONENT runtime
|
||||
|
60
NEWS
@ -13,6 +13,66 @@
|
||||
Copyright 2001 - 2019 by Joe Taylor, K1JT.
|
||||
|
||||
|
||||
Release: WSJT-X 2.2.0-rc2
|
||||
May 25, 2020
|
||||
-------------------------
|
||||
|
||||
WSJT-X 2.2.0-rc2 is a release candidate for WSJT-X 2.2.0. The
|
||||
following bugs present in the -rc1 version have been fixed:
|
||||
|
||||
- Missing blank line between some decode sequences.
|
||||
- Improper functioning of "Start new period decodes at top".
|
||||
- Font selection caused crash on some macOS systems.
|
||||
- Mouse action in band selector box not right in some macOS systems.
|
||||
- Incorrect recall of Tx power setting in WSPR mode.
|
||||
- Many fixes to hamlib library and executables (rigctld, etc.).
|
||||
- Some regional settings did not allow WSJT-X to start.
|
||||
- Main window "looked like old Windows" in macOS.
|
||||
- Crash when "Ref Spec" is selected and no refspec.dat available.
|
||||
- Improper decoding of some FT4 messages with hashed "MyCall".
|
||||
- Crash after warning message about double-clicking in ISCAT mode.
|
||||
|
||||
In addition, we have made the following improvements:
|
||||
|
||||
- Updated some figures and text in User Guide.
|
||||
- Corrected some formatting issues in the pdf version of User Guide.
|
||||
- Added some new sample files.
|
||||
- Improved shape and position of "green goal post" in Wide Graph.
|
||||
- Significantly reduced the rate of false decodes in FT4 and FT8.
|
||||
- Allow FT4 to use NA VHF Contest message formats.
|
||||
- Hold Tx frequency no longer cleared when switching between modes.
|
||||
- Added capability for translations of the user interface into
|
||||
languages other than English. First working example (special
|
||||
thanks to Xavi Perez, EA3W!), is Catalan. Spanish will be next.
|
||||
- Performance improvements to decode highlighting via UDP messages.
|
||||
|
||||
And finally:
|
||||
|
||||
Increasing FT8 usage on the popular bands 40, 30, and 20m means that
|
||||
the default 3 kHz sub-bands are often wall-to-wall with signals.
|
||||
Overcrowding encourages some to turn on their amplifiers, which only
|
||||
makes things worse. We are trying to coordinate the suggested
|
||||
frequencies in WSJT-X with updated band plans being considered by
|
||||
IARU, ARRL, and other amateur radio societies.
|
||||
|
||||
On a trial basis, and in response to numerous suggestions from around
|
||||
the world, we have added a second set of suggested dial frequencies
|
||||
for FT8 on three HF bands and also on 6 meters. The new suggested dial
|
||||
frequencies are 7.071, 10.133, 14.071, and 50.310 MHz. These
|
||||
frequencies will appear in your drop-down band-selector list after you
|
||||
go to the "Settings | Frequencies" tab, right-click on the frequency
|
||||
table, and select "Reset". Alternatively, you can add the new FT8
|
||||
frequencies manually.
|
||||
|
||||
When the conventional FT8 sub-band on 6, 20, 30, or 40 m seems too
|
||||
full, please try moving your dial frequency down 3 kHz! Be aware that
|
||||
as currently implemented, WSJT-X will set your dial to the lowest
|
||||
frequency for the selected mode and band, when you switch bands.
|
||||
|
||||
See the next section for a list of other program improvements since
|
||||
WSJT-X 2.1.2.
|
||||
|
||||
|
||||
Release: WSJT-X 2.2.0-rc1
|
||||
May 10, 2020
|
||||
-------------------------
|
||||
|
@ -447,16 +447,20 @@
|
||||
* The server may send this message at any time. The message
|
||||
* specifies the background and foreground color that will be
|
||||
* used to highlight the specified callsign in the decoded
|
||||
* messages printed in the Band Activity panel. The WSJT-X
|
||||
* messages printed in the Band Activity panel. The WSJT-X
|
||||
* clients maintain a list of such instructions and apply them to
|
||||
* all decoded messages in the band activity window. To clear
|
||||
* highlighting send an invalid QColor value for either or both
|
||||
* of the background and foreground fields.
|
||||
* and cancel highlighting send an invalid QColor value for
|
||||
* either or both of the background and foreground fields. When
|
||||
* using this mode the total number of callsign highlighting
|
||||
* requests should be limited otherwise the performance of WSJT-X
|
||||
* decoding may be impacted. A rough rule of thumb might be too
|
||||
* limit the number of active highlighting requests to no more
|
||||
* than 100.
|
||||
*
|
||||
* The "Highlight last" field allows the sender to request that
|
||||
* the last instance only instead of all instances of the
|
||||
* specified call be highlighted or have it's highlighting
|
||||
* cleared.
|
||||
* all instances of "Callsign" in the last period only, instead
|
||||
* of all instances in all periods, be highlighted.
|
||||
*
|
||||
*
|
||||
* SwitchConfiguration In 14 quint32
|
||||
|
@ -12,6 +12,65 @@
|
||||
|
||||
Copyright 2001 - 2020 by Joe Taylor, K1JT.
|
||||
|
||||
Release: WSJT-X 2.2.0-rc2
|
||||
May 25, 2020
|
||||
-------------------------
|
||||
|
||||
WSJT-X 2.2.0-rc2 is a release candidate for WSJT-X 2.2.0. The
|
||||
following bugs present in the -rc1 version have been fixed:
|
||||
|
||||
- Missing blank line between some decode sequences.
|
||||
- Improper functioning of "Start new period decodes at top".
|
||||
- Font selection caused crash on some macOS systems.
|
||||
- Mouse action in band selector box not right in some macOS systems.
|
||||
- Incorrect recall of Tx power setting in WSPR mode.
|
||||
- Many fixes to hamlib library and executables (rigctld, etc.).
|
||||
- Some regional settings did not allow WSJT-X to start.
|
||||
- Main window "looked like old Windows" in macOS.
|
||||
- Crash when "Ref Spec" is selected and no refspec.dat available.
|
||||
- Improper decoding of some FT4 messages with hashed "MyCall".
|
||||
- Crash after warning message about double-clicking in ISCAT mode.
|
||||
|
||||
In addition, we have made the following improvements:
|
||||
|
||||
- Updated some figures and text in User Guide.
|
||||
- Corrected some formatting issues in the pdf version of User Guide.
|
||||
- Added some new sample files.
|
||||
- Improved shape and position of "green goal post" in Wide Graph.
|
||||
- Significantly reduced the rate of false decodes in FT4 and FT8.
|
||||
- Allow FT4 to use NA VHF Contest message formats.
|
||||
- Hold Tx frequency no longer cleared when switching between modes.
|
||||
- Added capability for translations of the user interface into
|
||||
languages other than English. First working example (special
|
||||
thanks to Xavi Perez, EA3W!), is Catalan. Spanish will be next.
|
||||
- Performance improvements to decode highlighting via UDP messages.
|
||||
|
||||
And finally:
|
||||
|
||||
Increasing FT8 usage on the popular bands 40, 30, and 20m means that
|
||||
the default 3 kHz sub-bands are often wall-to-wall with signals.
|
||||
Overcrowding encourages some to turn on their amplifiers, which only
|
||||
makes things worse. We are trying to coordinate the suggested
|
||||
frequencies in WSJT-X with updated band plans being considered by
|
||||
IARU, ARRL, and other amateur radio societies.
|
||||
|
||||
On a trial basis, and in response to numerous suggestions from around
|
||||
the world, we have added a second set of suggested dial frequencies
|
||||
for FT8 on three HF bands and also on 6 meters. The new suggested dial
|
||||
frequencies are 7.071, 10.133, 14.071, and 50.310 MHz. These
|
||||
frequencies will appear in your drop-down band-selector list after you
|
||||
go to the "Settings | Frequencies" tab, right-click on the frequency
|
||||
table, and select "Reset". Alternatively, you can add the new FT8
|
||||
frequencies manually.
|
||||
|
||||
When the conventional FT8 sub-band on 6, 20, 30, or 40 m seems too
|
||||
full, please try moving your dial frequency down 3 kHz! Be aware that
|
||||
as currently implemented, WSJT-X will set your dial to the lowest
|
||||
frequency for the selected mode and band, when you switch bands.
|
||||
|
||||
See the next section for a list of other program improvements since
|
||||
WSJT-X 2.1.2.
|
||||
|
||||
|
||||
Release: WSJT-X 2.2.0-rc1
|
||||
May 10, 2020
|
||||
|
@ -125,7 +125,7 @@ set (UG_IMGS
|
||||
images/VHF_controls.png
|
||||
images/view-menu.png
|
||||
images/wide-graph-controls.png
|
||||
|
||||
images/Windows_Dark.png
|
||||
)
|
||||
|
||||
find_program (ASCIIDOCTOR_EXECUTABLE NAMES asciidoctor)
|
||||
|
@ -29,7 +29,7 @@ the following copyright notice prominently:
|
||||
*The algorithms, source code, look-and-feel of _{prog}_ and related
|
||||
programs, and protocol specifications for the modes FSK441, FT4, FT8,
|
||||
JT4, JT6M, JT9, JT65, JTMS, QRA64, ISCAT, and MSK144 are Copyright (C)
|
||||
2001-2019 by one or more of the following authors: Joseph Taylor,
|
||||
2001-2020 by one or more of the following authors: Joseph Taylor,
|
||||
K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo,
|
||||
IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR;
|
||||
Philip Karn, KA9Q; and other members of the WSJT Development Group.*
|
||||
|
@ -68,6 +68,7 @@ d). Edit lines as needed. Keeping them in alphabetic order help see dupes.
|
||||
:fmt_k5cm: http://www.k5cm.com/[FMT Event Info]
|
||||
:fmt_wspr: http://www.physics.princeton.edu/pulsar/K1JT/FMT_User.pdf[Accurate Frequency Measurements with your WSPR Setup]
|
||||
:ft4_protocol: http://physics.princeton.edu/pulsar/k1jt/FT4_Protocol.pdf[The FT4 Protocol for Digital Contesting]
|
||||
:ft4_ft8_protocols: http://physics.princeton.edu/pulsar/k1jt/FT4_FT8_QEX.pdf[The FT4 and FT8 Communication Protocols]
|
||||
:ft8_tips: http://www.g4ifb.com/FT8_Hinson_tips_for_HF_DXers.pdf[FT8 Operating Guide]
|
||||
:ft8_DXped: http://physics.princeton.edu/pulsar/k1jt/FT8_DXpedition_Mode.pdf[FT8 DXpedition Mode]
|
||||
:gnu_gpl: http://www.gnu.org/licenses/gpl-3.0.txt[GNU General Public License]
|
||||
@ -75,7 +76,7 @@ d). Edit lines as needed. Keeping them in alphabetic order help see dupes.
|
||||
:hrd: http://www.hrdsoftwarellc.com/[Ham Radio Deluxe]
|
||||
:jt4eme: http://physics.princeton.edu/pulsar/K1JT/WSJT-X_1.6.0_for_JT4_v7.pdf[Using WSJT-X for JT4 EME Operation]
|
||||
:jt65protocol: http://physics.princeton.edu/pulsar/K1JT/JT65.pdf[QEX]
|
||||
:jtalert: http://hamapps.com/[JT-Alert]
|
||||
:jtalert: http://hamapps.com/[JTAlert]
|
||||
:launchpadki7mt: https://launchpad.net/~ki7mt[KI7MT PPA's]
|
||||
:log4om: http://www.log4om.com[Log4OM]
|
||||
:lunarEchoes: http://physics.princeton.edu/pulsar/K1JT/LunarEchoes_QEX.pdf[QEX]
|
||||
|
@ -1,19 +1,21 @@
|
||||
// Status=review
|
||||
|
||||
The _WSJT_ project was started in 2001. Since 2005 it has been an
|
||||
Open Source project, and it now includes programs _WSJT_, _MAP65_,
|
||||
_WSPR_, _WSJT-X_, and _WSPR-X_. All code is licensed under the
|
||||
GNU Public License (GPL). Many users of these programs, too numerous
|
||||
to mention here individually, have contributed suggestions and advice
|
||||
that have greatly aided the development of _WSJT_ and its sister
|
||||
programs.
|
||||
The _WSJT_ project was started by *K1JT* in 2001. Since 2005 it has
|
||||
been an Open Source project, which now includes the programs _WSJT_,
|
||||
_MAP65_, _WSPR_, _WSJT-X_, and _WSPR-X_. *G4WJS* (since 2013) and
|
||||
*K9AN* (since 2015) have made major contributions to _WSJT-X_.
|
||||
Together with K1JT they now form the core development team.
|
||||
|
||||
For _WSJT-X_ in particular, we acknowledge contributions from *AC6SL,
|
||||
AE4JY, DJ0OT, G3WDG, G4KLA, G4WJS, IV3NWV, IW3RAB, K3WYC, K9AN,
|
||||
KA6MAL, KA9Q, KB1ZMX, KD6EKQ, KI7MT, KK1D, ND0B, PY2SDR, VE1SKY, VK3ACF,
|
||||
VK4BDJ, VK7MO, W4TI, W4TV, and W9MDB*. Each of these amateurs has helped to
|
||||
bring the program’s design, code, testing, and/or documentation to
|
||||
its present state.
|
||||
All code in the _WSJT_ project is licensed under the GNU Public
|
||||
License (GPL). Many users of these programs, too numerous to mention
|
||||
here individually, have contributed suggestions and advice that have
|
||||
greatly aided the development of _WSJT_ and its sister programs. For
|
||||
_WSJT-X_ in particular, we acknowledge contributions from *AC6SL,
|
||||
AE4JY, DJ0OT, G3WDG, G4KLA, IV3NWV, IW3RAB, K3WYC, KA6MAL, KA9Q,
|
||||
KB1ZMX, KD6EKQ, KI7MT, KK1D, ND0B, PY2SDR, VE1SKY, VK3ACF, VK4BDJ,
|
||||
VK7MO, W4TI, W4TV, and W9MDB*. Each of these amateurs has helped to
|
||||
bring the program’s design, code, testing, and/or documentation to its
|
||||
present state.
|
||||
|
||||
Most of the color palettes for the _WSJT-X_ waterfall were copied from
|
||||
the excellent, well documented, open-source program _fldigi_, by *W1HKJ*
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Status=review The following controls appear just under the decoded
|
||||
The following controls appear just under the decoded
|
||||
text windows on the main screen. Some controls appear only in certain
|
||||
operating modes.
|
||||
|
||||
|
@ -20,11 +20,18 @@ image::file-menu.png[align="left",alt="File Menu"]
|
||||
==== Configuration Menu
|
||||
image::config-menu.png[align="left",alt="File Menu"]
|
||||
|
||||
Many users prefer to create and use entries on the *Configurations*
|
||||
menu for switching between modes. Simply *Clone* the *Default* entry,
|
||||
*Rename* it as desired, and then make all desired settings for that
|
||||
configuration. These settings will be restored whenever you select
|
||||
that configuration.
|
||||
Most users of more than one mode prefer to create and use entries on
|
||||
the *Configurations* menu for switching between modes. You can
|
||||
*Clone* the configuration currently in use, *Rename* the clone as
|
||||
desired, and then make all desired settings for the new configuration.
|
||||
The easiest way is to start with a working setup for some mode, say
|
||||
*FT8*. *Clone* it, then select *Configurations | FT8 - Copy | Rename
|
||||
...*, enter a new name, say *FT4*, and click *OK*. Then select the
|
||||
new name from the *Configurations* menu and choose *Switch To*. When
|
||||
the new configuration comes up you can change any desired settings:
|
||||
for example, select *FT4* from the *Mode* menu. Configurations save
|
||||
all settings that are normally restored after a program restart,
|
||||
including which of the defined configurations is currently active.
|
||||
|
||||
As well as switching between configurations while running _WSJT-X_ you
|
||||
can also start the application from the command line in any desired
|
||||
|
@ -98,5 +98,5 @@ color and line width for the plots.
|
||||
Most windows can be resized as desired. If you are short of screen
|
||||
space you can make the Main Window and Wide Graph smaller by hiding
|
||||
some controls and labels. To enable this feature uncheck the box
|
||||
labales *Controls* at top left of the *Wide Graph* window, or the box
|
||||
labeled *Controls* at top left of the *Wide Graph* window, or the box
|
||||
*Menus* to the right of the *Tune* button on the Main Window.
|
||||
|
@ -26,7 +26,7 @@ hypothetically known information.
|
||||
|
||||
[[FT8_AP_INFO_TABLE]]
|
||||
.FT4 and FT8 AP information types
|
||||
[width="35%",cols="h10,<m20",frame=topbot,options="header"]
|
||||
[width="50%",cols="h10,<m20",frame=topbot,options="header"]
|
||||
|===============================================
|
||||
|aP | Message components
|
||||
|a1 | CQ     ?     ?
|
||||
@ -49,7 +49,7 @@ be attempted in each state.
|
||||
|
||||
[[FT8_AP_DECODING_TYPES_TABLE]]
|
||||
.FT4 and FT8 AP decoding types for each QSO state
|
||||
[width="35%",cols="h10,<m20",frame=topbot,options="header"]
|
||||
[width="50%",cols="h10,<m20",frame=topbot,options="header"]
|
||||
|===========================================
|
||||
|State |AP type
|
||||
|CALLING STN | 2, 3
|
||||
@ -67,7 +67,7 @@ averaged to obtain the decode.
|
||||
|
||||
[[JT65_AP_INFO_TABLE]]
|
||||
.JT65 AP information types
|
||||
[width="35%",cols="h10,<m20",frame=topbot,options="header"]
|
||||
[width="50%",cols="h10,<m20",frame=topbot,options="header"]
|
||||
|===============================================
|
||||
|aP | Message components
|
||||
|a1 | CQ     ?     ?
|
||||
@ -81,7 +81,7 @@ averaged to obtain the decode.
|
||||
|
||||
[[JT65_AP_DECODING_TYPES_TABLE]]
|
||||
.JT65 AP decoding types for each QSO state
|
||||
[width="35%",cols="h10,<m20",frame=topbot,options="header"]
|
||||
[width="50%",cols="h10,<m20",frame=topbot,options="header"]
|
||||
|===========================================
|
||||
|State |AP type
|
||||
|CALLING STN | 2, 3, 6, 7
|
||||
@ -140,7 +140,7 @@ Table 6 below shows the meaning of the return codes R in QRA64 mode.
|
||||
|
||||
[[QRA64_AP_INFO_TABLE]]
|
||||
.QRA64 AP return codes
|
||||
[width="35%",cols="h10,<m20",frame=topbot,options="header"]
|
||||
[width="50%",cols="h10,<m20",frame=topbot,options="header"]
|
||||
|===============================================
|
||||
|rc | Message components
|
||||
|0 | ?     ?     ?
|
||||
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 22 KiB |
BIN
doc/user_guide/en/images/Windows_Dark.png
Normal file
After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 22 KiB |
@ -3,7 +3,7 @@
|
||||
Debian, Ubuntu, and other Debian-based systems including Raspbian:
|
||||
|
||||
NOTE: The project team release binary installer packages for Linux
|
||||
when a new _WSJT-X_ release is announced, note that these are built to
|
||||
when a new _WSJT-X_ release is announced. These are built to
|
||||
target one contemporary version of a Linux distribution. Although
|
||||
these may work on newer Linux versions or even different
|
||||
distributions, it is unlikely that they will work on older
|
||||
|
@ -1,6 +1,6 @@
|
||||
// These instructions are up-to-date for WSJT-X v1.9
|
||||
// These instructions are up-to-date for WSJT-X v2.2
|
||||
|
||||
*OS X 10.10* and later: Download the file {osx} to your desktop,
|
||||
*OS X 10.13* and later: Download the file {osx} to your desktop,
|
||||
double-click on it and consult its `ReadMe` file for important
|
||||
installation notes.
|
||||
|
||||
|
@ -30,20 +30,22 @@ TIP: Your computer may be configured so that this directory is
|
||||
|
||||
[[OPENSSL]]
|
||||
|
||||
* image:LoTW_TLS_error.png[_WSJT-X_ LoTW download TLS error,
|
||||
role="right"] _WSJT-X_ requires the _OpenSSL_ libraries to be
|
||||
installed. Suitable libraries may already be installed on your
|
||||
system, if they are not you will see this error shortly after
|
||||
requesting a fetch of the latest LoTW users database. To fix this
|
||||
you need to install the _OpenSSL_ libraries.
|
||||
* _WSJT-X_ requires the _OpenSSL_ libraries to be installed, and
|
||||
suitable libraries may already be installed on your system. If they
|
||||
are not you will see this error shortly after requesting a fetch of
|
||||
the latest LoTW users database. To fix this you need to install the
|
||||
_OpenSSL_ libraries.
|
||||
|
||||
** You can download a suitable _OpenSSL_ package for from
|
||||
{win_openssl_packages}, you need the latest *Windows Light*
|
||||
image::LoTW_TLS_error.png[align="center"]
|
||||
|
||||
|
||||
* You can download a suitable _OpenSSL_ package from
|
||||
{win_openssl_packages}. You need the latest *Windows Light*
|
||||
version. For the 32-bit _WSJT-X_ build use the latest Win32 v1.1.x
|
||||
version of the _OpenSSL_ libraries, for the 64-bit _WSJT-X_ use the
|
||||
latest Win64 v1.1.x version of the _OpenSSL_ libraries (Note it is
|
||||
OK to install both versions on a 64-bit system) which at the time
|
||||
of writing were {win32_openssl} and {win64_openssl} respectively.
|
||||
latest Win64 v1.1.x version of the _OpenSSL_ libraries which at the
|
||||
time of writing were {win32_openssl} and {win64_openssl}. It is OK
|
||||
to install both versions on a 64-bit system.
|
||||
|
||||
** Install the package and accept the default options, including the
|
||||
option to copy the _OpenSSL_ DLLs to the Windows system
|
||||
|
@ -6,7 +6,7 @@ the program name stand for "`**W**eak **S**ignal communication by
|
||||
K1**JT**,`" while the suffix "`-X`" indicates that _WSJT-X_ started as
|
||||
an e**Xt**ended and e**X**perimental branch of the program _WSJT_,
|
||||
first released in 2001. Bill Somerville, G4WJS, and Steve Franke,
|
||||
K9AN, have been major contibutors to program development since 2013
|
||||
K9AN, have been major contributors to program development since 2013
|
||||
and 2015, respectively.
|
||||
|
||||
_WSJT-X_ Version {VERSION_MAJOR}.{VERSION_MINOR} offers ten different
|
||||
@ -16,15 +16,14 @@ 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.
|
||||
QRA64 has a number of advantages over JT65, including better
|
||||
performance on the very weakest signals. We imagine that over time it
|
||||
may replace JT65 for EME use. JT9 was originally designed for the LF,
|
||||
MF, and lower HF bands. Its submode JT9A is 2 dB more sensitive than
|
||||
JT65 while using less than 10% of the bandwidth. JT4 offers a wide
|
||||
variety of tone spacings and has proven highly effective for EME on
|
||||
microwave bands up to 24 GHz. These four "`slow`" modes use
|
||||
one-minute timed sequences of alternating transmission and reception,
|
||||
so a minimal QSO takes four to six minutes — two or three
|
||||
QRA64 has a some advantages over JT65, including better performance
|
||||
for EME on the higher microwave bands. JT9 was originally designed
|
||||
for the LF, MF, and lower HF bands. Its submode JT9A is 2 dB more
|
||||
sensitive than JT65 while using less than 10% of the bandwidth. JT4
|
||||
offers a wide variety of tone spacings and has proven highly effective
|
||||
for EME on microwave bands up to 24 GHz. These four "`slow`" modes
|
||||
use 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. FT4 is
|
||||
|
@ -35,9 +35,7 @@ from another logging program. Turning *Show DXCC entity and worked
|
||||
before status* off and then on again will cause _WSJT-X_ to re-read
|
||||
the log file. Very large log files may cause _WSJT-X_ to slow down
|
||||
when searching for calls. If the ADIF log file has been changed
|
||||
outside of _WSJT-X_ you can force _WSJT-X_ to relaod the file from the
|
||||
outside of _WSJT-X_ you can force _WSJT-X_ to reload the file from the
|
||||
*Settings | Colors* tab using the *Rescan ADIF Log* button, see
|
||||
<<COLORS,Decode Highlighting>>.
|
||||
|
||||
Additional features are provided for *Contest* and *Fox* logging.
|
||||
(more to come, here ...)
|
||||
|
@ -93,7 +93,7 @@ tab. Model QSOs then proceed as follows, for each event type:
|
||||
|
||||
*NA VHF Contest*
|
||||
|
||||
CQ K1ABC FN42
|
||||
CQ TEST K1ABC FN42
|
||||
K1ABC W9XYZ EN37
|
||||
W9XYZ K1ABC R FN42
|
||||
K1ABC W9XYZ RRR
|
||||
@ -134,7 +134,7 @@ to upgrade _WSJT-X_ if you will use *EU VHF Contest* messages.
|
||||
|
||||
*WW Digi Contest*
|
||||
|
||||
CQ K1ABC FN42
|
||||
CQ WW K1ABC FN42
|
||||
K1ABC S52XYZ JN76
|
||||
S52XYZ K1ABC R FN42
|
||||
K1ABC S52XYZ RR73
|
||||
|
@ -104,9 +104,9 @@ shape of your receiver's passband. Disconnect your antenna or tune to
|
||||
a quiet frequency with no signals. With _WSJT-X_ running in one of
|
||||
the slow modes, select *Measure reference spectrum* from the *Tools*
|
||||
menu. Wait for about a minute and then hit the *Stop* button. A file
|
||||
named `refspec.dat` will appear in your log directory.
|
||||
|
||||
[ ... more to come ... ]
|
||||
named `refspec.dat` will appear in your log directory. When you check
|
||||
*Ref Spec* on the *Wide Graph*, the recorded reference spectrum will
|
||||
then be used to flatten your overall effective passband.
|
||||
|
||||
=== Phase Equalization
|
||||
|
||||
|
@ -48,7 +48,7 @@ Tx3 messages -- those conveying signal report, serial number, and
|
||||
6-character locator -- now use hashcodes for both callsigns. This
|
||||
change is *not* backward compatible with earlier versions of _WSJT-X_, so
|
||||
all users of *EU VHF Contest* messages should be sure to upgrade to
|
||||
versiion 2.2.0. See <<CONTEST_MSGS,Contest Messages>> for details.
|
||||
version 2.2.0. See <<CONTEST_MSGS,Contest Messages>> for details.
|
||||
|
||||
*Minor enhancements and bug fixes*
|
||||
|
||||
@ -83,14 +83,25 @@ overlooked.
|
||||
IMPORTANT: *Warnings* about usage that could lead to undesired
|
||||
consequences.
|
||||
|
||||
=== User Interface in Other Languages
|
||||
|
||||
Thanks to Xavi Perez, EA3W, in cooperation with G4WJS, the _WSJT-X_
|
||||
user interface is now available the Catalan language. Spanish will
|
||||
follow soon, and other languages when translations are made. When a
|
||||
translated user interface is available for the computer's default
|
||||
System Language, it will appear automatically on program startup.
|
||||
|
||||
=== How You Can Contribute
|
||||
|
||||
_WSJT-X_ is part of an open-source project released under the
|
||||
{gnu_gpl} (GPLv3). If you have programming or documentation skills or
|
||||
would like to contribute to the project in other ways, please make
|
||||
your interests known to the development team. The project's
|
||||
source-code repository can be found at {devrepo}, and communication
|
||||
among the developers takes place on the email reflector {devmail}.
|
||||
Bug reports and suggestions for new features, improvements to the
|
||||
_WSJT-X_ User Guide, etc., may be sent there as well. You must join
|
||||
the group before posting to the email list.
|
||||
your interests known to the development team. We especially encourage
|
||||
those with translation skills to volunteer their help, either for
|
||||
this _User Guide_ or for the program's user interface.
|
||||
|
||||
The project's source-code repository can be found at {devrepo}, and
|
||||
communication among the developers takes place on the email reflector
|
||||
{devmail}. Bug reports and suggestions for new features, improvements
|
||||
to the _WSJT-X_ User Guide, etc., may be sent there as well. You must
|
||||
join the group before posting to the email list.
|
||||
|
@ -3,7 +3,8 @@
|
||||
A few _WSJT-X_ features behave differently in Windows, Linux, or OS X,
|
||||
or may not be relevant to all operating platforms.
|
||||
|
||||
.File locations
|
||||
=== File locations
|
||||
|
||||
* *Windows*
|
||||
|
||||
- *Settings:* %LOCALAPPDATA%\WSJT-X\WSJT-X.ini
|
||||
|
@ -52,10 +52,10 @@ were the callsigns `E9AA` through `E9ZZ`. Upon reception they are
|
||||
converted back to the form `CQ AA` through `CQ ZZ`, for display to the
|
||||
user.
|
||||
|
||||
The new FT4, FT8, and MSK144 protocols use a different lossless
|
||||
compression algorithm with features to generate and recognize the
|
||||
special messages used for contesting and the like. (More to come,
|
||||
here ...)
|
||||
The FT4, FT8, and MSK144 protocols use different lossless compression
|
||||
algorithms with features that generate and recognize special messages
|
||||
used for contesting and other special purposes. Full details have
|
||||
been published in QEX, see {ft4_ft8_protocols}.
|
||||
|
||||
To be useful on channels with low signal-to-noise ratio, this kind of
|
||||
lossless message compression requires use of a strong forward error
|
||||
|
@ -1,6 +1,6 @@
|
||||
image::settings-advanced.png[align="center",alt="Settings Advanced"]
|
||||
|
||||
_JT65 decoding parameters_
|
||||
_JT65 VHF/UHF/Microwave decoding parameters_
|
||||
|
||||
- *Random erasure patterns* logarithmically scales the number of
|
||||
pseudo-random trials used by the Franke-Taylor JT65 decoder. Larger
|
||||
|
@ -1,9 +1,9 @@
|
||||
// Status=review
|
||||
|
||||
image::settings-audio.png[align="center",alt="_WSJT-X_ Audio Configuration Screen"]
|
||||
|
||||
Select the *Audio* tab to configure your sound system.
|
||||
|
||||
image::settings-audio.png[align="center",alt="_WSJT-X_ Audio Configuration Screen"]
|
||||
|
||||
* _Soundcard_: Select the audio devices to be used for *Input* and
|
||||
*Output*. Usually the *Mono* settings will suffice, but in special
|
||||
cases you can choose *Left*, *Right*, or *Both* stereo channels.
|
||||
@ -19,7 +19,7 @@ to prevent inadvertently transmitting them over the air.
|
||||
|
||||
+
|
||||
|
||||
NOTE: Windows Vista and later may configure audio devices using
|
||||
NOTE: Windows 7 and later may configure audio devices using
|
||||
the Texas Instruments PCM2900 series CODEC for microphone input rather
|
||||
line input. (This chip is used in many radios with built-in USB
|
||||
CODECs, as well as various other audio interfaces.) If you are using
|
||||
|
@ -1,12 +1,13 @@
|
||||
// Status=review
|
||||
|
||||
[[FIG_BAND_SETTINGS]]
|
||||
image::settings-frequencies.png[align="center",alt="Frequency Screen"]
|
||||
|
||||
_Working Frequencies_: By default, the *Working Frequencies* table
|
||||
contains a list of frequencies conventionally used for modes FT8, JT4,
|
||||
JT9, JT65, MSK144, WSPR, and Echo. Conventions may change with time
|
||||
or by user preference; you can modify the frequency table as desired.
|
||||
_By default, the *Working Frequencies* table contains a list of
|
||||
frequencies conventionally used for modes FT8, JT4, JT9, JT65, MSK144,
|
||||
WSPR, and Echo. Conventions may change with time or by user
|
||||
preference; you can modify the frequency table as desired.
|
||||
|
||||
image::settings-frequencies.png[align="center",alt="Frequency Screen"]
|
||||
|
||||
- To change an existing entry, double-click to edit it, type a desired
|
||||
frequency in MHz or select from the drop down list of options, then
|
||||
|
@ -1,6 +1,5 @@
|
||||
// Status=review
|
||||
[[FIG_CONFIG_STATION]]
|
||||
image::settings-general.png[align="center",alt="Settings Window"]
|
||||
|
||||
Select the *General* tab on the *Settings* window. Under _Station
|
||||
Details_ enter your callsign, grid locator (preferably the 6-character
|
||||
@ -9,6 +8,8 @@ Middle East, and Northern Asia; Region 2 the Americas; and Region 3
|
||||
Southern Asia and the Pacific. This information will be sufficient
|
||||
for initial tests.
|
||||
|
||||
image::settings-general.png[align="center",alt="Settings Window"]
|
||||
|
||||
Meanings of remaining options on the *General* tab should be
|
||||
self-explanatory after you have made some QSOs using _WSJT-X_. You
|
||||
may return to set these options to your preferences later.
|
||||
|
@ -1,11 +1,11 @@
|
||||
// Status=review
|
||||
|
||||
image::RadioTab.png[align="center",alt="Radio Tab"]
|
||||
|
||||
_WSJT-X_ offers CAT (Computer Aided Transceiver) control of relevant
|
||||
features of most modern transceivers. To configure the program for
|
||||
your radio, select the *Radio* tab.
|
||||
|
||||
image::RadioTab.png[align="center",alt="Radio Tab"]
|
||||
|
||||
* Select your radio type from the drop-down list labeled *Rig*, or
|
||||
*None* if you do not wish to use CAT control.
|
||||
|
||||
@ -26,8 +26,6 @@ your radio, select the *Radio* tab.
|
||||
|
||||
+
|
||||
|
||||
NOTE: _Omni-Rig_ is available only under Windows.
|
||||
|
||||
* Set *Poll Interval* to the desired interval for _WSJT-X_ to query
|
||||
your radio. For most radios a small number (say, 1 – 3 s) is
|
||||
suitable.
|
||||
|
@ -1,11 +1,12 @@
|
||||
// Status=review
|
||||
|
||||
[[FigTxMacros]]
|
||||
image::tx-macros.png[align="center",alt="Tx Macros Screen"]
|
||||
|
||||
*Tx Macros* are an aid for sending brief, frequently used free-text
|
||||
messages such as the examples shown above.
|
||||
|
||||
image::tx-macros.png[align="center",alt="Tx Macros Screen"]
|
||||
|
||||
- To add a new message to the list, enter the desired text (up to 13
|
||||
characters) in the entry field at top, then click *Add*.
|
||||
|
||||
|
@ -39,12 +39,6 @@ TIP: The PC audio mixer normally has two sliders, one for each
|
||||
frequency setting, on HF bands you can display the full sub-band
|
||||
generally used for one mode.
|
||||
|
||||
- Of course, you might prefer to concentrate on one mode at a time,
|
||||
setting your dial frequency to (say) 14.074 for FT8, 14.076 for
|
||||
JT65, or 14.078 for JT9. Present conventions have the nominal JT9
|
||||
dial frequency 2 kHz higher than the JT65 dial frequency on most
|
||||
bands, and the FT8 frequency 2 kHz lower.
|
||||
|
||||
.Transmitter Audio Level
|
||||
|
||||
* Click the *Tune* button on the main screen to switch the radio into
|
||||
|
@ -1,14 +1,13 @@
|
||||
// Status=review
|
||||
.Main Window:
|
||||
- Select *FT8* on the *Mode* menu.
|
||||
- Set Tx frequency to 1600 Hz, Rx to 1442 Hz.
|
||||
- Double-click on *Erase* to clear both text windows.
|
||||
|
||||
.Wide Graph Settings:
|
||||
|
||||
- *Bins/Pixel* = 4, *Start* = 200 Hz, *N Avg* = 2
|
||||
- *Bins/Pixel* = 5, *Start* = 100 Hz, *N Avg* = 2
|
||||
- Adjust the width of the Wide Graph window so that the upper
|
||||
frequency limit is approximately 2600 Hz.
|
||||
frequency limit is approximately 3300 Hz.
|
||||
|
||||
.Open a Wave File:
|
||||
|
||||
@ -31,7 +30,7 @@ frequency control on the main window will be updated accordingly.
|
||||
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
|
||||
- Do the same thing with the *Ctrl* key held down. Now both colored
|
||||
markers and both spinner controls will follow your selections.
|
||||
|
||||
- Double-clicking at any frequency on the waterfall does all the
|
||||
@ -45,7 +44,7 @@ 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
|
||||
TIP: To avoid QRM from competing callers, it is usually best
|
||||
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
|
||||
@ -54,7 +53,7 @@ box *Hold Tx Freq*.
|
||||
TIP: Keyboard shortcuts *Shift+F11* and *Shift+F12* provide an easy
|
||||
way to move your Tx frequency down or up in 60 Hz steps.
|
||||
|
||||
TIP: An online {ft8_tips} by ZL2IFB offers many helpful tips on
|
||||
TIP: An online {ft8_tips} by ZL2IFB offers many additional tips on
|
||||
operating procedures.
|
||||
|
||||
.FT8 DXpedition Mode:
|
||||
|
@ -1,6 +1,7 @@
|
||||
FT4 is designed for contesting, particularly on the HF bands.
|
||||
Compared with FT8 it is 3.5 dB less sensitive and requires 1.6 times
|
||||
the bandwidth, but it offers the potential for twice the QSO rate.
|
||||
FT4 is designed for contesting, particularly on the HF bands and 6
|
||||
meters. Compared with FT8 it is 3.5 dB less sensitive and requires
|
||||
1.6 times the bandwidth, but it offers the potential for twice the QSO
|
||||
rate.
|
||||
|
||||
.Main Window:
|
||||
- Select *FT4* on the *Mode* menu.
|
||||
@ -8,14 +9,14 @@ the bandwidth, but it offers the potential for twice the QSO rate.
|
||||
|
||||
.Wide Graph Settings:
|
||||
|
||||
- *Bins/Pixel* = 7, *Start* = 100 Hz, *N Avg* = 1
|
||||
- *Bins/Pixel* = 5, *Start* = 100 Hz, *N Avg* = 1
|
||||
- Adjust the width of the Wide Graph window so that the upper
|
||||
frequency limit is approximately 4000 Hz.
|
||||
frequency limit is approximately 3300 Hz.
|
||||
|
||||
.Open a Wave File:
|
||||
|
||||
- Select *File | Open* and navigate to
|
||||
+...\save\samples\FT4\000000_000002.wav+. The waterfall and Band
|
||||
+...\save\samples\FT4\200514_182053.wav+. The waterfall and Band
|
||||
Activity window should look something like the following screen shots.
|
||||
This sample file was recorded during a practice contest test session, so
|
||||
most of the decoded messages use the *RTTY Roundup* message formats.
|
||||
|
@ -343,7 +343,7 @@ MHz. On higher microwave bands typical choices are JT65C or one of
|
||||
the wider QRA64 or JT4 submodes, depending on the expected amount of
|
||||
Doppler spread. JT4 and JT65 offer message *Averaging* -- the
|
||||
summation of subsequent transmissions that convey the same message --
|
||||
to enable decodes at signal-to-noise ratios several dB below below the
|
||||
to enable decodes at signal-to-noise ratios several dB below the
|
||||
threshold for single transmissions. These modes also allow *Deep
|
||||
Search* decoding, in which the decoder hypothesizes messages
|
||||
containing known or previously decoded callsigns and tests them for
|
||||
@ -412,7 +412,7 @@ image::EME_Deep_1.png[align="center",alt="EME_Deep_1"]
|
||||
The message `CQ K1ABC FN42` appears in the _Average Decodes_ panel,
|
||||
flagged with the <<Decoded_Lines,end-of line label>> `f3`. The label
|
||||
means that decoding was accomplished with the Franke-Taylor
|
||||
algorithm, using the average or 3 transmissions.
|
||||
algorithm, using the average of 3 transmissions.
|
||||
|
||||
The _Message Averaging_ window now looks like this:
|
||||
|
||||
@ -436,4 +436,6 @@ Decoding>>), and is based on the average of 2 transmissions.
|
||||
|
||||
You might wish to experiment with other combinations of entries for
|
||||
*My Call*, *DX Call*, and *DX Grid*, and with toggling the various
|
||||
options of the *Decode* menu on and off.
|
||||
options of the *Decode* menu on and off. For best sensitivity, most
|
||||
users will want to use *Deep* decoding with *Enable averaging*,
|
||||
*Enable deep search*, and *Enable AP* all turned on.
|
||||
|
@ -68,8 +68,7 @@ include::install-from-source.adoc[]
|
||||
Select *Settings* from the *File* menu or by typing *F2*. (On
|
||||
Macintosh select *Preferences* from the _WSJT-X_ menu, or use the
|
||||
keyboard shortcut *Cmd+,*). The following sections describe setup
|
||||
options available on each of eight tabs selectable near the top of the
|
||||
window.
|
||||
options available on eight tabs selectable near the top of the window.
|
||||
|
||||
[[GENERAL]]
|
||||
=== General
|
||||
@ -103,6 +102,25 @@ include::settings-colors.adoc[]
|
||||
=== Advanced
|
||||
include::settings-advanced.adoc[]
|
||||
|
||||
[[DARK_STYLE]]
|
||||
=== Dark Style
|
||||
|
||||
An optional *Dark* style is available. To make it effective you will
|
||||
probably want to redefine your color settings. In Windows or Linux,
|
||||
start the program from a command-prompt window using the following
|
||||
command, or modify the _WSJT-X_ desktop shortcut accordingly:
|
||||
|
||||
wsjtx --stylesheet :/qdarkstyle/style.qss
|
||||
|
||||
In macOS, enter the following command from a terminal:
|
||||
|
||||
open /Applications/wsjtx.app --args -stylesheet :/qdarkstyle/style.qss
|
||||
|
||||
Depending on your operating system, the main _WSJT-X_ window will look
|
||||
something like this:
|
||||
|
||||
image::Windows_Dark.png[align="center"]
|
||||
|
||||
[[TRANSCEIVER]]
|
||||
== Transceiver Setup
|
||||
include::transceiver-setup.adoc[]
|
||||
|
@ -533,7 +533,12 @@ subroutine unpack77(c77,nrx,msg,unpk77_success)
|
||||
! EU VHF contest
|
||||
read(c77,1060) n12,n22,ir,irpt,iserial,igrid6
|
||||
1060 format(b12,b22,b1,b3,b11,b25)
|
||||
if(igrid6.lt.0 .or. igrid6.gt.18662399) then
|
||||
unpk77_success=.false.
|
||||
return
|
||||
endif
|
||||
call hash12(n12,call_1)
|
||||
if(n12.eq.hashmy12) call_1='<'//trim(mycall13)//'>'
|
||||
call hash22(n22,call_2)
|
||||
nrs=52+irpt
|
||||
write(cexch,1022) nrs,iserial
|
||||
@ -545,7 +550,7 @@ subroutine unpack77(c77,nrx,msg,unpk77_success)
|
||||
else if(i3.ge.6) then ! i3 values 6 and 7 are not yet defined
|
||||
unpk77_success=.false.
|
||||
endif
|
||||
! if(msg(1:4).eq.'CQ <') unpk77_success=.false.
|
||||
if(msg(1:4).eq.'CQ <') unpk77_success=.false.
|
||||
|
||||
return
|
||||
end subroutine unpack77
|
||||
|
@ -7,12 +7,10 @@ subroutine encode174_91_nocrc(message,codeword)
|
||||
use crc
|
||||
|
||||
integer, parameter:: N=174, K=91, M=N-K
|
||||
character*91 tmpchar
|
||||
integer*1 codeword(N)
|
||||
integer*1 gen(M,K)
|
||||
integer*1 message(K)
|
||||
integer*1 pchecks(M)
|
||||
integer*1, target :: i1MsgBytes(12)
|
||||
include "ldpc_174_91_c_generator.f90"
|
||||
logical first
|
||||
data first/.true./
|
||||
|
@ -454,7 +454,7 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,nzhsym,lapon, &
|
||||
if(.not.nagain) then
|
||||
xsnr=xsnr2
|
||||
endif
|
||||
if(nsync.le.7 .and. xsnr.lt.-24.0) then !bail out, likely false decode
|
||||
if(nsync.le.10 .and. xsnr.lt.-24.0) then !bail out, likely false decode
|
||||
nbadcrc=1
|
||||
return
|
||||
endif
|
||||
|
@ -167,7 +167,7 @@ subroutine osd174_91(llr,k,apmask,ndeep,message91,cw,nhardmin,dmin)
|
||||
nt=40
|
||||
ntheta=12
|
||||
ntau=15
|
||||
elseif(ndeep.eq.6) then
|
||||
else !ndeep=6
|
||||
nord=4
|
||||
npre1=1
|
||||
npre2=1
|
||||
|
@ -61,6 +61,7 @@ program jt49sim
|
||||
nsym=0
|
||||
dnsps=0.
|
||||
baud=0.
|
||||
sig=0.
|
||||
|
||||
if(imode.eq.4) then
|
||||
nsym=206 !Number of channel symbols (JT4)
|
||||
|
@ -124,12 +124,12 @@ subroutine refspectrum(id2,bclear,brefspec,buseref,fname)
|
||||
if(buseref) then
|
||||
if(blastuse.neqv.buseref) then !just enabled so read filter
|
||||
fil=1.0
|
||||
open(16,file=fname,status='old',err=110)
|
||||
read(16,1003,err=20,end=100) ndummy,ndummy,nterms,a
|
||||
open(16,file=fname,status='old',err=999)
|
||||
read(16,1003,err=20,end=999) ndummy,ndummy,nterms,a
|
||||
goto 30
|
||||
20 rewind(16) !allow for old style refspec.dat with no header
|
||||
30 do i=1,NH
|
||||
read(16,1005,err=100,end=100) freq,s(i),ref(i),fil(i),filter(i)
|
||||
read(16,1005,err=999,end=999) freq,s(i),ref(i),fil(i),filter(i)
|
||||
enddo
|
||||
! Make the filter causal for overlap and add.
|
||||
cx(0)=0.0
|
||||
@ -139,8 +139,7 @@ subroutine refspectrum(id2,bclear,brefspec,buseref,fname)
|
||||
x(800:NH)=0.0
|
||||
call four2a(cx,NFFT,1,-1,0)
|
||||
cfil=cx
|
||||
100 close(16)
|
||||
110 continue
|
||||
close(16)
|
||||
endif
|
||||
! Use overlap and add method to apply causal reference filter.
|
||||
x(0:NH-1)=id2(1:NH)
|
||||
@ -154,6 +153,6 @@ subroutine refspectrum(id2,bclear,brefspec,buseref,fname)
|
||||
id2(1:NH)=nint(x(0:NH-1))
|
||||
endif
|
||||
blastuse=buseref
|
||||
|
||||
return
|
||||
|
||||
999 return
|
||||
end subroutine refspectrum
|
||||
|
@ -243,7 +243,7 @@ int floatcomp(const void* elem1, const void* elem2)
|
||||
int unpk_(signed char *message, char *hashtab, char *loctab, char *call_loc_pow, char *callsign)
|
||||
{
|
||||
int n1,n2,n3,ndbm,ihash,nadd,noprint=0;
|
||||
char grid[5],grid6[7],cdbm[3];
|
||||
char grid[5],grid6[7],cdbm[4];
|
||||
|
||||
unpack50(message,&n1,&n2);
|
||||
if( !unpackcall(n1,callsign) ) return 1;
|
||||
|
@ -124,6 +124,7 @@ namespace
|
||||
// 7110 LSB EMCOMM
|
||||
//
|
||||
{7038600, Modes::WSPR, IARURegions::ALL},
|
||||
{7071000, Modes::FT8, IARURegions::ALL},
|
||||
{7074000, Modes::FT8, IARURegions::ALL},
|
||||
{7076000, Modes::JT65, IARURegions::ALL},
|
||||
{7078000, Modes::JT9, IARURegions::ALL},
|
||||
@ -157,6 +158,7 @@ namespace
|
||||
// 10142.25 OLIVIA, Contestia, etc.
|
||||
// 10143.25 OLIVIA, Contestia, etc. (main QRQ)
|
||||
//
|
||||
{10133000, Modes::FT8, IARURegions::ALL},
|
||||
{10136000, Modes::FT8, IARURegions::ALL},
|
||||
{10138000, Modes::JT65, IARURegions::ALL},
|
||||
{10138700, Modes::WSPR, IARURegions::ALL},
|
||||
@ -201,6 +203,7 @@ namespace
|
||||
// 14106.5 OLIVIA 1000 (main QRG)
|
||||
//
|
||||
{14095600, Modes::WSPR, IARURegions::ALL},
|
||||
{14071000, Modes::FT8, IARURegions::ALL},
|
||||
{14074000, Modes::FT8, IARURegions::ALL},
|
||||
{14076000, Modes::JT65, IARURegions::ALL},
|
||||
{14078000, Modes::JT9, IARURegions::ALL},
|
||||
@ -267,6 +270,7 @@ namespace
|
||||
{50293000, Modes::WSPR, IARURegions::R3},
|
||||
{50310000, Modes::JT65, IARURegions::ALL},
|
||||
{50312000, Modes::JT9, IARURegions::ALL},
|
||||
{50310000, Modes::FT8, IARURegions::ALL},
|
||||
{50313000, Modes::FT8, IARURegions::ALL},
|
||||
{50318000, Modes::FT4, IARURegions::ALL}, // provisional
|
||||
{50323000, Modes::FT8, IARURegions::ALL},
|
||||
|
@ -37,8 +37,9 @@
|
||||
<tr><td><b>Ctrl+O </b></td><td>Open a .wav file</td></tr>
|
||||
<tr><td><b>Alt+O </b></td><td>Change operator</td></tr>
|
||||
<tr><td><b>Alt+Q </b></td><td>Log QSO</td></tr>
|
||||
<tr><td><b>Ctrl+R </b></td><td>Set Tx4 message to RRR</td></tr>
|
||||
<tr><td><b>Ctrl+R </b></td><td>Set Tx4 message to RRR (not in FT4)</td></tr>
|
||||
<tr><td><b>Alt+R </b></td><td>Set Tx4 message to RR73</td></tr>
|
||||
<tr><td><b>Alt+S </b></td><td>Stop monitoring</td></tr>
|
||||
<tr><td><b>Alt+T </b></td><td>Tune</td></tr>
|
||||
<tr><td><b>Alt+T </b></td><td>Toggle Tune status</td></tr>
|
||||
<tr><td><b>Alt+Z </b></td><td>Clear hung decoder status</td></tr>
|
||||
</table>
|
||||
|
@ -497,60 +497,92 @@ namespace
|
||||
{
|
||||
void update_selection (QTextCursor& cursor, QColor const& bg, QColor const& fg)
|
||||
{
|
||||
if (!cursor.isNull ())
|
||||
QTextCharFormat format {cursor.charFormat ()};
|
||||
if (bg.isValid ())
|
||||
{
|
||||
QTextCharFormat format {cursor.charFormat ()};
|
||||
if (bg.isValid ())
|
||||
{
|
||||
format.setBackground (bg);
|
||||
}
|
||||
else
|
||||
{
|
||||
format.clearBackground ();
|
||||
}
|
||||
if (fg.isValid ())
|
||||
{
|
||||
format.setForeground (fg);
|
||||
}
|
||||
else
|
||||
{
|
||||
format.clearForeground ();
|
||||
}
|
||||
cursor.mergeCharFormat (format);
|
||||
format.setBackground (bg);
|
||||
}
|
||||
else
|
||||
{
|
||||
format.clearBackground ();
|
||||
}
|
||||
if (fg.isValid ())
|
||||
{
|
||||
format.setForeground (fg);
|
||||
}
|
||||
else
|
||||
{
|
||||
format.clearForeground ();
|
||||
}
|
||||
cursor.mergeCharFormat (format);
|
||||
}
|
||||
|
||||
void reset_selection (QTextCursor& cursor)
|
||||
{
|
||||
if (!cursor.isNull ())
|
||||
// restore previous text format, we rely on the text
|
||||
// char format at he start of the selection being the
|
||||
// old one which should be the case
|
||||
auto c2 = cursor;
|
||||
c2.setPosition (c2.selectionStart ());
|
||||
cursor.setCharFormat (c2.charFormat ());
|
||||
}
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
QString get_timestamp (QTextCursor& cursor)
|
||||
{
|
||||
QString timestamp;
|
||||
if (cursor.movePosition (QTextCursor::PreviousCharacter)
|
||||
&& cursor.movePosition (QTextCursor::StartOfLine)
|
||||
&& cursor.movePosition (QTextCursor::EndOfWord, QTextCursor::KeepAnchor)
|
||||
&& cursor.hasSelection ())
|
||||
{
|
||||
// restore previous text format, we rely on the text
|
||||
// char format at he start of the selection being the
|
||||
// old one which should be the case
|
||||
auto c2 = cursor;
|
||||
c2.setPosition (c2.selectionStart ());
|
||||
cursor.setCharFormat (c2.charFormat ());
|
||||
timestamp = cursor.selectedText ();
|
||||
cursor.movePosition (QTextCursor::StartOfLine);
|
||||
}
|
||||
return timestamp;
|
||||
}
|
||||
}
|
||||
|
||||
void DisplayText::highlight_callsign (QString const& callsign, QColor const& bg,
|
||||
QColor const& fg, bool last_only)
|
||||
QColor const& fg, bool last_period_only)
|
||||
{
|
||||
// qDebug () << "DisplayText::highlight_callsign: callsign:" << callsign << "last period:" << last_period_only;
|
||||
if (!callsign.size ())
|
||||
{
|
||||
return;
|
||||
}
|
||||
QRegularExpression target {QString {"<?"} + callsign + QString {">?"}, QRegularExpression::DontCaptureOption};
|
||||
QTextCharFormat old_format {currentCharFormat ()};
|
||||
QTextCursor cursor {document ()};
|
||||
if (last_only)
|
||||
if (last_period_only)
|
||||
{
|
||||
// highlight each instance of the given callsign (word) in the
|
||||
// current period
|
||||
cursor.movePosition (QTextCursor::End);
|
||||
cursor = document ()->find (callsign, cursor
|
||||
, QTextDocument::FindBackward | QTextDocument::FindWholeWords);
|
||||
if (bg.isValid () || fg.isValid ())
|
||||
QTextCursor period_start {cursor};
|
||||
QTextCursor prior {cursor};
|
||||
auto period_timestamp = get_timestamp (period_start);
|
||||
while (period_timestamp.size () && period_timestamp == get_timestamp (prior))
|
||||
{
|
||||
update_selection (cursor, bg, fg);
|
||||
period_start = prior;
|
||||
}
|
||||
else
|
||||
while (!cursor.isNull () && cursor > period_start)
|
||||
{
|
||||
reset_selection (cursor);
|
||||
cursor = document ()->find (target, cursor
|
||||
, QTextDocument::FindBackward | QTextDocument::FindWholeWords);
|
||||
if (!cursor.isNull () && cursor.hasSelection ())
|
||||
{
|
||||
if (bg.isValid () || fg.isValid ())
|
||||
{
|
||||
update_selection (cursor, bg, fg);
|
||||
}
|
||||
else
|
||||
{
|
||||
reset_selection (cursor);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -569,8 +601,11 @@ void DisplayText::highlight_callsign (QString const& callsign, QColor const& bg,
|
||||
}
|
||||
while (!cursor.isNull ())
|
||||
{
|
||||
cursor = document ()->find (callsign, cursor, QTextDocument::FindWholeWords);
|
||||
update_selection (cursor, bg, fg);
|
||||
cursor = document ()->find (target, cursor, QTextDocument::FindWholeWords);
|
||||
if (!cursor.isNull () && cursor.hasSelection ())
|
||||
{
|
||||
update_selection (cursor, bg, fg);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (pos != highlighted_calls_.end ())
|
||||
@ -579,8 +614,11 @@ void DisplayText::highlight_callsign (QString const& callsign, QColor const& bg,
|
||||
QTextCursor cursor {document ()};
|
||||
while (!cursor.isNull ())
|
||||
{
|
||||
cursor = document ()->find (callsign, cursor, QTextDocument::FindWholeWords);
|
||||
reset_selection (cursor);
|
||||
cursor = document ()->find (target, cursor, QTextDocument::FindWholeWords);
|
||||
if (!cursor.isNull () && cursor.hasSelection ())
|
||||
{
|
||||
reset_selection (cursor);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -43,7 +43,7 @@ public:
|
||||
Q_SLOT void appendText (QString const& text, QColor bg = QColor {}, QColor fg = QColor {}
|
||||
, QString const& call1 = QString {}, QString const& call2 = QString {});
|
||||
Q_SLOT void erase ();
|
||||
Q_SLOT void highlight_callsign (QString const& callsign, QColor const& bg, QColor const& fg, bool last_only);
|
||||
Q_SLOT void highlight_callsign (QString const& callsign, QColor const& bg, QColor const& fg, bool last_period_only);
|
||||
|
||||
private:
|
||||
void mouseDoubleClickEvent (QMouseEvent *) override;
|
||||
|
@ -801,8 +801,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
||||
SLOT(setFreq4(int,int)));
|
||||
|
||||
decodeBusy(false);
|
||||
QString t1[19]={"1 mW","2 mW","5 mW","10 mW","20 mW","50 mW","100 mW","200 mW","500 mW",
|
||||
"1 W","2 W","5 W","10 W","20 W","50 W","100 W","200 W","500 W","1 kW"};
|
||||
|
||||
m_msg[0][0]=0;
|
||||
ui->labDXped->setVisible(false);
|
||||
@ -811,13 +809,10 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
||||
ui->labNextCall->setVisible(false);
|
||||
ui->labNextCall->setToolTip(""); //### Possibly temporary ? ###
|
||||
|
||||
for(int i=0; i<19; i++) { //Initialize dBm values
|
||||
float dbm=(10.0*i)/3.0;
|
||||
int ndbm=int(dbm+0.5);
|
||||
QString t;
|
||||
t = t.asprintf("%d dBm ",ndbm);
|
||||
t+=t1[i];
|
||||
ui->TxPowerComboBox->addItem(t);
|
||||
char const * const power[] = {"1 mW","2 mW","5 mW","10 mW","20 mW","50 mW","100 mW","200 mW","500 mW",
|
||||
"1 W","2 W","5 W","10 W","20 W","50 W","100 W","200 W","500 W","1 kW"};
|
||||
for(auto i = 0u; i < sizeof power / sizeof power[0]; ++i) { //Initialize dBm values
|
||||
ui->TxPowerComboBox->addItem (QString {"%1 dBm %2"}.arg (int (10. * i / 3.)).arg (power[i]));
|
||||
}
|
||||
|
||||
m_dateTimeRcvdRR73=QDateTime::currentDateTimeUtc();
|
||||
@ -935,7 +930,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
||||
m_saveDecoded=ui->actionSave_decoded->isChecked();
|
||||
m_saveAll=ui->actionSave_all->isChecked();
|
||||
ui->sbTxPercent->setValue(m_pctx);
|
||||
ui->TxPowerComboBox->setCurrentIndex(int(0.3*m_dBm+0.2));
|
||||
ui->TxPowerComboBox->setCurrentIndex(int(.3 * m_dBm + .2));
|
||||
ui->cbUploadWSPR_Spots->setChecked(m_uploadSpots);
|
||||
if((m_ndepth&7)==1) ui->actionQuickDecode->setChecked(true);
|
||||
if((m_ndepth&7)==2) ui->actionMediumDecode->setChecked(true);
|
||||
@ -1199,7 +1194,7 @@ void MainWindow::readSettings()
|
||||
m_ndepth=m_settings->value("NDepth",3).toInt();
|
||||
m_pctx=m_settings->value("PctTx",20).toInt();
|
||||
m_dBm=m_settings->value("dBm",37).toInt();
|
||||
m_send_RR73=m_settings->value("RR73",37).toBool();
|
||||
m_send_RR73=m_settings->value("RR73",false).toBool();
|
||||
if(m_send_RR73) {
|
||||
m_send_RR73=false;
|
||||
on_txrb4_doubleClicked();
|
||||
@ -1428,11 +1423,6 @@ void MainWindow::dataSink(qint64 frames)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
if(m_ihsym==m_hsymStop or (m_mode=="FT8" and m_ihsym==m_earlyDecode and !m_diskData) or
|
||||
(m_mode=="FT8" and m_ihsym==m_earlyDecode2 and !m_diskData)) {
|
||||
*/
|
||||
|
||||
bool bCallDecoder=false;
|
||||
if(m_ihsym==m_hsymStop) bCallDecoder=true;
|
||||
if(m_mode=="FT8" and !m_diskData) {
|
||||
@ -2296,10 +2286,13 @@ void MainWindow::setup_status_bar (bool vhf)
|
||||
mode_label.setStyleSheet ("QLabel{background-color: #99ff33}");
|
||||
} else if ("MSK144" == m_mode) {
|
||||
mode_label.setStyleSheet ("QLabel{background-color: #ff6666}");
|
||||
} else if ("FT4" == m_mode) {
|
||||
mode_label.setStyleSheet ("QLabel{background-color: #ff0099}");
|
||||
} else if ("FT8" == m_mode) {
|
||||
mode_label.setStyleSheet ("QLabel{background-color: #6699ff}");
|
||||
} else if ("FreqCal" == m_mode) {
|
||||
mode_label.setStyleSheet ("QLabel{background-color: #ff9933}"); }
|
||||
mode_label.setStyleSheet ("QLabel{background-color: #ff9933}");
|
||||
}
|
||||
last_tx_label.setText (QString {});
|
||||
if (m_mode.contains (QRegularExpression {R"(^(Echo|ISCAT))"})) {
|
||||
if (band_hopping_label.isVisible ()) statusBar ()->removeWidget (&band_hopping_label);
|
||||
@ -3173,13 +3166,16 @@ void MainWindow::readFromStdout() //readFromStdout
|
||||
write_all("Rx",line_read.trimmed());
|
||||
int ntime=6;
|
||||
if(m_TRperiod>=60) ntime=4;
|
||||
if (m_config.insert_blank () && (line_read.left(ntime)!=m_tBlankLine) &&
|
||||
SpecOp::FOX != m_config.special_op_id()) {
|
||||
QString band;
|
||||
if((QDateTime::currentMSecsSinceEpoch() / 1000 - m_secBandChanged) > 4*int(m_TRperiod)/4) {
|
||||
band = ' ' + m_config.bands ()->find (m_freqNominal);
|
||||
}
|
||||
ui->decodedTextBrowser->insertLineSpacer (band.rightJustified (40, '-'));
|
||||
if (line_read.left(ntime) != m_tBlankLine) {
|
||||
ui->decodedTextBrowser->new_period ();
|
||||
if (m_config.insert_blank ()
|
||||
&& SpecOp::FOX != m_config.special_op_id()) {
|
||||
QString band;
|
||||
if((QDateTime::currentMSecsSinceEpoch() / 1000 - m_secBandChanged) > 4*int(m_TRperiod)/4) {
|
||||
band = ' ' + m_config.bands ()->find (m_freqNominal);
|
||||
}
|
||||
ui->decodedTextBrowser->insertLineSpacer (band.rightJustified (40, '-'));
|
||||
}
|
||||
m_tBlankLine = line_read.left(ntime);
|
||||
}
|
||||
|
||||
@ -3498,11 +3494,6 @@ void MainWindow::decodeBusy(bool b) //decodeBusy()
|
||||
{
|
||||
if (!b) {
|
||||
m_optimizingProgress.reset ();
|
||||
} else {
|
||||
if (!m_decoderBusy)
|
||||
{
|
||||
ui->decodedTextBrowser->new_period ();
|
||||
}
|
||||
}
|
||||
m_decoderBusy=b;
|
||||
ui->DecodeButton->setEnabled(!b);
|
||||
@ -4444,6 +4435,7 @@ void MainWindow::doubleClickOnCall(Qt::KeyboardModifiers modifiers)
|
||||
if(m_mode=="ISCAT") {
|
||||
MessageBox::information_message (this,
|
||||
"Double-click not available for ISCAT mode");
|
||||
return;
|
||||
}
|
||||
if(m_decodedText2) {
|
||||
cursor=ui->decodedTextBrowser->textCursor();
|
||||
@ -5140,7 +5132,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional)
|
||||
}
|
||||
if(SpecOp::EU_VHF==m_config.special_op_id()) {
|
||||
QString a;
|
||||
t="<" + t0.split(" ").at(0) + "> <" + t0.split(" ").at(1) + "> ";
|
||||
t="<" + t0s.split(" ").at(0) + "> <" + t0s.split(" ").at(1) + "> ";
|
||||
a = a.asprintf("%4.4d ",ui->sbSerialNumber->value());
|
||||
sent=rs + a + m_config.my_grid();
|
||||
}
|
||||
@ -5226,7 +5218,8 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional)
|
||||
case Configuration::type_2_msg_1_full:
|
||||
msgtype(t + my_grid, ui->tx1);
|
||||
if (!eme_short_codes) {
|
||||
if((m_mode=="MSK144" || m_mode=="FT8") && SpecOp::NA_VHF == m_config.special_op_id()) {
|
||||
if((m_mode=="MSK144" || m_mode=="FT8" || m_mode=="FT4") &&
|
||||
SpecOp::NA_VHF == m_config.special_op_id()) {
|
||||
msgtype(t + "R " + my_grid, ui->tx3);
|
||||
} else {
|
||||
msgtype(t + "R" + rpt, ui->tx3);
|
||||
@ -5238,7 +5231,8 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional)
|
||||
break;
|
||||
|
||||
case Configuration::type_2_msg_3_full:
|
||||
if ((m_mode=="MSK144" || m_mode=="FT8") && SpecOp::NA_VHF == m_config.special_op_id()) {
|
||||
if ((m_mode=="MSK144" || m_mode=="FT8" || m_mode=="FT4") &&
|
||||
SpecOp::NA_VHF == m_config.special_op_id()) {
|
||||
msgtype(t + "R " + my_grid, ui->tx3);
|
||||
msgtype(t + "RRR", ui->tx4);
|
||||
} else {
|
||||
@ -5253,7 +5247,8 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional)
|
||||
case Configuration::type_2_msg_5_only:
|
||||
msgtype(t00 + my_grid, ui->tx1);
|
||||
if (!eme_short_codes) {
|
||||
if ((m_mode=="MSK144" || m_mode=="FT8") && SpecOp::NA_VHF == m_config.special_op_id()) {
|
||||
if ((m_mode=="MSK144" || m_mode=="FT8" || m_mode=="FT4") &&
|
||||
SpecOp::NA_VHF == m_config.special_op_id()) {
|
||||
msgtype(t + "R " + my_grid, ui->tx3);
|
||||
msgtype(t + "RRR", ui->tx4);
|
||||
} else {
|
||||
@ -5467,7 +5462,8 @@ void MainWindow::msgtype(QString t, QLineEdit* tx) //msgtype()
|
||||
//### Check this stuff ###
|
||||
if(itype==7 and m_config.enable_VHF_features() and m_mode=="JT65") shortMsg=true;
|
||||
if(m_mode=="MSK144" and t.mid(0,1)=="<") text=false;
|
||||
if((m_mode=="MSK144" or m_mode=="FT8") and SpecOp::NA_VHF==m_config.special_op_id()) {
|
||||
if((m_mode=="MSK144" or m_mode=="FT8" or m_mode=="FT4") and
|
||||
SpecOp::NA_VHF==m_config.special_op_id()) {
|
||||
int i0=t.trimmed().length()-7;
|
||||
if(t.mid(i0,3)==" R ") text=false;
|
||||
}
|
||||
@ -5727,7 +5723,6 @@ void MainWindow::displayWidgets(qint64 n)
|
||||
if(i==12) ui->pbR2T->setVisible(b);
|
||||
if(i==13) ui->pbT2R->setVisible(b);
|
||||
if(i==14) ui->cbHoldTxFreq->setVisible(b);
|
||||
if(i==14 and (!b)) ui->cbHoldTxFreq->setChecked(false);
|
||||
if(i==15) ui->sbSubmode->setVisible(b);
|
||||
if(i==16) ui->syncSpinBox->setVisible(b);
|
||||
if(i==17) ui->WSPR_controls_widget->setVisible(b);
|
||||
@ -7702,11 +7697,14 @@ void MainWindow::p1ReadFromStdout() //p1readFromStdout
|
||||
rxLine += t1;
|
||||
}
|
||||
|
||||
if (m_config.insert_blank () && (rxLine.left(4)!=m_tBlankLine)) {
|
||||
QString band;
|
||||
Frequency f=1000000.0*rxFields.at(3).toDouble()+0.5;
|
||||
band = ' ' + m_config.bands ()->find (f);
|
||||
ui->decodedTextBrowser->appendText(band.rightJustified (71, '-'));
|
||||
if (rxLine.left (4) != m_tBlankLine) {
|
||||
ui->decodedTextBrowser->new_period ();
|
||||
if (m_config.insert_blank ()) {
|
||||
QString band;
|
||||
Frequency f=1000000.0*rxFields.at(3).toDouble()+0.5;
|
||||
band = ' ' + m_config.bands ()->find (f);
|
||||
ui->decodedTextBrowser->appendText(band.rightJustified (71, '-'));
|
||||
}
|
||||
m_tBlankLine = rxLine.left(4);
|
||||
}
|
||||
m_nWSPRdecodes += 1;
|
||||
|
@ -488,6 +488,9 @@ void CPlotter::DrawOverlay() //DrawOverlay()
|
||||
painter0.drawLine(x1,24,x1,30);
|
||||
}
|
||||
|
||||
int yh=5;
|
||||
int yTxTop=12;
|
||||
int yRxBottom=yTxTop + 2*yh + 4;
|
||||
if(m_mode=="JT9" or m_mode=="JT65" or m_mode=="JT9+JT65"
|
||||
or m_mode=="QRA64" or m_mode=="FT8" or m_mode=="FT4") {
|
||||
|
||||
@ -513,12 +516,14 @@ void CPlotter::DrawOverlay() //DrawOverlay()
|
||||
painter0.drawLine(x6,24,x6,30);
|
||||
|
||||
} else {
|
||||
// Draw the green "goal post"
|
||||
painter0.setPen(penGreen);
|
||||
x1=XfromFreq(m_rxFreq);
|
||||
x2=XfromFreq(m_rxFreq+bw);
|
||||
painter0.drawLine(x1,24,x1,30);
|
||||
painter0.drawLine(x1,28,x2,28);
|
||||
painter0.drawLine(x2,24,x2,30);
|
||||
painter0.drawLine(x1,yRxBottom-yh,x1,yRxBottom);
|
||||
painter0.drawLine(x1,yRxBottom,x2,yRxBottom);
|
||||
painter0.drawLine(x2,yRxBottom-yh,x2,yRxBottom);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -538,9 +543,10 @@ void CPlotter::DrawOverlay() //DrawOverlay()
|
||||
x1=XfromFreq(m_txFreq-0.5*bw);
|
||||
x2=XfromFreq(m_txFreq+0.5*bw);
|
||||
}
|
||||
painter0.drawLine(x1,17,x1,21);
|
||||
painter0.drawLine(x1,17,x2,17);
|
||||
painter0.drawLine(x2,17,x2,21);
|
||||
// Draw the red "goal post"
|
||||
painter0.drawLine(x1,yTxTop,x1,yTxTop+yh);
|
||||
painter0.drawLine(x1,yTxTop,x2,yTxTop);
|
||||
painter0.drawLine(x2,yTxTop,x2,yTxTop+yh);
|
||||
}
|
||||
|
||||
if(m_mode=="JT9+JT65") {
|
||||
|
@ -157,6 +157,9 @@
|
||||
<property name="text">
|
||||
<string>Adjust...</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
|
@ -9,8 +9,8 @@ SOURCES += \
|
||||
widgets/colorhighlighting.cpp widgets/ExportCabrillo.cpp \
|
||||
widgets/AbstractLogWindow.cpp \
|
||||
widgets/FrequencyLineEdit.cpp widgets/FrequencyDeltaLineEdit.cpp \
|
||||
widgets/FoxLogWindow.cpp widgets/CabrilloLogWindow.cpp
|
||||
|
||||
widgets/FoxLogWindow.cpp widgets/CabrilloLogWindow.cpp \
|
||||
widgets/HelpTextWindow.cpp
|
||||
HEADERS += \
|
||||
widgets/mainwindow.h widgets/plotter.h \
|
||||
widgets/about.h widgets/widegraph.h \
|
||||
@ -21,7 +21,7 @@ HEADERS += \
|
||||
widgets/fastplot.h widgets/MessageBox.hpp widgets/colorhighlighting.h \
|
||||
widgets/ExportCabrillo.h widgets/AbstractLogWindow.hpp \
|
||||
widgets/FoxLogWindow.hpp widgets/CabrilloLogWindow.hpp \
|
||||
widgets/DateTimeEdit.hpp
|
||||
widgets/DateTimeEdit.hpp widgets/HelpTextWindow.hpp
|
||||
|
||||
FORMS += \
|
||||
widgets/mainwindow.ui widgets/about.ui \
|
||||
|