Commit Graph

500 Commits

Author SHA1 Message Date
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
Steve Franke bb12c7424d Module packjt77.f90 includes the 77bit utility programs called by pak77 and unpack77. Modify genft8_174_91.f90 to generate type 2 messages. 2018-07-03 15:08:38 -05:00
Steve Franke 2cdb164446 Move CRC13 creation into encode128_90.f90 and CRC checking into bpdecode128_90.f90. 2018-06-16 16:42:02 -05:00