Commit Graph

498 Commits

Author SHA1 Message Date
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
Steve Franke
e16e78790a Create chkcrc13a.f90. Should chkcrc12a, chkcrc13a, and chkcrc14a be combined into one routine? 2018-06-16 09:04:51 -05:00
Steve Franke
3ac119fb99 Progress toward a working ldpc128_90 simulator. Compiles, but does not yet work. 2018-06-13 11:34:00 -05:00
Steve Franke
a5837bd5c7 AP decoding now works for type 2 frames. Also cleaned up and simplified AP implementation in ft8b_2. 2018-06-11 15:10:44 -05:00
Steve Franke
48b60eab71 Make two sync passes, one for each sync array. Label candidates with their type and decode accordingly. 2018-06-05 16:44:52 -05:00
Steve Franke
772b1bd5fa ft8sim can now generate old (174,87) or new (174,91) frames. Frame type is selected using the itype command line parameter. 2018-06-05 08:40:00 -05:00
Steve Franke
358081f280 Changes necessary to build ldpcsim174_91.f90. 2018-06-04 08:04:22 -05:00
Steve Franke
7a228d8f7d Starting to implement a (174,91) code. 2018-06-04 08:04:22 -05:00
Steve Franke
aeee9b62bb Hack CMakeLists.txt so that repo will build.
Modify CMakeLists.txt so that wspr5sim, wspr5d build.
2018-06-04 08:04:22 -05:00
Bill Somerville
9c42a42219 Bump development version
Also first stage of allowing for builds from a git repository.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/wsjtx/trunk@8732 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2018-05-27 11:40:12 +00:00
Joe Taylor
be8c837d85 New simulator jt49sim, replaces both jt4sim and jt9sim. Fix the S/N estimates made for slow/wide JT9 submodes.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8639 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2018-04-25 17:24:58 +00:00
Bill Somerville
45c9412996 Fix macOS plist file generation to enable high DPI display support
This change enables support for Retina type displays on macOS.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8595 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2018-04-01 18:49:06 +00:00
Bill Somerville
dfe037423f New incoming UDP message to allow external applications to highlight decoded callsigns
UDP  servers can  request that  WSJT-X clients  highlight a  specified
callsign  in  the  Band  Activity  decodes  window.  Either  the  last
occurrence of the  callsign may be highlighted or all  past and future
occurrences can be  highlighted. The latter case  WSJT-X will remember
the  callsign  and  requested  highlighting  options  so  that  future
occurrences can be correctly highlighted.

Either or  both of the text  background color and the  text foreground
color may  be specified. A further  UDP message may be  sent to change
the  persistent color  highlighting  for a  given callsign,  including
reseting persistent highlighting by passing an invalid color value.

Thanks to Alex, VE3NEA, for this contribution.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8589 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2018-03-28 22:25:46 +00:00
Steven Franke
0a21abd6bc Move wsprd_exp.c into wsprd.c. Change CMakeLists.txt so that it builds wsprd.c.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8497 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2018-02-11 21:36:52 +00:00
Bill Somerville
f693ad4287 Add temporary workaround for gfortran v7.3 bug
Compiler  ICE on  64-bit Fedora  27 fixed  either by  not using  array
bounds checking or by limiting optimization to level 2.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8495 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2018-02-11 19:42:55 +00:00
Joe Taylor
64c0b304f1 Possible warning message for users of -devel and -rc? revisions.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8476 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2018-02-07 20:53:11 +00:00
Bill Somerville
3c384f7cbb Add UDP message to set temporary Maidenhead locator
When "Auto  Grid" is  checked in  "Settings->General" UDP  messages of
type "Location" will update a temporary  DE grid square. The intent is
to  allow  an external  application  joining  the WSJT-X  UDP  message
protocol to dynamically update the DE grid during mobile operation.

This change also tidies up  some outstanding issues around logging the
operator call.

This change  adds a new UDP  message "Logged ADIF" that  is emitted in
parallel with  "QSO Logged"  messages. The new  message is  valid ADIF
file format  and contains the  logged QSO  fields. The intent  is that
basic  UDP server  applications  might already  have  ADIF log  record
capture capabilities and could use  this message to feed existing ADIF
parsing routines to log QSOs. All that should be needed is to identify
this message type and the single field is ADIF compatible ASCII.

Thanks  to  Brian,   N9ADG,  for  the  patches  that   lead  to  these
enhancements.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8454 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2018-02-04 22:42:35 +00:00
Joe Taylor
c1bd6060dd New utility program ft8code. Remove unused references to recent_calls() in FT8 mode.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8440 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2018-01-30 15:25:10 +00:00
Joe Taylor
a55ad54a42 Update copyright notices.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8433 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2018-01-26 14:52:44 +00:00
Joe Taylor
04e4c058d6 Revert to defaults in these files.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8429 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2018-01-22 17:11:59 +00:00
Joe Taylor
21faf3a9ad Re-establish usage control.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8425 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2018-01-19 16:09:42 +00:00
Steven Franke
f1aafe76c7 Clean up wsprd_exp. Build WSJT-X with wsprd_exp, for testing.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8408 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2018-01-13 03:26:54 +00:00
Joe Taylor
b27f51bbe3 Improve sensitivity of waterfall for detecting weak narrowband signals.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8403 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2018-01-12 20:40:15 +00:00
Steven Franke
b76e5248df Revert unintended commit of CMakeLists.txt.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8387 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2018-01-01 17:19:55 +00:00
Steven Franke
cb503e89f1 Make nutc print correctly when processing simulated JT65 files.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8386 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2018-01-01 17:03:55 +00:00
Joe Taylor
ce5bfd4fe4 Identify Fox's Tx slot numbers in FoxQSO.txt.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8382 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-12-29 19:35:30 +00:00
Joe Taylor
a08b30a1cb Hound decodes should use the selected nfqso, to allow better use of AP.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8380 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-12-29 18:10:23 +00:00
Joe Taylor
cfa196d318 Revert these as they should be.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8371 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-12-24 01:11:53 +00:00
Joe Taylor
8755f0b460 Final(?) fix to allow use of compound callsign for Fox.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8370 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-12-23 22:01:05 +00:00
Joe Taylor
69cb0333ab Remove a diagnostic write; revert the other two files.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8365 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-12-22 18:03:32 +00:00
Joe Taylor
f492a2560d Clean up behavior for Fox with compound callsign.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8363 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-12-22 17:25:16 +00:00
Joe Taylor
4f90f320c0 Add a filtering for signals generated in ft8sim. Beware, not all options work.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8324 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-12-13 20:22:15 +00:00
Joe Taylor
5cadbe26aa Add filtering of audio waveforms generated for Fox.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8316 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-12-12 17:59:09 +00:00
Joe Taylor
7d23849786 Move subroutine h1() to its own file, h1.f90.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8310 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-12-09 03:21:48 +00:00
Joe Taylor
385c83658e Hound can now decode Fox messages with i3bit=1.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8297 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-12-08 17:03:11 +00:00
Steven Franke
e90cc846bb Implement AP decoding for JT65 (VHF/UHF/Microwave only).
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8277 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-12-02 16:04:51 +00:00
Steven Franke
6155a57861 Remove more unused code.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8246 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-11-18 23:23:52 +00:00
Steven Franke
2620401b4b Remove some test code.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8245 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-11-18 23:11:35 +00:00
Joe Taylor
3babfffbd7 Starting on code for Fox multi-sig transmissions.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8243 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-11-16 21:32:07 +00:00
Joe Taylor
a7fb67edb0 Update CMakelists.txt.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8235 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-11-14 18:54:35 +00:00
Steven Franke
a5e10b9967 Some changes to facilitate experimentation.
1. Send nQSOProgress into jt65 decoder.
2. Add experimental version of extract.f90.
3. Change CMakeFile.txt to use experimental routines.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8217 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-11-04 00:40:08 +00:00
Joe Taylor
a72de82a39 Experimenting with a new Fox GUI.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8210 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-11-02 18:45:19 +00:00
Steven Franke
b7b54367b0 Oops. Forgot CMakeLists.txt
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8202 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-10-30 22:04:53 +00:00
Joe Taylor
3e5f703ed2 Starting to experiment with FoxCalls.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8197 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-10-30 15:18:54 +00:00
Joe Taylor
093a2834c3 Functional 'Solve for calibration parameters' on Tools menu.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8127 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-09-28 01:35:09 +00:00
Joe Taylor
04b0563d19 Experimental new behavior for "Lock Tx=Rx" and for clicking on waterfall and decoded text.
1. Checkbox "Lock Tx=Rx" is now labeled "Lock Tx Freq", and its meaning is
quite different.  If checked, the audio Tx frequency cannot be changed.
It's like the "Lock" function on some transceivers.

2. Clicking on the Wide Graph waterfall and on lines of decoded text now
behave as follows:

Click on       Action
---------------------------------------------------------------------
Waterfall:     Click to set Rx frequency
               Shift-click to set Tx frequency
               Ctrl-click to set Rx and Tx frequencies
               If Lock Tx Freq is checked, Tx freq does not move
               Double-click to set Rx frequency and decode there

Decoded Text:  Double-click to copy transmitting callsign to DX Call
               and locator to DX Grid; change Rx frequency to decoded
               signal's frequency; generate standard messages.
               Tx frequency is not changed unless Ctrl is held down
               and Lock Tx Freq not checked.

If this experimental behavior is adopted, some descriptions in the
User Guide and Special Mouse Commands will need to be updated.

3. Starting to implement a new function on the Tools menu,
"Solve for calibration parameters".  This is not yet finished;
DO NOT USE in its present form.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8125 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-09-27 12:39:50 +00:00
Bill Somerville
dd1362b69a Rationalize NA contest mode
Generic message packing and unpacking routines now understand antipode
grid contest messages.  These messages  are now recognized as standard
messages in  message response processing and  dealt with appropriately
when contest mode is selected and applicable (currently FT8 and MSK144
only).

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8062 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-09-01 20:10:35 +00:00
Joe Taylor
021336823a Use a baseline-fitting procedure to improve S/N estimates for FT8.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8036 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-08-26 16:30:47 +00:00
Bill Somerville
febcf6b554 Don't let the Fortran/C/C++ interop test fail silently
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8010 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-08-06 21:51:29 +00:00
Bill Somerville
55c2e1845d Merged from WSJT-X v1.8 branch:
------------------------------------------------------------------------
r7977 | bsomervi | 2017-08-02 01:19:07 +0100 (Wed, 02 Aug 2017) | 1 line

Adjust the CMake script to allow for a rewritten FindOpenMP script in CMake v3.9
------------------------------------------------------------------------
r7978 | bsomervi | 2017-08-02 02:14:52 +0100 (Wed, 02 Aug 2017) | 1 line

Fix a typo in r7977
------------------------------------------------------------------------



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7979 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-08-02 01:17:10 +00:00
Bill Somerville
ba0228b173 Add double clickable push button and radio button widgets
These emit  doubleClicked signal  when double-clicked,  otherwise they
are identical to their super-classes.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7938 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-07-24 19:27:14 +00:00
Joe Taylor
73df0d00ef 1. Alt+F8 arms "Call 1st" as if a CQ had been sent.
2. "Call 1st" label turns red when armed to respond to a caller.
3. Suppress some recognizable false decodes, send them to cumulative file
   "data_dir/false_decodes.txt".
4. Reduce sleep delay in decoder() to 10 ms.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7928 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-07-20 15:15:00 +00:00
Steven Franke
d0ad300a65 Move ft8apset to a separate file.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7882 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-07-14 19:22:53 +00:00
Bill Somerville
b939ff33e3 Refactor phase equalization dialog names
Now  equlization  tools   as  it  covers  both   amplitude  and  phase
equalization.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7875 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-07-14 15:33:17 +00:00
Bill Somerville
c9dde2a278 Update CMake project description for v1.8
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7871 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-07-14 08:47:55 +00:00
Steven Franke
40d9933701 Don't build obsolete utility ft8d.f90.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7870 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-07-13 23:23:05 +00:00
Bill Somerville
c35e26ab46 Update copyright dates
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7844 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-07-10 19:45:03 +00:00
Bill Somerville
94cec5bdc1 IARU region specific working frequencies
Working  frequencies can  be for  all regions  or for  individual IARU
regions. This allows each mode band  tuple to have one or more working
frequencies which  can include local  ones only offered when  the user
configures their IARU region.

Change  working  frequency  default   suggestions  to  better  fit  in
FT8. General  rule is FT8  is at JT65 -2kHz  except where that  is not
possible e.g. where  that would fall into a segment  not allocated for
narrow band data modes. For tight  bands like top band sqeeze existing
JT65 and JT allocations to allow space for FT8.

NOTE: this change changes the WSPR frequency on 80m to allow access to
JA stations that currently have no allocation where it was placed.

ALSO NOTE: the JT65 and JT9 frequencies for 80m move down 6 kHz, again
to  accommodate region  3  users. Other  appliactions  not within  our
control should be asked to move in step when 1.8.0 is released.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7810 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-07-07 23:11:41 +00:00
Joe Taylor
21d68f5150 Remove bounds-checking from Release build.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7793 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-07-06 18:05:13 +00:00
Joe Taylor
97deebb3ea Remove wspr5 stuff from CMakeLists.txt.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7792 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-07-06 17:40:03 +00:00
Steven Franke
ce06547b59 Add subtraction routines - not fully tested or tweaked yet.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7787 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-07-06 14:44:17 +00:00
Joe Taylor
52d8324382 Baseline code with nsps=2048 in FT8.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7783 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-07-06 12:07:17 +00:00
Bill Somerville
f73a35842a Reduce stack usage of F8 decoder modules
Reverted to default stack allocation for jt9.exe on Windows.

Tidied up FT8 decoder inteface  to remove arguments that will probably
never be used.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7768 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-07-01 18:46:14 +00:00
Bill Somerville
ad8fb434a1 Temporarily increase Windows stack size for jt9.exe
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7766 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-07-01 17:43:47 +00:00
Joe Taylor
c61d328300 Remove a qDebug() flagging posts to PSKreporter.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7758 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-07-01 13:37:29 +00:00
Joe Taylor
430de42c5d No present need for ft8filbig.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7731 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-06-19 21:13:49 +00:00
Joe Taylor
de3e975b98 1. ft8sim now generates 25 signals: f=300, 400, ... 2700 Hz.
2. ft8d is now a bare-bones multi-decoder.
3. wsjt-x now includes the bare-bones multi-decoder for FT8.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7729 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-06-19 20:15:43 +00:00
Joe Taylor
3ba80279ec Start a framework for FT8 decoder.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7727 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-06-17 15:55:30 +00:00
Joe Taylor
38fdda4dc7 Update some test routines.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7719 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-06-15 13:47:47 +00:00
Joe Taylor
0bad13b8a3 Add a missing file.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7717 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-06-15 11:48:09 +00:00
Joe Taylor
44b4c180f6 First bare-bones decoder for FT8.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7716 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-06-14 20:21:01 +00:00
Joe Taylor
7047150453 Some test routines.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7712 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-06-13 19:42:45 +00:00
Bill Somerville
e6150df623 Proper custom spin boxes for frequency tolerance and T/R period
These were using a hijacked custom spin box that was designed only for
letters i.e. submodes. Now there are two new custom spin boxes.

HistedSpinBox:- can  be set with  a list  of integer values  which the
step  up and  down  will  follow. Optionally  limits  the maximum  and
minimum value  to the upper and  lower bounds of the  values set. Note
that intermediate values are still valid.

RestrictedSpinBox:- more like a combo  box because the provided values
are the only ones that can be set.

HintedSpinBox   is    used   for    the   frequency    tolerance   and
RestrictedSpinBox is used for T/R period.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7698 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-05-27 20:04:44 +00:00
Joe Taylor
303eecdfd6 Make wspr_fsk8d search for DT as well as f0.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7681 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-05-17 13:13:11 +00:00
Joe Taylor
28c09d4a76 Add some new test programs.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7680 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-05-16 19:20:14 +00:00
Joe Taylor
c6bd586d82 Implement (very basic) Rx capability for a potential WSPR-LF mode.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7673 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-05-12 14:39:38 +00:00
Steven Franke
acd99f06f5 Not sure why I added this to CMakeLists.txt in the first place.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7666 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-05-07 15:07:18 +00:00
Steven Franke
362fd04b23 First steps toward generalizing the ordered statistics decoder to make it easier to use it for other block codes.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7665 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-05-07 15:00:50 +00:00
Steven Franke
dacf9c3ef7 Add osd300.f90 to CMakeLists.txt
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7663 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-05-06 02:36:35 +00:00
Joe Taylor
aef539ec3f Updates to test programs.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7659 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-04-28 17:46:24 +00:00
Joe Taylor
b256185ed1 Starting to implement experimental mode "WSPR-LF". Beware possible undesired side effects!
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7658 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-04-28 16:49:09 +00:00
Joe Taylor
34b30ed664 Updates and additions to test progams.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7654 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-04-27 17:43:21 +00:00
Joe Taylor
cf0902ab92 Changes to test programs.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7652 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-04-25 17:43:05 +00:00
Joe Taylor
f41c206318 Add and update test programs.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7650 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-04-24 16:16:18 +00:00
Joe Taylor
4e3fdfef9e Additiions and changes to test routines.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7648 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-04-21 18:20:48 +00:00
Joe Taylor
64bb718e31 Fix some errors in test routines.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7641 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-04-19 20:01:10 +00:00
Joe Taylor
95930b51cc Update CMakeLists.txt.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7638 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-04-19 16:16:13 +00:00
Joe Taylor
3124648fbc Add/update some experimental routines.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7636 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-04-19 16:06:42 +00:00
Steven Franke
7ef46cdbe0 Add some experimental routines.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7635 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-04-19 12:16:10 +00:00
Joe Taylor
02722a43fd Add the CRC check.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7634 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-04-07 20:22:46 +00:00
Joe Taylor
b39f92926c Save some test programs.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7633 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-04-07 19:44:29 +00:00
Bill Somerville
ed14797c73 Rearrange build script module ordering
CMake  does not  seem to  recognize Fortran  module file  dependencies
correctly  and  sometimes builds  them  after  modules that  reference
them. This change  moves all the module files to  the beginning of the
library sources list so that they should always be compiled before use
after  changes.   I'm  not  sure  this will  work  100%  reliably  for
inter-module references so further reordering  may be needed in future
if  unexpected  clean rebuilds  are  becoming  necessary after  module
source file changes.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7632 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-04-05 10:27:29 +00:00
Bill Somerville
3a1b40d524 Split CRC10 & 12 implementations into separate translation units
Separate translation units avoids  compiler generated CRC tables being
linked when not needed.

Also only compile once and add to wsjt_cxx library for later link
editing.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7631 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-04-05 00:29:46 +00:00
Steven Franke
64ace72cd4 crc12.cpp was renamed to crc.cpp because it now contains both crc12 and crc10.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7629 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-04-04 19:35:29 +00:00
Steven Franke
c101181938 Add some experimental routines.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7628 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-04-04 19:22:01 +00:00
Bill Somerville
1298b13957 Work around for an error compiling boost/crc.hpp with GCC v6
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7624 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-03-29 23:35:13 +00:00
Bill Somerville
0e214efb9c Rework install locations for better flexibility
Using the  CMake module  GNUInstallDirs to  set up  standard locations
which allows  better customisation for packagers  building for various
distributions.

The change does change some internal package file paths and will leave
some  files  in  old   locations  in  Windows  installations.  Running
uninstall  is probably  wise  on Windows  before  installing this  new
package layout if future clean uninstalls are desired.

Linux and other  *nix package maintainers can use  the CMake variables
CMAKE_INSTALL_xxx to vary the install paths of various components. See
the  CMake GNUInstallDirs  module documentation  for more  details. An
example might be for Slackware where package documents are expected to
be                            installed                           into
<install-prefix>/doc/<package-name>-<package-version>/ whereas the GNU
default         is         to        install         them         into
<install-prefix>/share/doc/<package-name>/.  To achieve  this set  the
CMake variable CMAKE_INSTALL_DOCDIR as follows when configuring:

cmake -D CMAKE_INSTALL_DOCDIR:PATH=doc/wsjtx-1.7.1 -D CMAKE_INSTALL_PREFIX= ...

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7623 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-03-28 13:03:48 +00:00
Steven Franke
4565b182ff Add some experimental routines.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7621 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-03-28 12:05:49 +00:00
Bill Somerville
e8b812fd08 Teach the CMake build script how to find the Boost libraries
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7619 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-03-22 20:44:42 +00:00
Bill Somerville
39cf3e1b9a Change build scripts to be compatible with Qt 5.8 on Mac OS X
This change obseletes Mac OS X 10.7 and 10.8 which are not supported
by Qt 5.8.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7613 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-03-21 13:33:55 +00:00
Joe Taylor
9a895361cf Add a utility "allsim" to generate a wave file containing all WSJT-X slow modes as well as an unmodulated carrier and 25 WPM CW signal.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7579 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-02-24 18:20:56 +00:00
Bill Somerville
cecc098924 First attempt at a UI phase compensation tool for MSK144
This builds on the static phase compensation in the MSK144 decoder and
the phase  analysis and  polynomial fitting  capabilities also  in teh
MSK144 decoder,  by allowing  captured data to  be selected  for phase
equalization from the WSJT-X UI.

Reads  captured phase  compensation  curve  estimate files  containing
fitted  polynomial coefficients  and measured  phase data  from MSK144
receptions. Intent  is to select a  compensation curve that is  from a
known transmitter like  an SDR which have good  phase linearity. Phase
plots and compensation polynomials may be viewed and compared with the
current compensation polynomial. A  suitable polynomial can be applied
to be use in all further decoding of MSK144 signals.

Plots of  the currently  selected polynomial  and its  modified higher
order terms  polynomial which is  actually used in  equalization (this
plot may  be dropped - it  is just for  kicks at the moment).   When a
captured phase analysis file is loaded plots of the measured phase and
the proposed best fit polynomial are shown.

Basic  maintenance  is also  included  allowing  clearing and  loading
captured  plots and  an option  to revert  to a  flat no  equalization
curve.

More to come on this as  amplitude equalization is also possible, this
will probably  be similar, maybe even  plotted on the same  graph with
dual  axes  for phase  and  amplitude.   Amplitude correction  from  a
measured  reference   spectrum  could  be  viewed   and  selected  for
equalization for all modes. TBC...

This   change    also   introduces    the   QCustomPlot    3rd   party
widget. Currently this  is statically linked from a  qcp library built
by the WSJT-X CMake script. This will probably be migrated to a shared
object (DLL) build as a CMake external project, once some CMake script
re-factoring  has been  completed,  which  is more  in  line with  the
QCustomPlot author's  intentions. This  will allow efficient  reuse in
other tools shipped with WSJT-X.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7570 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-02-21 02:13:13 +00:00
Steven Franke
1135c33f33 Remove an obsolete file.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7503 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-01-15 20:43:11 +00:00