mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-05-24 10:22:26 -04:00
Tagging the WSJT-X v2.3.1 release
-----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEUELwYiy7vDRM+hTD2GSwbR6BYY8FAmBMAVMACgkQ2GSwbR6B YY9zhQf+K8DgRh0q5bYBSQOaECDOYt3OY2DSRHAzOKLJIX25DJ1oKkj4BSiBcczG GNnNGefHWwDtDPJl5Vhu3mE8JsgVquEpl0r/V7Y7Zf+6dv+q/p6HCdwbBGHPQxJ7 VVdH/Q643aMIK2nb25hwSt4Z3aZSvABmqN636D5tL8nqyBCF58La/AlncvF7+Xc4 KOg7ll0RInkJh+2D11cTXtZn23+awtOSC2x5pkqSzQM6zCJ3yEb4OxzrjWmZKV5r 8I0pe5G1hNl/Ecy0Hm8GEQQIW7DooF/MFHkK4Z9x7R7lzG71R0AeuFc4QjbO1NS+ YeHeRaHvr2Fq2eFi7pZHqfc/O5WyiQ== =I/Tu -----END PGP SIGNATURE----- gpgsig -----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEUELwYiy7vDRM+hTD2GSwbR6BYY8FAmBMp94ACgkQ2GSwbR6B YY/ycggAt7rjgs+32eO2fofGhyt4oBUs17oR6bKx34jSsOMqLrw+vJELsPphs3zi bhm5rIK0Fzrt/BVZMI8iSTawe32rqSw+YdJT9YPrHf8dyngYjxje/Rbhyv34cetH RLv89Ph8KNvFt7/NWZ2CfMPDmWnrFVFKb+Pu6CS0TKd2EA4ENyWyOLmZmSZvjjWQ hYcOWtIxf07Del2OucCZnuXpv9gW5RjobwM8jtGiaIwBLE+mkgBmcgTwPGiUCmUS D63L/5SspIkZcTjHU0sE2B0u40zOljJ7VTLShcY+BEtjTlPxLOVM8orzB3njryAc anM0IWb7UChalnVTOnLksnCvAcXKSg== =1ZRU -----END PGP SIGNATURE----- Merge tag 'wsjtx-2.3.1' into release-2.4.0 Tagging the WSJT-X v2.3.1 release
This commit is contained in:
commit
d4c4cd0e05
@ -1602,7 +1602,7 @@ install (DIRECTORY
|
|||||||
if (APPLE)
|
if (APPLE)
|
||||||
install (FILES
|
install (FILES
|
||||||
Darwin/ReadMe.txt
|
Darwin/ReadMe.txt
|
||||||
Darwin/sysctl.conf
|
Darwin/com.wsjtx.sysctl.plist
|
||||||
DESTINATION .
|
DESTINATION .
|
||||||
#COMPONENT runtime
|
#COMPONENT runtime
|
||||||
)
|
)
|
||||||
|
@ -1,42 +1,21 @@
|
|||||||
Notes on WSJT-X Installation for Mac OS X
|
Notes on WSJT-X Installation for Mac OS X
|
||||||
-----------------------------------------
|
-----------------------------------------
|
||||||
|
|
||||||
Important: If you are using the new Mac with the M1 chip then please read
|
|
||||||
the section marked: BEGIN M1. Otherwise BEGIN INTEL applies.
|
|
||||||
|
|
||||||
If you have already downloaded a previous version of WSJT-X then I suggest
|
If you have already downloaded a previous version of WSJT-X then I suggest
|
||||||
you change the name in the Applications folder from WSJT-X to WSJT-X_previous
|
you change the name in the Applications folder from WSJT-X to WSJT-X_previous
|
||||||
before proceeding.
|
before proceeding.
|
||||||
|
|
||||||
I recommend that you follow the installation instructions especially if you
|
I recommend that you follow the installation instructions especially if you
|
||||||
are moving from v2.2 to v2.3 of WSJT-X or you have upgraded macOS.
|
are moving from v2.2 to v2.3 or later, of WSJT-X or you have upgraded macOS.
|
||||||
|
|
||||||
BEGIN M1:
|
|
||||||
|
|
||||||
Double-click on the wsjtx-...-Darwin.dmg file you have downloaded from K1JT's web-site.
|
Double-click on the wsjtx-...-Darwin.dmg file you have downloaded from K1JT's web-site.
|
||||||
|
|
||||||
Now open a Terminal window by going to Applications->Utilities and clicking on Terminal.
|
Now open a Terminal window by going to Applications->Utilities and clicking on Terminal.
|
||||||
|
|
||||||
There are two system variables that must be set manually since the M1 Macs do not recognise
|
Along with this ReadMe file there is a file: com.wsjtx.sysctl.plist which must be copied to a
|
||||||
automatic parameter settings by means of the sysctl.conf file present in the download.
|
|
||||||
Type these commands - you will be asked for your password which will not be echoed:
|
|
||||||
|
|
||||||
sudo sysctl -w kern.sysv.shmmax=52428800
|
|
||||||
sudo sysctl -w kern.sysv.shmall=25600
|
|
||||||
|
|
||||||
It is important to note that these parameter settings will not survive a reboot. If you
|
|
||||||
need to reboot your Mac, then these commands must be re-entered. Now proceed to NEXT.
|
|
||||||
|
|
||||||
BEGIN INTEL:
|
|
||||||
|
|
||||||
Double-click on the wsjtx-...-Darwin.dmg file you have downloaded from K1JT's web-site.
|
|
||||||
|
|
||||||
Now open a Terminal window by going to Applications->Utilities and clicking on Terminal.
|
|
||||||
|
|
||||||
Along with this ReadMe file there is a file: sysctl.conf which must be copied to a
|
|
||||||
system area by typing this line in the Terminal window and then pressing the Return key.
|
system area by typing this line in the Terminal window and then pressing the Return key.
|
||||||
|
|
||||||
sudo cp /Volumes/WSJT-X/sysctl.conf /etc
|
sudo cp /Volumes/WSJT-X/com.wsjtx.sysctl.plist /Library/LaunchDaemons
|
||||||
|
|
||||||
you will be asked for your normal password because authorisation is needed to copy this file.
|
you will be asked for your normal password because authorisation is needed to copy this file.
|
||||||
(Your password will not be echoed but press the Return key when completed.)
|
(Your password will not be echoed but press the Return key when completed.)
|
||||||
@ -53,8 +32,6 @@ You can now close the Terminal window. It will not be necessary to repeat this
|
|||||||
again, even when you download an updated version of WSJT-X. It might be necessary if you
|
again, even when you download an updated version of WSJT-X. It might be necessary if you
|
||||||
upgrade macOS.
|
upgrade macOS.
|
||||||
|
|
||||||
NEXT:
|
|
||||||
|
|
||||||
Drag the WSJT-X app to your preferred location, such as Applications.
|
Drag the WSJT-X app to your preferred location, such as Applications.
|
||||||
|
|
||||||
You need to configure your sound card. Visit Applications > Utilities > Audio MIDI
|
You need to configure your sound card. Visit Applications > Utilities > Audio MIDI
|
||||||
@ -95,27 +72,22 @@ Please email me if you have problems.
|
|||||||
|
|
||||||
--- John G4KLA (g4kla@rmnjmn.co.uk)
|
--- John G4KLA (g4kla@rmnjmn.co.uk)
|
||||||
|
|
||||||
Addendum: Information about sysctl.conf and multiple instances of WSJT-X.
|
Addendum: Information about com.wsjtx.sysctl.plist and multiple instances of WSJT-X.
|
||||||
|
|
||||||
WSJT-X makes use of a block of memory which is shared between different parts of
|
WSJT-X makes use of a block of memory which is shared between different parts of
|
||||||
the code. The normal allocation of shared memory on a Mac is insufficient and this
|
the code. The normal allocation of shared memory on a Mac is insufficient and this
|
||||||
has to be increased. The sysctl.conf file is used for this purpose. You can
|
has to be increased. The com.wsjtx.sysctl.plist file is used for this purpose. You can
|
||||||
use a Mac editor to examine sysctl.conf. (Do not use another editor - the file
|
use a Mac editor to examine the file. (Do not use another editor - the file
|
||||||
would probably be corrupted.)
|
would probably be corrupted.)
|
||||||
|
|
||||||
It is possible to run two instances of WSJT-X simultaneously. See "Section 16.2
|
It is possible to run two instances of WSJT-X simultaneously. See "Section 16.2
|
||||||
Frequently asked Questions" in the User Guide. If you wish to run more than two instances
|
Frequently asked Questions" in the User Guide. If you wish to run more than two instances
|
||||||
simultaneously, the shmall parameter in the sysctl.conf file needs to be modified as follows.
|
simultaneously, the shmall parameter in the com.wsjtx.sysctl.plist file needs to be modified as follows.
|
||||||
|
|
||||||
The shmall parameter determines the amount of shared memory which is allocated in 4096 byte pages
|
The shmall parameter determines the amount of shared memory which is allocated in 4096 byte pages
|
||||||
with 50MB (52428800) required for each instance. The shmall parameter is calculated as:
|
with 50MB (52428800) required for each instance. The shmall parameter is calculated as:
|
||||||
(n * 52428800)/4096 where 'n' is the number of instances required to run simultaneously. If
|
(n * 52428800)/4096 where 'n' is the number of instances required to run simultaneously.
|
||||||
you are using an Intel Mac, modify the shmall parameter in the sysctl.conf file using a Mac editor
|
Remember to reboot your Mac afterwards.
|
||||||
and then install in the /etc directory using the installation procedure described above for an
|
|
||||||
Intel Mac. Remember to reboot your Mac afterwards.
|
|
||||||
|
|
||||||
If you are using an M1 Mac, then simply issue the sudo sysctl -w kern.sysv.shmall=xxx command where
|
|
||||||
xxx is the new value of shmall that is required.
|
|
||||||
|
|
||||||
Note that the shmmax parameter remains unchanged. This is the maximum amount of shared memory that
|
Note that the shmmax parameter remains unchanged. This is the maximum amount of shared memory that
|
||||||
any one instance is allowed to request from the total shared memory allocation and should not
|
any one instance is allowed to request from the total shared memory allocation and should not
|
||||||
|
18
Darwin/com.wsjtx.sysctl.plist
Normal file
18
Darwin/com.wsjtx.sysctl.plist
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>Label</key>
|
||||||
|
<string>com.wsjtx.sysctl</string>
|
||||||
|
<key>Program</key>
|
||||||
|
<string>/usr/sbin/sysctl</string>
|
||||||
|
<key>ProgramArguments</key>
|
||||||
|
<array>
|
||||||
|
<string>/usr/sbin/sysctl</string>
|
||||||
|
<string>kern.sysv.shmmax=52428800</string>
|
||||||
|
<string>kern.sysv.shmall=25600</string>
|
||||||
|
</array>
|
||||||
|
<key>RunAtLoad</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
@ -1,5 +0,0 @@
|
|||||||
kern.sysv.shmmax=52428800
|
|
||||||
kern.sysv.shmmin=1
|
|
||||||
kern.sysv.shmmni=128
|
|
||||||
kern.sysv.shmseg=32
|
|
||||||
kern.sysv.shmall=25600
|
|
@ -23,7 +23,7 @@ DecodedText::DecodedText (QString const& the_string)
|
|||||||
, is_standard_ {false}
|
, is_standard_ {false}
|
||||||
{
|
{
|
||||||
// discard appended AP info
|
// discard appended AP info
|
||||||
clean_string_.replace (QRegularExpression {R"(^(.*)(?:(?:\?\s)?a[0-9].*)$)"}, "\\1");
|
clean_string_.replace (QRegularExpression {R"(^(.*?)(?:\?\s)?a[0-9].*$)"}, "\\1");
|
||||||
|
|
||||||
// qDebug () << "DecodedText: the_string:" << the_string << "Nbsp pos:" << the_string.indexOf (QChar::Nbsp);
|
// qDebug () << "DecodedText: the_string:" << the_string << "Nbsp pos:" << the_string.indexOf (QChar::Nbsp);
|
||||||
if (message_.length() >= 1)
|
if (message_.length() >= 1)
|
||||||
|
@ -142,8 +142,8 @@ namespace Logger
|
|||||||
err += e.what ();
|
err += e.what ();
|
||||||
// Since we cannot be sure of boost log state, output to cerr and cout.
|
// Since we cannot be sure of boost log state, output to cerr and cout.
|
||||||
std::cerr << "ERROR: " << err << std::endl;
|
std::cerr << "ERROR: " << err << std::endl;
|
||||||
std::cout << "ERROR: " << err << std::endl;
|
|
||||||
LOG_ERROR (err);
|
LOG_ERROR (err);
|
||||||
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
6
NEWS
6
NEWS
@ -63,7 +63,7 @@ the RC1 release.
|
|||||||
|
|
||||||
|
|
||||||
Release: WSJT-X 2.3.1
|
Release: WSJT-X 2.3.1
|
||||||
Mar 8, 2021
|
Mar 18, 2021
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
WSJT-X 2.3.1 General Availability release updates the User Guide to
|
WSJT-X 2.3.1 General Availability release updates the User Guide to
|
||||||
@ -96,6 +96,10 @@ below.
|
|||||||
- Repair a defect that could caused incorrect log entry fields when
|
- Repair a defect that could caused incorrect log entry fields when
|
||||||
using FT4 mode and a priori (AP) decoding.
|
using FT4 mode and a priori (AP) decoding.
|
||||||
|
|
||||||
|
- Repair defects saving .WAV files for periods with decodes.
|
||||||
|
|
||||||
|
- Offer a new scheme for adjusting macOS shared memory parameters.
|
||||||
|
|
||||||
|
|
||||||
Release: WSJT-X 2.4.0-rc1
|
Release: WSJT-X 2.4.0-rc1
|
||||||
Feb 3, 2021
|
Feb 3, 2021
|
||||||
|
@ -63,7 +63,7 @@ the RC1 release.
|
|||||||
|
|
||||||
|
|
||||||
Release: WSJT-X 2.3.1
|
Release: WSJT-X 2.3.1
|
||||||
Mar 8, 2021
|
Mar 18, 2021
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
WSJT-X 2.3.1 General Availability release updates the User Guide to
|
WSJT-X 2.3.1 General Availability release updates the User Guide to
|
||||||
@ -96,6 +96,10 @@ below.
|
|||||||
- Repair a defect that could caused incorrect log entry fields when
|
- Repair a defect that could caused incorrect log entry fields when
|
||||||
using FT4 mode and a priori (AP) decoding.
|
using FT4 mode and a priori (AP) decoding.
|
||||||
|
|
||||||
|
- Repair defects saving .WAV files for periods with decodes.
|
||||||
|
|
||||||
|
- Offer a new scheme for adjusting macOS shared memory parameters.
|
||||||
|
|
||||||
|
|
||||||
Release: WSJT-X 2.4.0-rc1
|
Release: WSJT-X 2.4.0-rc1
|
||||||
Feb 3, 2021
|
Feb 3, 2021
|
||||||
|
149
WSJTXLogging.cpp
149
WSJTXLogging.cpp
@ -104,6 +104,77 @@ namespace
|
|||||||
<< context.category << ": " << msg.toStdWString ();
|
<< context.category << ": " << msg.toStdWString ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void default_log_config ()
|
||||||
|
{
|
||||||
|
auto core = logging::core::get ();
|
||||||
|
|
||||||
|
//
|
||||||
|
// Define sinks, filters, and formatters using expression
|
||||||
|
// templates for efficiency.
|
||||||
|
//
|
||||||
|
|
||||||
|
// Default log file location.
|
||||||
|
QDir app_data {QStandardPaths::writableLocation (QStandardPaths::AppLocalDataLocation)};
|
||||||
|
Logger::init (); // Basic setup of attributes
|
||||||
|
|
||||||
|
//
|
||||||
|
// Sink intended for general use that passes everything above
|
||||||
|
// selected severity levels per channel. Log file is appended
|
||||||
|
// between sessions and rotated to limit storage space usage.
|
||||||
|
//
|
||||||
|
auto sys_sink = boost::make_shared<sinks::asynchronous_sink<sinks::text_file_backend>>
|
||||||
|
(
|
||||||
|
keywords::auto_flush = false
|
||||||
|
#if BOOST_VERSION / 100 >= 1070
|
||||||
|
, keywords::file_name = app_data.absoluteFilePath ("wsjtx_syslog.log").toStdWString ()
|
||||||
|
, keywords::target_file_name =
|
||||||
|
#else
|
||||||
|
, keywords::file_name =
|
||||||
|
#endif
|
||||||
|
app_data.absoluteFilePath ("logs/wsjtx_syslog_%Y-%m.log").toStdString ()
|
||||||
|
, keywords::time_based_rotation = sinks::file::rotation_at_time_point (gregorian::greg_day (1), 0, 0, 0)
|
||||||
|
, keywords::open_mode = std::ios_base::out | std::ios_base::app
|
||||||
|
#if BOOST_VERSION / 100 >= 1063
|
||||||
|
, keywords::enable_final_rotation = false
|
||||||
|
#endif
|
||||||
|
);
|
||||||
|
|
||||||
|
sys_sink->locked_backend ()->set_file_collector
|
||||||
|
(
|
||||||
|
sinks::file::make_collector
|
||||||
|
(
|
||||||
|
keywords::max_size = 5 * 1024 * 1024
|
||||||
|
, keywords::min_free_space = 1024 * 1024 * 1024
|
||||||
|
, keywords::max_files = 12
|
||||||
|
, keywords::target = app_data.absoluteFilePath ("logs").toStdWString ()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
sys_sink->locked_backend ()->scan_for_files ();
|
||||||
|
|
||||||
|
// Per channel severity level filter
|
||||||
|
using min_severity_filter = expr::channel_severity_filter_actor<std::string, trivial::severity_level>;
|
||||||
|
min_severity_filter min_severity = expr::channel_severity_filter (channel, severity);
|
||||||
|
min_severity["SYSLOG"] = trivial::info;
|
||||||
|
min_severity["RIGCTRL"] = trivial::info;
|
||||||
|
min_severity["DATALOG"] = trivial::info;
|
||||||
|
sys_sink->set_filter (min_severity || severity >= trivial::fatal);
|
||||||
|
|
||||||
|
sys_sink->set_formatter
|
||||||
|
(
|
||||||
|
expr::stream
|
||||||
|
<< "[" << channel
|
||||||
|
<< "][" << expr::format_date_time<posix_time::ptime> ("TimeStamp", "%Y-%m-%d %H:%M:%S.%f")
|
||||||
|
<< "][" << expr::format_date_time<posix_time::time_duration> ("Uptime", "%O:%M:%S.%f")
|
||||||
|
<< "][" << trivial::severity
|
||||||
|
<< "] " << expr::message
|
||||||
|
);
|
||||||
|
|
||||||
|
core->add_sink (sys_sink);
|
||||||
|
|
||||||
|
// Indicate start of logging
|
||||||
|
LOG_INFO ("Log Start");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WSJTXLogging::WSJTXLogging ()
|
WSJTXLogging::WSJTXLogging ()
|
||||||
@ -152,77 +223,23 @@ WSJTXLogging::WSJTXLogging ()
|
|||||||
new_config += config.mid (pos);
|
new_config += config.mid (pos);
|
||||||
std::wstringbuf buffer {new_config.toStdWString (), std::ios_base::in};
|
std::wstringbuf buffer {new_config.toStdWString (), std::ios_base::in};
|
||||||
std::wistream stream {&buffer};
|
std::wistream stream {&buffer};
|
||||||
Logger::init_from_config (stream);
|
try
|
||||||
LOG_INFO ("Read logging configuration file: " << log_config.fileName ());
|
{
|
||||||
|
Logger::init_from_config (stream);
|
||||||
|
LOG_INFO ("Read logging configuration file: " << log_config.fileName ());
|
||||||
|
}
|
||||||
|
catch (std::exception const& e)
|
||||||
|
{
|
||||||
|
default_log_config ();
|
||||||
|
LOG_ERROR ("Reading logging configuration file: " << log_config.fileName () << " - " << e.what ());
|
||||||
|
LOG_INFO ("Reverting to default logging configuration");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else // Default setup
|
else // Default setup
|
||||||
{
|
{
|
||||||
//
|
default_log_config ();
|
||||||
// Define sinks, filters, and formatters using expression
|
|
||||||
// templates for efficiency.
|
|
||||||
//
|
|
||||||
|
|
||||||
// Default log file location.
|
|
||||||
QDir app_data {QStandardPaths::writableLocation (QStandardPaths::AppLocalDataLocation)};
|
|
||||||
Logger::init (); // Basic setup of attributes
|
|
||||||
|
|
||||||
//
|
|
||||||
// Sink intended for general use that passes everything above
|
|
||||||
// selected severity levels per channel. Log file is appended
|
|
||||||
// between sessions and rotated to limit storage space usage.
|
|
||||||
//
|
|
||||||
auto sys_sink = boost::make_shared<sinks::asynchronous_sink<sinks::text_file_backend>>
|
|
||||||
(
|
|
||||||
keywords::auto_flush = false
|
|
||||||
#if BOOST_VERSION / 100 >= 1070
|
|
||||||
, keywords::file_name = app_data.absoluteFilePath ("wsjtx_syslog.log").toStdWString ()
|
|
||||||
, keywords::target_file_name =
|
|
||||||
#else
|
|
||||||
, keywords::file_name =
|
|
||||||
#endif
|
|
||||||
app_data.absoluteFilePath ("logs/wsjtx_syslog_%Y-%m.log").toStdString ()
|
|
||||||
, keywords::time_based_rotation = sinks::file::rotation_at_time_point (gregorian::greg_day (1), 0, 0, 0)
|
|
||||||
, keywords::open_mode = std::ios_base::out | std::ios_base::app
|
|
||||||
#if BOOST_VERSION / 100 >= 1063
|
|
||||||
, keywords::enable_final_rotation = false
|
|
||||||
#endif
|
|
||||||
);
|
|
||||||
|
|
||||||
sys_sink->locked_backend ()->set_file_collector
|
|
||||||
(
|
|
||||||
sinks::file::make_collector
|
|
||||||
(
|
|
||||||
keywords::max_size = 5 * 1024 * 1024
|
|
||||||
, keywords::min_free_space = 1024 * 1024 * 1024
|
|
||||||
, keywords::max_files = 12
|
|
||||||
, keywords::target = app_data.absoluteFilePath ("logs").toStdWString ()
|
|
||||||
)
|
|
||||||
);
|
|
||||||
sys_sink->locked_backend ()->scan_for_files ();
|
|
||||||
|
|
||||||
// Per channel severity level filter
|
|
||||||
using min_severity_filter = expr::channel_severity_filter_actor<std::string, trivial::severity_level>;
|
|
||||||
min_severity_filter min_severity = expr::channel_severity_filter (channel, severity);
|
|
||||||
min_severity["SYSLOG"] = trivial::info;
|
|
||||||
min_severity["RIGCTRL"] = trivial::info;
|
|
||||||
min_severity["DATALOG"] = trivial::info;
|
|
||||||
sys_sink->set_filter (min_severity || severity >= trivial::fatal);
|
|
||||||
|
|
||||||
sys_sink->set_formatter
|
|
||||||
(
|
|
||||||
expr::stream
|
|
||||||
<< "[" << channel
|
|
||||||
<< "][" << expr::format_date_time<posix_time::ptime> ("TimeStamp", "%Y-%m-%d %H:%M:%S.%f")
|
|
||||||
<< "][" << expr::format_date_time<posix_time::time_duration> ("Uptime", "%O:%M:%S.%f")
|
|
||||||
<< "][" << trivial::severity
|
|
||||||
<< "] " << expr::message
|
|
||||||
);
|
|
||||||
|
|
||||||
core->add_sink (sys_sink);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Indicate start of logging
|
|
||||||
LOG_INFO ("Log Start");
|
|
||||||
::qInstallMessageHandler (&qt_log_handler);
|
::qInstallMessageHandler (&qt_log_handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -224,7 +224,7 @@ foreach (lang ${LANGUAGES})
|
|||||||
SOURCE user_guide/wsjtx-main.adoc
|
SOURCE user_guide/wsjtx-main.adoc
|
||||||
LANG "${lang}"
|
LANG "${lang}"
|
||||||
OUTPUT html
|
OUTPUT html
|
||||||
ASCIIDOCTOR_OPTIONS -d book -a data-uri -a toc=left -a max-width=1024px
|
ASCIIDOCTOR_OPTIONS -d book -a data-uri -a toc=left
|
||||||
DEPENDS ${common_SRCS} ${_sources}
|
DEPENDS ${common_SRCS} ${_sources}
|
||||||
)
|
)
|
||||||
document(
|
document(
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
<style>
|
<style>
|
||||||
html, body {
|
html, body {
|
||||||
font-size: 90%;
|
font-size: 90%;
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
font-family: Arial, Helvetica, sans-serif;
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1, h2, h3, h4, h5, h6 {
|
h1, h2, h3, h4, h5, h6 {
|
||||||
font-family: Georgia, "Times New Roman", Times, serif;
|
font-family: Georgia, "Times New Roman", Times, serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
a:visited {
|
a:visited {
|
||||||
color: purple;
|
color: purple;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -6,7 +6,7 @@ Joseph H Taylor, Jr, K1JT
|
|||||||
// package building .deb, .rpm, etc as it exposes the IP address and the images
|
// package building .deb, .rpm, etc as it exposes the IP address and the images
|
||||||
// are non-free, so can't be included as part of the Debian package.
|
// are non-free, so can't be included as part of the Debian package.
|
||||||
// :badges:
|
// :badges:
|
||||||
:docinfo1:
|
:docinfo: shared
|
||||||
:imagesdir: {docdir}/images
|
:imagesdir: {docdir}/images
|
||||||
:icons: font
|
:icons: font
|
||||||
:numbered:
|
:numbered:
|
||||||
|
@ -5006,7 +5006,7 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
|
|||||||
auto const& word_3 = message_words.at (3);
|
auto const& word_3 = message_words.at (3);
|
||||||
auto word_3_as_number = word_3.toInt ();
|
auto word_3_as_number = word_3.toInt ();
|
||||||
if (("RRR" == word_3
|
if (("RRR" == word_3
|
||||||
|| word_3_as_number == 73
|
|| (word_3_as_number == 73 && ROGERS == m_QSOProgress)
|
||||||
|| "RR73" == word_3
|
|| "RR73" == word_3
|
||||||
|| ("R" == word_3 && m_QSOProgress != REPORT))) {
|
|| ("R" == word_3 && m_QSOProgress != REPORT))) {
|
||||||
if(m_mode=="FT4" and "RR73" == word_3) m_dateTimeRcvdRR73=QDateTime::currentDateTimeUtc();
|
if(m_mode=="FT4" and "RR73" == word_3) m_dateTimeRcvdRR73=QDateTime::currentDateTimeUtc();
|
||||||
@ -5035,11 +5035,31 @@ void MainWindow::processMessage (DecodedText const& message, Qt::KeyboardModifie
|
|||||||
m_ntx=4;
|
m_ntx=4;
|
||||||
ui->txrb4->setChecked(true);
|
ui->txrb4->setChecked(true);
|
||||||
}
|
}
|
||||||
else
|
else if ((m_QSOProgress > CALLING && m_QSOProgress < ROGERS)
|
||||||
|
|| word_3.contains (QRegularExpression {"^RR(?:R|73)$"}))
|
||||||
{
|
{
|
||||||
m_ntx=5;
|
m_ntx=5;
|
||||||
ui->txrb5->setChecked(true);
|
ui->txrb5->setChecked(true);
|
||||||
}
|
}
|
||||||
|
else if (ROGERS == m_QSOProgress)
|
||||||
|
{
|
||||||
|
logQSOTimer.start(0);
|
||||||
|
m_ntx=6;
|
||||||
|
ui->txrb6->setChecked(true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// just work them (again)
|
||||||
|
if (ui->tx1->isEnabled ()) {
|
||||||
|
m_ntx = 1;
|
||||||
|
m_QSOProgress = REPLYING;
|
||||||
|
ui->txrb1->setChecked (true);
|
||||||
|
} else {
|
||||||
|
m_ntx=2;
|
||||||
|
m_QSOProgress = REPORT;
|
||||||
|
ui->txrb2->setChecked (true);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (m_QSOProgress >= ROGER_REPORT)
|
if (m_QSOProgress >= ROGER_REPORT)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user