Commit Graph

185 Commits

Author SHA1 Message Date
Bill Somerville 3ec6d211c8 Extend UDP status message - added Rx/Tx DF, call and grid information
Build now creates and installs a  UDP library that contains the server
side  of the  UDP messaging  facility.  This  library is  used by  the
udp_daemon and message_aggregator reference  examples. The new library
is  currently a  static archive  but  can also  be built  as a  shared
library.  The library  allows third  party Qt  applications to  easily
access UDP messages from WSJT-X.

Refactored  the  message_aggregator  reference example  to  split  out
classes into  separate translation  units. Added new  functionality to
exercise  the  new  UDP  status fields,  highlight  own  call,  CQ/QRZ
messages and decodes near Rx DF.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6691 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-05-24 10:08:35 +00:00
Joe Taylor 4bcc4f35a1 Much improved detection of sync in JT4 decoder.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6686 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-05-19 19:19:47 +00:00
Joe Taylor 8cef34fe11 Starting to implement decoding of JT65 shorthand messages. Needs testing!
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6665 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-05-03 20:30:49 +00:00
Steven Franke f5af6525f5 Changes needed to build ldpc library and ldpcsim.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6639 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-04-24 01:19:40 +00:00
Bill Somerville 4cebdddfe5 Add multiple configurations navigation and management
Multiple configurations  are accessed and  maintained from a  new main
window menu bar  pop up menu "Configurations". The  prior settings are
the  "Default"  entry. New  configurations  may  be added  by  cloning
existing ones.  Maintenance  and navigation is via sub  menus for each
configuration.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6623 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-04-17 23:39:12 +00:00
Joe Taylor 23298c1743 Rename refspec() to refspectrum().
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6601 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-04-08 15:55:28 +00:00
Joe Taylor 88e47a5941 Working on implementing reference spectra.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6600 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-04-08 15:23:32 +00:00
Bill Somerville d864e7f4cb Allow split operating for "None" rig, use for testing only not for release
Setting  the  CMake  option WSJT_RIG_NONE_CAN_SPLIT=ON  will  buold  a
version taht allows split operating with  the dummy rig. This must not
be shipped since it will generate incorrect Tx tones.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6589 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-04-06 17:11:49 +00:00
Bill Somerville b9df9eff69 Adjust CMake Hamlib finder for latest version
Hamlib now used  libusb-1.0 and since that is available  on Windows we
can now build with it across platforms. This change allows for that if
the custom USB backends are configured in Hamlib.

As it looks  like Hamlib v3.1 will be suitable  for WSJT-X this change
also puts  in place what  is needed to  link to a  Hamlib SO/DLL/DYLIB
when required. This is switched on  by not defining the CMake variable
hamlib_STATIC. This could  be used on Windows and Mac  but Linux still
must have  Hamlib statically linked  due to repository  versions being
too old.

For  now  Hamlib  remains  statically linked  for  consistency  across
platforms.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6581 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-04-06 17:10:46 +00:00
Joe Taylor e212367221 First decodes of wide/slow JT9 submodes from within wsjtx.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6577 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-04-05 14:17:34 +00:00
Steven Franke 0574251ff0 Rename wsprd_exp.c to wsprd.c and eliminate wsprd_exp.c.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6572 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-04-03 19:09:07 +00:00
Bill Somerville 71db4c2051 Use CMake generator expressions to add OpenMP flags more accurately
The latest Clang shipped with Apple Xcode errors on unrecognized flags
that gcc/g++ accept. By using generator expressions the OpenMP flag
is now only applied to Fortran compiles when needed on Mac. Note that
this is necessary since the Apple Clang does not support OpenMP so we
have to hack the link to support OpenMP in jt9 by mixing gfortran OpenMP
object code with Clang/Clang++ object code.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6566 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-04-01 10:57:05 +00:00
Joe Taylor 063bb166f1 Go back to multiple calls to smo121, rather than smolorentz.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6541 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-03-19 12:41:53 +00:00
Joe Taylor 767a9452e6 1. Use Lorentzian profile for smoothing (but not yet for message averaging).
2. Add ability to set ndepth and do message averaging ti fer65.
3. Correct SNR values for measured Doppler width.
4. Comment out the "write(62..." diagnostics.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6537 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-03-18 20:17:17 +00:00
Joe Taylor 533bb81220 Various changes to JT65 decoding, all potentially temporary.
1. Measure Doppler width by fitting a (modified) Lorentzian.
2. Don't call "slope" in sync65().
3. New definition of "sync1".
4. Get snr from sync1.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6536 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-03-17 18:52:06 +00:00
Joe Taylor 04e765c605 Replace all "common/test00?" with "use jt65_mod", etc.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6515 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-03-10 14:25:22 +00:00
Joe Taylor 42d32c7fc0 Progress toward integrating JTMSK short messages. Not finished, and won't work!
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6417 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-01-21 20:03:53 +00:00
Joe Taylor ee1d8c885a Add golay24_table.c to CMakeLists.txt.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6415 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-01-21 18:09:23 +00:00
Bill Somerville a3c1c768ef Fix some compiler warnings and error
Clang++ detected some warnings that g++ did not.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6409 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-01-20 20:32:30 +00:00
Joe Taylor 1d6737ee8e Generate experimental shorthand messages in JTMSK mode. No decoder yet.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6400 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-01-15 20:45:37 +00:00
Bill Somerville 9b9351b1af Fix regression with UG location from r6341
Missing '/'  character on directory  URL. QUrl treats URLs  not ending
with  a  '/'  character  as  file  URLS  and  QUrl::resolved()  strips
filenames.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6393 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-01-13 14:45:40 +00:00
Bill Somerville 9301347f8a Better naming WavFile ->BWFFile
Broadcast  Wave  Format is  a  backwards  compatible superset  of  teh
Microsoft WAV file  format that has been implemented in  teh hope that
Windows File Explorer might show the WAV file metadta, as it turns out
that is not the case but as it's done anyway.

It appears to be  impossible to write a WAV file  such that MS Windows
File Explorer shows any metadata so  unless we adopt FLAC format audio
files we will have to show metadata with our own software :(

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6384 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-01-11 15:00:53 +00:00
Joe Taylor e61e8c5d81 Renamd exp_decode65.f90 to hint65.f90.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6367 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-01-08 21:05:00 +00:00
Bill Somerville 0ba0977aa2 User Guide localization
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6341 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-01-02 22:30:12 +00:00
Bill Somerville 58aacc590e Class to read and write WAV format files
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6337 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-01-02 17:19:49 +00:00
Bill Somerville 26e5ea963e Make WAV file reading correct so that optional chunks can be tolerated
The WAV file format allows for optional header content, allow for this
in preparation for adding some metadata to WSJT-X recorded WAV files.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6335 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-01-02 14:29:02 +00:00
Bill Somerville d431e2cecd Restructuring in preparation for direct decoder invocation from wsjtx
Re-factor the JT4, JT65 and JT9 decoders as Fortran modules using type
bound  procedures, the  decoder types  implement a  callback procedure
such that he client of the decoder can interpret the decode results as
they need.

The JT4 decoder has a  second callback that delivers message averaging
status.  Also the  previously separate  source files  lib/jt4a.f90 and
lib/avg4.f90 have been merged  into lib/jt4_decode.f90 as private type
bound procedures of the new jt4_decoder type.

Re-factored the lib/decoder.f90 subroutine  to utilize the new decoder
types. Added local procedures to process decodes and averaging results
including the necessary OpenMP synchronization directives for parallel
JT9+JT65 decoding.

Added the  jt65_test module  which is  a basic  test harness  for JT65
decoding. Re-factored  the jt65 utility  to utilize the  new jt65_test
module.

Changed a  few integers  to logical variables  where their  meaning is
clearly binary.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6324 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-12-29 23:52:55 +00:00
Bill Somerville d6457af36e Rename some sources in prep for decode callback implementation
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6323 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-12-29 23:52:46 +00:00
Bill Somerville f416a52def Make Fortran profiling timer function a callback with a default null implementation
Groundwork for calling the decoders directly from C/C++ threads.

To  access   the  timer   module  timer_module   must  now   be  used.
Instrumented code need  only use the module function  'timer' which is
now a  procedure pointer that  is guaranteed to be  associated (unless
null()  is assigned  to it,  which should  not be  done). The  default
behaviour of 'timer' is to do nothing.

If a  Fortran program  wishes to  profile code it  should now  use the
timer_impl module  which contains a default  timer implementation. The
main program should call 'init_timer([filename])' before using 'timer'
or     calling     routines     that     are     instrumented.      If
'init_timer([filename])'.  If it is called  then an optional file name
may  be  provided  with  'timer.out'  being used  as  a  default.  The
procedure 'fini_timer()' may be called to close the file.

The default  timer implementation is  thread safe if used  with OpenMP
multi-threaded code  so long as  the OpenMP  thread team is  given the
copyin(/timer_private/) attribute  for correct operation.   The common
block /timer_private/ should  be included for OpenMP  use by including
the file 'timer_common.inc'.

The module 'lib/timer_C_wrapper.f90' provides  a Fortran wrapper along
with 'init' and 'fini' subroutines  which allow a C/C++ application to
call timer instrumented  Fortran code and for it  to receive callbacks
of 'timer()' subroutine invocations.  No C/C++ timer implementation is
provided at this stage.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6320 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-12-27 15:40:57 +00:00
Bill Somerville 924e20efa8 Add a sample download dialog and upload sub-system
Samples are  downloaded from a  web server, currently the  SF download
server.   The samples  are  stored in  the  source controlled  samples
directory and the CMake script  there builds a suitable directory tree
for upload to the web  server under samples/web containing the samples
hierarchy and the  generated JSON contents database  file. The samples
CMake script also  defines an 'upload-samples' target  that uses rsync
to efficiently upload  the samples and the  accompanying contents JSON
database file.

Any directory structure under the samples directory may be created, to
add a new sample file simply add  the file to source control and amend
the list of sample files (SAMPLE_FILES) in samples/CMakeLists.txt.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6308 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-12-24 11:41:05 +00:00
Bill Somerville d5bc774641 Get rid of jt9com and npar common blocks
Also  use correct  C binding  and have  compilers determine  sizes and
offsets.

The wsjtx.exe program now owns the  decoder shared data that is shared
with symspec.  It is now in  struct dec_data, still a  global variable
for now but hopefully a MainWindow member variable soon.

The struct  dec_data (in both C/C++  and Fortran) has a  sub structure
with the decoder  parameters which enables copying  and manipulating a
lot cleaner.

New  of  changed types  of  shared  data  must  still be  modified  in
commons.h and a  new file lib/jt9com.f90, they must stay  in sync as a
pointer to the structure is passed between C and Fortran.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6290 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-12-17 20:29:55 +00:00
Bill Somerville 5f9ed5a5ac Tidy up command line processing in Fortran tools
Build script now  builds jt65. The tools jt65 and  jt65sim usilize the
options module for all comamnd line parsing.

The  tool  jt65sim  now  has  conventinal  command  line  options  and
switchs. Default values have been  added where appropriate and options
documentation  updated. An  option to  disable PRNG  seeding has  been
added.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6276 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-12-15 15:35:04 +00:00
Bill Somerville 3962a3514a More PRNG rationalization
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6274 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-12-15 01:36:05 +00:00
Bill Somerville 6be4f3d376 Rationalize random number seeding in C and Fortran
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6272 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-12-14 19:40:44 +00:00
Bill Somerville c5ea6938d3 Another attempt to get installed locations right
That is, right for all platforms with both local and package installs.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6248 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-12-08 20:39:50 +00:00
Bill Somerville 5d19eb3ee7 Fix a regression in the configured r/o data location
This change  will require the  following CMakeCache.txt entries  to be
deleted:

WSJTX_DATA_DESTINATION
WSJTX_DOC_DESTINATION

so that default values ca be substituted by CMake.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6244 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-12-08 00:22:48 +00:00
Joe Taylor 12d5ec8902 Morphing sfrsd toward ftrsd...
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6241 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-12-07 13:44:00 +00:00
Bill Somerville 859a5ef416 Make install locations configuration variables
Locations  of various  components  to be  determined at  configuration
time.   This  allows   various   "Standard"  system   layouts  to   be
accomodated. For example on FreeBSD the manpages are usually installed
in the man directory i.e. /usr/local/man whereas the WSJT-X default is
to install them in share/man i.e. /usr/share/man. By setting the CMake
variable  WSJT_MANPAGE_DESTINATION to  either a  relative or  absolute
path the install location can be set:

  $ cmake -D WSJT_MANPAGE_DESTINATION=. ...

will install the manpages at ${CMAKE_INSTALL_PREFIX}/man

The new configuration variables are:

 WSJT_BIN_DESTINATION
 WSJT_LIB_DESTINATION
 WSJT_SHARE_DESTINATION
 WSJT_DOC_DESTINATION
 WSJT_DATA_DESTINATION
 WSJT_MANPAGE_DESTINATION
 WSJT_PLUGIN_DESTINATION
 WSJT_QT_CONF_DESTINATION

NB: changes to the above may break WSJT-X at present where the install
    locations of files used directly by WSJT-X are moved.

Warning: using absolute  paths for these variables  is not recommended
as files may be installed  in unexpected places, particularly when run
with  root  privileges.  All  relative   paths  with  be  relative  to
CMAKE_INSTALL_PREFIX.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6192 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-11-26 19:45:10 +00:00
Bill Somerville 51b76386b1 Correct build script typo
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6191 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-11-26 19:45:05 +00:00
Bill Somerville 155118076c Added jt65sim target to build - not installed nor packaged
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6180 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-11-25 19:36:32 +00:00
Joe Taylor 13c9938607 Implement (still in very basic form) experience-based decoding for JT65.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6174 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-11-24 19:49:04 +00:00
Joe Taylor 475118428e Add facility to degrade S/N of data from .wav files.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6165 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-11-23 18:05:36 +00:00
Joe Taylor 07080f7ef3 Decode JT65 first at QSO frequency.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6164 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-11-23 15:57:33 +00:00
Bill Somerville 723200ae80 Revert "Correct architecture name for PPC packages"
This reverts commit r6157.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6159 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-11-23 11:42:52 +00:00
Bill Somerville ef2fdc378b Correct architecture name for PPC packages
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6157 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-11-23 00:27:52 +00:00
Bill Somerville 18cf246785 Add a simple UDP server reference console application
A small application demonstrating the usage of the MessageServer class
to implement a companion C++  application that utilizes the WSJT-X UDP
message protocol. It does not do anything useful but could be extended
to do many things.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6146 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-11-21 20:23:47 +00:00
Bill Somerville 5e2fec1fe4 Squash some compiler warnings
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6145 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-11-21 20:23:39 +00:00
Bill Somerville 91b5edcca1 Banish KVASD
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6129 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-11-18 22:53:37 +00:00
Bill Somerville 1a23757b26 Reintegrate merge from wsjtx_exp branch.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6122 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-11-18 01:28:12 +00:00
Bill Somerville 3460946f7e Remove wsprsim and jt4sim from install & packaging
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6115 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-11-17 18:10:54 +00:00