Commit Graph

702 Commits

Author SHA1 Message Date
Bill Somerville
dc1fdd9562
Remove some obsolete CMake options 2020-09-25 02:41:47 +01:00
Bill Somerville
3fafbdaaa3
Boost log set up for WSJT-X
Rotated  log files  limited to  ten  saved logs  with timestamped  and
counted file names. Logs written to writeable files directory. Formats
and file  names hard coded  with expression templates  fro efficiency,
but with the ability to provide a user-defined configuration file that
overrides the hard-coded  defaults. The configuration file  must be in
the configuration files directory and named wsjtx_log_config.ini.
2020-09-25 00:50:32 +01:00
Bill Somerville
1a6474976c
Wrap QProcess to avoid inherited handles causing issues on Windows 2020-09-24 17:53:21 +01:00
Bill Somerville
b6d95d54d3
Merge branch 'develop' into feat-boost-log 2020-09-20 23:50:33 +01:00
Bill Somerville
542ffe8311
Improve audio device handling and error recovery
where possible  audio devices that  disappear are not  forgotten until
the user selects another device, this should allow temporarily missing
devices or forgetting  to switch on devices before  starting WSJT-X to
be  handled more  cleanly. If  all else  fails, visiting  the Settings
dialog and  clicking OK should  get things  going again. Note  that we
still  do not  have  a  reliable way  of  detecting  failed audio  out
devices, in that  case selecting another device and  then returning to
the original should work.

Enumerating  audio devices  is expensive  and on  Linux may  take many
seconds per  device. To avoid  lengthy blocking behaviour until  it is
absolutely necessary,  audio devices are  not enumerated until  one of
the "Settings->Audio" device drop-down lists is opened. Elsewhere when
devices  must be  discovered  the  enumeration stops  as  soon as  the
configured device is  discovered. A status bar message  is posted when
audio devices are being enumerated as a reminder that the UI may block
while this is happening.

The message box warning about  unaccounted-for input audio samples now
only triggers when  >5 seconds of audio appears to  be missing or over
provided. Hopefully this will make the warning less annoying for those
that are  using audio sources  with high and/or variable  latencies. A
status  bar message  is still  posted for  any amount  of audio  input
samples  unaccounted for  >1/5 second,  this message  appearing a  lot
should be considered as notification that  there is a problem with the
audio sub-system, system load is  too high, or time synchronization is
stepping the PC clock rather  than adjusting the frequency to maintain
monotonic clock ticks.
2020-09-20 18:20:16 +01:00
Bill Somerville
f66788691d
Set up for Boost logging in WSJT-X
uses a  settings file to  define log  sink back-ends, by  default uses
:/wsjtx_log_config.ini  from  the  resources file-system.   Users  may
override  by placing  their own  wsjtx_log_config.ini into  the WSJT-X
config location. The settings file format is as described in the Boost
log
documentation (https://www.boost.org/doc/libs/1_74_0/libs/log/doc/html/log/detailed/utilities.html#log.detailed.utilities.setup.settings_file)
with the additional feature that  allows some pre-defined variables to
be expanded. The  predefined variables refer to  standard locations in
the file-system,  and allow  log files  and rotation  target directory
paths to be specified. The pre-defined variables are:

   DesktopLocation
   DocumentsLocation
   TempLocation
   HomeLocation
   CacheLocation
   GenericCacheLocation
   GenericDataLocation
   AppDataLocation

and  must  be   used  enclosed  on  braces  and  preceded   by  a  '$'
character. E.g. to define the pattern for a sink's log file:

   FileName="${AppLocalDataLocation}/wsjtx_syslog.log"

this would place the log file wsjtx_syslog.log in the WSJT-X log files
directory, on all platforms.
2020-09-18 21:23:11 +01:00
Bill Somerville
b420c9f6d3
Basic support for using the Boost log library 2020-09-18 21:12:53 +01:00
Bill Somerville
0bca52d2d8
Switching to consuming Boost as external libraries 2020-09-18 18:40:14 +01:00
Bill Somerville
e65caabdea
Build with Boost Log library and dependants
Requires Boost libraries to be available as an external library.

On Debian style Linux distributions:

sudo apt install boost-dev-all

On Red Hat style Linux distributions:

sudo dnf install boost-dev

On macOS install Boost from a suitable Open Source package manager,
e.g. MacPorts:

sudo port install boost

If building WSJT-X  packages on macOS for distribution  you must build
boost and  its dependants from  sources with a  suitable macports.conf
file specifying the target macOS  version (10.12 at present). To build
Boost from sources in this case:

sudo port -s install boost

On MS Windows boost must be built from sources using the correct MinGW
compilers,  i.e. the  Qt  tools  32- or  64-bit  g++  for each  target
bit-width respectively.  To  build boost something along  the lines of
the following recipe should be used:

1)     Download    the     boost    ZIP     source    archive     from
https://sourceforge.net/projects/boost/, the latest  release should be
OK, at the time of writing that was 1.74,

2) create a directory for the sources:

MKDIR C:\boost-install

and extract the boost sources there.

3) Bootstrap and  build Boost.Build. If you are building  both 32- and
64-bit  variants then  do  this  twice, each  from  the correct  MinGW
terminal  session  for  the  necessary tool-chain.  Specify  a  unique
install directory  for each variant  (--prefix=). I use C:\Tools  as a
root directory for external libraries and tools, choose whatever suits
your development environment.

CD C:\boost-install\boost_1_74_0\tools\build
bootstrap.bat gcc
b2 --prefix="C:\Tools\boost-build\MinGW32" install

CD C:\boost-install\boost_1_74_0\tools\build
bootstrap.bat gcc
b2 --prefix="C:\Tools\boost-build\MinGW64" install

4) Build Boost. If you are  building both 32- and 64-bit variants then
do this  twice, each from the  correct MinGW terminal session  for the
necessary tool-chain. Specify a unique build and install directory for
each variant (--build-dir=  and --prefix=).  I use C:\Tools  as a root
directory for external libraries and tools, choose whatever suits your
development environment.

SET Path=%Path%;C:\Tools\boost-build\MinGW32\bin
CD C:\boost-install\boost_1_74_0
b2 --build-dir="C:\boost-install\boost_1_74_0\build" ^
 --build-type=complete ^
 --prefix="C:\Tools\boost\MinGW32" ^
 toolset=gcc install

SET Path=%Path%;C:\Tools\boost-build\MinGW32\bin
CD C:\boost-install\boost_1_74_0
b2 --build-dir="C:\boost-install\boost_1_74_0\build" ^
 --build-type=complete ^
 --prefix="C:\Tools\boost\MinGW32" ^
 toolset=gcc address-model=64 install

5)  Once successfully  built  the sources  directory  and build  trees
within can be deleted. The build products are contained in the install
directories (C:\Tools\boost-build and C:\Tools\boost in my case).

6) Update  your development environment  to include the  boost headers
and libraries. In  my case I have  scripts that set up  32- and 64-bit
environments,  they need  to be  modified to  include the  appropriate
boost library  directories on  the Path  environment variable  so that
applications  linked  to Boost  libraries  can  locate the  DLLs.  For
32-bit:

SET Path=C:\Tools\boost\MinGW32\lib;%Path%

For 64-bit:

SET Path=C:\Tools\boost\MinGW64\lib;%Path%

7) To  build WSJT-X  CMake will need  to be able  to locate  the Boost
libraries. I do that using tool-chain files for each of 32- and 64-bit
in both Debug and Release configurations which are passed to the CMake
configuration  invocation using  the -DCMAKE_TOOLCHAIN_FILE=  variable
assignment.  In the  tool-chain files you need to  add the appropriate
Boost  installation  directory   to  the  CMAKE_PREFIX_PATH  variable,
something like:

set (BOOSTDIR C:/Tools/boost/MinGW32)
...
set (CMAKE_PREFIX_PATH ${BOOSTDIR} ${QTDIR} ...

adjust as needed for 32- or 64-bit variants.
2020-09-15 10:35:34 +01:00
Steven Franke
5ca81a6507
Use 3rd order polynomial fit to estimate the noise baseline. The
polynomial fit is done over 400 Hz bandwidth for T/R periods longer
than 15s, and over approx. 600 Hz (10 times the signal bandwidth) for
T/R period of 15s.
2020-08-29 19:55:23 +01:00
Steven Franke
e232c32178 Use 3rd order polynomial fit to estimate the noise baseline. The
polynomial fit is done over 400 Hz bandwidth for T/R periods longer
than 15s, and over approx. 600 Hz (10 times the signal bandwidth) for
T/R period of 15s.
2020-08-28 09:22:22 -05:00
Bill Somerville
4a2a181528
Merge branch 'develop' into feat-fst280 2020-08-17 18:33:00 +01:00
Bill Somerville
3d45e1128a Further Linux depedency and User Guide updates 2020-08-16 19:50:34 +01:00
Bill Somerville
fb7af6c696
Further Linux dependency and install documentation updates 2020-08-16 19:11:51 +01:00
Bill Somerville
549198566b
Linux package dependency updates 2020-08-16 18:06:26 +01:00
Bill Somerville
f7377e686f
Move bundled cty.dat from resources FS to installation data dir
This file is only used at start up so there is little point to keeping
it in program memory.
2020-08-14 14:47:07 +01:00
Bill Somerville
9c43668640
Break unnecessary Qt link dependencies in Fortran utilities 2020-08-08 15:03:46 +01:00
Bill Somerville
0ba5d7e1bf
More flexibility for QDateTime round/truncate routine 2020-08-07 21:31:48 +01:00
Joe Taylor
335cc41faa More code cleanup. Rename sync66a to sync66. 2020-08-04 13:13:49 -04:00
Joe Taylor
c91baddb2c New sync66a subroutine for QRA66. 2020-08-03 16:30:29 -04:00
Joe Taylor
a0b5be009a Merge branch 'feat-fst280' of bitbucket.org:k1jt/wsjtx into feat-fst280 2020-08-01 10:14:26 -04:00
Joe Taylor
f45c617422 First working QRA66 decoder. 2020-08-01 09:24:59 -04:00
Joe Taylor
c4ef1e3e25 Starting on a decoder for QRA66. Now have found xdt and f0 from the sync vector. 2020-07-31 16:38:21 -04:00
Joe Taylor
09686b9958 Add a simulator for experimental mode QRA66. 2020-07-31 10:59:05 -04:00
Bill Somerville
92cf7b29c2
Merge branch 'develop' into feat-fst280 2020-07-31 15:00:50 +01:00
Bill Somerville
c2b835c42b
Translatable help windows 2020-07-29 18:44:34 +01:00
Bill Somerville
790fde2123
Update package dependdencies for Debian style packages 2020-07-29 11:00:42 +01:00
Bill Somerville
afceaa09f0 Update packge dependencies for RPM style packages 2020-07-29 02:01:23 +01:00
Bill Somerville
9c22eb321d
Merge branch 'develop' into feat-fst280 2020-07-26 16:20:11 +01:00
Bill Somerville
7bb5a8e009
Merge branch 'develop' into feat-psk-reporter-re-work 2020-07-26 15:52:39 +01:00
Bill Somerville
2f700265b9
Merge branch 'develop' into feat-fst280 2020-07-26 10:20:55 +01:00
Steven Franke
085e63e05d Rename fst240 to fst4 in Fortran routines. 2020-07-23 12:48:50 -05:00
Joe Taylor
372651ae55 Add a simple execution timer for small blocks of code. 2020-07-22 10:43:33 -04:00
Bill Somerville
22f66795a1
Improved C/Fortran string interoperation, and fix azel.dat updates
The azel.dat file is no  longer written with future Doppler correction
information designed  for rigs  that can't do  CAT QSY  commands while
transmitting.
2020-07-20 15:15:55 +01:00
Joe Taylor
cbeb81b499 Add LF/MF noise blanker capability for FST240 and FST240W. 2020-07-14 11:27:41 -04:00
Bill Somerville
bcff949025
Update some missing i18n strings 2020-07-13 00:55:42 +01:00
Bill Somerville
adafb89769
Install FST240 simulator 2020-07-08 00:10:48 +01:00
Bill Somerville
61a72e9d91
Merge branch 'develop' into feat-fst280 2020-07-06 23:44:00 +01:00
Bill Somerville
90e18e50de
Danish UI translation, thanks to Michael, 5P1KZX 2020-07-05 12:42:08 +01:00
Bill Somerville
74c7fade32
Disable Hamlib caching while determining rig VFO resolution 2020-07-04 22:19:59 +01:00
Steven Franke
c176572ec0 Add options for sub-symbol integration for sync and symbol estimation. 2020-07-04 09:15:57 -05:00
Steven Franke
6ebb487cd5 Remove residual WSPR_LF that was causing build errors. Build ldpcsim240_74. 2020-07-01 14:40:37 -05:00
Steven Franke
e8bb7e74bc Add routines for a (240,74) code. Hardwire decoder for wspr messages, for the time being. 2020-06-30 13:29:32 -05:00
Steven Franke
390884268c Wholesale change from FST280 to FST240 2020-06-27 08:53:11 -05:00
Bill Somerville
af894c6039
Rename files to match class name
Avoiding case insensitive file system issues.
2020-06-21 02:15:31 +01:00
Bill Somerville
b48b23450d
First iteration of optional TCP/IP client for PSK Reporter 2020-06-21 01:36:30 +01:00
Joe Taylor
af9f7b21c0 Starting to implement FST280 decoder. Make Rx sequences behave as desired. 2020-06-17 10:56:18 -04:00
Bill Somerville
3424dd7aa1
Typos in source file names and missed file 2020-06-16 19:39:04 +01:00
Steven Franke
5dfb3c781b Add fst280 files to CMakeLists.txt. Doesn't build yet. 2020-06-16 12:59:22 -05:00
Bill Somerville
9c22b5c3ed
Qt v5.15 compatibility 2020-06-13 16:04:41 +01:00
Bill Somerville
b9491862a1
Enable Italian UI translation 2020-06-04 23:32:29 +01:00
Bill Somerville
1b26218897
Italian UI translation, tnx Marco, PY1ZRJ 2020-06-04 23:31:49 +01:00
Bill Somerville
f5a284fe54
New proposed Danish UI translation from Michael, 5P1KZX 2020-06-04 16:28:49 +01:00
Bill Somerville
27a3b4d8fa
Add pending translations as comments in language list
and fix a defect in setting up new languages.
2020-06-02 21:17:31 +01:00
Bill Somerville
0138bb9a75
Tidy up l10n and allow for override to 'en' with no translations
Passing `--language en', '-l en-US', or `-l en_US` now takes a special
action to  not load  any translations using  the current  locale. This
allows the current system UI language not to influence an translations
loaded via the command line override when the native en-US is wanted.
2020-06-01 11:12:49 +01:00
Bill Somerville
1371b71c5a
Avoid duplicate resources and ensure generic Qt UI l10n loaded 2020-05-31 14:43:01 +01:00
Bill Somerville
51f18b1faa
Chinese and HK Chinese UI translations, thanks Sze-To, VR2UPU 2020-05-31 14:24:14 +01:00
Bill Somerville
4f0c125dbe
Japanese UI translation, thanks to Oba san, JA7UDE 2020-05-31 13:44:44 +01:00
Bill Somerville
1da87fe904
Empty wsjtx_en.qm so that macOS doesn't load a secondary l10n 2020-05-30 22:01:47 +01:00
Bill Somerville
e7b8c5e7c0
Remove UI languages we do not yet have translation files for 2020-05-28 23:58:03 +01:00
Bill Somerville
399baf6f83
Allow macOS 10.12 support as Qt 5.12 is OK with that 2020-05-28 11:06:07 +01:00
Bill Somerville
3a1b42a3fd
Enable UI translations to Japanese 2020-05-26 12:57:38 +01:00
Bill Somerville
0856c4298a
Use language only to identify Spanish translation files
This  allows the  Spanish UI  translation to  work, for  now, for  all
Spanish speaking locales.  If necessary we  can make it es-ES if other
translators feel it is not a good base for their Spanish variant. OTOH
if they just need to l10n a  few strings then, say for Argentina, then
they can do  that in an wsjtx_es_AR.ts and  untranslated strings there
will fall back to the  ones in wsjtx_es.ts automatically. This happens
because of teh way the application loads multiple translation files in
an order suitable for that to happen.
2020-05-26 00:01:43 +01:00
Bill Somerville
7425f13abc
Add some polish to i18n
package Qt translations so that standard buttons etc. get l10n.
2020-05-25 22:44:05 +01:00
Bill Somerville
75c4dca87c
Switch to a single common Catalan language translation file
Xavi,  EA3W, assures  me that  all Catalan  dialects and  variants are
essentially  the same,  so there's  no  need to  have country  variant
specific Catalan translation files.
2020-05-19 12:28:50 +01:00
Joe Taylor
24bd0f807f Silence some compiler warning messages. 2020-05-17 14:09:25 -04:00
Bill Somerville
7046a9f937
Cosmetic file formatting 2020-05-13 03:20:38 +01:00
Bill Somerville
1439d9a85e
Package the Qt QMacStyle plugin on macOS, req. since Qt 5.11 2020-05-11 23:40:03 +01:00
Bill Somerville
1d70b77c8a
Fix a typo in the project summary description 2020-05-11 23:54:31 +01:00
Bill Somerville
97078eb8df
Update build script to macOS minimum version of 10.13 2020-05-07 17:42:14 +01:00
Bill Somerville
64fb919bed
Don't package webGL platform support on macOS 2020-05-07 17:19:02 +01:00
Steven Franke
c0da6ce265 Housekeeping. 2020-05-05 14:05:46 -05:00
Steven Franke
3405687e89 Clean up in preparation for RC release. 2020-05-05 13:45:02 -05:00
Steven Franke
093c403063 Implement coupled BP->OSD decoding for FT8/FT4. 2020-05-04 13:13:49 -05:00
Steven Franke
68efcca51d Merge branch 'develop' of bitbucket.org:k1jt/wsjtx into develop 2020-05-02 08:10:42 -05:00
Steven Franke
b0ef40cb1d Add routines for ft4slow based on (280,101) code. 2020-05-02 08:10:35 -05:00
Joe Taylor
0a14984d6a Add a program to sum together several .wav files of simulated data. 2020-04-30 16:53:44 -04:00
Steven Franke
73e2aa9573 Add routines needed to test (240,101) qso mode. 2020-04-26 14:34:09 -05:00
Steven Franke
2d2ac37539 Merge branch 'develop' of bitbucket.org:k1jt/wsjtx into develop 2020-04-23 11:55:41 -05:00
Steven Franke
77ed319a8e Add new routines to CMakeLists.txt. 2020-04-23 11:55:36 -05:00
Bill Somerville
cafa9ea277
Update build script for new source file 2020-04-22 17:34:38 +01:00
Steven Franke
529cc1bae1 Speed up wspr4d. 2020-04-21 13:44:24 -05:00
Joe Taylor
b0a7cef3bd More tweaks to minimize false JT65 decodes when strong signals are present. 2020-04-19 18:56:16 -04:00
Steven Franke
fae81b6b67 Add routines necessary to support a crc24-aided (174,101) code. 2020-04-17 14:11:12 -05:00
Steven Franke
b8ff0941e8 Add wspr4d and support routines. Not yet working. 2020-04-15 15:45:07 -05:00
Joe Taylor
7d941ba67f Merge branch 'develop' of bitbucket.org:k1jt/wsjtx into develop 2020-04-14 15:36:16 -04:00
Joe Taylor
dc71fd70d5 Stated WSPR power levels below 0 dBm are not allowed. Remove them from TxPowerComboBox. 2020-04-14 12:12:53 -04:00
Steven Franke
c5e2593979 Add routines necessary to generate simulated 'wspr4' wav files. 2020-04-14 10:34:00 -05:00
Joe Taylor
e82b9ffa38 Allow entry and decoding of WSPR-format message in ldpcsim174_74. 2020-04-13 15:43:34 -04:00
Steven Franke
5e391c7ff8 Push CMakeLists.txt changes needed to compile the new (174,74) routines. 2020-04-13 13:19:12 -05:00
Steven Franke
f78f63a53d Merge branch 'feat-50bit' into develop 2020-04-03 10:34:02 -05:00
Steven Franke
cf5a69d25b Updates and additions to wsprcpm files. 2020-04-03 10:27:43 -05:00
Joe Taylor
38f11fee62 Enhance packjt77 to include 50-bit WSPR-style messages. Build encode77[.exe]. 2020-03-30 13:37:34 -04:00
Bill Somerville
28e78870e8
Fix comment typo 2020-03-20 10:58:56 +00:00
Bill Somerville
d2ba450315
Squash a couple of warnings that are not real issues 2020-03-20 10:57:19 +00:00
Joe Taylor
2653626d45 Replace the changes I removed by executing 'git reset HEAD~'. 2020-03-16 10:27:22 -04:00
Steven Franke
478fd74e84 Remove reference to obsolete file ft8.f90 in CMakeLists.txt. 2020-02-25 17:06:36 -06:00
Steven Franke
08baa50a01 Experimental change to enable OSD decoding for MSK144 when ntol .le. 50 Hz 2020-02-13 08:48:51 -06:00
Steven Franke
ff109a60ca Implement AP decoding for Hounds when Fox has a compound call with standard base call. 2020-02-03 10:48:51 -06:00
Joe Taylor
3397bf49b4 Add utility program ft4code. 2019-12-18 10:02:00 -05:00
Bill Somerville
b6b8271a6d
Item delegate for SQLite date and time fields 2019-12-08 18:36:04 +00:00
Bill Somerville
d5269c9002
Increase stack size for jt9
A recent change has blown the Windows default stack size.
2019-12-04 17:53:41 +00:00
Steve Franke
a0d471cb0b Improve FT8 SNR estimates in two ways:
(i) SNR no longer saturates at +20 dB
(ii) a large signal in the passband no longer causes the
SNR of weaker signals to be biased low.
2019-11-27 15:58:52 -06:00
Steve Franke
d1530b0c19 Rename ft8sim files as follows:
ft8sim_gfsk.f90 => ft8sim.f90
ft8sim.f90 => ft8sim_fsk.f90

This change reflects the fact that the GFSK waveform is now used in WSJT-X
for ft8 and ft4.
2019-11-27 09:08:17 -06:00
Bill Somerville
60332e799e
Merge branch 'develop' into feat-refactor 2019-07-04 12:34:20 +01:00
Steve Franke
fa44ed84c5 Remove an unused routine. Minor tweaks. 2019-07-03 10:55:13 -05:00
sirhc808
dd53e8d348 incorporate code review feedback 2019-07-02 13:00:32 -05:00
sirhc808
1f57ba5fec improve physical structure 2019-07-02 12:45:05 -05:00
sirhc808
27d4471cde Merge branch 'ft9_refactor' into feat-refactor
# Conflicts:
#	CMakeLists.txt
#	lib/ft4/getcandidates4.f90
#	lib/ft4/sync4d.f90
2019-07-02 12:06:14 -05:00
sirhc808
ee5d5c8ae9 improve physical structure 2019-07-02 10:19:43 -05:00
sirhc808
50ce71b47a improve physical structure 2019-07-01 21:52:32 -05:00
sirhc808
47b8d4422c fix some errrrrors 2019-07-01 21:19:18 -05:00
sirhc808
6692b8427d break build on C++ warnings 2019-07-01 21:15:53 -05:00
sirhc808
4317f54b1a simple CMake fix to use Qt's latest CMake support 2019-07-01 19:36:14 -05:00
Bill Somerville
857afbe500
Merge commit '86c48cb49f3dfb7752a17b80a3ab06d98cd9878d' into release-2.1.0 2019-07-02 00:38:43 +01:00
sirhc808
86c48cb49f Update to use current version of Qt's CMake support 2019-07-01 14:19:43 -05:00
Joe Taylor
9de51ebfa3 Rename and tweak rtty_spec.f90. 2019-06-12 11:31:35 -04:00
Steve Franke
3c23a05d1f Move demod and bit metric calculation to a subroutine. This will make
it easier to experiment with alternative schemes for demod.
2019-06-08 08:34:46 -05:00
Bill Somerville
7d14602b07
Merge branch 'release-2.1.0' of bitbucket.org:k1jt/wsjtx into release-2.1.0 2019-06-06 13:19:02 +01:00
Bill Somerville
45b12e6028
Preparation for UI i18n
Re-enabling the WSJT-X i18n  facilities. This allows translation files
to  be created  for languages  that are  automatically used  to lookup
translatable strings. To enable a  new language the language name must
be added to the CMakeLists.txt LANGUAGES list variable in BCP47 format
(i.e. en_US,  en_GB, pt_PT, ...). Do  one build with the  CMake option
UPDATE_TRANSLATIONS enabled  (do not  leave it enabled  as there  is a
danger of loosing existing translated texts), that will create a fresh
translations/wsjtx_<lang>.ts file which  should be immediately checked
in with the  CMakeLists.txt change. The .ts should then  be updated by
the translator using  the Qt Linguist tool to  add translations. Check
in the  updated .ts file  to complete the initial  translation process
for that language.

To  aid translators  their WIP  .ts file  may be  tested by  releasing
(using the  lrelease tool or  from the Linguist  menu) a .qm  file and
placing  that  .qm  file  in the  current  directory  before  starting
WSJT-X. The translations will be used if the system locale matches the
file name.   If the system  locale does not  match the file  name; the
language may be  overridden by setting the  LANG environment variable.
For  example if  a wsjtx_pt_PT.qm  file  is in  the current  directory
WSJT-X will use it for  translation lookups, regardless of the current
system locale setting, if the LANG variable is set to pt_PT or pt-PT.

On MS Windows from a command prompt:

 set LANG=pt_PT
 C:\WSJT\wsjtx\bin\wsjtx

elsewhere:

 LANG=pt_PT wsjtx
2019-06-06 12:56:25 +01:00
Steve Franke
1758e7266b Remove deleted files from CMakeLists.txt 2019-06-05 10:19:40 -05:00
Bill Somerville
19c46774b4
Moving toward multiplier and dupe detection for contest modes
There's not  much to show  for this so far  but some of  the necessary
infrastructure is in place.
2019-05-30 22:20:09 +01:00
Bill Somerville
8035880c45
CMake updates to remove warnings when using recent CMake versions 2019-05-28 19:00:13 +01:00
Steve Franke
a56960a19b Remove syncft4.f90 from CMakeLists.txt. 2019-05-26 10:06:59 -05:00
Steve Franke
3bc5e538d2 FT4: Implement polynomial baseline fit. 2019-05-25 10:58:04 -05:00
Steve Franke
80307b64ad Add a temporary research tool. 2019-05-22 17:01:06 -05:00
Bill Somerville
3a3af42cc6 Tool to exercise QAudioInput
The tool record_time_signal is designed  to measure the performance of
QAudioInput. The  intended use  is to  record a  short period  of live
audio from  an on-air time  signal of  known good quaility,  the basic
required parameters  are an  audio input device,  an output  file name
(.WAV), a start second in a minute,  and a duration in seconds. So for
example to record  the time signal ticks  and fast data at  the top of
the minute:

    $ record_time_signal -o wwv.wav -s 55 -d 15

will record  15s of  audio at  48000Hz sample  rate, stereo,  from the
default audio  input device, starting  at second  55. This will  use a
separate timer  to stop  the recording  which is  likely to  leave the
output file a little short due  to buffer latency. The buffer size can
be adjusted using the '-b <buffered-frames>' option.

The tool  also supoorts  a different mechanism  to time  the recording
which uses the audio progress via  a notify signal. This should ensure
at least  the requested  duration is recorded  The shorter  the notify
interval  the  closer teh  final  size  shoould  be to  the  requested
duration.  Use the  '-d  <interval-ms>' option  to  adjust the  notify
interval.

    $ record_time_signal -o wwv.wav -s 55 -d 15 -n 100

Non-default audio devices can be selected, use the '-I' option to list
the available input  devices with an index number that  can be used to
select the device using the 'R <device-number>' option.

Other options are available, use '-h' for details.
2019-05-10 17:27:52 +01:00
Steve Franke
be72461142 FT4: Some groundwork for subtraction. 2019-04-18 14:15:24 -05:00
Joe Taylor
e0d4c94cc1 Some very basic functionality for time-synchronized FT4. 2019-04-01 14:23:10 -04:00
Bill Somerville
303ff7da5f Improved CMake script for 64-bit builds on MS Windows 2019-03-25 18:02:50 +00:00
Bill Somerville
0d42ad5b3e Revert RC number and fix CMake build script 2019-03-23 01:21:42 +00:00
Steve Franke
4769bf45d2 Make FT4 AP decoding work in RTTY RU and Field Day activities.
Move Nuttal window to standalone subroutine nuttal_window.f90 and
use Nuttal window in ft4/getcandidates4.f90.
2019-03-03 13:02:22 -06:00
Bill Somerville
278c544a6a Merge branch 'develop' into feat-ft2 2019-02-26 11:52:14 +00:00
Bill Somerville
c60fbc11b6 Fix samples CMake script and update NEWS and copyright dates
Preparation for v2.0.1 GA release.
2019-02-25 03:07:51 +00:00
Steve Franke
1acb5d5d99 Add routines needed to test FT8 with GFSK pulses. 2019-02-21 15:48:02 -06:00
Joe Taylor
073a22125a Minor cleanup: debugging a problem with FT4 decoding. 2019-02-14 14:09:22 -05:00
Bill Somerville
7ec99d2a75 Update CMakeLists.txt to reflect the oldest supported macOS version (10.10) 2019-02-10 22:08:04 +00:00
Steve Franke
cbfcb76193 AP decoding basically works. Make data_dir setting work on the Mac. 2019-02-07 18:48:38 -06:00
Joe Taylor
98d665c678 Add subroutine clockit() and use it for profiling ft4_decode(). 2019-02-01 10:47:47 -05:00
Joe Taylor
9c2700128c Generation of FT4 Tx waveform from itone() moved to a separate subroutine. 2019-01-31 16:07:07 -05:00
Joe Taylor
189f538dc0 Add ft4sim_mult, which is basically functional. 2019-01-30 15:33:47 -05:00
Joe Taylor
6e4f0f32ee Remove FT2; implement basic functionality in FT4. 2019-01-28 10:19:46 -05:00
Steve Franke
d9f4a27a3e Create ft4_decode.f90. Change stand-alone decoder ft4d.f90 to use ft4_decode.f90. 2019-01-26 11:42:07 -06:00
Steve Franke
66e3f11fba Add ft4 files in lib/ft4. 2019-01-25 16:01:34 -06:00
Bill Somerville
6ac24e75cb Add the new rigctlcom utility to the installer as rigctlcom-wsjtx
Thanks to Mike, W9MDB, for this contribution.
2019-01-22 20:23:17 +00:00
Steve Franke
b4639b77d0 Fix CMakeLists.txt so that ft2_decode still builds. Fix a bug in ft4d - sync now seems to work. 2019-01-21 19:52:13 -06:00
Steve Franke
7b7857cd77 Merge branch 'feat-ft2' of bitbucket.org:k1jt/wsjtx into feat-ft2 2019-01-21 19:33:51 -06:00
Steve Franke
f2dc394c84 Add ft4 files; ft4sim works, ft4d is work in progress. 2019-01-21 19:31:54 -06:00
Joe Taylor
486440beb4 Merge branch 'feat-ft2' of bitbucket.org:k1jt/wsjtx into feat-ft2 2019-01-18 16:23:19 -05:00
Joe Taylor
5f03d97a9e Implement basic Rx capability for FT2 in WSJT-X. 2019-01-18 11:51:15 -05:00
Steve Franke
f447fe49e1 Fix some indexing problems. Create subroutine ft2_gfsk_iwave.f90 for use with ft2.exe. Needs testing. 2019-01-17 15:25:06 -06:00
Bill Somerville
aee9c09851 Merge branch 'develop' into feat-ft2 2019-01-16 20:44:44 +00:00
Steve Franke
cf1fe6c3d6 More work on FT2. New frame format is 16sync + 128codeword. Data chunk is assumed to be 2.5s long. A rudimentary sync routine is implemented which finds the single strongest signal. 2019-01-12 13:28:10 -06:00
Steve Franke
e0658f183f Add simulator (ft2sim.f90) and decoder (ft2d.f90) for experimental medium-fast mode. 2019-01-10 10:20:31 -06:00
Joe Taylor
95599a7153 Add a standalone FT8 decoder, for testing. 2019-01-09 12:45:20 -05:00
Bill Somerville
6e949fa64d Debug trace facility for UDP message protocol
Build with the CMake configuration  WSJT_TRACE_UDP set to ON to enable
UDP message tracing to the debug log.
2019-01-01 23:38:14 +00:00
Steve Franke
7a40bf2e4b Use separate hash tables for 10, 12, and 22 bit hashes. Make unpacking i3=4 messages depend on whether unpack is being done on a received message, or a to-be-transmitted message. Give mycall13 priority over hash table entries in certain contexts. 2018-12-20 15:08:29 -06:00
Bill Somerville
d241217737 Add QDarkStyleSheet to Message Aggregator reference application 2018-12-17 01:48:45 +00:00
Steve Franke
337bae6d0d Housekeeping. Remove unused code and unused variables. Silence some compiler warnings. 2018-12-05 16:06:33 -06:00
Steve Franke
a5e82ac94c Delete an unused routine. Fix a typo in a comment. 2018-12-04 20:01:55 -06:00
Bill Somerville
cf6311e007 Scan ADIF log asynchronously and new settings button to rescan ADIF log 2018-11-30 16:26:46 +00:00
Bill Somerville
155a56364a Merge branch 'hotfix-2.0.0-rc5' of bitbucket.org:k1jt/wsjtx into hotfix-2.0.0-rc5 2018-11-23 23:37:56 +00:00
Steve Franke
e434bc5b55 Remove obsolete routines related to msk144. 2018-11-23 15:10:44 -06:00
Bill Somerville
c81b3c8e65 Validate contest QSO details before allowing logging
Basic  validation, must  have  non-empty exchange  sent and  received.
Abstracted log view window widget  behaviour into a base class. Turned
on  auto  resize  to  row  height in  log  view  windows  and  enabled
alternating colours. Convert  empty fields to NULL  when inserting new
log table  rows to signify missing  data. Trap insert row  errors when
adding  to contest  log table  so  that logging  can be  held back  if
constraints are not met. Re-factored  log QSO processing to try insert
row into log table  first and pop up a message  box if constraints are
not met, this pops  up the Log QSO window in case  it was initiated by
an auto log event.
2018-11-23 01:18:39 +00:00
Joe Taylor
43a5d7b519 Starting branch hotfix-2.0.0-rc5. 2018-11-14 10:44:36 -05:00
Bill Somerville
df4dbd546b Add new CabrilloLogWindow widget to display/edit running contest log 2018-11-12 04:13:23 +00:00
Bill Somerville
31b6120e60 Add a Cabrillo contest log model 2018-11-12 02:11:58 +00:00
Bill Somerville
97431d8154 Add some item delagate classes useful for database fields 2018-11-12 02:00:35 +00:00
Bill Somerville
947b429723 Start implememntation of database based Fox log model and a new Fox log window widget
This change incorporates a reorganization of the GUI code with
widgets, validators, models, and item delegates being moved to
sub-directories.

Relax  the   requirements  of   the  ForeignKeyDelegate   and  related
CandidateKeyFilter classes to  allow them to work  with constant model
pointers for both referenced and referencing models.
2018-11-07 17:49:45 +00:00
Joe Taylor
0235cf69ff Remove all vestiges of old (isync=1) FT8 mode. Many changes here! 2018-11-05 11:59:48 -05:00
Bill Somerville
75186dfeff Refactor ARRL contest exchange validators to use regexps and the existing Configuration validate method 2018-10-31 22:42:26 +00:00
Bill Somerville
1ff4d53f05 Take advantage of the rest of the AD1C cty.dat info for highlighting
Highlighting for new continent, CQ  zone, and ITU zone added. Includes
a new class to manage the AD1C cty.dat database in memory.
2018-10-26 03:24:36 +01:00
Bill Somerville
8215f3412b Priorities for decoded message highlighting and new worked before internal database
Settings option to highlight not worked before entities/grids/calls by
mode. Fix issues with highlighting  decodes and generally refactor the
internal  workings  of  ADIF  and  QSO  recording  for  worked  before
detection.
2018-10-25 00:00:19 +01:00
Joe Taylor
68d3cab1d7 Don't need parse77() any more, so remove it. 2018-10-21 16:04:57 -04:00
Steve Franke
6483e80c35 Make msk144code work. Rename msk144d2 to msk144d and make it work too. 2018-10-19 19:42:31 -05:00
Steve Franke
d0f0d420a9 Convert ft8sim.f90 to use 77bit messages. Remove ft8sim2.f90. 2018-10-19 16:52:00 -05:00
Bill Somerville
873b1d1c43 Updated decode highlighting and LotW user's data file management
Includes a new settings facility  with the highlighting being contrled
by a new model class and a  modified QListView to display the data for
editing. Edits  include enable and  disable check boxes,  a contextual
pop-up menu to adjust backkground and foreground colours.

Still   to   be   implemented    are   priorities   for   highlighting
categories. This  will be adjustable  by drag  and drop in  the Colors
settings panel, it is already implemented by the priority order has no
effect on highlighting of decodes yet.

The LotW  users data file fetch  and time since user's  last upload is
now controled from the settings dialog.

This change also drops support for Qt versions before 5.5 so that many
workarounds for earlier versions can be removed.

Debug trace is slightly modified to make better use of the Qt built in
facilities to format and synchronize cross thread messaging.
2018-10-17 00:26:04 +01:00
Joe Taylor
b72e8bd846 Implementing ExportCabrillo. Some work still to do.
(cherry picked from commit 1e5c416cc3)
2018-10-03 16:31:17 -04:00
Joe Taylor
6d096db6d5 Implement a validator for FD and RTTY exchange entries. 2018-10-03 19:32:05 +01:00
Joe Taylor
107a5c5a7e Add exch_valid.f90, a Fortran validator for FD and RU exchanges. 2018-10-03 19:30:39 +01:00
Bill Somerville
0032a00ffe Automatic download of ARRL LotW users file at startup if needed 2018-10-01 21:19:21 +01:00
Bill Somerville
62a4569a4c Class abstracting LotW user lookups which includes asynchronous data loading 2018-10-01 12:42:31 +01:00
Steve Franke
b868cee59f Tweak CMakeLists.txt. 2018-09-13 15:40:52 -05:00
Steve Franke
9657617cdc Merge branch 'integrate-77bit' into develop 2018-09-13 15:24:33 -05:00
Steve Franke
5469adb241 Another tweak to CMakeLists.txt. 2018-09-12 16:57:39 -05:00
Steve Franke
9caaab6042 Modify CMakeLists.txt so that we only build what is needed for the release, more or less. 2018-09-12 16:22:01 -05:00
Steve Franke
629d061e30 Move a couple of simulation files to fsk4hf, which will eventually be excluded from releases. 2018-09-12 13:46:40 -05:00
Steve Franke
087ed57459 Merge branch 'wsprosd' into develop 2018-09-11 16:51:07 -05:00
Steve Franke
af7feaf65a No need to examine every entry in the hash table. Just calculate the hash of OSD-produced callsigns and see if they are in the table. Add OSD decoding to the deep setting for wspr decoding. 2018-09-10 17:01:50 -05:00
Bill Somerville
4f4a2ce44c Add exclusions file that controls published sources
Add lines  to the sources.exclude  file to select paths  and wildcards
that   will  be   excluded   from  source   tarballs.   See  the   tar
--exclude-from=FILE option for syntax.

If a source  directory that is used to build  targets is included then
those targets should  be defined in a CMakeLists.txt file  in the same
directory  and the  following  syntax  should be  used  in the  parent
CMakeLists.txt script to ensue  the parent CMakeLists.txt file remains
valid when the excluded directory is not present:

if (EXITS ${CMAKE_SOURCE_DIR}/optional-source-dir AND IS_DIRECTORY ${CMAKE_SOURCE_DIR}/optional-source-dir)
   add_subdirectory (optional-source-dir)
endif ()
2018-09-10 21:56:51 +01:00
Joe Taylor
4b77045b2b Make the building and installation of utility programs optional. 2018-09-10 16:44:06 -04:00
Joe Taylor
a8d708af67 Preparing for v2.0-rc1 candidate release.
- Add file  contrib/lotw-user-activity.csv, install in data_dir().
 - Add suggested frequencies on 20 and 40m for testing FT8 v2.0 messages.
 - Add a timeout date (Nov 1 2018) beyond which -rc1 will not run.
 - Change Versions.cmake to indicate v2.0.0-rc1.
2018-09-10 13:07:30 -04:00
Steve Franke
0c60db50d3 Experimental -o option for wsprd uses ordered-statistics decoder. Decodes are accepted only if the callsign exists in the hashtable. 2018-09-09 20:30:23 -05:00
Steve Franke
fa1822bb4a Trying to re-implement osd for wspr. 2018-09-08 16:50:15 -05:00
Joe Taylor
f1261076be Starting to implement a color-highlighting reminder window. 2018-08-25 11:19:43 -04:00
Joe Taylor
3af293f297 Use module variables rather than common/hashcom/; working on transparent handling of goofy calls. 2018-07-30 15:46:25 -04:00
Joe Taylor
d95d2df5b6 Old-style "NA VHF Contest" mode removed from all Fortran routines. 2018-07-10 15:09:42 -04:00
Steve Franke
fd0ad33028 MSK144: Wholesale changeover to (128,90) code with 77-bit messages. Compiles and doesn't crash, but communication between two instances has not been tested. 2018-07-07 10:35:59 -05:00
Joe Taylor
c5d61f4cf4 Now able to generate 72-bit or 77-bit messages. 2018-07-06 12:52:39 -04:00
Steve Franke
91388f8ba2 Create a separate simulation program, ft8sim2, for New Style 77 bit messages. Hashes are not handled yet. Needs more testing. 2018-07-04 09:52:39 -05:00