diff --git a/CMakeCPackOptions.cmake.in b/CMakeCPackOptions.cmake.in index bbe5be0..2c39a35 100644 --- a/CMakeCPackOptions.cmake.in +++ b/CMakeCPackOptions.cmake.in @@ -44,14 +44,13 @@ if (CPACK_GENERATOR MATCHES "NSIS") set (CPACK_PACKAGE_ICON "@PROJECT_SOURCE_DIR@/icons/windows-icons\\installer_logo.bmp") # tell cpack to create links to the doc files set (CPACK_NSIS_MENU_LINKS - "@PROJECT_MANUAL_DIRECTORY_URL@/@PROJECT_MANUAL@" "@PROJECT_NAME@ Documentation" "@PROJECT_HOMEPAGE@" "@PROJECT_NAME@ Web Site" ) # Use the icon from wsjtx for add-remove programs set (CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\ft8call.exe") set (CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_DESCRIPTION_SUMMARY}") - set (CPACK_NSIS_HELP_LINK "@PROJECT_MANUAL_DIRECTORY_URL@/@PROJECT_MANUAL@") + set (CPACK_NSIS_HELP_LINK "@PROJECT_HOMEPAGE@") set (CPACK_NSIS_URL_INFO_ABOUT "@PROJECT_HOMEPAGE@") set (CPACK_NSIS_CONTACT "${CPACK_PACKAGE_CONTACT}") set (CPACK_NSIS_MUI_FINISHPAGE_RUN "ft8call.exe") diff --git a/CMakeLists.txt b/CMakeLists.txt index cf0983f..626d1a9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,76 +49,11 @@ set (PROJECT_NAME "FT8Call") set (PROJECT_VENDOR "Jordan Sherer, KN4CRD") set (PROJECT_CONTACT "Jordan Sherer ") set (PROJECT_COPYRIGHT "Copyright (C) 2001-2018 by Joe Taylor, K1JT, (C) 2018 by Jordan Sherer, KN4CRD") -set (PROJECT_HOMEPAGE http://www.physics.princeton.edu/pulsar/K1JT/wsjtx.html) -set (PROJECT_MANUAL wsjtx-main) -set (PROJECT_MANUAL_DIRECTORY_URL http://www.physics.princeton.edu/pulsar/K1JT/wsjtx-doc/) -set (PROJECT_SAMPLES_URL http://downloads.sourceforge.net/project/wsjt/) -set (PROJECT_SAMPLES_UPLOAD_DEST frs.sourceforge.net:/home/frs/project/wsjt/) +set (PROJECT_HOMEPAGE https://groups.io/g/ft8call) set (PROJECT_SUMMARY_DESCRIPTION "${PROJECT_NAME} - Digital Modes for Weak Signal Communicaitons in Amateur Radio.") set (PROJECT_DESCRIPTION "${PROJECT_SUMMARY_DESCRIPTION} - ${PROJECT_NAME} is a computer program designed to facilitate basic amateur - radio communication using very weak signals. The first four letters in - the program name stand for `(W)eak (S)ignal communication by - K1(JT),` while the suffix `-X` indicates that ${PROJECT_NAME} started as - an extended and experimental branch of the program - WSJT. - . - ${PROJECT_NAME} Version 1.8 offers nine different protocols or modes: FT8, - JT4, JT9, JT65, QRA64, ISCAT, MSK144, WSPR, and Echo. - The first five are designed for making reliable QSOs under extreme - weak-signal conditions. They use nearly identical message structure - and source encoding. JT65 and QRA64 were designed for EME - (`moonbounce`) on the VHF/UHF bands and have also proven very - effective for worldwide QRP communication on the HF bands. QRA64 has - a number of advantages over JT65, including better performance on the - very weakest signals. We imagine that over time it may replace JT65 - for EME use. JT9 was originally designed for the LF, MF, and lower HF - bands. Its submode JT9A is 2 dB more sensitive than JT65 while using - less than 10% of the bandwidth. JT4 offers a wide variety of tone - spacings and has proven highly effective for EME on microwave bands up - to 24 GHz. These four `slow` modes use one-minute timed sequences - of alternating transmission and reception, so a minimal QSO takes four - to six minutes — two or three transmissions by each station, one - sending in odd UTC minutes and the other even. FT8 is operationally - similar but four times faster (15-second T/R sequences) and less - sensitive by a few dB. On the HF bands, world-wide QSOs are possible - with any of these modes using power levels of a few watts (or even - milliwatts) and compromise antennas. On VHF bands and higher, QSOs - are possible (by EME and other propagation types) at signal levels 10 - to 15 dB below those required for CW. - . - ISCAT, MSK144, and optionally submodes JT9E-H are `fast` - protocols designed to take advantage of brief signal enhancements from - ionized meteor trails, aircraft scatter, and other types of scatter - propagation. These modes use timed sequences of 5, 10, 15, or 30 s - duration. User messages are transmitted repeatedly at high rate (up - to 250 characters per second, for MSK144) to make good use of the - shortest meteor-trail reflections or `pings`. ISCAT uses free-form - messages up to 28 characters long, while MSK144 uses the same - structured messages as the slow modes and optionally an abbreviated - format with hashed callsigns. - . - WSPR (pronounced `whisper`) stands for (W)eak (S)ignal - (P)ropagation (R)eporter. The WSPR protocol was designed for probing - potential propagation paths using low-power transmissions. WSPR - messages normally carry the transmitting station’s callsign, grid - locator, and transmitter power in dBm, and they can be decoded at - signal-to-noise ratios as low as -28 dB in a 2500 Hz bandwidth. WSPR - users with internet access can automatically upload reception - reports to a central database called wsprnet that provides a mapping - facility, archival storage, and many other features. - . - Echo mode allows you to detect and measure your own station's echoes - from the moon, even if they are far below the audible threshold. - . - ${PROJECT_NAME} provides spectral displays for receiver passbands as wide as - 5 kHz, flexible rig control for nearly all modern radios used by - amateurs, and a wide variety of special aids such as automatic Doppler - tracking for EME QSOs and Echo testing. The program runs equally well - on Windows, Macintosh, and Linux systems, and installation packages - are available for all three platforms. - . - Be sure to read the online ${PROJECT_NAME} User's Guide.") + ${PROJECT_NAME} is a computer program designed to facilitate amateur + radio communication using very weak signals.") set (CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMake/Modules ${CMAKE_MODULE_PATH}) @@ -159,8 +94,7 @@ option (WSJT_TRACE_CAT "Debugging option that turns on CAT diagnostics.") option (WSJT_TRACE_CAT_POLLS "Debugging option that turns on CAT diagnostics during polling.") option (WSJT_HAMLIB_TRACE "Debugging option that turns on minimal Hamlib internal diagnostics.") option (WSJT_SOFT_KEYING "Apply a ramp to CW keying envelope to reduce transients." ON) -option (WSJT_SKIP_MANPAGES "Skip *nix manpage generation.") -option (WSJT_GENERATE_DOCS "Generate documentation files." ON) +option (WSJT_SKIP_MANPAGES "Skip *nix manpage generation." ON) option (WSJT_RIG_NONE_CAN_SPLIT "Allow split operation with \"None\" as rig.") CMAKE_DEPENDENT_OPTION (WSJT_HAMLIB_VERBOSE_TRACE "Debugging option that turns on full Hamlib internal diagnostics." OFF WSJT_HAMLIB_TRACE OFF) @@ -169,7 +103,7 @@ CMAKE_DEPENDENT_OPTION (WSJT_QDEBUG_IN_RELEASE "Leave Qt debugging statements in CMAKE_DEPENDENT_OPTION (WSJT_ENABLE_EXPERIMENTAL_FEATURES "Enable features not fully ready for public releases." ON is_debug_build OFF) CMAKE_DEPENDENT_OPTION (WSJT_CREATE_WINMAIN - "The wsjtx target is normally built as GUI executable with a WinMain entry point on Windows, + "The target is normally built as GUI executable with a WinMain entry point on Windows, if you want a console application instead then set this option to OFF. If you just want to see the debug output from the application then the easiest way is to @@ -249,11 +183,6 @@ set (wsjt_qt_CXXSRCS HintedSpinBox.cpp RestrictedSpinBox.cpp HelpTextWindow.cpp - SampleDownloader.cpp - SampleDownloader/DirectoryDelegate.cpp - SampleDownloader/Directory.cpp - SampleDownloader/FileNode.cpp - SampleDownloader/RemoteFile.cpp DisplayManual.cpp MultiSettings.cpp MaidenheadLocatorValidator.cpp @@ -268,12 +197,12 @@ set (wsjt_qtmm_CXXSRCS Audio/BWFFile.cpp ) -set (jt9_FSRCS +set (js8_FSRCS lib/jt9.f90 lib/jt9a.f90 ) -set (jt9_CXXSRCS +set (js8_CXXSRCS lib/ipcomm.cpp ) @@ -685,7 +614,7 @@ set (all_CXXSRCS ${wsjt_CXXSRCS} ${wsjt_qt_CXXSRCS} ${wsjt_qtmm_CXXSRCS} - ${jt9_CXXSRCS} + ${js8_CXXSRCS} ${wsjtx_CXXSRCS} ${qcp_CXXSRCS} ) @@ -698,9 +627,6 @@ set (all_C_and_CXXSRCS ) set (TOP_LEVEL_RESOURCES - shortcuts.txt - mouse_commands.txt - prefixes.txt cty.dat icons/Darwin/FT8Call.iconset/icon_128x128.png contrib/gpl-v3-logo.svg @@ -869,14 +795,6 @@ if (WIN32) find_package (Qt5AxContainer REQUIRED) endif (WIN32) -# -# sub-directories -# -add_subdirectory (samples) -if (WSJT_GENERATE_DOCS) - add_subdirectory (doc) -endif (WSJT_GENERATE_DOCS) - # # Library building setup @@ -1124,7 +1042,7 @@ if (${OPENMP_FOUND} OR APPLE) if (APPLE) # On Mac we don't have working OpenMP support in the C/C++ # compilers so we have to manually set the correct flags to get - # OpenMP support in jt9. + # OpenMP support in js8. target_compile_options (wsjt_fort_omp PRIVATE $<$:-fopenmp> # assumes GNU style Fortran compiler @@ -1153,42 +1071,42 @@ target_link_libraries (wsjt_qtmm Qt5::Multimedia) add_executable (ldpcsim174 lib/ft8/ldpcsim174.f90 wsjtx.rc) target_link_libraries (ldpcsim174 wsjt_fort wsjt_cxx) -add_executable (jt9 ${jt9_FSRCS} ${jt9_CXXSRCS} wsjtx.rc) +add_executable (js8 ${js8_FSRCS} ${js8_CXXSRCS} wsjtx.rc) if (${OPENMP_FOUND} OR APPLE) if (APPLE) # On Mac we don't have working OpenMP support in the C/C++ # compilers so we have to manually set the correct linking flags - # and libraries to get OpenMP support in jt9. - set_target_properties (jt9 + # and libraries to get OpenMP support in js8. + set_target_properties (js8 PROPERTIES Fortran_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/fortran_modules_omp LINK_LIBRARIES "gomp;gcc_s.1" # assume GNU libgcc OpenMP ) - target_compile_options (jt9 + target_compile_options (js8 PRIVATE $<$:-fopenmp> # assumes GNU style Fortran compiler ) else (APPLE) if (OpenMP_C_FLAGS) - set_target_properties (jt9 + set_target_properties (js8 PROPERTIES COMPILE_FLAGS "${OpenMP_C_FLAGS}" LINK_FLAGS "${OpenMP_C_FLAGS}" ) endif () - set_target_properties (jt9 + set_target_properties (js8 PROPERTIES Fortran_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/fortran_modules_omp ) endif (APPLE) if (WIN32) - # set_target_properties (jt9 PROPERTIES + # set_target_properties (js8 PROPERTIES # LINK_FLAGS -Wl,--stack,16777216 # ) endif () - target_link_libraries (jt9 wsjt_fort_omp wsjt_cxx Qt5::Core) + target_link_libraries (js8 wsjt_fort_omp wsjt_cxx Qt5::Core) else (${OPENMP_FOUND} OR APPLE) - target_link_libraries (jt9 wsjt_fort wsjt_cxx Qt5::Core) + target_link_libraries (js8 wsjt_fort wsjt_cxx Qt5::Core) endif (${OPENMP_FOUND} OR APPLE) # build the main application @@ -1239,16 +1157,16 @@ else () endif () qt5_use_modules (ft8call SerialPort) # not sure why the interface link library syntax above doesn't work -if (UNIX) - if (NOT WSJT_SKIP_MANPAGES) - add_subdirectory (manpages) - add_dependencies (ft8call manpages) - endif (NOT WSJT_SKIP_MANPAGES) - if (NOT APPLE) - add_subdirectory (debian) - add_dependencies (ft8call debian) - endif (NOT APPLE) -endif (UNIX) +# if (UNIX) +# if (NOT WSJT_SKIP_MANPAGES) +# add_subdirectory (manpages) +# add_dependencies (ft8call manpages) +# endif (NOT WSJT_SKIP_MANPAGES) +# if (NOT APPLE) +# add_subdirectory (debian) +# add_dependencies (ft8call debian) +# endif (NOT APPLE) +# endif (UNIX) # @@ -1259,7 +1177,7 @@ install (TARGETS ft8call BUNDLE DESTINATION . COMPONENT runtime ) -install (TARGETS jt9 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime +install (TARGETS js8 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT runtime ) diff --git a/Release_Notes.txt b/Release_Notes.txt deleted file mode 100644 index eefd39d..0000000 --- a/Release_Notes.txt +++ /dev/null @@ -1,410 +0,0 @@ - __ __ ______ _____ ________ __ __ -| \ _ | \ / \ | \| \ | \ | \ -| $$ / \ | $$| $$$$$$\ \$$$$$ \$$$$$$$$ | $$ | $$ -| $$/ $\| $$| $$___\$$ | $$ | $$ ______ \$$\/ $$ -| $$ $$$\ $$ \$$ \ __ | $$ | $$| \ >$$ $$ -| $$ $$\$$\$$ _\$$$$$$\| \ | $$ | $$ \$$$$$$/ $$$$\ -| $$$$ \$$$$| \__| $$| $$__| $$ | $$ | $$ \$$\ -| $$$ \$$$ \$$ $$ \$$ $$ | $$ | $$ | $$ - \$$ \$$ \$$$$$$ \$$$$$$ \$$ \$$ \$$ - - - -Copyright 2001 - 2018 by Joe Taylor, K1JT. - - - - - Release: WSJT-X Version 1.9.1 - June 1, 2018 - ----------------------------- - -This critical bug fix release repairs an unintended restriction in the FT8 -DXpedition mode. It supersedes v1.9.0 and must be used for DXpedition Fox -operators. - - - Release: WSJT-X Version 1.9.0 - May 28, 2018 - ----------------------------- - -Changes from WSJT-X Version 1.9.0-rc4 include the following: -- Display in the right text window of MSK144 messages addressed to - "MyCall" has been restored. - -- Fox is not allowed to transmit in any of the default FT8 sub-bands. - -- Fox can now work Hounds using compound callsigns. - -- Fox can now transmit free-text messages (and any standard FT8 message) - by using Tab 1 or Tab 2. - -- Added a checkbox to enable more frequent programmed CQs by Fox. - Default is OFF. - -- Alt+N keyboard shortcut has been restored. - -- MacOS program crash on unexpected decode request has been fixed. - - -- Several minor bug fixes and added convenience features. - -- Hamlib, support for TRXManger added. - -- Hamlib, improved support for flrig. - - - Release: WSJT-X Version 1.9.0-rc4 - April 30, 2018 - --------------------------------- - -Changes from WSJT-X Version 1.9.0-rc3 include the following: - -- Corrected a number of flaws in Fox and Hound behavior, FT8 - DXpedition Mode - -- Decoded CQ calls where a prefix has been used as a suffix should - have the DXCC entity name assigned correctly in almost all cases - -- Improved AFC capability for the wider JT65 sub-modes to help with - drifting signals - -- Better support for macOS using hi-DPI Retina displays - -- New UDP message that allows external applications to highlight - decoded callsigns - -- Main-screen geometry and state of the "splitter" setting between its - two text windows is now properly restored after program restart. - -- New simulator jt49sim[.exe] replaces jt4sim and jt9sim - -- Correct S/N measurements for the JT9 slow/wide submodes - -- Other minor bug fixes - -- Updated copy of cty.dat - - - Release: WSJT-X Version 1.9.0-rc3 - March 18, 2018 - --------------------------------- - -Changes from WSJT-X Version 1.9.0-rc2 include the following: - -- Corrected a number of flaws in Fox behavior, FT8 DXpedition Mode - -- Allow Hounds to use compound callsigns - -- Write debugging information to FoxQSO.txt. - -- Fix the "Blue Decode Button" bug - -- Allow partial processing of incoming UDP Reply messages so that - non-CQ/QRZ decodes can be processed. The processing is the same as - double-clicking the same decoded message within WSJT-X except that - "Enable Tx" will not be enabled. - -- Send DX grid locator to wsjt_status.txt, for use by applications like - PstRotatorAZ - -- Correct the display of DXCC status of KG4 calls - -- Updated copy of cty.dat - -- Updates to documentation - -- Other minor bug fixes - -- This release contains updated Hamlib functionality including changes - to the Yaesu FT-817 back end that allows the uBITx kit transceiver - to be CAT controlled by WSJT-X. - - - - Release: WSJT-X Version 1.9.0-rc2 - February 26, 2018 - --------------------------------- - -Changes from WSJT-X Version 1.8.0 include the following: - -- New FT8 DXpedition Mode to facilitate high QSO rates in pileup - situations - -- Decoding improvements for JT65 mode, including a priori (AP) - decoding when VHF/UHF/Microwave features are enabled - -- Optional Auto-Sequencing in JT4, JT9, and JT65 when - VHF/UHF/Microwave features are enabled - -- Better suppression of low-confidence false decodes generated by AP - decoding in FT8 mode - -- Improved decoding performance for WSPR mode, especially effective at - LF and MF - -- Minor adjustments to auto-sequencing behavior - -- More flexible Doppler control features for EME - -- Improved waterfall sensitivity for very weak signals - -- Automatic real-time forwarding of logged information to N1MM Logger+ - -- Expanded and improved UDP messages sent to companion programs - -- Bug fixes and other minor tweaks to user interface - -A primary purpose of this beta release is to allow field testing of -FT8 DXpedition Mode. Instructions for this mode are posted here: - -http://physics.princeton.edu/pulsar/k1jt/FT8_DXpedition_Mode.pdf - -Contacts in FT8 DXpedition Mode must use WSJT-X v1.9.0 at both ends of -the QSO. Please report any anomalous behavior to email list -wsjt-devel@lists.sourceforge.net. You must be a subscriber in order -to post there. - - - Release: WSJT-X Version 1.8.0 - October 27, 2017 - ----------------------------- - -This is the full General Availability release of WSJT-X Version 1.8.0. - -Changes from WSJT-X Version 1.8.0-rc3 are very minor: - - - Right-click on the Wide Graph now pops up a Context Menu. Select - the item *Set Rx & Tx Offset* to complete a one-handed setting of - both red and green frequency markers. - - - Several clarifications and additions to Tool Tips and the User Guide. - - -We recommend that all users should upgrade to WSJT-X Version 1.8.0. - -If you upgrade from v1.8.0-rc1 it may be necessary to do a one-time -reset of the default list of suggested operating frequencies. Go to -*File->Settings->Frequencies*, right click on the table and select -*Reset*. - - - Release: WSJT-X Version 1.8.0-rc3 - October 16, 2017 - --------------------------------- - -Most (but not all) changes since Version 1.8.0-rc2 involve user -control of the increasingly popular FT8 mode. The "RC3" release also -includes minor bug fixes and updates to the WSJT-X User Guide. - -The following list includes all of the more important changes: - -- New optimization of GUI for simplex and split behavior in FT8 mode. - - 1. Checkbox "Lock Tx Freq" on main window is relabeled "Hold Tx Freq". - - 2. Double-clicking on decoded messages that do not contain your own - call moves both Rx and Tx frequencies. If the first callsign is - your own call, only Rx freq moves. - - 3. Double-clicking on decoded messages moves the Rx frequency. If - "Hold Tx Freq" is checked, Tx frequency is moved only if CTRL was - held down. - - 4. Clicking on the waterfall moves Rx and Tx frequencies as - before: Rx only on a simple click, Tx only on SHIFT-click, and - both on CTRL-click. This happens even if "Hold Tx Freq" is - checked. - -- Add a semi-automated "FreqCal" procedure: see *Solve for calibration -parameters* on the Tools menu. - -- Improv auto-sequencing behavior: stop and on-frequency -transmission if a called station comes back to someone else. - -- Improve S/N estimation in some situations involving QRM. - -- Fix an initialization issue with user-modified application fonts. - -- Fix an issue with Tx5 message generation with Type 2 compound calls. - -- Enhance and improve the ADIF parser of logbook records. Update -the band limits as per ADIF 3.0.6 specification. - -- Increase the FT8 DT range to +/- 2.5 s. - -- Do not allow window manager events to close the astronomical data -window. - -- Add an "Erase" item to the context (right-click) menu for decoded -text. - -- Extend UDP messages with an "off air" boolean field indicating that -the decode was derived from a .WAV file playback rather than an on air -reception. - -- Extend reference applications to use the new off air decode message -field. - -- Improve performance of FT8 decoder, especially for overlapping -signals. - -- Allow specialized use of "x2 Tone Spacing" in FT8 and slow JT9 -modes. - -- Move "NA VHF Contest Mode" checkbox to main screen. Query the -operator if d > 10000 km. - -- Adjust UI to improve portability with font size changes and between -platforms. - -- Extend UDP Reply message to support keyboard modifiers. This allows -UDP servers to emulate keyboard modified double-clicks on decoded -messages, e.g. ALT+double-click for replying to a CQ or QRZ call -without changing ones Tx frequency offset. - -- Update the cty.dat file (21st Sept 2017). - -- Ensure that Fast Graph is properly initialized. - -- Better handling of worked before and country name display. Appended -text is added at a fixed column unless the message overlaps in which -case the appended information floats to the right. - -- Restore printing of MSK144 decode quality information. - -- Display Echo Graph automatically when Echo mode is started. - -- Fix a bug that prevented double-click on a JT65 EME-style "OOO" -message from populating the Tx message boxes. - -- Fixed behavior with double-click on 'CQ .' - -- Update the "blank line" divider with band ID at 4*TRperiod/5. - -- Fix cty.dat lookups that were not honouring exact match flags - -- Add some further Copyright protections. - -- Fix a bug involving "firstcall contains mycall" but not equal to mycall. - -- Fix an issue with editing IARU regions in the working frequencies table. - - - - - Release: WSJT-X Version 1.8.0-rc2 - September 2, 2017 - --------------------------------- - -Implementation of FT8 and its auto-sequencing feature is now more -capable and more polished. The decoder is faster and better: it now -includes signal subtraction, multi-pass decoding, and the use of -accumulated "a priori" information as a QSO progresses. Sensitivity -extends downward as far as -24 dB in some circumstances. Overlapping -signals 2 and 3 deep are frequently decoded at essentially the same -frequency. On a crowded band we sometimes see more than 30 decodes in -a single 15-second interval, over a 2 kHz window. The North American -VHF Contesting Mode has been extended to include both FT8 and MSK144 -modes. - -The "RC2" release also includes many minor bug fixes and an -extensively updated WSJT-X User Guide. - -Depending on what code revision you upgrade from, it may be necessary -to do a one-time reset of the default list of suggested operating -frequencies. Go to *File->Settings->Frequencies*, right click on -the table and select *Reset*. - - - Release: WSJT-X Version 1.8.0 - ----------------------------- - -NEW FEATURES IN WSJT-X Version 1.8.0 ------------------------------------- - -1. New mode called FT8: sensitivity down to -20 dB on the AWGN - channel; QSOs 4 times faster than JT65 or JT9; auto-sequencing - includes an option to respond automatically to first decoded - reply to your CQ. - -2. New mode for accurate Frequency Calibration of your radio. - -3. Improved performance of decoders for JT65, QRA64, and MSK144. - MSK144 includes facilities for amplitide and phase equalization - and an "SWL" mode for short-format messages. - -4. Options to minimize screen space used by Main and Wide Graph - windows. - -5. Enhanced management scheme for table of operating frequencies, and - a new set of default frequencies specific to the three IARU - Regions. - -6. Improved CAT control for many rigs, including those controlled - through Commander or OmniRig. - -7. New keyboard shortcuts to set "Tx even/1st" ON or OFF. - -8. A number of (mostly minor) bug fixes and tweaks to the user - interface. For example: new behavior for the audio level slider; - correctly logged QSO start times in certain situations; correct - control of FT-891/991 and some other radios via rigctld. - -At the time of the v1.8.0-rc1 release the following tasks are yet to -be completed: - -1. Updates to WSJT-X User Guide. -2. Sample files for FT8. -3. Enhanced decoding using AP ("a priori") information. -4. Signal subtraction and multi-pass decoding. -5. Option to Auto-respond to the weakest responder to your CQ. - - -Installation packages for Windows, Linux, OS X, and Raspbian can be -downloaded from the WSJT web site: -http://physics.princeton.edu/pulsar/K1JT/wsjtx.html - -Please send bug reports to either wsjtgroup@yahoogroups.com or -wsjt-devel@lists.sourceforge.net. Such reports should include a full -prescription of steps to reproduce the undesired behavior. You must -be a subscriber to post to either of these lists. - - - Brief Description of the FT8 Protocol - ------------------------------------- - -WSJT-X Version 1.8.0 includes a new mode called FT8, developed by K9AN -and K1JT. The mode name "FT8" stands for "Franke and Taylor, 8-FSK -modulation". FT8 uses 15-second T/R sequences and provides 50% or -better decoding probability down to -20 dB on an AWGN channel. An -auto-sequencing facility includes an option to respond automatically -to the first decoded reply to your CQ. FT8 QSOs are 4 times faster -than those made with JT65 or JT9. FT8 is an excellent mode for HF -DXing and for situations like multi-hop E_s on 6 meters, where deep -QSB may make fast and reliable completion of QSOs desirable. - -Some important characteristics of FT8: - - - T/R sequence length: 15 s - - Message length: 75 bits + 12-bit CRC - - FEC code: LDPC(174,87) - - Modulation: 8-FSK, tone spacing 6.25 Hz - - Constant-envelope waveform - - Occupied bandwidth: 50 Hz - - Synchronization: 7x7 Costas arrays at start, middle, and end - - Transmission duration: 79*1920/12000 = 12.64 s - - Decoding threshold: -20 dB; several dB lower with AP decoding - - Multi-decoder finds and decodes all FT8 signals in passband - - Optional auto-sequencing and auto-reply to a CQ response - - Operational behavior similar to JT9, JT65 - -We plan to implement signal subtraction, two-pass decoding, and use of -a priori (AP) information in the decoder. These features are not yet -activated in v1.8.0. - -We haven't yet finalized what the three extra bits in the message -payload will be used for. Suggestions are welcome! - - -- Joe, K1JT, for the WSJT Development Team - diff --git a/SampleDownloader.cpp b/SampleDownloader.cpp deleted file mode 100644 index 2ea930c..0000000 --- a/SampleDownloader.cpp +++ /dev/null @@ -1,159 +0,0 @@ -#include "SampleDownloader.hpp" - -#include -#include -#include - -#include "pimpl_impl.hpp" -#include "SettingsGroup.hpp" -#include "SampleDownloader/Directory.hpp" -#include "MessageBox.hpp" - -#include "moc_SampleDownloader.cpp" - -namespace -{ - char const * const title = "Download Samples"; -} - -class SampleDownloader::impl final - : public QDialog -{ - Q_OBJECT - -public: - explicit impl (QSettings * settings, Configuration const *, QNetworkAccessManager *, QWidget * parent); - ~impl () {save_window_state ();} - - void refresh () - { - show (); - raise (); - activateWindow (); - directory_.refresh (http_only_check_box_.isChecked ()); - } - -protected: - void closeEvent (QCloseEvent * e) override - { - save_window_state (); - QDialog::closeEvent (e); - } - -private: - void save_window_state () - { - SettingsGroup g (settings_, title); - settings_->setValue ("geometry", saveGeometry ()); - settings_->setValue ("SamplesURL", url_line_edit_.text ()); - settings_->setValue ("HTTPOnly", http_only_check_box_.isChecked ()); - } - - Q_SLOT void button_clicked (QAbstractButton *); - - QSettings * settings_; - Directory directory_; - QGridLayout main_layout_; - QVBoxLayout left_layout_; - QDialogButtonBox button_box_; - QWidget details_widget_; - QFormLayout details_layout_; - QLineEdit url_line_edit_; - QCheckBox http_only_check_box_; -}; - -#include "SampleDownloader.moc" - -SampleDownloader::SampleDownloader (QSettings * settings, Configuration const * configuration - , QNetworkAccessManager * network_manager, QWidget * parent) - : m_ {settings, configuration, network_manager, parent} -{ -} - -SampleDownloader::~SampleDownloader () -{ -} - -void SampleDownloader::show () -{ - m_->refresh (); -} - -SampleDownloader::impl::impl (QSettings * settings - , Configuration const * configuration - , QNetworkAccessManager * network_manager - , QWidget * parent) - : QDialog {parent, Qt::Window | Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::WindowMinimizeButtonHint} - , settings_ {settings} - , directory_ {configuration, network_manager} - , button_box_ {QDialogButtonBox::Close, Qt::Vertical} -{ - setWindowTitle (windowTitle () + ' ' + tr (title)); - resize (500, 600); - { - SettingsGroup g {settings_, title}; - restoreGeometry (settings_->value ("geometry", saveGeometry ()).toByteArray ()); - url_line_edit_.setText (settings_->value ("SamplesURL", PROJECT_SAMPLES_URL).toString ()); - http_only_check_box_.setChecked (settings_->value ("HTTPOnly", false).toBool ()); - directory_.url_root (url_line_edit_.text ()); - } - - setWindowTitle (QApplication::applicationName () + " - " + tr ("Download Samples")); - - button_box_.button (QDialogButtonBox::Close)->setDefault (true); - button_box_.addButton ("&Abort", QDialogButtonBox::DestructiveRole); - button_box_.addButton ("&Refresh", QDialogButtonBox::ResetRole); - left_layout_.addWidget (&directory_); - - auto details_button = button_box_.addButton ("&Details", QDialogButtonBox::HelpRole); - details_button->setCheckable (true); - details_widget_.hide (); - details_layout_.setMargin (0); - details_layout_.addRow ("Base URL for samples:", &url_line_edit_); - details_layout_.addRow ("Only use HTTP:", &http_only_check_box_); - http_only_check_box_.setToolTip ("Check this is you get SSL/TLS errors"); - details_widget_.setLayout (&details_layout_); - - main_layout_.addLayout (&left_layout_, 0, 0); - main_layout_.addWidget (&button_box_, 0, 1); - main_layout_.addWidget (&details_widget_, 1, 0, 1, 2); - main_layout_.setRowStretch (1, 2); - setLayout (&main_layout_); - - connect (&button_box_, &QDialogButtonBox::clicked, this, &SampleDownloader::impl::button_clicked); - connect (details_button, &QAbstractButton::clicked, &details_widget_, &QWidget::setVisible); - connect (&url_line_edit_, &QLineEdit::editingFinished, [this] () { - if (directory_.url_root (url_line_edit_.text ())) - { - directory_.refresh (http_only_check_box_.isChecked ()); - } - else - { - MessageBox::warning_message (this, tr ("Input Error"), tr ("Invalid URL format")); - } - }); - connect (&http_only_check_box_, &QAbstractButton::toggled, [this] (bool checked) { - directory_.refresh (checked); - }); -} - -void SampleDownloader::impl::button_clicked (QAbstractButton * button) -{ - switch (button_box_.buttonRole (button)) - { - case QDialogButtonBox::RejectRole: - hide (); - break; - - case QDialogButtonBox::DestructiveRole: - directory_.abort (); - break; - - case QDialogButtonBox::ResetRole: - directory_.refresh (http_only_check_box_.isChecked ()); - break; - - default: - break; - } -} diff --git a/SampleDownloader.hpp b/SampleDownloader.hpp deleted file mode 100644 index 0dfa05b..0000000 --- a/SampleDownloader.hpp +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef SAMPLE_DOWNLOADER_HPP__ -#define SAMPLE_DOWNLOADER_HPP__ - -#include - -#include "pimpl_h.hpp" - -class QSettings; -class QWidget; -class QNetworkAccessManager; -class Configuration; - -// -// SampleDownloader - A Dialog to maintain sample files -// -// This uses a Qt Dialog window that contains a tree view of the -// available sample files on a web or ftp server. The files can be -// installed locally by ticking a check box or removed from the local -// machine by un-ticking the check boxes. -// -// The class requires a pointer to an open QSettings instance where it -// will save its persistent state, a pointer to a WSJT-X Configuration -// instance that is used to obtain configuration information like the -// current file save location and, a pointer to a -// QNetworkAccessManager instance which is used for network requests. -// -// An instance of SampleDownloader need not be destroyed after use, -// just call SampleDownloader::show() to make the dialog visible -// again. -// -class SampleDownloader final - : public QObject -{ - Q_OBJECT; - -public: - SampleDownloader (QSettings * settings - , Configuration const * - , QNetworkAccessManager * - , QWidget * parent = nullptr); - ~SampleDownloader (); - - Q_SLOT void show (); - -private: - class impl; - pimpl m_; -}; - -#endif diff --git a/SampleDownloader/Directory.cpp b/SampleDownloader/Directory.cpp deleted file mode 100644 index 92c1c5c..0000000 --- a/SampleDownloader/Directory.cpp +++ /dev/null @@ -1,319 +0,0 @@ -#include "Directory.hpp" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "Configuration.hpp" -#include "DirectoryNode.hpp" -#include "FileNode.hpp" -#include "revision_utils.hpp" -#include "MessageBox.hpp" - -#include "moc_Directory.cpp" - -namespace -{ - char const * samples_dir_name = "samples"; - QString const contents_file_name = "contents_" + version (false) + ".json"; -} - -Directory::Directory (Configuration const * configuration - , QNetworkAccessManager * network_manager - , QWidget * parent) - : QTreeWidget {parent} - , configuration_ {configuration} - , network_manager_ {network_manager} - , http_only_ {false} - , root_dir_ {configuration_->save_directory ()} - , contents_ {this - , network_manager_ - , QDir {root_dir_.absoluteFilePath (samples_dir_name)}.absoluteFilePath (contents_file_name)} -{ - dir_icon_.addPixmap (style ()->standardPixmap (QStyle::SP_DirClosedIcon), QIcon::Normal, QIcon::Off); - dir_icon_.addPixmap (style ()->standardPixmap (QStyle::SP_DirOpenIcon), QIcon::Normal, QIcon::On); - file_icon_.addPixmap (style ()->standardPixmap (QStyle::SP_FileIcon)); - - setColumnCount (2); - setHeaderLabels ({"File", "Progress"}); - header ()->setSectionResizeMode (QHeaderView::ResizeToContents); - setItemDelegate (&item_delegate_); - - connect (network_manager_, &QNetworkAccessManager::authenticationRequired - , this, &Directory::authentication); - connect (this, &Directory::itemChanged, [this] (QTreeWidgetItem * item) { - switch (item->type ()) - { - case FileNode::Type: - { - FileNode * node = static_cast (item); - if (!node->sync (node->checkState (0) == Qt::Checked)) - { - FileNode::sync_blocker b {node}; - node->setCheckState (0, node->checkState (0) == Qt::Checked ? Qt::Unchecked : Qt::Checked); - } - } - break; - - default: - break; - } - }); -} - -bool Directory::url_root (QUrl root) -{ - if (!root.path ().endsWith ('/')) - { - root.setPath (root.path () + '/'); - } - bool valid = root.isValid (); - if (valid) - { - url_root_ = root; - } - return valid; -} - -void Directory::error (QString const& title, QString const& message) -{ - MessageBox::warning_message (this, title, message); -} - -bool Directory::refresh (bool http_only) -{ - abort (); - clear (); - // update locations - root_dir_ = configuration_->save_directory (); - QDir contents_dir {root_dir_.absoluteFilePath (samples_dir_name)}; - contents_.local_file_path (contents_dir.absoluteFilePath (contents_file_name)); - contents_.http_only (http_only_ = http_only); - QUrl url {url_root_.resolved (QDir {root_dir_.relativeFilePath (samples_dir_name)}.filePath (contents_file_name))}; - if (url.isValid ()) - { - return contents_.sync (url, true, true); // attempt to fetch contents - } - else - { - MessageBox::warning_message (this - , tr ("URL Error") - , tr ("Invalid URL:\n\"%1\"") - .arg (url.toDisplayString ())); - } - return false; -} - -void Directory::download_finished (bool success) -{ - if (success) - { - QFile contents {contents_.local_file_path ()}; - if (contents.open (QFile::ReadOnly | QFile::Text)) - { - QJsonParseError json_status; - auto content = QJsonDocument::fromJson (contents.readAll (), &json_status); - if (json_status.error) - { - MessageBox::warning_message (this - , tr ("JSON Error") - , tr ("Contents file syntax error %1 at character offset %2") - .arg (json_status.errorString ()).arg (json_status.offset)); - return; - } - if (!content.isArray ()) - { - MessageBox::warning_message (this, tr ("JSON Error") - , tr ("Contents file top level must be a JSON array")); - return; - } - QTreeWidgetItem * parent {invisibleRootItem ()}; - parent = new DirectoryNode {parent, samples_dir_name}; - parent->setIcon (0, dir_icon_); - parent->setExpanded (true); - parse_entries (content.array (), root_dir_.relativeFilePath (samples_dir_name), parent); - } - else - { - MessageBox::warning_message (this, tr ("File System Error") - , tr ("Failed to open \"%1\"\nError: %2 - %3") - .arg (contents.fileName ()) - .arg (contents.error ()) - .arg (contents.errorString ())); - } - } -} - -void Directory::parse_entries (QJsonArray const& entries, QDir const& dir, QTreeWidgetItem * parent) -{ - if (dir.isRelative () && !dir.path ().startsWith ('.')) - { - for (auto const& value: entries) - { - if (value.isObject ()) - { - auto const& entry = value.toObject (); - auto const& name = entry["name"].toString (); - if (name.size () && !name.contains (QRegularExpression {R"([/:;])"})) - { - auto const& type = entry["type"].toString (); - if ("file" == type) - { - QUrl url {url_root_.resolved (dir.filePath (name))}; - if (url.isValid ()) - { - auto node = new FileNode {parent, network_manager_ - , QDir {root_dir_.filePath (dir.path ())}.absoluteFilePath (name) - , url, http_only_}; - FileNode::sync_blocker b {node}; - node->setIcon (0, file_icon_); - node->setCheckState (0, node->local () ? Qt::Checked : Qt::Unchecked); - update (parent); - } - else - { - MessageBox::warning_message (this - , tr ("URL Error") - , tr ("Invalid URL:\n\"%1\"") - .arg (url.toDisplayString ())); - } - } - else if ("directory" == type) - { - auto node = new DirectoryNode {parent, name}; - node->setIcon (0, dir_icon_); - auto const& entries = entry["entries"]; - if (entries.isArray ()) - { - parse_entries (entries.toArray () - , QDir {root_dir_.relativeFilePath (dir.path ())}.filePath (name) - , node); - } - else - { - MessageBox::warning_message (this, tr ("JSON Error") - , tr ("Contents entries must be a JSON array")); - } - } - else - { - MessageBox::warning_message (this, tr ("JSON Error") - , tr ("Contents entries must have a valid type")); - } - } - else - { - MessageBox::warning_message (this, tr ("JSON Error") - , tr ("Contents entries must have a valid name")); - } - } - else - { - MessageBox::warning_message (this, tr ("JSON Error") - , tr ("Contents entries must be JSON objects")); - } - } - } - else - { - MessageBox::warning_message (this, tr ("JSON Error") - , tr ("Contents directories must be relative and within \"%1\"") - .arg (samples_dir_name)); - } -} - -void Directory::abort () -{ - QTreeWidgetItemIterator iter {this}; - while (*iter) - { - if ((*iter)->type () == FileNode::Type) - { - auto * node = static_cast (*iter); - node->abort (); - } - ++iter; - } -} - -namespace -{ - // - // traverse the passed subtree accumulating the number of items, the - // number we have size data for, the bytes downloaded so far and the - // maximum bytes to expect - // - int recurse_children (QTreeWidgetItem const * item, int * counted - , qint64 * bytes, qint64 * max) - { - int items {0}; - for (int index {0}; index < item->childCount (); ++index) - { - auto const * child = item->child (index); - if (child->type () == FileNode::Type) // only count files - { - ++items; - if (auto size = child->data (1, Qt::UserRole).toLongLong ()) - { - *max += size; - ++*counted; - } - *bytes += child->data (1, Qt::DisplayRole).toLongLong (); - } - else - { - // recurse into sub-directory subtrees - items += recurse_children (child, counted, bytes, max); - } - } - return items; - } -} - -void Directory::update (QTreeWidgetItem * item) -{ - // iterate the tree under item and accumulate the progress - if (item) - { - Q_ASSERT (item->type () == DirectoryNode::Type); - qint64 max {0}; - qint64 bytes {0}; - int counted {0}; - - // get the count, progress and size of children - int items {recurse_children (item, &counted, &bytes, &max)}; - - // estimate size of items not yet downloaded as average of - // those actually present - if (counted) - { - max += (items - counted) * max / counted; - } - - // save as our progress - item->setData (1, Qt::UserRole, max); - item->setData (1, Qt::DisplayRole, bytes); - - // recurse up to top - update (item->parent ()); - } -} - -void Directory::authentication (QNetworkReply * /* reply */ - , QAuthenticator * /* authenticator */) -{ - MessageBox::warning_message (this, tr ("Network Error"), tr ("Authentication required")); -} diff --git a/SampleDownloader/Directory.hpp b/SampleDownloader/Directory.hpp deleted file mode 100644 index 1ffae0d..0000000 --- a/SampleDownloader/Directory.hpp +++ /dev/null @@ -1,60 +0,0 @@ -#ifndef SAMPLE_DOWNLOADER_DIRECTORY_HPP__ -#define SAMPLE_DOWNLOADER_DIRECTORY_HPP__ - -#include -#include -#include -#include -#include -#include -#include - -#include "DirectoryDelegate.hpp" -#include "RemoteFile.hpp" - -class Configuration; -class QNetworkAccessManager; -class QTreeWidgetItem; -class QNetworkReply; -class QAuthenticator; -class QJsonArray; - -class Directory final - : public QTreeWidget - , protected RemoteFile::ListenerInterface -{ - Q_OBJECT - -public: - explicit Directory (Configuration const * configuration - , QNetworkAccessManager * network_manager - , QWidget * parent = nullptr); - - QSize sizeHint () const override {return {400, 500};} - - bool url_root (QUrl); - bool refresh (bool http_only); - void abort (); - void update (QTreeWidgetItem * item); - -protected: - void error (QString const& title, QString const& message) override; - bool redirect_request (QUrl const&) override {return true;} // allow - void download_finished (bool success) override; - -private: - Q_SLOT void authentication (QNetworkReply *, QAuthenticator *); - void parse_entries (QJsonArray const& entries, QDir const& dir, QTreeWidgetItem * parent); - - Configuration const * configuration_; - QNetworkAccessManager * network_manager_; - bool http_only_; - QDir root_dir_; - QUrl url_root_; - RemoteFile contents_; - DirectoryDelegate item_delegate_; - QIcon dir_icon_; - QIcon file_icon_; -}; - -#endif diff --git a/SampleDownloader/DirectoryDelegate.cpp b/SampleDownloader/DirectoryDelegate.cpp deleted file mode 100644 index f64e987..0000000 --- a/SampleDownloader/DirectoryDelegate.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include "DirectoryDelegate.hpp" - -#include -#include -#include -#include -#include -#include -#include -#include - -void DirectoryDelegate::paint (QPainter * painter, QStyleOptionViewItem const& option - , QModelIndex const& index) const -{ - if (1 == index.column ()) - { - QStyleOptionProgressBar progress_bar_option; - progress_bar_option.rect = option.rect; - progress_bar_option.state = QStyle::State_Enabled; - progress_bar_option.direction = QApplication::layoutDirection (); - progress_bar_option.fontMetrics = QApplication::fontMetrics (); - progress_bar_option.minimum = 0; - progress_bar_option.maximum = 100; - auto progress = index.data ().toLongLong (); - if (progress > 0) - { - auto percent = int (progress * 100 / index.data (Qt::UserRole).toLongLong ()); - progress_bar_option.progress = percent; - progress_bar_option.text = QString::number (percent) + '%'; - progress_bar_option.textVisible = true; - progress_bar_option.textAlignment = Qt::AlignCenter; - } - else - { - // not started - progress_bar_option.progress = -1; - } - QApplication::style ()->drawControl (QStyle::CE_ProgressBar, &progress_bar_option, painter); - } - else - { - QStyledItemDelegate::paint (painter, option, index); - } -} diff --git a/SampleDownloader/DirectoryDelegate.hpp b/SampleDownloader/DirectoryDelegate.hpp deleted file mode 100644 index 65dfd00..0000000 --- a/SampleDownloader/DirectoryDelegate.hpp +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef DIRECTORY_DELEGATE_HPP__ -#define DIRECTORY_DELEGATE_HPP__ - -#include - -class QObject; -class QStyleOptionVoew; -class QModelIndex; -class QPainter; - -// -// Styled item delegate that renders a progress bar in column #1 -// -// model column #1 DisplayRole is the progress in bytes -// model column #1 UserRole is the expected number of bytes -// -class DirectoryDelegate final - : public QStyledItemDelegate -{ -public: - explicit DirectoryDelegate (QObject * parent = nullptr) - : QStyledItemDelegate {parent} - { - } - - void paint (QPainter * painter, QStyleOptionViewItem const& option - , QModelIndex const& index) const override; -}; - -#endif diff --git a/SampleDownloader/DirectoryNode.hpp b/SampleDownloader/DirectoryNode.hpp deleted file mode 100644 index 2de16ea..0000000 --- a/SampleDownloader/DirectoryNode.hpp +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef DIRECTORY_NODE_HPP__ -#define DIRECTORY_NODE_HPP__ - -#include -#include - -// -// Tree widget item representing a file system directory. -// -// It renders the directory name in the first column and progress -// information in the 2nd column. The progress information consists of -// two 64 bit integer values, the 1st in the DisplayRole is the number -// of bytes received and the 2nd in the UserRole the total bytes -// expected. The progress information is not automatically -// maintained, see the Directory class for an example of how to -// dynamically maintain the DirectoryNode progress values. The 1st -// column also renders a tristate check box that controls the first -// column check boxes of child items. -// -class DirectoryNode final - : public QTreeWidgetItem -{ -public: - explicit DirectoryNode (QTreeWidgetItem * parent, QString const& name) - : QTreeWidgetItem {parent, Type} - { - setFlags (flags () | Qt::ItemIsUserCheckable | Qt::ItemIsTristate); - setText (0, name); - setCheckState (0, Qt::Unchecked); - - // initialize as empty, the owning QTreeWidget must maintain these - // progress values - setData (1, Qt::DisplayRole, 0ll); // progress in bytes - setData (1, Qt::UserRole, 0ll); // expected bytes - } - - bool operator == (QString const& name) const - { - return name == text (0); - } - - static int constexpr Type {UserType}; -}; - -inline -bool operator == (QString const& lhs, DirectoryNode const& rhs) -{ - return rhs == lhs; -} - -#endif diff --git a/SampleDownloader/FileNode.cpp b/SampleDownloader/FileNode.cpp deleted file mode 100644 index 85234f3..0000000 --- a/SampleDownloader/FileNode.cpp +++ /dev/null @@ -1,74 +0,0 @@ -#include "FileNode.hpp" - -#include -#include -#include -#include - -#include "Directory.hpp" -#include "MessageBox.hpp" - -FileNode::FileNode (QTreeWidgetItem * parent - , QNetworkAccessManager * network_manager - , QString const& local_file_path - , QUrl const& url - , bool http_only) - : QTreeWidgetItem {parent, Type} - , remote_file_ {this, network_manager, local_file_path, http_only} - , block_sync_ {false} -{ - sync_blocker b {this}; - setFlags (flags () | Qt::ItemIsUserCheckable); - setText (0, QFileInfo {local_file_path}.fileName ()); // display - setData (0, Qt::UserRole, url); - setData (0, Qt::UserRole + 1, local_file_path); // local absolute path - setCheckState (0, Qt::Unchecked); -} - -void FileNode::error (QString const& title, QString const& message) -{ - MessageBox::warning_message (treeWidget (), title, message); -} - -bool FileNode::sync (bool local) -{ - if (block_sync_) - { - return true; - } - return remote_file_.sync (data (0, Qt::UserRole).toUrl (), local); -} - -void FileNode::download_progress (qint64 bytes_received, qint64 total_bytes) -{ - sync_blocker b {this}; - setData (1, Qt::UserRole, total_bytes); - if (bytes_received < 0) - { - setData (1, Qt::DisplayRole, 0ll); - setCheckState (0, Qt::Unchecked); - } - else - { - setData (1, Qt::DisplayRole, bytes_received); - } - static_cast (treeWidget ())->update (parent ()); -} - -void FileNode::download_finished (bool success) -{ - sync_blocker b {this}; - if (!success) - { - setData (1, Qt::UserRole, 0ll); - setData (1, Qt::DisplayRole, 0ll); - } - setCheckState (0, success ? Qt::Checked : Qt::Unchecked); - static_cast (treeWidget ())->update (parent ()); -} - -void FileNode::abort () -{ - sync_blocker b {this}; - remote_file_.abort (); -} diff --git a/SampleDownloader/FileNode.hpp b/SampleDownloader/FileNode.hpp deleted file mode 100644 index 4ba9f9d..0000000 --- a/SampleDownloader/FileNode.hpp +++ /dev/null @@ -1,67 +0,0 @@ -#ifndef FILE_NODE_HPP__ -#define FILE_NODE_HPP__ - -#include - -#include "RemoteFile.hpp" - -class QNetworkAccessManager; -class QString; -class QUrl; - -// -// A holder for a RemoteFile object linked to a QTreeWidget row. -// -// It renders the file name in first column and holds download -// progress data in the second column. The progress information is a -// 64 bit integer number of bytes in the DisplayRole and a total bytes -// expected in the UserRole. The first column also renders a check box -// that downloads the file when checked and removes the downloaded -// file when unchecked. The URL and local absolute file path are -// stored in the UserData and UserData+1 roles of the first column. -// -class FileNode final - : public QTreeWidgetItem - , protected RemoteFile::ListenerInterface -{ -public: - explicit FileNode (QTreeWidgetItem * parent - , QNetworkAccessManager * network_manager - , QString const& local_path - , QUrl const& url - , bool http_only); - - bool local () const {return remote_file_.local ();} - bool sync (bool local); - void abort (); - - static int constexpr Type {UserType + 1}; - - // - // Clients may use this RAII class to block nested calls to sync - // which may be troublesome, e.g. when UI updates cause recursion. - // - struct sync_blocker - { - sync_blocker (FileNode * node) : node_ {node} {node_->block_sync_ = true;} - sync_blocker (sync_blocker const&) = delete; - sync_blocker& operator = (sync_blocker const&) = delete; - ~sync_blocker () {node_->block_sync_ = false;} - private: - FileNode * node_; - }; - -protected: - void error (QString const& title, QString const& message) override; - bool redirect_request (QUrl const&) override {return true;} // allow - void download_progress (qint64 bytes_received, qint64 total_bytes) override; - void download_finished (bool success) override; - -private: - RemoteFile remote_file_; // active download - bool block_sync_; - - friend struct sync_blocker; -}; - -#endif diff --git a/SampleDownloader/README b/SampleDownloader/README deleted file mode 100644 index d11bfc7..0000000 --- a/SampleDownloader/README +++ /dev/null @@ -1,5 +0,0 @@ -A UI for downloading sample files from a web server. - -Works in concert with samples/CMakeLists.txt which generates the JSON -contents description file and has a build target upload-samples that -uploads the samples and content file to the project files server. diff --git a/SampleDownloader/RemoteFile.cpp b/SampleDownloader/RemoteFile.cpp deleted file mode 100644 index 01bfc3f..0000000 --- a/SampleDownloader/RemoteFile.cpp +++ /dev/null @@ -1,271 +0,0 @@ -#include "RemoteFile.hpp" - -#include - -#include -#include -#include -#include - -#include "moc_RemoteFile.cpp" - -RemoteFile::RemoteFile (ListenerInterface * listener, QNetworkAccessManager * network_manager - , QString const& local_file_path, bool http_only, QObject * parent) - : QObject {parent} - , listener_ {listener} - , network_manager_ {network_manager} - , local_file_ {local_file_path} - , http_only_ {http_only} - , is_valid_ {false} - , redirect_count_ {0} - , file_ {local_file_path} -{ - local_file_.setCaching (false); -} - -void RemoteFile::local_file_path (QString const& name) -{ - QFileInfo new_file {name}; - new_file.setCaching (false); - if (new_file != local_file_) - { - if (local_file_.exists ()) - { - QFile file {local_file_.absoluteFilePath ()}; - if (!file.rename (new_file.absoluteFilePath ())) - { - listener_->error (tr ("File System Error") - , tr ("Cannot rename file:\n\"%1\"\nto: \"%2\"\nError(%3): %4") - .arg (file.fileName ()) - .arg (new_file.absoluteFilePath ()) - .arg (file.error ()) - .arg (file.errorString ())); - } - } - std::swap (local_file_, new_file); - } -} - -bool RemoteFile::local () const -{ - auto is_local = (reply_ && !reply_->isFinished ()) || local_file_.exists (); - if (is_local) - { - auto size = local_file_.size (); - listener_->download_progress (size, size); - listener_->download_finished (true); - } - else - { - listener_->download_progress (-1, 0); - } - return is_local; -} - -bool RemoteFile::sync (QUrl const& url, bool local, bool force) -{ - if (local) - { - if (!reply_ || reply_->isFinished ()) // not active download - { - if (force || !local_file_.exists () || url != url_) - { - url_ = url; - redirect_count_ = 0; - Q_ASSERT (!is_valid_); - download (url_); - } - } - else - { - return false; - } - } - else - { - if (reply_ && reply_->isRunning ()) - { - reply_->abort (); - } - if (local_file_.exists ()) - { - auto path = local_file_.absoluteDir (); - if (path.remove (local_file_.fileName ())) - { - listener_->download_progress (-1, 0); - } - else - { - listener_->error (tr ("File System Error") - , tr ("Cannot delete file:\n\"%1\"") - .arg (local_file_.absoluteFilePath ())); - return false; - } - path.rmpath ("."); - } - } - return true; -} - -void RemoteFile::download (QUrl url) -{ - if (QNetworkAccessManager::Accessible != network_manager_->networkAccessible ()) { - // try and recover network access for QNAM - network_manager_->setNetworkAccessible (QNetworkAccessManager::Accessible); - } - - if (url.isValid () && (!QSslSocket::supportsSsl () || http_only_)) - { - url.setScheme ("http"); - } - QNetworkRequest request {url}; - request.setRawHeader ("User-Agent", "WSJT Sample Downloader"); - request.setOriginatingObject (this); - - // this blocks for a second or two the first time it is used on - // Windows - annoying - if (!is_valid_) - { - reply_ = network_manager_->head (request); - } - else - { - reply_ = network_manager_->get (request); - } - - connect (reply_.data (), &QNetworkReply::finished, this, &RemoteFile::reply_finished); - connect (reply_.data (), &QNetworkReply::readyRead, this, &RemoteFile::store); - connect (reply_.data (), &QNetworkReply::downloadProgress - , [this] (qint64 bytes_received, qint64 total_bytes) { - // report progress of wanted file - if (is_valid_) - { - listener_->download_progress (bytes_received, total_bytes); - } - }); -} - -void RemoteFile::abort () -{ - if (reply_ && reply_->isRunning ()) - { - reply_->abort (); - } -} - -void RemoteFile::reply_finished () -{ - if (!reply_) return; // we probably deleted it in an - // earlier call - QUrl redirect_url {reply_->attribute (QNetworkRequest::RedirectionTargetAttribute).toUrl ()}; - if (reply_->error () == QNetworkReply::NoError && !redirect_url.isEmpty ()) - { - if (listener_->redirect_request (redirect_url)) - { - if (++redirect_count_ < 10) // maintain sanity - { - // follow redirect - download (reply_->url ().resolved (redirect_url)); - } - else - { - listener_->download_finished (false); - listener_->error (tr ("Network Error") - , tr ("Too many redirects: %1") - .arg (redirect_url.toDisplayString ())); - is_valid_ = false; // reset - } - } - else - { - listener_->download_finished (false); - listener_->error (tr ("Network Error") - , tr ("Redirect not followed: %1") - .arg (redirect_url.toDisplayString ())); - is_valid_ = false; // reset - } - } - else if (reply_->error () != QNetworkReply::NoError) - { - file_.cancelWriting (); - file_.commit (); - listener_->download_finished (false); - is_valid_ = false; // reset - // report errors that are not due to abort - if (QNetworkReply::OperationCanceledError != reply_->error ()) - { - listener_->error (tr ("Network Error"), reply_->errorString ()); - } - } - else - { - auto path = QFileInfo {file_.fileName ()}.absoluteDir (); - if (is_valid_ && !file_.commit ()) - { - listener_->error (tr ("File System Error") - , tr ("Cannot commit changes to:\n\"%1\"") - .arg (file_.fileName ())); - path.rmpath ("."); // tidy empty directories - listener_->download_finished (false); - is_valid_ = false; // reset - } - else - { - if (!is_valid_) - { - // now get the body content - is_valid_ = true; - download (reply_->url ().resolved (redirect_url)); - } - else - { - listener_->download_finished (true); - is_valid_ = false; // reset - } - } - } - if (reply_ && reply_->isFinished ()) - { - reply_->deleteLater (); - } -} - -void RemoteFile::store () -{ - if (is_valid_) - { - if (!file_.isOpen ()) - { - // create temporary file in the final location - auto path = QFileInfo {file_.fileName ()}.absoluteDir (); - if (path.mkpath (".")) - { - if (!file_.open (QSaveFile::WriteOnly)) - { - abort (); - listener_->error (tr ("File System Error") - , tr ("Cannot open file:\n\"%1\"\nError(%2): %3") - .arg (path.path ()) - .arg (file_.error ()) - .arg (file_.errorString ())); - } - } - else - { - abort (); - listener_->error (tr ("File System Error") - , tr ("Cannot make path:\n\"%1\"") - .arg (path.path ())); - } - } - if (file_.write (reply_->read (reply_->bytesAvailable ())) < 0) - { - abort (); - listener_->error (tr ("File System Error") - , tr ("Cannot write to file:\n\"%1\"\nError(%2): %3") - .arg (file_.fileName ()) - .arg (file_.error ()) - .arg (file_.errorString ())); - } - } -} diff --git a/SampleDownloader/RemoteFile.hpp b/SampleDownloader/RemoteFile.hpp deleted file mode 100644 index 3e6cb85..0000000 --- a/SampleDownloader/RemoteFile.hpp +++ /dev/null @@ -1,84 +0,0 @@ -#ifndef REMOTE_FILE_HPP__ -#define REMOTE_FILE_HPP__ - -#include -#include -#include -#include -#include -#include - -class QNetworkAccessManager; -class QNetworkReply; - -// -// Synchronize an individual file specified by a URL to the local file -// system -// -class RemoteFile final - : public QObject -{ - Q_OBJECT - -public: - // - // Clients of RemoteFile must provide an instance of this - // interface. It may be used to receive information and requests - // from the RemoteFile instance as it does its work. - // - class ListenerInterface - { - protected: - ListenerInterface () {} - - public: - virtual void error (QString const& title, QString const& message) = 0; - virtual bool redirect_request (QUrl const&) {return false;} // disallow - virtual void download_progress (qint64 /* bytes_received */, qint64 /* total_bytes */) {} - virtual void download_finished (bool /* success */) {} - }; - - explicit RemoteFile (ListenerInterface * listener, QNetworkAccessManager * network_manager - , QString const& local_file_path, bool http_only = false - , QObject * parent = nullptr); - - // true if local file exists or will do very soon - bool local () const; - - // download/remove the local file - bool sync (QUrl const& url, bool local = true, bool force = false); - - // abort an active download - void abort (); - - // change the local location, this will rename if the file exists locally - void local_file_path (QString const&); - - QString local_file_path () const {return local_file_.absoluteFilePath ();} - QUrl url () const {return url_;} - - // always use an http scheme for remote URLs - void http_only (bool flag = true) {http_only_ = flag;} - -private: - void download (QUrl url); - void reply_finished (); - - Q_SLOT void store (); - - Q_SIGNAL void redirect (QUrl const&, unsigned redirect_count); - Q_SIGNAL void downloadProgress (qint64 bytes_received, qint64 total_bytes); - Q_SIGNAL void finished (); - - ListenerInterface * listener_; - QNetworkAccessManager * network_manager_; - QFileInfo local_file_; - bool http_only_; - QUrl url_; - QPointer reply_; - bool is_valid_; - unsigned redirect_count_; - QSaveFile file_; -}; - -#endif diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt deleted file mode 100644 index 0216134..0000000 --- a/doc/CMakeLists.txt +++ /dev/null @@ -1,243 +0,0 @@ -set (LANGUAGES - en - ) - -set (common_SRCS - common/communication.adoc - common/license.adoc - common/links.adoc - ) - -set (UG_SRCS - docinfo.html - docinfo.xml - acknowledgements.adoc - astro_data.adoc - config-details.adoc - controls-functions-center.adoc - controls-functions-left.adoc - controls-functions-main-window.adoc - controls-functions-menus.adoc - controls-functions-messages.adoc - controls-functions-status-bar.adoc - controls-functions-wide-graph.adoc - cooperating-programs.adoc - decoder_notes.adoc - faq.adoc - font-sizes.adoc - install-from-source.adoc - install-linux.adoc - install-mac.adoc - install-windows.adoc - introduction.adoc - measurement_tools.adoc - protocols.adoc - logging.adoc - make-qso.adoc - measurement_tools.adoc - new_features.adoc - platform-dependencies.adoc - protocols.adoc - settings-advanced.adoc - settings-audio.adoc - settings-colors.adoc - settings-frequencies.adoc - settings-general.adoc - settings-radio.adoc - settings-reporting.adoc - settings-txmacros.adoc - support.adoc - system-requirements.adoc - transceiver-setup.adoc - tutorial-example1.adoc - tutorial-example2.adoc - tutorial-example3.adoc - tutorial-main-window.adoc - tutorial-wide-graph-settings.adoc - utilities.adoc - vhf-features.adoc - wsjtx-main.adoc - wspr.adoc - ) - -set (UG_IMGS - images/130610_2343-wav-80.png - images/170709_135615.wav.png - images/AstroData_2.png - images/Astronomical_data.png - images/auto-seq.png - images/band-settings.png - images/colors.png - images/config-menu.png - images/decode-menu.png - images/decodes.png - images/download_samples.png - images/echo_144.png - images/file-menu.png - images/FreqCal.png - images/FreqCal_Graph.png - images/FreqCal_Results.png - images/freemsg.png - images/ft8_decodes.png - images/help-menu.png - images/JT4F.png - images/JT65B.png - images/keyboard-shortcuts.png - images/MSK144.png - images/QRA64.png - images/WSPR_WideGraphControls.png - images/WSPR_1a.png - images/WSPR_2.png - images/jtalert.png - images/keyboard-shortcuts.png - images/log-qso.png - images/MacAppMenu.png - images/main-ui.png - images/main-ui-controls.png - images/misc-controls-center.png - images/misc-main-ui.png - images/mode-menu.png - images/new-msg-box.png - images/psk-reporter.png - images/r3666-config-screen-80.png - images/r3666-main-ui-80.png - images/r4148-txmac-ui.png - images/RadioTab.png - images/reporting.png - images/save-menu.png - images/settings-advanced.png - images/settings-audio.png - images/settings-frequencies.png - images/settings-general.png - images/setup-menu.png - images/special-mouse-commands.png - images/status-bar-a.png - images/tools-menu.png - images/traditional-msg-box.png - images/tx-macros.png - images/VHF_controls.png - images/view-menu.png - images/wide-graph-controls.png - -) - -find_program (ASCIIDOCTOR_EXECUTABLE NAMES asciidoctor) -if (NOT ASCIIDOCTOR_EXECUTABLE) - message (FATAL_ERROR "asciidoctor is required to build the documentation - -Building the documenation may optionally be turned off by setting the CMake -option WSJT_GENERATE_DOCS to OFF.") -endif (NOT ASCIIDOCTOR_EXECUTABLE) - -find_program (FOPUB_EXECUTABLE NAMES fopub) - -include (CMakeParseArguments) - -# generate a document from asciidoc text files(s) -# -# HTML - generate an HTML document -# PDF - generate a PDF document -# SOURCE - top level asciidoc file -# ASCIIDOCTOR_OPTIONS - asciidoctor command options -# DEPENDS - dependent files -function (document) - cmake_parse_arguments (_args "HTML" "SOURCE;LANG;OUTPUT" "ASCIIDOCTOR_OPTIONS;PDF;DEPENDS" ${ARGN}) - get_filename_component (_source_path ${_args_SOURCE} PATH) - get_filename_component (_source_name ${_args_SOURCE} NAME) - get_filename_component (_output_name_we ${_args_SOURCE} NAME_WE) - - # HTML - if (${_args_HTML}) - set (_html_file ${CMAKE_CURRENT_BINARY_DIR}/${_output_name_we}_${lang}.html) - add_custom_command ( - OUTPUT ${_html_file} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${_source_path}/${lang} - COMMAND ${ASCIIDOCTOR_EXECUTABLE} ${_args_ASCIIDOCTOR_OPTIONS} - -b html5 - -a VERSION_MAJOR=${WSJTX_VERSION_MAJOR} - -a VERSION_MINOR=${WSJTX_VERSION_MINOR} - -a VERSION_PATCH=${WSJTX_VERSION_PATCH} - -a VERSION=${wsjtx_VERSION} - --out-file=${_html_file} ${_source_name} - DEPENDS ${_args_DEPENDS} - COMMENT "Generating ${_html_file}" - ) - list (APPEND _output_files ${_html_file}) - endif (${_args_HTML}) - - # PDF - if (_args_PDF AND EXISTS ${FOPUB_EXECUTABLE}) - set (_docbook_file ${CMAKE_CURRENT_BINARY_DIR}/${_output_name_we}_${lang}.xml) - set (_pdf_file_we ${CMAKE_CURRENT_BINARY_DIR}/${_output_name_we}_${lang}) - if (${lang} MATCHES "^(en|es|fr)$") # en-us, fr-ca and es-{mx,co} use US-Letter or equivalent - set (_usl_commands - COMMAND ${FOPUB_EXECUTABLE} ARGS ${_docbook_file} ${_args_PDF} -param paper.type USLetter - COMMAND ${CMAKE_COMMAND} ARGS -E rename ${_pdf_file_we}.pdf '${_pdf_file_we} \(USLetter\).pdf' - ) - list (APPEND _output_files "${_pdf_file_we} (USLetter).pdf") - endif () - list (APPEND _output_files "${_pdf_file_we}.pdf") - add_custom_command ( - OUTPUT ${_docbook_file} ${_output_files} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${_source_path}/${lang} - COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${_args_ASCIIDOCTOR_OPTIONS} - -b docbook - -a data-uri! - -a VERSION_MAJOR=${WSJTX_VERSION_MAJOR} - -a VERSION_MINOR=${WSJTX_VERSION_MINOR} - -a VERSION_PATCH=${WSJTX_VERSION_PATCH} - -a VERSION=${wsjtx_VERSION} - -D ${CMAKE_CURRENT_BINARY_DIR} - -o ${_docbook_file} ${_source_name} - ${_usl_commands} - COMMAND ${FOPUB_EXECUTABLE} ARGS ${_docbook_file} ${_args_PDF} -param paper.type A4 - COMMAND ${CMAKE_COMMAND} ARGS -E rename ${_pdf_file_we}.pdf '${_pdf_file_we}.pdf' - DEPENDS ${_args_DEPENDS} - COMMENT "Generating ${_output_files}" - ) - endif (_args_PDF AND EXISTS ${FOPUB_EXECUTABLE}) - - set (${_args_OUTPUT} ${_output_files} PARENT_SCOPE) -endfunction (document) - -set (htmls) -set (pdfs) -foreach (lang ${LANGUAGES}) - set (_sources) - foreach (_src ${UG_SRCS} ${UG_IMGS}) - list (APPEND _sources "user_guide/${lang}/${_src}") - endforeach () - document( - HTML - SOURCE user_guide/wsjtx-main.adoc - LANG "${lang}" - OUTPUT html - ASCIIDOCTOR_OPTIONS -d book -a data-uri -a toc=left -a max-width=1024px - DEPENDS ${common_SRCS} ${_sources} - ) - document( - PDF -param body.font.master 11 -param body.font.family "'Noto Sans, Helvetica, sans-serif'" -param title.font.family "'Noto Serif, Times New Roman, serif'" -param page.margin.inner 1cm -param page.margin.outer 1cm -param page.margin.top 0.75cm -param page.margin.bottom 0.5cm -param generate.toc 0 - SOURCE user_guide/wsjtx-main.adoc - LANG "${lang}" - OUTPUT pdf - ASCIIDOCTOR_OPTIONS -d book - DEPENDS ${common_SRCS} ${_sources} - ) - list (APPEND htmls "${html}") - list (APPEND pdfs "${pdf}") -endforeach () - -add_custom_target (docs ALL DEPENDS ${htmls} ${pdfs}) - -foreach (_html ${htmls}) - get_filename_component (_path ${_html} PATH) - get_filename_component (_nwe ${_html} NAME_WE) - get_filename_component (_ext ${_html} EXT) - string (REGEX REPLACE "_en$" "" _nwe ${_nwe}) - install (FILES - ${_html} - DESTINATION ${CMAKE_INSTALL_DOCDIR} - RENAME ${_nwe}-${wsjtx_VERSION}${_ext} - #COMPONENT runtime - ) -endforeach () diff --git a/doc/README b/doc/README deleted file mode 100644 index 15bf8e5..0000000 --- a/doc/README +++ /dev/null @@ -1,40 +0,0 @@ -This folder contains the sources of WSJT-X documentation. To build -these you will need the asciidoctor tool installed. - -If you do not wish to build the documentation, it is possible to skip -this directory in the WSJT-X build by setting the CMake option -WSJT_GENERATE_DOCS to OFF in your build tree. - - -On Linux -======== - -You will probably have these installed already if you are building the -WSJT-X manpages, if you are not you will just need to install -asciidoc: - - sudo apt-get install asciidoctor - -or - - sudo yum install asciidoctor - -or whatever your distribution and package management requires. - - -On Mac OS X -=========== - -I recommend MacPorts: - - sudo port install rb-rubygems - sudo gem install asciidoctor - - -On Windows -========== - -The asciidoctor tool is a Ruby script so you will need to install a -version of Ruby. The gem tool is a good way to install asciidoctor: - - gem install asciidoctor diff --git a/doc/common/communication.adoc b/doc/common/communication.adoc deleted file mode 100644 index ba9c32e..0000000 --- a/doc/common/communication.adoc +++ /dev/null @@ -1,17 +0,0 @@ -The following are established communication channels for the WSJT Group. -For updates and other information on the continuing development of _WSJT_, -_MAP65_, _WSPR_, _WSPR-X_, and _WSJT-X_ you are invited to subscribe to the -{dev_mail_list}. - -.General Information -* Main Site: {homepage} -* Development Site: {projsummary} - -.Development Related -* Project Manager, email: {joe_taylor} -* Development Email: {devmail1} -* Development Mailing List (join): {dev_mail_list} -* Repository Updates, (join): {dev_mail_svn} - -.Community Related -* Discussion Board: {wsjt_yahoo_group} \ No newline at end of file diff --git a/doc/common/license.adoc b/doc/common/license.adoc deleted file mode 100755 index b018263..0000000 --- a/doc/common/license.adoc +++ /dev/null @@ -1,29 +0,0 @@ -include::./links.adoc[] -_{prog}_ is free software: you may redistribute and/or modify it -under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -_{prog}_ is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this documentation. If not, see {gnu_gpl}. - -Except where otherwise noted, all algorithms, protocol designs, source -code, and supporting files contained in the _{prog}_ package are the -intellectual property of the program's authors. The authors assert -*Copyright ownership* of this material, whether or not such copyright -notice appears in each individual file. Others who make fair use of -our work under terms of the GNU General Public License must display -the following copyright notice prominently: - -*The algorithms, source code, look-and-feel of _{prog}_ and related -programs, and protocol specifications for the modes FSK441, FT8, JT4, -JT6M, JT9, JT65, JTMS, QRA64, ISCAT, and MSK144 are Copyright (C) -2001-2018 by one or more of the following authors: Joseph Taylor, -K1JT; Bill Somerville, G4WJS; Steven Franke, K9AN; Nico Palermo, -IV3NWV; Greg Beam, KI7MT; Michael Black, W9MDB; Edson Pereira, PY2SDR; -Philip Karn, KA9Q; and other members of the WSJT Development Group.* diff --git a/doc/common/links.adoc b/doc/common/links.adoc deleted file mode 100644 index 754b935..0000000 --- a/doc/common/links.adoc +++ /dev/null @@ -1,128 +0,0 @@ -//// -Link file to hold all links -File Location: ./doc/common/links.adoc -Usage example: include::../common/links.adoc[] -Syntax: [link-id] [link] [displayed text] - -Example: -:pskreporter: http://pskreporter.info/pskmap.html[PSK Reporter] - -[link-id] = :pskreporter: -[link] http://pskreporter.info/pskmap.html -[displayed text] PSK Reporter - -Perform searches from the doc root directory: doc -Search: grep -rl --exclude-dir="*\.svn" {pskreporter} . - grep -rl --exclude-dir="*\.svn" PSK Reporter . - grep -rl --exclude-dir="*\.svn" {devsvn} . - grep -rl --exclude-dir="*\.svn" {kvasd} . - grep -rl --exclude-dir="*\.svn" {ntpsetup} . - -Include links.adoc: grep -rl --exclude-dir="*\.svn" pskreporter . -Exclude links.adoc: grep -rl --exclude-dir="*\.svn" {pskreporter} . - -Note(s): -a). Don't forget a space then "." at the end. - -b). To include links.adoc file itself, remove the brackets {} from -the pattern search: - -c). Look at each of the files listed to ensure the [displayed text] -still makes sense in the caption. If not, just add another link. Be -aware of the translators requirements by trying to keep the displayed -text language agnostic or neutral e.g. use a proper noun like a -persons name or a document title in the language of the linked -document. Do not use plain English generic words for link text link -"here". - -d). Edit lines as needed. Keeping them in alphabetic order help see dupes. - -//// - -// General URL's -//:launchpadac6sl: https://launchpad.net/~jnogatch/+archive/wsjtx[WSJT-X Linux Packages] -:alarmejt: http://f5jmh.free.fr/index.php?page=english[AlarmeJT] -:asciidoc_cheatsheet: http://powerman.name/doc/asciidoc[AsciiDoc Cheatsheet] -:asciidoc_help: http://www.methods.co.nz/asciidoc/userguide.html[AsciiDoc User Guide] -:asciidoc_questions: http://www.methods.co.nz/asciidoc/faq.html[AsciiDoc FAQ] -:asciidoc_syntax: http://xpt.sourceforge.net/techdocs/nix/tool/asciidoc-syn/ascs01-AsciiDocMarkupSyntaxQuickSummary/single/[AsciiDoc Syntax] -:asciidoctor_style: http://asciidoctor.org/docs/asciidoc-writers-guide/#delimited-blocks[AsciiDoctor Styles Guide] -:asciidoctor_syntax: http://asciidoctor.org/docs/asciidoc-writers-guide/#delimited-blocks[AsciiDoctor Syntax Guide] -:cc_by_sa: http://creativecommons.org/licenses/by-sa/3.0/[Commons Attribution-ShareAlike 3.0 Unported License] -:debian32: http://physics.princeton.edu/pulsar/K1JT/wsjtx_{VERSION}_i386.deb[wsjtx_{VERSION}_i386.deb] -:debian64: http://physics.princeton.edu/pulsar/K1JT/wsjtx_{VERSION}_amd64.deb[wsjtx_{VERSION}_amd64.deb] -:raspbian: http://physics.princeton.edu/pulsar/K1JT/wsjtx_{VERSION}_armhf.deb[wsjtx_{VERSION}_armhf.deb] -:debian: http://www.debian.org/[Debian] -:dev_guide: http://www.physics.princeton.edu/pulsar/K1JT/wsjtx-doc/wsjt-dev-guide.html[Dev-Guide] -:devsvn1: http://sourceforge.net/p/wsjt/wsjt/HEAD/tree/[Devel-SVN] -:devsvn: http://sourceforge.net/p/wsjt/wsjt/HEAD/tree/[SourceForge] -:dimension4: http://www.thinkman.com/dimension4/[Thinking Man Software] -:download: http://physics.princeton.edu/pulsar/K1JT/wsjtx.html[Download Page] -:dxatlas: http://www.dxatlas.com/[Afreet Software, Inc.] -:dxlcommander: http://www.dxlabsuite.com/commander/[Commander] -:dxlsuite: http://www.dxlabsuite.com/[DX Lab Suite] -:fedora32: http://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-i686.rpm[wsjtx-{VERSION}-i686.rpm] -:fedora64: http://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-x86_64.rpm[wsjtx-{VERSION}-x86_64.rpm] -:fmt_arrl: http://www.arrl.org/frequency-measuring-test[ARRL FMT Info] -:fmt_group: https://groups.yahoo.com/neo/groups/FMT-nuts/info[FMT Group] -:fmt_k5cm: http://www.k5cm.com/[FMT Event Info] -:fmt_wspr: http://www.physics.princeton.edu/pulsar/K1JT/FMT_User.pdf[Accurate Frequency Measurements with your WSPR Setup] -:ft8_tips: http://www.physics.princeton.edu/pulsar/K1JT/FT8_Operating_Tips.pdf[here] -:ft8_DXped: http://physics.princeton.edu/pulsar/k1jt/FT8_DXpedition_Mode.pdf[FT8 DXpedition Mode] -:gnu_gpl: http://www.gnu.org/licenses/gpl-3.0.txt[GNU General Public License] -:homepage: http://physics.princeton.edu/pulsar/K1JT/[WSJT Home Page] -:hrd: http://www.hrdsoftwarellc.com/[Ham Radio Deluxe] -:jt4eme: http://physics.princeton.edu/pulsar/K1JT/WSJT-X_1.6.0_for_JT4_v7.pdf[Using WSJT-X for JT4 EME Operation] -:jt65protocol: http://physics.princeton.edu/pulsar/K1JT/JT65.pdf[QEX] -:jtalert: http://hamapps.com/[JT-Alert] -:launchpadki7mt: https://launchpad.net/~ki7mt[KI7MT PPA's] -:log4om: http://www.log4om.com[Log4OM] -:lunarEchoes: http://physics.princeton.edu/pulsar/K1JT/LunarEchoes_QEX.pdf[QEX] -:msk144: http://physics.princeton.edu/pulsar/k1jt/MSK144_Protocol_QEX.pdf[QEX] -:msys_url: http://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/[MSYS Download] -:ntpsetup: http://www.satsignal.eu/ntp/setup.html[Network Time Protocol Setup] -:osx_instructions: http://physics.princeton.edu/pulsar/K1JT/OSX_Readme[Mac OS X Install Instructions] -:ppa: http://en.wikipedia.org/wiki/Personal_Package_Archive[PPA] -:projsummary: http://sourceforge.net/projects/wsjt/[Project Summary] -:pskreporter: http://pskreporter.info/pskmap.html[PSK Reporter] -:sourceforge: https://sourceforge.net/user/registration[SourceForge] -:sourceforge-jtsdk: https://sourceforge.net/projects/jtsdk[SourceForge JTSDK] -:ubuntu_sdk: https://launchpad.net/~ubuntu-sdk-team/+archive/ppa[Ubuntu SDK Notice] -:wsjt_yahoo_group: https://groups.yahoo.com/neo/groups/wsjtgroup/info[WSJT Group] -:wsjtx: http://physics.princeton.edu/pulsar/K1JT/wsjtx.html[WSJT-X] -:wspr0_guide: http://www.physics.princeton.edu/pulsar/K1JT/WSPR0_Instructions.TXT[WSPR0 Guide] -:wspr: http://physics.princeton.edu/pulsar/K1JT/wspr.html[WSPR Home Page] -:wsprnet: http://wsprnet.org/drupal/[WSPRnet] -:wsprnet_activity: http://wsprnet.org/drupal/wsprnet/activity[WSPRnet Activity page] - -// Download Links -:cty_dat: http://www.country-files.com/cty/[Amateur Radio Country Files] -:jtbridge: http://jt-bridge.eller.nu/[JT-Bridge] -:jtsdk_doc: http://physics.princeton.edu/pulsar/K1JT/JTSDK-DOC.exe[Download] -:jtsdk_installer: http://sourceforge.net/projects/jtsdk/files/win32/2.0.0/JTSDK-2.0.0-B2-Win32.exe/download[Download] -:jtsdk_omnirig: http://sourceforge.net/projects/jtsdk/files/win32/2.0.0/base/contrib/OmniRig.zip/download[Download] -:jtsdk_py: http://physics.princeton.edu/pulsar/K1JT/JTSDK-PY.exe[Download] -:jtsdk_qt: http://physics.princeton.edu/pulsar/K1JT/JTSDK-QT.exe[Download] -:jtsdk_vcredist: http://sourceforge.net/projects/jtsdk/files/win32/2.0.0/base/contrib/vcredist_x86.exe/download[Download] -:nh6z: http://www.nh6z.net/Amatuer_Radio_Station_NH6Z/Other_Peoples_Software.html[here] -:omnirig: http://www.dxatlas.com/OmniRig/Files/OmniRig.zip[Omni-Rig] -:osx: http://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-Darwin.dmg[wsjtx-{VERSION}-Darwin.dmg] -:QRA64_EME: http://physics.princeton.edu/pulsar/K1JT/QRA64_EME.pdf[QRA64 for microwave EME] -:svn: http://subversion.apache.org/packages.html#windows[Subversion] -:win32: http://physics.princeton.edu/pulsar/K1JT/wsjtx-{VERSION}-win32.exe[wsjtx-{VERSION}-win32.exe] -:wsjt-devel: https://lists.sourceforge.net/lists/listinfo/wsjt-devel[here] -:wsjt_svn: http://sourceforge.net/p/wsjt/wsjt/HEAD/tree/[WSJT Source Repository] -:wspr_code: http://physics.princeton.edu/pulsar/K1JT/WSPRcode.exe[WSPRcode.exe] -:wspr_svn: http://sourceforge.net/p/wsjt/wsjt/HEAD/tree/branches/wspr/[WSPR Source Repository] - -// MAIL-TO links -:alex_efros: mailto:powerman@powerman.name[Alex Efros] -:bill_somerville: mailto:g4wjs -at- c l a s s d e s i g n -dot- com [G4WJS] -:dev_mail_list: http://sourceforge.net/mailarchive/forum.php?forum_name=wsjt-devel[WSJT Developers Email List] -:dev_mail_svn: https://sourceforge.net/auth/subscriptions/[WSJT SVN Archives] -:devmail: mailto:wsjt-devel@lists.sourceforge.net[wsjt-devel@lists.sourceforge.net] -:devmail1: mailto:wsjt-devel@lists.sourceforge.net[Post Message] -:wsjtgroup_mail: mailto:wsjtgroup@yahoogroups.com[Post Message] -:greg_beam: mailto:ki7mt@yahoo.com[KI7MT] -:joe_taylor: mailto:joe@princeton.edu[K1JT] -:stuart_rackman: mailto:srackham@gmail.com[Stuart Rackham] diff --git a/doc/user_guide/en/acknowledgements.adoc b/doc/user_guide/en/acknowledgements.adoc deleted file mode 100644 index 2afa8e7..0000000 --- a/doc/user_guide/en/acknowledgements.adoc +++ /dev/null @@ -1,29 +0,0 @@ -// Status=review - -The _WSJT_ project was started in 2001. Since 2005 it has been an -Open Source project, and it now includes programs _WSJT_, _MAP65_, -_WSPR_, _WSJT-X_, and _WSPR-X_. All code is licensed under the -GNU Public License (GPL). Many users of these programs, too numerous -to mention here individually, have contributed suggestions and advice -that have greatly aided the development of _WSJT_ and its sister -programs. - -For _WSJT-X_ in particular, we acknowledge contributions from *AC6SL, -AE4JY, DJ0OT, G3WDG, G4KLA, G4WJS, IV3NWV, IW3RAB, K3WYC, K9AN, -KA6MAL, KA9Q, KB1ZMX, KD6EKQ, KI7MT, KK1D, ND0B, PY2SDR, VE1SKY, VK3ACF, -VK4BDJ, VK7MO, W4TI, W4TV, and W9MDB*. Each of these amateurs has helped to -bring the program’s design, code, testing, and/or documentation to -its present state. - -Most of the color palettes for the _WSJT-X_ waterfall were copied from -the excellent, well documented, open-source program _fldigi_, by *W1HKJ* -and friends. - -We use development tools and libraries from many sources. We -particularly wish to acknowledge importance of the GNU Compiler -Collection from the Free Software Foundation, the "clang" compiler -from LLVM at the University of Illinois, and the Qt Project from Digia -PLC. Other important resources include the FFTW library by Matteo -Frigo and Steven G. Johnson; SLALIB, the Positional Astronomy Library -by P. T. Wallace; and a high-precision planetary ephemeris and -associated software from NASA's Jet Propulsion Laboratory. diff --git a/doc/user_guide/en/astro_data.adoc b/doc/user_guide/en/astro_data.adoc deleted file mode 100644 index 361ee9b..0000000 --- a/doc/user_guide/en/astro_data.adoc +++ /dev/null @@ -1,57 +0,0 @@ -A text box entitled Astronomical Data provides information needed for -tracking the sun or moon, compensating for EME Doppler shift, and -estimating EME Doppler spread and path degradation. Toggle the -*Astronomical data* on the *View* menu to display or hide this window. - -image::AstroData_2.png[align="center",alt="Astronomical Data"] - -Available information includes the current UTC *Date* and time; *Az* -and *El*, azimuth and elevation of the moon at your own location, in -degrees; *SelfDop*, *Width*, and *Delay*, the Doppler shift, full -limb-to-limb Doppler spread in Hz, and delay of your own EME echoes in -seconds; and *DxAz* and *DxEl*, *DxDop*, and *DxWid*, corresponding -parameters for a station located at the *DX Grid* entered on the main -window. These numbers are followed by *Dec*, the declination of the -moon; *SunAz* and *SunEl*, the azimuth and elevation of the Sun; -*Freq*, your stated operating frequency in MHz; *Tsky*, the estimated -sky background temperature in the direction of the moon, scaled to the -operating frequency; *Dpol*, the spatial polarization offset in -degrees; *MNR*, the maximum non-reciprocity of the EME path in dB, -owing to a combination of Faraday rotation and spatial polarization; -and finally *Dgrd*, an estimate of the signal degradation in dB, -relative to the best possible time with the moon at perigee in a cold -part of the sky. - -On the higher microwave bands, where Faraday rotation is minimal and -linear polarization is often used, spatial offset will reduce signal -levels. Some stations have implemented mechanical polarisation -adjustment to overcome this loss, and the amount of rotation needed is -predicted in real time by the value of *Dpol*. Positive Dpol means -that the antenna should be rotated in a clockwise direction looking -from behind the antenna towards the moon. For a dish antenna, the -feed should similarly be rotated clockwise looking into the mouth of -the feed. A negative value for Dpol means anticlockwise rotation. - - -The state of the art for establishing three-dimensional locations of -the sun, moon, and planets at a specified time is embodied in a -numerical model of the solar system maintained at the Jet Propulsion -Laboratory. The model has been numerically integrated to produce -tabular data that can be interpolated with very high accuracy. For -example, the celestial coordinates of the moon or a planet can be -determined at a specified time to within about 0.0000003 degrees. The -JPL ephemeris tables and interpolation routines have been incorporated -into _WSJT-X_. Further details on accuracy, especially concerning -calculated EME Doppler shifts, are described in {lunarEchoes} for -November-December, 2016. - -The sky background temperatures reported by _WSJT-X_ are derived from -the all-sky 408 MHz map of Haslam et al. (Astronomy and Astrophysics -Supplement Series, 47, 1, 1982), scaled by frequency to the -2.6 -power. This map has angular resolution of about 1 degree, and of -course most amateur EME antennas have much broader beamwidths than -this. Your antenna will therefore smooth out the hot spots -considerably, and the observed extremes of sky temperature will be -less. Unless you understand your sidelobes and ground reflections -extremely well, it is unlikely that more accurate sky temperatures -would be of much practical use. diff --git a/doc/user_guide/en/config-details.adoc b/doc/user_guide/en/config-details.adoc deleted file mode 100644 index 635e27d..0000000 --- a/doc/user_guide/en/config-details.adoc +++ /dev/null @@ -1,4 +0,0 @@ -// Status=review -[[CONFIG_DETAILS]] - -Are we here? diff --git a/doc/user_guide/en/controls-functions-center.adoc b/doc/user_guide/en/controls-functions-center.adoc deleted file mode 100644 index 7de0bb6..0000000 --- a/doc/user_guide/en/controls-functions-center.adoc +++ /dev/null @@ -1,80 +0,0 @@ -// Status=review - -At the center of the main window are a number of controls used when -making QSOs. Controls not relevant to a particular mode or submode -may be "grayed out" (disabled) or removed from the display. - -//.Misc Controls Center -image::misc-controls-center.png[align="center",alt="Misc Controls Center"] - -* Check *Tx even* to transmit in even-numbered UTC minutes or -sequences, starting at 0. Uncheck this box to transmit in the odd -sequences. The correct selection is made automatically when you -double-click on a decoded text line, as described in the -<>. - -* The Tx and Rx audio frequencies can be set automatically by -double-clicking on decoded text or a signal in the waterfall. They -can also be adjusted using the spinner controls. - -* You can force Tx frequency to the current Rx frequency by clicking -the *Tx<-Rx* button, and vice-versa for *Rx<-Tx*. The on-the-air -frequency of your lowest JT9 or JT65 tone is the sum of dial frequency -and audio Tx frequency. - -* Check the box *Lock Tx=Rx* to make the frequencies always track one -another. - -IMPORTANT: In general we do not recommend using *Lock Tx=Rx* since it -encourages poor radio etiquette when running a frequency. With this -box checked, your own Tx frequency will move around following your -callers. - -* For modes lacking a multi-decode feature, or when *Enable -VHF/UHF/Microwave features* has been checked on the *Settings -> -General* tab, the *F Tol* control sets a frequency toilerance range -over which decoding will be attempted, centered on the Rx frequency. - -* The *Report* control lets you change a signal report that has been -inserted automatically. Typical reports for the various modes fall in -the range –30 to +20 dB. Remember that JT65 reports saturate at an -upper limit of -1 dB. - -TIP: Consider reducing power if your QSO partner reports your -signal above -5 dB in one of the _WSJT-X_ slow modes. These are -supposed to be weak signal modes! - -* In some circumstances, especially on VHF and higher bands, you can -select a supported submode of the active mode by using the *Submode* -control. The *Sync* control sets a minimum threshold for establishing -time and frequency synchronization with a received signal. - -* Spinner control *T/R xx s* sets sequence lengths for transmission -and reception in ISCAT, MSK144, and the fast JT9 modes. - -* With *Split operation* activated on the *Settings -> Radio* tab, in -MSK144 and the fast JT9 submodes you can activate the spinner control -*Tx CQ nnn* by checking the box to its right. The program will then -generate something like `CQ nnn K1ABC FN42` for your CQ message, where -`nnn` is the kHz portion of your current operating frequency, -in the range 010 to 999. Your CQ -message *Tx6* will then be transmitted at the calling frequency -selected in the *Tx CQ nnn* spinner control. All other messages will -be transmitted at your current operating frequency. On reception, -when you double-click on a message like `CQ nnn K1ABC FN42` your rig -will QSY to the specified frequency so you can call the station at his -specified response frequency. - -* Checkboxes at bottom center of the main window control special -features for particular operating modes: - -** *Sh* enables shorthand messages in JT4, JT65, QRA64 and MSK144 modes - -** *Fast* enables fast JT9 submodes - -** *Auto Seq* enables auto-sequencing of Tx messages - -** *Call 1st* enables automatic response to the first decoded -responder to your CQ - -** *Tx6* toggles between two types of shorthand messages in JT4 mode \ No newline at end of file diff --git a/doc/user_guide/en/controls-functions-left.adoc b/doc/user_guide/en/controls-functions-left.adoc deleted file mode 100644 index 338346d..0000000 --- a/doc/user_guide/en/controls-functions-left.adoc +++ /dev/null @@ -1,45 +0,0 @@ -// Status=review - -Controls related to frequency selection, received audio level, the -station being called, and date and time are found at lower left of the -main window: - -//.Misc Controls Left -image::misc-main-ui.png[align="center",alt="Misc Menu Items"] - -* A drop-down list of frequencies and bands at upper left lets you -select the operating band and sets dial frequency to a value taken -from the *Frequencies* tab on the *Settings* window. If CAT control -is active the radio's dial frequency will be set accordingly; if not, -you must tune the radio manually. - -* Alternatively, you can enter a frequency (in MHz) or band name in -recognized ADIF format, for example 630m, 20m, or 70cm. The band-name -format works only if a working frequency has been set for that band -and mode, in which case the first such match is selected. - -* You can also enter a frequency increment in kHz above the currently -displayed integer MHz. For example, if the displayed frequency is -10,368.100, enter `165k` (don't forget the `k`!) to QSY to 10,368.165. - -* A small colored circle appears in green if the CAT control is -activated and functional. The green circle contains the character S -if the rig is detected to be in *Split* mode. The circle becomes red -if you have requested CAT control but communication with the radio has -been lost. - -TIP: Many Icom rigs cannot be queried for split status, current VFO or -split transmit frequency. When using _WSJT-X_ with such radios you -should not change the current VFO, split status or dial frequency -using controls on the radio. - -* If *DX Grid* contains a valid Maidenhead locator, the corresponding -great-circle azimuth and distance from your location are displayed. - -* The program can maintain a database of callsigns and locators for -future reference. Click *Add* to insert the present call and locator -in the database; click *Lookup* to retrieve the locator for a -previously stored call. This feature is mainly useful for situations -in which the number of active stations is modest and reasonably -stable, such as EME (Earth-Moon-Earth) communication. The callsign -file name is `CALL3.TXT`. diff --git a/doc/user_guide/en/controls-functions-main-window.adoc b/doc/user_guide/en/controls-functions-main-window.adoc deleted file mode 100644 index c15f681..0000000 --- a/doc/user_guide/en/controls-functions-main-window.adoc +++ /dev/null @@ -1,69 +0,0 @@ -// Status=review -The following controls appear just under the decoded text windows on -the main screen: - -//.Main UI -image::main-ui-controls.png[align="center",width=650,alt="Main UI Controls"] - -* When *CQ only* is checked, only messages from stations calling CQ will -be displayed in the left text panel. - -* *Log QSO* raises a dialog window pre-filled with known information -about a QSO you have nearly completed. You can edit or add to this -information before clicking *OK* to log the QSO. If you check *Prompt -me to log QSO* on the *Settings -> Reporting* tab, the program will -raise the confirmation screen automatically when you send a message -containing +73+. *Start Date* and *Start Time* are set when you click -to send the *Tx 2* or *Tx 3* message, and backed up by one or two -sequence lengths, respectively. (Note that the actual start time may -have been earlier if repeats of early transmissions were required.) -End date and time are set when the *Log QSO* screen is invoked. - -//.Log QSO Window -image::log-qso.png[align="center",alt="Log QSO"] - -* *Stop* will terminate normal data acquisition in case you want to -freeze the waterfall or open and explore a previously recorded audio -file. - -* *Monitor* toggles normal receive operation on or off. This button -is highlighted in green when the _WSJT-X_ is receiving. If you are -using CAT control, toggling *Monitor* OFF relinquishes control of the -rig; if *Monitor returns to last used frequency* is selected on the -*Settings | General* tab, toggling *Monitor* back ON will return to -the original frequency. - -* *Erase* clears the right-hand decoded text window. -Double-clicking *Erase* clears both text windows. - -TIP: Right-clicking on either text window brings up a context menu -with several options (including *Erase*) which operate on that window -alone. - -* *Clear Avg* is present only in modes that support message averaging. -It provides a way to erase the accumulating information, thus -preparing to start a new average. - -* *Decode* tells the program to repeat the decoding procedure at the -Rx frequency (green marker on waterfall scale), using the most recently -completed sequence of received data. - -* *Enable Tx* toggles automatic T/R sequencing mode on or off and -highlights the button in red when ON. A transmission will start at -the beginning of the selected (odd or even) sequence, or immediately -if appropriate. Toggling the button to OFF during a transmission -allows the current transmission to finish. - -* *Halt Tx* terminates a transmission immediately and disables -automatic T/R sequencing. - -* *Tune* toggles the program into Tx mode and generates an unmodulated -carrier at the specified Tx frequency (red marker on waterfall scale). -This process is useful for adjusting an antenna tuner or tuning an -amplifier. The button is highlighted in red while *Tune* is active. -Toggle the button a second time or click *Halt Tx* to terminate the -*Tune* process. Note that activating *Tune* interrupts a receive -sequence and will prevent decoding during that sequence. - -* Uncheck the box *Menus* to make the top-of-window menus disappear, -leaving more vertical space for decoded messages. \ No newline at end of file diff --git a/doc/user_guide/en/controls-functions-menus.adoc b/doc/user_guide/en/controls-functions-menus.adoc deleted file mode 100644 index dc43b0f..0000000 --- a/doc/user_guide/en/controls-functions-menus.adoc +++ /dev/null @@ -1,66 +0,0 @@ -// Status=review - -Menus at top of the main window offer many options for configuration -and operation. Most of the items are self-explanatory; a few -additional details are provided below. Keyboard shortcuts for some -frequently used menu items are listed at the right edge of the menu. - -==== _WSJT-X_ menu -image::MacAppMenu.png[align="left",alt="Mac App Menu"] - -This menu appears on the Macintosh only. *Settings* appears here, -labeled as *Preferences*, rather than on the *File* menu. *About -WSJT-X* appears here rather than on the *Help* menu. - -[[FILE_MENU]] -==== File menu -image::file-menu.png[align="left",alt="File Menu"] - -[[CONFIG_MENU]] -==== Configuration Menu -image::config-menu.png[align="left",alt="File Menu"] - -Many users prefer to create and use entries on the *Configurations* -menu for switching between modes. Simply *Clone* the *Default* entry, -*Rename* it as desired, and then make all desired settings for that -configuration. These settings will be restored whenever you select -that configuration. - -As well as switching between configurations while running _WSJT-X_ you -can also start the application from the command line in any desired -configuration. Use the command-line option -`--config `, or `-c` for short, as in these -examples for configurations `FT8` and `Echo`: - - wsjtx --config FT8 - wsjtx -c Echo - -[[VIEW_MENU]] -==== View Menu -image::view-menu.png[align="left",alt="View Menu"] - -[[MODE_MENU]] -==== Mode Menu -image::mode-menu.png[align="left",alt="Mode Menu"] - -[[DECODE_MENU]] -==== Decode Menu -image::decode-menu.png[align="left",alt="Decode Menu"] - -[[SAVE_MENU]] -[[SAVE-WAV]] -==== Save Menu -image::save-menu.png[align="left",alt="Save Menu"] - -==== Tools Menu -image::tools-menu.png[align="left",alt="Tools Menu"] - -[[HELP_MENU]] -==== Help Menu -image::help-menu.png[align="left",alt="Help Menu"] - -===== Keyboard Shortcuts (F3) -image::keyboard-shortcuts.png[align="left",alt="Keyboard Shortcuts"] - -===== Special Mouse Commands (F5) -image::special-mouse-commands.png[align="left",alt="Special Mouse Commands"] diff --git a/doc/user_guide/en/controls-functions-messages.adoc b/doc/user_guide/en/controls-functions-messages.adoc deleted file mode 100644 index c712fea..0000000 --- a/doc/user_guide/en/controls-functions-messages.adoc +++ /dev/null @@ -1,61 +0,0 @@ -// Status=review - -Two arrangements of controls are provided for generating and selecting -Tx messages. Controls familiar to users of program _WSJT_ -appear on *Tab 1*, providing six fields for message entry. -Pre-formatted messages for the standard minimal QSO are generated when -you click *Generate Std Msgs* or double-click on an appropriate line -in one of the decoded text windows. - -//.Traditional Message Menu -image::traditional-msg-box.png[align="center",alt="Traditional Message Menu"] - -* Select the next message to be transmitted (at the start of your next -Tx sequence) by clicking on the circle under *Next*. - -* To change to a specified Tx message immediately during a -transmission, click on a rectangular button under the *Now* label. -Changing a Tx message in mid-stream will slightly reduce the chance of -a correct decode, but it is usually OK if done in the first 10-20% of -a transmission. - -* All six Tx message fields are editable. You can modify an -automatically generated message or enter a desired message, keeping in -mind the limits on message content. See <> for details. - -* Click on the pull-down arrow for message #5 to select one of the -pre-stored messages entered on the *Settings | Tx Macros* tab. -Pressing *Enter* on a modified message #5 automatically adds that -message to the stored macros. - -* In some circumstances it may be desirable to make your QSOs as -shiort as possible. To configure the program to start contacts with -message #2, disable message #1 by double-clicking on its round -radio-button or rectangular *Tx 1* button. Similarly, to send RR73 -rather than RRR for message #4, double-click on one of its buttons. - -The second arrangement of controls for generating and selecting -Tx messages appears on *Tab 2* of the Message Control Panel: - -//.New Message Menu -image::new-msg-box.png[align="center",alt="New Message Menu"] - -With this setup you normally follow a top-to-bottom sequence of -transmissions from the left column if you are calling CQ, or the right -column if answering a CQ. - -* Clicking a button puts the appropriate message in the *Gen Msg* box. -If you are already transmitting, the Tx message is changed -immediately. - -* You can enter and transmit anything (up to 13 characters, including -spaces) in the *Free Msg* box. - -* Click on the pull-down arrow in the *Free Msg* box to select a -pre-stored macro. Pressing *Enter* on a modified message here -automatically adds that message to the table of stored macros. - -TIP: During a transmission the actual message being sent always -appears in the first box of the status bar (bottom left of the main -screen). diff --git a/doc/user_guide/en/controls-functions-status-bar.adoc b/doc/user_guide/en/controls-functions-status-bar.adoc deleted file mode 100644 index 064a6b9..0000000 --- a/doc/user_guide/en/controls-functions-status-bar.adoc +++ /dev/null @@ -1,23 +0,0 @@ -// Status=review - -A *Status Bar* at the bottom edge of the main window provides useful -information about operating conditions. - -//.Status Bar -image::status-bar-a.png[align="left",alt="Status Bar"] - -Labels on the *Status Bar* display such information as the program's -current operating state, configuration name, operating mode, and the -content of your most recent transmitted message. The first label -(operating state) can be Receiving, Tx (for Transmitting), Tune, or -the name of file opened from the *File* menu; this label is -highlighted in green for Receiving, yellow for Tx, red for Tune, and -light blue for a file name. When transmitting, the Tx message is -displayed exactly as it will be decoded by receiving stations. The -second label (as shown above) will be absent if you are using the -*Default* setting on the *Configurations* menu. A progress bar shows -the elapsed fraction of a Tx or Rx sequence. Finally, if the Watchdog -(WD) timer was enabled on the *settings | General* tab, a label in the -lower right-hand corner displays the number of minutes remaining -before timeout. - diff --git a/doc/user_guide/en/controls-functions-wide-graph.adoc b/doc/user_guide/en/controls-functions-wide-graph.adoc deleted file mode 100644 index c237cd5..0000000 --- a/doc/user_guide/en/controls-functions-wide-graph.adoc +++ /dev/null @@ -1,100 +0,0 @@ -// Status=review - -The following controls appear at the bottom of the Wide Graph window. -Decoding occurs only in the displayed frequency range; otherwise, with -the exceptions of *Start NNN Hz* and of *JT65 nnnn JT9* when operating -in JT9+JT65 mode, controls on the Wide Graph window have no effect on -the decoding process. - -image::wide-graph-controls.png[align="center",alt="Wide Graph Controls"] - -- *Bins/Pixel* controls the displayed frequency resolution. Set this -value to 1 for the highest possible resolution, or to higher numbers -to compress the spectral display. Normal operation with a convenient -window size works well at 2 to 8 bins per pixel. - -- *JT65 nnnn JT9* sets the dividing point (blue marker) for wide-band -decoding of JT65 and JT9 signals in *JT9+JT65* mode. The decoder -looks for JT65 signals everywhere, but JT9 signals only above this -frequency. This setting is stored separately for each band. - -- *Start nnn Hz* sets the low-frequency starting point of the -waterfall frequency scale. - -- *N Avg* is the number of successive spectra to be averaged before -updating the display. Values around 5 are suitable for normal JT9 and -JT65 operation. Adjust *N Avg* to make the waterfall move faster or -slower, as desired. - -- A dropdown list below the *Palette* label lets you select from a -wide range of waterfall color palettes. - -- Click *Adjust* to activate a window that allows you to create a -user-defined palette. - -- Check *Flatten* if you want _WSJT-X_ to compensate for a sloping or -uneven response across the received passband. For this feature to -work properly, you should restrict the range of displayed frequencies -so that only the active part of the spectrum is shown. - -- Select *Current* or *Cumulative* for the spectrum displayed in the -bottom one-third of the Wide Graph window. *Current* is the average -spectrum over the most recent *N Avg* FFT calculations. *Cumulative* -is the average spectrum since the start of the present UTC minute. -*Linear Avg* is useful in JT4 mode, especially when short-form -messages are used. - -- Four sliders control reference levels and scaling for waterfall -colors and the spectrum plot. Values around midscale are usually -about right, depending on the input signal level, the chosen palette, -and your own preferences. Hover the mouse over a control to display a -tip reminding you of its function. - -- *Smoothing* is active only when *Linear Average* has been selected. -Smoothing the displayed spectrum over more than one bin can enhance -your ability to detect weak EME signals with Doppler spread more than -a few Hz. - -[[CONTROLS_FAST]] -=== Fast Graph - -The waterfall palette used for the Fast Graph is the same as the one -selected on the Wide Graph. Three sliders at the bottom of the Fast -Graph window can be used to optimize gain and zero-offset for the -displayed information. Hover the mouse over a control to display a -tip reminding you of its function. Clicking the *Auto Level* button -will produce reasonable settings as a starting point. - -image::fast-graph-controls.png[align="center",alt="Fast Graph Controls"] - -[[CONTROLS_ECHO]] -=== Echo Graph - -The following controls appear at the bottom of the Echo Graph: - -image::echo-graph-controls.png[align="center",alt="EchoGraph Controls"] - -- *Bins/Pixel* controls the displayed frequency resolution. Set this -value to 1 for the highest possible resolution, or to higher numbers -to compress the spectral display. - -- *Gain* and *Zero* sliders control scaling and offset of plotted -spectra. - -- *Smooth* values greater than 0 apply running averages to the plotted -spectra, thereby smoothing the curves over multiple bins. - -- Label *N* shows the number of echo pulses averaged. - -- Click the *Colors* button to cycle through 6 possible choices of -color and line width for the plots. - -[[CONTROLS_MISCELLANEOUS]] -=== Miscellaneous - -Most windows can be resized as desired. If you are short of screen -space you can make the Main Window and Wide Graph smaller by hiding -some controls and labels. To enable this feature type *Ctrl+M* with -focus on the appropriate window. (For the Main Window you can select -*Hide menus and labels* on the *View* menu.) Type *Ctrl+M* again -to make the controls visible once more. diff --git a/doc/user_guide/en/cooperating-programs.adoc b/doc/user_guide/en/cooperating-programs.adoc deleted file mode 100644 index e0c2acf..0000000 --- a/doc/user_guide/en/cooperating-programs.adoc +++ /dev/null @@ -1,39 +0,0 @@ -_WSJT-X_ is programmed to cooperate closely with several other useful -programs. - -* {dxlsuite}, {omnirig}, and {hrd} were described in the section on -<>. - -* {pskreporter}, by Philip Gladstone, is a web server that gathers -reception reports sent by various other programs, including _WSJT-X_. -The information is made available in near real time on a world map, -and also as statistical summaries of various kinds. A number of -options are available to the user; for example, you can request a map -showing world-wide JT65 activity on all amateur bands over the -past hour. Such a map might look like this, where different colors -represent different bands: - -image::psk-reporter.png[align="left",alt="PSK Reporter"] - -The following screen shot shows the PSK Reporter map configured to -show MSK144 reports: - -image::psk-reporter_2.png[align="left",alt="PSK Reporter"] - -* {jtalert}, by VK3AMA, is available only for Windows. It provides -many operating aids including automatic logging to several third-party -logging programs, audio and visual alerts following a number of -optional alert conditions (decoding of a new DXCC, new state, etc.), -and convenient direct access to web services such as callsign lookup. - -image::jtalert.png[align="left",alt="JTAlert-X image"] - -* {alarmejt}, by F5JMH, is available only for Linux. The program keeps -its own logbook. It fetches contact information from _WSJT-X_ and -provides visual alerts for new DXCC entities and grid squares on the -current band, as well as other options. - -* {jtbridge}, by SM0THU, is available for OS X. It works together with -logging applications Aether, MacLoggerDX, RUMlog or RUMlogNG. It -checks QSO and QSL status of the call and DXCC entity, as well as many -other features. \ No newline at end of file diff --git a/doc/user_guide/en/decoder_notes.adoc b/doc/user_guide/en/decoder_notes.adoc deleted file mode 100644 index 6ef2dd7..0000000 --- a/doc/user_guide/en/decoder_notes.adoc +++ /dev/null @@ -1,155 +0,0 @@ -=== AP Decoding - -The _WSJT-X_ decoders for JT65, QRA64, and FT8 include optional -procedures that use naturally accumulating information during a -minimal QSO. This _a priori_ (AP) information increases sensitivity -of the decoder by up to 4 dB, at the cost of a slightly higher rate of -false decodes. - -For example: when you decide to answer a CQ, you already know your own -callsign and that of your potential QSO partner. The software -therefore "`knows`" what to expect for 57 of the 72 message bits (28 -bits for each of two callsigns, 1 bit for message type) in the next -received message. The decoder's task can thus be reduced to -determining the remaining 15 bits of the message and ensuring that the -resulting solution is reliable. - -AP decoding starts by setting AP bits to the hypothesized values, as -if they had been received correctly. We then determine whether the -remaining message and parity bits are consistent with the hypothesized -AP bits, with a specified level of confidence. Successful AP decodes -are labeled with an end-of-line indicator of the form `aP`, where `P` -is one of the single-digit AP decoding types listed in Table 1. For -example, `a2` indicates that the successful decode used MyCall as -hypothetically known information. - -[[FT8_AP_INFO_TABLE]] -.FT8 AP information types -[width="35%",cols="h10, - html, body { - font-size: 90%; - } - - body { - font-family: Arial, Helvetica, sans-serif; - } - - h1, h2, h3, h4, h5, h6 { - font-family: Georgia, "Times New Roman", Times, serif; - } - - a:visited { - color: purple; - } - diff --git a/doc/user_guide/en/docinfo.xml b/doc/user_guide/en/docinfo.xml deleted file mode 100644 index e69de29..0000000 diff --git a/doc/user_guide/en/faq.adoc b/doc/user_guide/en/faq.adoc deleted file mode 100644 index fa3852a..0000000 --- a/doc/user_guide/en/faq.adoc +++ /dev/null @@ -1,77 +0,0 @@ -//// -Questions: - Should be short one liners (in the .adoc file) ending with ?:: - If your question is too long for one line, consider multiple questions or rephrase - -Answers: - Can be bullet or paragraphs. Bullets make for easier reading. - -Bullet Usage: - * = a circle bullet single intent - ** = circle bullet double indent - . = should be avoided as the questions are numbered - .. = bullet a, b, c, and so on, double indent - -Alternatives: Use a * Bullet, followed by .. for example, then have -a multi-section answer using the * as the section header - - * Section Header 1 - .. Possible Answer a - .. Possible Answer b - * Section Header 2 - .. Possible Answer a - .. Possible Answer b - -Link Usage: - Use the common/links.adoc for href links to maintain consistency. Try to avoid - apostrophes ` or ' as it breaks AsciiDoc syntax without special escaping - and they do not translate into other languages well. - -//// -[qanda] -My displayed spectrum is flatter when I do not check the *Flatten* box. What's wrong?:: - -_WSJT-X_ does not expect a steep filter edge within the displayed -passband. Use a wider IF filter or reduce the displayed passband by -decreasing *Bins/Pixel*, increasing *Start*, or reducing the width of -the *Wide Graph*. You might also choose to re-center the filter -passband, if such control is available. - -How should I configure _WSJT-X_ to run multiple instances?:: - -Start _WSJT-X_ from a command-prompt window, assigning each instance a -unique identifier as in the following two-instance example. This -procedure will isolate the *Settings* file and the writable file -location for each instance of _WSJT-X_. - - wsjtx --rig-name=TS2000 - wsjtx --rig-name=FT847 - -Rig control through _OmniRig_ seems to fail when I click *Test CAT*. What can I do about it?:: - -_Omni-Rig_ apparently has a bug that appears when you click *Test -CAT*. Forget using *Test CAT* and just click *OK*. _Omni-Rig_ then -behaves normally. - -I am using _WSJT-X_ with _Ham Radio Deluxe_. All seems well until I start HRD Logbook or DM780 running in parallel; then CAT control becomes unreliable.:: - -You may see delays up to 20 seconds or so in frequency changes or -other radio commands, due to a bug in HRD. HRD folks are aware of the -problem, and are working to resolve it. - -I am running _WSJT-X_ under Ubuntu. The program starts, but menu bar is missing from the top of the main window and the hot-keys don't work.:: - -Ubuntu's new "`Unity`" desktop puts the menu for the currently active -window at the top of the primary display screen. You can restore menu -bars to their traditional locations by typing the following in a -command-prompt window: - - sudo apt remove appmenu-qt5 - -+ -Alternatively, you can disable the common menu bar for just _WSJT-X_ -by starting the application with the environment variable -QT_QPA_PLATFORMTHEME set to empty (the space after the '=' character -is necessary): - - QT_QPA_PLATFORMTHEME= wsjtx diff --git a/doc/user_guide/en/font-sizes.adoc b/doc/user_guide/en/font-sizes.adoc deleted file mode 100644 index 80df0eb..0000000 --- a/doc/user_guide/en/font-sizes.adoc +++ /dev/null @@ -1,15 +0,0 @@ -// Status=review - -- You can control the program's font sizes by using a text editor -(e.g., Windows Notepad or similar) to create a one-line file named -+fonts.txt+ in the _WSJT-X_ installation directory. Enter a single -line of text with four numbers separated by spaces. The first two -numbers control the font size (in points) and weight (on a 0 – 100 -scale) of most labels on the user interface. The last two numbers -control size and weight of text in the *Band Activity* and *Rx -Frequency* windows. - -- By default the four numbers are "`8 50 10 50`". If you need larger -fonts in the user interface and bold text in the decode windows, try -something like "`10 50 12 100`" (without the quotes). - diff --git a/doc/user_guide/en/images/130610_2343-wav-80.png b/doc/user_guide/en/images/130610_2343-wav-80.png deleted file mode 100644 index 6c2cefa..0000000 Binary files a/doc/user_guide/en/images/130610_2343-wav-80.png and /dev/null differ diff --git a/doc/user_guide/en/images/170709_135615.wav.png b/doc/user_guide/en/images/170709_135615.wav.png deleted file mode 100644 index 373adbc..0000000 Binary files a/doc/user_guide/en/images/170709_135615.wav.png and /dev/null differ diff --git a/doc/user_guide/en/images/Add_station_info.png b/doc/user_guide/en/images/Add_station_info.png deleted file mode 100644 index e8ad6d6..0000000 Binary files a/doc/user_guide/en/images/Add_station_info.png and /dev/null differ diff --git a/doc/user_guide/en/images/AstroData_2.png b/doc/user_guide/en/images/AstroData_2.png deleted file mode 100644 index 521779a..0000000 Binary files a/doc/user_guide/en/images/AstroData_2.png and /dev/null differ diff --git a/doc/user_guide/en/images/Astronomical_data.png b/doc/user_guide/en/images/Astronomical_data.png deleted file mode 100644 index abf1f24..0000000 Binary files a/doc/user_guide/en/images/Astronomical_data.png and /dev/null differ diff --git a/doc/user_guide/en/images/FreqCal.png b/doc/user_guide/en/images/FreqCal.png deleted file mode 100644 index 46901fe..0000000 Binary files a/doc/user_guide/en/images/FreqCal.png and /dev/null differ diff --git a/doc/user_guide/en/images/FreqCal_Graph.png b/doc/user_guide/en/images/FreqCal_Graph.png deleted file mode 100644 index 8f8c591..0000000 Binary files a/doc/user_guide/en/images/FreqCal_Graph.png and /dev/null differ diff --git a/doc/user_guide/en/images/FreqCal_Results.png b/doc/user_guide/en/images/FreqCal_Results.png deleted file mode 100644 index cce1a68..0000000 Binary files a/doc/user_guide/en/images/FreqCal_Results.png and /dev/null differ diff --git a/doc/user_guide/en/images/HotA.png b/doc/user_guide/en/images/HotA.png deleted file mode 100644 index 4bada45..0000000 Binary files a/doc/user_guide/en/images/HotA.png and /dev/null differ diff --git a/doc/user_guide/en/images/JT4F.png b/doc/user_guide/en/images/JT4F.png deleted file mode 100644 index ddb41b4..0000000 Binary files a/doc/user_guide/en/images/JT4F.png and /dev/null differ diff --git a/doc/user_guide/en/images/JT65B.png b/doc/user_guide/en/images/JT65B.png deleted file mode 100644 index 31307a3..0000000 Binary files a/doc/user_guide/en/images/JT65B.png and /dev/null differ diff --git a/doc/user_guide/en/images/MSK144.png b/doc/user_guide/en/images/MSK144.png deleted file mode 100644 index 2109c8c..0000000 Binary files a/doc/user_guide/en/images/MSK144.png and /dev/null differ diff --git a/doc/user_guide/en/images/MacAppMenu.png b/doc/user_guide/en/images/MacAppMenu.png deleted file mode 100644 index bd3f2c2..0000000 Binary files a/doc/user_guide/en/images/MacAppMenu.png and /dev/null differ diff --git a/doc/user_guide/en/images/QRA64.png b/doc/user_guide/en/images/QRA64.png deleted file mode 100644 index 929f5c9..0000000 Binary files a/doc/user_guide/en/images/QRA64.png and /dev/null differ diff --git a/doc/user_guide/en/images/RadioTab.png b/doc/user_guide/en/images/RadioTab.png deleted file mode 100644 index ad15075..0000000 Binary files a/doc/user_guide/en/images/RadioTab.png and /dev/null differ diff --git a/doc/user_guide/en/images/Rx_pct_MSK144.png b/doc/user_guide/en/images/Rx_pct_MSK144.png deleted file mode 100644 index 7696cb6..0000000 Binary files a/doc/user_guide/en/images/Rx_pct_MSK144.png and /dev/null differ diff --git a/doc/user_guide/en/images/VHF_controls.png b/doc/user_guide/en/images/VHF_controls.png deleted file mode 100644 index 1f08888..0000000 Binary files a/doc/user_guide/en/images/VHF_controls.png and /dev/null differ diff --git a/doc/user_guide/en/images/WSPR_1a.png b/doc/user_guide/en/images/WSPR_1a.png deleted file mode 100644 index b9b150f..0000000 Binary files a/doc/user_guide/en/images/WSPR_1a.png and /dev/null differ diff --git a/doc/user_guide/en/images/WSPR_2.png b/doc/user_guide/en/images/WSPR_2.png deleted file mode 100644 index 5aab58d..0000000 Binary files a/doc/user_guide/en/images/WSPR_2.png and /dev/null differ diff --git a/doc/user_guide/en/images/WSPR_WideGraphControls.png b/doc/user_guide/en/images/WSPR_WideGraphControls.png deleted file mode 100644 index 9bea74e..0000000 Binary files a/doc/user_guide/en/images/WSPR_WideGraphControls.png and /dev/null differ diff --git a/doc/user_guide/en/images/auto-seq.png b/doc/user_guide/en/images/auto-seq.png deleted file mode 100644 index 0b15531..0000000 Binary files a/doc/user_guide/en/images/auto-seq.png and /dev/null differ diff --git a/doc/user_guide/en/images/band-settings.png b/doc/user_guide/en/images/band-settings.png deleted file mode 100644 index 9b8dd08..0000000 Binary files a/doc/user_guide/en/images/band-settings.png and /dev/null differ diff --git a/doc/user_guide/en/images/band_hopping.png b/doc/user_guide/en/images/band_hopping.png deleted file mode 100644 index 06ad88e..0000000 Binary files a/doc/user_guide/en/images/band_hopping.png and /dev/null differ diff --git a/doc/user_guide/en/images/colors.png b/doc/user_guide/en/images/colors.png deleted file mode 100644 index 7e8e9ad..0000000 Binary files a/doc/user_guide/en/images/colors.png and /dev/null differ diff --git a/doc/user_guide/en/images/config-menu.png b/doc/user_guide/en/images/config-menu.png deleted file mode 100644 index b468368..0000000 Binary files a/doc/user_guide/en/images/config-menu.png and /dev/null differ diff --git a/doc/user_guide/en/images/decode-menu.png b/doc/user_guide/en/images/decode-menu.png deleted file mode 100644 index 4235369..0000000 Binary files a/doc/user_guide/en/images/decode-menu.png and /dev/null differ diff --git a/doc/user_guide/en/images/decodes.png b/doc/user_guide/en/images/decodes.png deleted file mode 100644 index 7f6ad69..0000000 Binary files a/doc/user_guide/en/images/decodes.png and /dev/null differ diff --git a/doc/user_guide/en/images/download_samples.png b/doc/user_guide/en/images/download_samples.png deleted file mode 100644 index aafaf07..0000000 Binary files a/doc/user_guide/en/images/download_samples.png and /dev/null differ diff --git a/doc/user_guide/en/images/echo-graph-controls.png b/doc/user_guide/en/images/echo-graph-controls.png deleted file mode 100644 index 681d2b1..0000000 Binary files a/doc/user_guide/en/images/echo-graph-controls.png and /dev/null differ diff --git a/doc/user_guide/en/images/echo_144.png b/doc/user_guide/en/images/echo_144.png deleted file mode 100644 index 77f80e9..0000000 Binary files a/doc/user_guide/en/images/echo_144.png and /dev/null differ diff --git a/doc/user_guide/en/images/fast-graph-controls.png b/doc/user_guide/en/images/fast-graph-controls.png deleted file mode 100644 index 513fe20..0000000 Binary files a/doc/user_guide/en/images/fast-graph-controls.png and /dev/null differ diff --git a/doc/user_guide/en/images/file-menu.png b/doc/user_guide/en/images/file-menu.png deleted file mode 100644 index e7a765f..0000000 Binary files a/doc/user_guide/en/images/file-menu.png and /dev/null differ diff --git a/doc/user_guide/en/images/freemsg.png b/doc/user_guide/en/images/freemsg.png deleted file mode 100644 index c0fc06d..0000000 Binary files a/doc/user_guide/en/images/freemsg.png and /dev/null differ diff --git a/doc/user_guide/en/images/ft8_decodes.png b/doc/user_guide/en/images/ft8_decodes.png deleted file mode 100644 index 2b5b4e9..0000000 Binary files a/doc/user_guide/en/images/ft8_decodes.png and /dev/null differ diff --git a/doc/user_guide/en/images/help-menu.png b/doc/user_guide/en/images/help-menu.png deleted file mode 100644 index 91ef1b8..0000000 Binary files a/doc/user_guide/en/images/help-menu.png and /dev/null differ diff --git a/doc/user_guide/en/images/jtalert.png b/doc/user_guide/en/images/jtalert.png deleted file mode 100644 index ed85caf..0000000 Binary files a/doc/user_guide/en/images/jtalert.png and /dev/null differ diff --git a/doc/user_guide/en/images/keyboard-shortcuts.png b/doc/user_guide/en/images/keyboard-shortcuts.png deleted file mode 100644 index 65ea3a9..0000000 Binary files a/doc/user_guide/en/images/keyboard-shortcuts.png and /dev/null differ diff --git a/doc/user_guide/en/images/log-qso.png b/doc/user_guide/en/images/log-qso.png deleted file mode 100644 index 867251b..0000000 Binary files a/doc/user_guide/en/images/log-qso.png and /dev/null differ diff --git a/doc/user_guide/en/images/main-ui-1.6.png b/doc/user_guide/en/images/main-ui-1.6.png deleted file mode 100644 index ea0c80f..0000000 Binary files a/doc/user_guide/en/images/main-ui-1.6.png and /dev/null differ diff --git a/doc/user_guide/en/images/main-ui-controls.png b/doc/user_guide/en/images/main-ui-controls.png deleted file mode 100644 index c5e48ff..0000000 Binary files a/doc/user_guide/en/images/main-ui-controls.png and /dev/null differ diff --git a/doc/user_guide/en/images/main-ui.png b/doc/user_guide/en/images/main-ui.png deleted file mode 100644 index 8268af4..0000000 Binary files a/doc/user_guide/en/images/main-ui.png and /dev/null differ diff --git a/doc/user_guide/en/images/misc-controls-center.png b/doc/user_guide/en/images/misc-controls-center.png deleted file mode 100644 index 773501a..0000000 Binary files a/doc/user_guide/en/images/misc-controls-center.png and /dev/null differ diff --git a/doc/user_guide/en/images/misc-main-ui.png b/doc/user_guide/en/images/misc-main-ui.png deleted file mode 100644 index 1889992..0000000 Binary files a/doc/user_guide/en/images/misc-main-ui.png and /dev/null differ diff --git a/doc/user_guide/en/images/mode-menu.png b/doc/user_guide/en/images/mode-menu.png deleted file mode 100644 index 8e63a02..0000000 Binary files a/doc/user_guide/en/images/mode-menu.png and /dev/null differ diff --git a/doc/user_guide/en/images/new-msg-box.png b/doc/user_guide/en/images/new-msg-box.png deleted file mode 100644 index ec74e25..0000000 Binary files a/doc/user_guide/en/images/new-msg-box.png and /dev/null differ diff --git a/doc/user_guide/en/images/open_sample_file.png b/doc/user_guide/en/images/open_sample_file.png deleted file mode 100644 index 96df16c..0000000 Binary files a/doc/user_guide/en/images/open_sample_file.png and /dev/null differ diff --git a/doc/user_guide/en/images/psk-reporter.png b/doc/user_guide/en/images/psk-reporter.png deleted file mode 100644 index 037d40a..0000000 Binary files a/doc/user_guide/en/images/psk-reporter.png and /dev/null differ diff --git a/doc/user_guide/en/images/psk-reporter_2.png b/doc/user_guide/en/images/psk-reporter_2.png deleted file mode 100644 index b0c53c8..0000000 Binary files a/doc/user_guide/en/images/psk-reporter_2.png and /dev/null differ diff --git a/doc/user_guide/en/images/r3666-config-screen-80.png b/doc/user_guide/en/images/r3666-config-screen-80.png deleted file mode 100644 index 315aad7..0000000 Binary files a/doc/user_guide/en/images/r3666-config-screen-80.png and /dev/null differ diff --git a/doc/user_guide/en/images/r3666-main-ui-80.png b/doc/user_guide/en/images/r3666-main-ui-80.png deleted file mode 100644 index b693b73..0000000 Binary files a/doc/user_guide/en/images/r3666-main-ui-80.png and /dev/null differ diff --git a/doc/user_guide/en/images/r4148-txmac-ui.png b/doc/user_guide/en/images/r4148-txmac-ui.png deleted file mode 100644 index 865b314..0000000 Binary files a/doc/user_guide/en/images/r4148-txmac-ui.png and /dev/null differ diff --git a/doc/user_guide/en/images/reporting.png b/doc/user_guide/en/images/reporting.png deleted file mode 100644 index 2ac100d..0000000 Binary files a/doc/user_guide/en/images/reporting.png and /dev/null differ diff --git a/doc/user_guide/en/images/save-menu.png b/doc/user_guide/en/images/save-menu.png deleted file mode 100644 index 6d1ff7a..0000000 Binary files a/doc/user_guide/en/images/save-menu.png and /dev/null differ diff --git a/doc/user_guide/en/images/settings-advanced.png b/doc/user_guide/en/images/settings-advanced.png deleted file mode 100644 index 5a42a3c..0000000 Binary files a/doc/user_guide/en/images/settings-advanced.png and /dev/null differ diff --git a/doc/user_guide/en/images/settings-audio.png b/doc/user_guide/en/images/settings-audio.png deleted file mode 100644 index aabeecb..0000000 Binary files a/doc/user_guide/en/images/settings-audio.png and /dev/null differ diff --git a/doc/user_guide/en/images/settings-frequencies.png b/doc/user_guide/en/images/settings-frequencies.png deleted file mode 100644 index 7106e60..0000000 Binary files a/doc/user_guide/en/images/settings-frequencies.png and /dev/null differ diff --git a/doc/user_guide/en/images/settings-general.png b/doc/user_guide/en/images/settings-general.png deleted file mode 100644 index 0774863..0000000 Binary files a/doc/user_guide/en/images/settings-general.png and /dev/null differ diff --git a/doc/user_guide/en/images/setup-menu.png b/doc/user_guide/en/images/setup-menu.png deleted file mode 100644 index fdf2423..0000000 Binary files a/doc/user_guide/en/images/setup-menu.png and /dev/null differ diff --git a/doc/user_guide/en/images/special-mouse-commands.png b/doc/user_guide/en/images/special-mouse-commands.png deleted file mode 100644 index 92fa676..0000000 Binary files a/doc/user_guide/en/images/special-mouse-commands.png and /dev/null differ diff --git a/doc/user_guide/en/images/status-bar-a.png b/doc/user_guide/en/images/status-bar-a.png deleted file mode 100644 index a174183..0000000 Binary files a/doc/user_guide/en/images/status-bar-a.png and /dev/null differ diff --git a/doc/user_guide/en/images/tools-menu.png b/doc/user_guide/en/images/tools-menu.png deleted file mode 100644 index 60ed618..0000000 Binary files a/doc/user_guide/en/images/tools-menu.png and /dev/null differ diff --git a/doc/user_guide/en/images/traditional-msg-box.png b/doc/user_guide/en/images/traditional-msg-box.png deleted file mode 100644 index 15b1771..0000000 Binary files a/doc/user_guide/en/images/traditional-msg-box.png and /dev/null differ diff --git a/doc/user_guide/en/images/tx-macros.png b/doc/user_guide/en/images/tx-macros.png deleted file mode 100644 index 6c562f1..0000000 Binary files a/doc/user_guide/en/images/tx-macros.png and /dev/null differ diff --git a/doc/user_guide/en/images/view-menu.png b/doc/user_guide/en/images/view-menu.png deleted file mode 100644 index 3387a57..0000000 Binary files a/doc/user_guide/en/images/view-menu.png and /dev/null differ diff --git a/doc/user_guide/en/images/wide-graph-controls.png b/doc/user_guide/en/images/wide-graph-controls.png deleted file mode 100644 index d776ee4..0000000 Binary files a/doc/user_guide/en/images/wide-graph-controls.png and /dev/null differ diff --git a/doc/user_guide/en/install-from-source.adoc b/doc/user_guide/en/install-from-source.adoc deleted file mode 100644 index 466528f..0000000 --- a/doc/user_guide/en/install-from-source.adoc +++ /dev/null @@ -1,29 +0,0 @@ -// Status=review - -Source code for _WSJT-X_ is available from a public repository at -{devsvn}. To compile the program you will need to install at least the -following packages: - -- Subversion 1.8 or later -- Qt 5.2 or later -- g++ 4.8 or later -- gfortran 4.8 or later -- fftw3 -- MinGW (for Windows only) - -Source code for _WSJT-X_ v{VERSION} can be downloaded with the command: - -===== -svn co svn://svn.code.sf.net/p/wsjt/wsjt/tags/wsjtx-{VERSION} -===== - -and for the current development branch, - -===== -svn co svn://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx -===== - -If you are interested in contributing to the development and -documentation of _WSJT_ and its sister programs, please join the -developer's email list {devmail} and let us know of your areas of -interest. diff --git a/doc/user_guide/en/install-linux.adoc b/doc/user_guide/en/install-linux.adoc deleted file mode 100644 index bf7dd44..0000000 --- a/doc/user_guide/en/install-linux.adoc +++ /dev/null @@ -1,65 +0,0 @@ -// Status=review - -Debian, Ubuntu, and other Debian-based systems including Raspbian: - -* 32-bit: {debian32} -- To install: -+ -[example] -sudo dpkg -i wsjtx_{VERSION}_i386.deb - -- Uninstall: -+ -[example] -sudo dpkg -P wsjtx - -* 64-bit: {debian64} -- To install: -+ -[example] -sudo dpkg -i wsjtx_{VERSION}_amd64.deb - -* 64-bit: {raspbian} -- To install: -+ -[example] -sudo dpkg -i wsjtx_{VERSION}_armhf.deb - -- Uninstall: -+ -[example] -sudo dpkg -P wsjtx - -You may also need to execute the following command in a terminal: - -[example] -sudo apt install libqt5multimedia5-plugins libqt5serialport5 libfftw3-single3 - -Fedora, Red Hat, and other rpm-based systems: - -* 32-bit: {fedora32} -- To install: -+ -[example] -sudo rpm -i wsjtx-{VERSION}-i686.rpm - -- Uninstall: -+ -[example] -sudo rpm -e wsjtx - -* 64-bit: {fedora64} -- To install: -+ -[example] -sudo rpm -i wsjtx-{VERSION}-x86_64.rpm - -- Uninstall: -+ -[example] -sudo rpm -e wsjtx - -You may also need to execute the following command in a terminal: - -[example] -sudo dnf install fftw-libs-single qt5-qtmultimedia qt5-qtserialport diff --git a/doc/user_guide/en/install-mac.adoc b/doc/user_guide/en/install-mac.adoc deleted file mode 100644 index 566f5fd..0000000 --- a/doc/user_guide/en/install-mac.adoc +++ /dev/null @@ -1,25 +0,0 @@ -// These instructions are up-to-date for WSJT-X v1.9 - -*OS X 10.9* and later: Download the file {osx} to your desktop, -double-click on it and consult its `ReadMe` file for important -installation notes. - -If you have already installed a previous version, you can retain it by -changing its name in the *Applications* folder (say, from _WSJT-X_ to -_WSJT-X_1.8_). You can then proceed to the installation phase. - -Take note also of the following: - -* Use the Mac's *Audio MIDI Setup* utility to configure your sound -card for 48000 Hz, two-channel, 16-bit format. - -NOTE: If you are using macOS with an external audio device and find -that Tx audio spontaneously switches to the motherboard sound device -after a few transmissions, try setting the sample rate to 44100 Hz -rather than the otherwise recommended 48000 Hz. - -* Use *System Preferences* to select an external time source to keep -your system clock synchronized to UTC. - -* To uninstall simply drag the _WSJT-X_ application from *Applications* -to the *Trash Can*. diff --git a/doc/user_guide/en/install-windows.adoc b/doc/user_guide/en/install-windows.adoc deleted file mode 100644 index ba50f10..0000000 --- a/doc/user_guide/en/install-windows.adoc +++ /dev/null @@ -1,34 +0,0 @@ -// Status=review - -Download and execute the package file {win32}, following these -instructions: - -- Install _WSJT-X_ into its own directory, for example `C:\WSJTX` or -`C:\WSJT\WSJTX`, rather than the conventional location -`C:\Program Files\WSJTX`. - -- All program files relating to _WSJT-X_ will be stored in the chosen -installation directory and its subdirectories. - -- Logs and other writeable files will normally be found in the -directory + -`C:\Users\\AppData\Local\WSJT-X`. - -TIP: Your computer may be configured so that this directory is -"`invisible`". It's there, however, and accessible. An alternative -(shortcut) directory name is `%LOCALAPPDATA%\WSJT-X\`. - -- The built-in Windows facility for time synchronization is usually -not adequate. We recommend the program _Meinberg NTP_ (see {ntpsetup} -for downloading and installation instructions) or _Dimension 4_ from -{dimension4}. - -- _WSJT-X_ expects your sound card to do its raw sampling at 48000 Hz. -To ensure that this will be so when running under recent versions of -Windows, open the system's *Sound* control panel and select in turn the -*Recording* and *Playback* tabs. Click on *Properties*, then -*Advanced*, and select *16 bit, 48000 Hz (DVD Quality)*. - -- You can uninstall _WSJT-X_ by clicking its *Uninstall* link in the -Windows *Start* menu, or by using *Uninstall a Program* on the -Windows Control Panel. diff --git a/doc/user_guide/en/introduction.adoc b/doc/user_guide/en/introduction.adoc deleted file mode 100644 index 4149a48..0000000 --- a/doc/user_guide/en/introduction.adoc +++ /dev/null @@ -1,74 +0,0 @@ -// Status=review - -_WSJT-X_ is a computer program designed to facilitate basic amateur -radio communication using very weak signals. The first four letters in -the program name stand for "`**W**eak **S**ignal communication by -K1**JT**,`" while the suffix "`-X`" indicates that _WSJT-X_ started as -an extended and experimental branch of the program -_WSJT_. - -_WSJT-X_ Version 1.9 offers nine different protocols or modes: *FT8*, -*JT4*, *JT9*, *JT65*, *QRA64*, *ISCAT*, *MSK144*, *WSPR*, and *Echo*. -The first five are designed for making reliable QSOs under extreme -weak-signal conditions. They use nearly identical message structure -and source encoding. JT65 and QRA64 were designed for EME -("`moonbounce`") on the VHF/UHF bands and have also proven very -effective for worldwide QRP communication on the HF bands. QRA64 has -a number of advantages over JT65, including better performance on the -very weakest signals. We imagine that over time it may replace JT65 -for EME use. JT9 was originally designed for the LF, MF, and lower HF -bands. Its submode JT9A is 2 dB more sensitive than JT65 while using -less than 10% of the bandwidth. JT4 offers a wide variety of tone -spacings and has proven highly effective for EME on microwave bands up -to 24 GHz. These four "`slow`" modes use one-minute timed sequences -of alternating transmission and reception, so a minimal QSO takes four -to six minutes — two or three transmissions by each station, one -sending in odd UTC minutes and the other even. FT8 is operationally -similar but four times faster (15-second T/R sequences) and less -sensitive by a few dB. On the HF bands, world-wide QSOs are possible -with any of these modes using power levels of a few watts (or even -milliwatts) and compromise antennas. On VHF bands and higher, QSOs -are possible (by EME and other propagation types) at signal levels 10 -to 15 dB below those required for CW. - -*ISCAT*, *MSK144*, and optionally submodes *JT9E-H* are "`fast`" -protocols designed to take advantage of brief signal enhancements from -ionized meteor trails, aircraft scatter, and other types of scatter -propagation. These modes use timed sequences of 5, 10, 15, or 30 s -duration. User messages are transmitted repeatedly at high rate (up -to 250 characters per second, for MSK144) to make good use of the -shortest meteor-trail reflections or "`pings`". ISCAT uses free-form -messages up to 28 characters long, while MSK144 uses the same -structured messages as the slow modes and optionally an abbreviated -format with hashed callsigns. - -*WSPR* (pronounced "`whisper`") stands for **W**eak **S**ignal -**P**ropagation **R**eporter. The WSPR protocol was designed for probing -potential propagation paths using low-power transmissions. WSPR -messages normally carry the transmitting station’s callsign, grid -locator, and transmitter power in dBm, and they can be decoded at -signal-to-noise ratios as low as -28 dB in a 2500 Hz bandwidth. WSPR -users with internet access can automatically upload reception -reports to a central database called {wsprnet} that provides a mapping -facility, archival storage, and many other features. - -*Echo* mode allows you to detect and measure your own station's echoes -from the moon, even if they are far below the audible threshold. - -_WSJT-X_ provides spectral displays for receiver passbands as wide as -5 kHz, flexible rig control for nearly all modern radios used by -amateurs, and a wide variety of special aids such as automatic Doppler -tracking for EME QSOs and Echo testing. The program runs equally well -on Windows, Macintosh, and Linux systems, and installation packages -are available for all three platforms. - -*Version Numbers:* _WSJT-X_ release numbers have major, minor, and -patch numbers separated by periods: for example, _WSJT-X_ Version -1.9.0. Temporary "`beta`" release candidates are sometimes made in -advance of a new general-availability release, in order to obtain user -feedback. For example, version 1.9.0-rc1, 1.9.0-rc2, etc., would -be beta releases leading up to the final release of v1.9.0. -Release candidates should be used _only_ during a short testing -period. They carry an implied obligation to provide feedback to the -program development group. Candidate releases should not be used on -the air after a full release with the same number has been made. diff --git a/doc/user_guide/en/logging.adoc b/doc/user_guide/en/logging.adoc deleted file mode 100644 index ae657d2..0000000 --- a/doc/user_guide/en/logging.adoc +++ /dev/null @@ -1,47 +0,0 @@ -A basic logging facility in _WSJT-X_ saves QSO information to files -named `wsjtx.log` (in comma-separated text format) and `wsjtx_log.adi` -(in standard ADIF format). These files can be imported directly into -other programs, for example spreadsheets and popular logging programs. -As described in the <> and <> sections, different operating systems may place your -local log files in different locations. You can always navigate to -them directly by selecting *Open log directory* from the *File* menu. - -More elaborate logging capabilities are supported by third party -applications like {jtalert}, which can log QSOs automatically to other -applications including {hrd}, {dxlsuite}, and {log4om}. - -The program option *Show DXCC entity and worked before status* -(selectable on the *Settings | General* tab) is intended mostly for -use on non-Windows platforms, where {jtalert} is not available. When -this option is checked _WSJT-X_ appends some additional information to -all CQ messages displayed in the _Band Activity_ window. The name of -the DXCC entity is shown, abbreviated if necessary. Your "`worked -before`" status for this callsign (according to log file -`wsjtx_log.adi`) is flagged with a single character and a change of -background color, as follows: - -[horizontal] -!:: Default color bright purple: New DXCC entity -~:: Light pink: You have already worked this DXCC entity but not -this station - :: Green: You have previously worked the calling station - -In this respect the program does not distinguish between modes, but it -does differentiate between bands. - -_WSJT-X_ includes a built-in `cty.dat` file containing DXCC prefix -information. Updated files can be downloaded from the {cty_dat} web -site when required. If an updated `cty.dat` is present in the logs -folder and readable, it will be used in preference to the built-in -one. - -The log file `wsjtx_log.adi` is updated whenever you log a QSO from -_WSJT-X_. (Keep in mind that if you erase this file you will lose all -"`worked before`" information.) You can append or overwrite the -`wsjtx_log.adi` file by exporting your QSO history as an ADIF file -from another logging program. Turning *Show DXCC entity and worked -before status* off and then on again will cause _WSJT-X_ to re-read -the log file. Very large log files may cause _WSJT-X_ to slow down -when searching for calls. - diff --git a/doc/user_guide/en/make-qso.adoc b/doc/user_guide/en/make-qso.adoc deleted file mode 100644 index ecb1514..0000000 --- a/doc/user_guide/en/make-qso.adoc +++ /dev/null @@ -1,216 +0,0 @@ -// Status=review -=== Standard Exchange -By longstanding tradition, a minimally valid QSO requires the exchange -of callsigns, a signal report or some other information, and -acknowledgments. _WSJT-X_ is designed to facilitate making such -minimal QSOs using short, structured messages. The process works best -if you use these formats and follow standard operating practices. The -recommended basic QSO goes something like this: - - CQ K1ABC FN42 #K1ABC calls CQ - K1ABC G0XYZ IO91 #G0XYZ answers - G0XYZ K1ABC –19 #K1ABC sends report - K1ABC G0XYZ R-22 #G0XYZ sends R+report - G0XYZ K1ABC RRR #K1ABC sends RRR - K1ABC G0XYZ 73 #G0XYZ sends 73 - -*Standard messages* consist of two callsigns (or CQ, QRZ, or DE and -one callsign) followed by the transmitting station’s grid locator, a -signal report, R plus a signal report, or the final acknowledgements -RRR or 73. These messages are compressed and encoded in a highly -efficient and reliable way. In uncompressed form (as displayed -on-screen) they may contain as many as 22 characters. - -*Signal reports* are specified as signal-to-noise ratio (S/N) in dB, -using a standard reference noise bandwidth of 2500 Hz. Thus, in the -example message above, K1ABC is telling G0XYZ that his -signal is 19 dB below the noise power in bandwidth 2500 Hz. In the -message at 0004, G0XYZ acknowledges receipt of that report and -responds with a –22 dB signal report. JT65 reports are constrained to -lie in the range –30 to –1 dB, and values are significantly compressed -above about -10 dB. JT9 supports the extended range –50 to +49 dB and -assigns more reliable numbers to relatively strong signals. - -NOTE: Signals become visible on the waterfall around S/N = –26 dB and -audible (to someone with very good hearing) around –15 dB. Thresholds -for decodability are around -20 dB for FT8, -23 dB for JT4, –25 dB for -JT65, –27 dB for JT9. - -NOTE: Several options are available for circumstances where fast QSOs -are desirable. Double-click the *Tx1* control under _Now_ or _Next_ -to toggle use of the Tx2 message rather than Tx1 to start a QSO. -Similarly, double-click the *Tx4* control to toggle between sending -`RRR` and `RR73` in that message. The `RR73` message should be used -only if you are reasonably confident that no repetitions will be -required. - -=== Free-Text Messages - -Users often add some friendly chit-chat at the end of a QSO. -Free-format messages such as "`TNX ROBERT 73`" or "`5W VERT 73 GL`" -are supported, up to a maximum of 13 characters, including spaces. In -general you should avoid the character / in free-text messages, as the -program may then try to interpret your construction as part of a -compound callsign. It should be obvious that the JT4, JT9, and JT65 -protocols are not designed or well suited for extensive conversations -or rag-chewing. - -=== Auto-Sequencing - -The 15-second T/R cycles of FT8 allow only about two seconds to inspect -decoded messages and decide how to reply, which is often not enough. -The slow modes JT4, JT9, JT65, and QRA64 allow nearly 10 seconds -for this task, but operators may find that this is still insufficient -when workload is high, especially on EME. For these reasons a basic -auto-sequencing feature is offered. - -Check *Auto Seq* on the main window to enable this feature: - -image::auto-seq.png[align="center",alt="AutoSeq"] - -When calling CQ you may also choose to check the box *Call 1st*. -_WSJT-X_ will then respond automatically to the first decoded -responder to your CQ. - -NOTE: When *Auto-Seq* is enabled the program de-activates *Enable Tx* -at the end of each QSO. It is not intended that _WSJT-X_ should make -fully automated QSOs. - -=== VHF Contest Mode - -A special *NA VHF Contest* mode can be activated for FT8 and MSK144 -modes by checking a box on the main window. This mode is configured -especially for contests in which four-character grid locators are the -required exchange. When *NA VHF Contest* mode is active, the standard -QSO sequence looks like this: - - CQ K1ABC FN42 - K1ABC W9XYZ EN37 - W9XYZ K1ABC R FN42 - K1ABC W9XYZ RRR - W9XYZ K1ABC 73 - -In contest circumstances K1ABC might choose to call CQ again rather -than sending 73 for his third transmission. - -IMPORTANT: Do not use VHF Contest Mode on an HF band or in conditions -where worldwide propagation is available. See -<> for further details. - -[[COMP-CALL]] -=== Compound Callsigns - -Compound callsigns such as xx/K1ABC or K1ABC/x are handled in -one of two possible ways: - -.Messages containing Type 1 compound callsigns - -A list of about 350 of the most common prefixes and suffixes can be -displayed from the *Help* menu. A single compound callsign involving -one item from this list can be used in place of the standard third -word of a message (normally a locator, signal report, RRR, or 73). -The following examples are all acceptable messages containing *Type 1* -compound callsigns: - - CQ ZA/K1ABC - CQ K1ABC/4 - ZA/K1ABC G0XYZ - G0XYZ K1ABC/4 - -The following messages are _not_ valid, because a third word is not -permitted in any message containing a *Type 1* compound callsign: - - ZA/K1ABC G0XYZ -22 #These messages are invalid; each would - G0XYZ K1ABC/4 73 # be sent without its third "word" - -A QSO between two stations using *Type 1* compound-callsign messages -might look like this: - - CQ ZA/K1ABC - ZA/K1ABC G0XYZ - G0XYZ K1ABC –19 - K1ABC G0XYZ R–22 - G0XYZ K1ABC RRR - K1ABC G0XYZ 73 - -Notice that the full compound callsign is sent and received in the -first two transmissions. After that, the operators omit the add-on -prefix or suffix and use the standard structured messages. - -.Type 2 Compound-Callsign Messages - -Prefixes and suffixes _not_ found in the displayable short list are -handled by using *Type 2* compound callsigns. In this case the -compound callsign must be the second word in a two- or three-word -message, and the first word must be CQ, DE, or QRZ. Prefixes can be 1 -to 4 characters, suffixes 1 to 3 characters. A third word conveying a -locator, report, RRR, or 73 is permitted. The following are valid -messages containing *Type 2* compound callsigns: - - CQ W4/G0XYZ FM07 - QRZ K1ABC/VE6 DO33 - DE W4/G0XYZ FM18 - DE W4/G0XYZ -22 - DE W4/G0XYZ R-22 - DE W4/G0XYZ RRR - DE W4/G0XYZ 73 - -In each case, the compound callsign is treated as *Type 2* because the -add-on prefix or suffix is _not_ one of those in the fixed list. Note -that a second callsign is never permissible in these messages. - -NOTE: During a transmission your outgoing message is displayed in the -first label on the *Status Bar* and shown exactly as another station -will receive it. You can check to see that you are actually -transmitting the message you wish to send. - -QSOs involving *Type 2* compound callsigns might look like either -of the following sequences: - - CQ K1ABC/VE1 FN75 - K1ABC G0XYZ IO91 - G0XYZ K1ABC –19 - K1ABC G0XYZ R–22 - G0XYZ K1ABC RRR - K1ABC/VE1 73 - - - CQ K1ABC FN42 - DE G0XYZ/W4 FM18 - G0XYZ K1ABC –19 - K1ABC G0XYZ R–22 - G0XYZ K1ABC RRR - DE G0XYZ/W4 73 - -Operators with a compound callsign use its full form when calling CQ -and possibly also in a 73 transmission, as may be required by -licensing authorities. Other transmissions during a QSO may use the -standard structured messages without callsign prefix or suffix. - -TIP: If you are using a compound callsign, you may want to -experiment with the option *Message generation for type 2 compound -callsign holders* on the *Settings | General* tab, so that messages -will be generated that best suit your needs. - -=== Pre-QSO Checklist - -Before attempting your first QSO with one of the WSJT modes, be sure -to go through the <> above as well -as the following checklist: - -- Your callsign and grid locator set to correct values - -- PTT and CAT control (if used) properly configured and tested - -- Computer clock properly synchronized to UTC within ±1 s - -- Audio input and output devices configured for sample rate 48000 Hz, -16 bits - -- Radio set to *USB* (upper sideband) mode - -- Radio filters centered and set to widest available passband (up to 5 kHz). - -TIP: Remember that in many circumstances FT8, JT4, JT9, JT65, and WSPR -do not require high power. Under most HF propagation conditions, QRP -is the norm. diff --git a/doc/user_guide/en/measurement_tools.adoc b/doc/user_guide/en/measurement_tools.adoc deleted file mode 100644 index 9007c50..0000000 --- a/doc/user_guide/en/measurement_tools.adoc +++ /dev/null @@ -1,226 +0,0 @@ -=== Frequency Calibration - -Many _WSJT-X_ capabilities depend on signal-detection bandwidths no -more than a few Hz. Frequency accuracy and stability are therefore -unusually important. We provide tools to enable accurate frequency -calibration of your radio, as well as precise frequency measurement of -on-the-air signals. The calibration procedure works by automatically -cycling your CAT-controlled radio through a series of preset -frequencies of carrier-based signals at reliably known frequencies, -measuring the error in dial frequency for each signal. - -You will probably find it convenient to define and use a special -<> dedicated to frequency calibration. -Then complete the following steps, as appropriate for your system. - -- Switch to FreqCal mode - -- In the _Working Frequencies_ box on the *Settings -> Frequencies* -tab, delete any default frequencies for *FreqCal* mode that are not -relevant for your location. You may want to replace some of them with -reliably known frequencies receivable at your location. - -TIP: We find major-city AM broadcast stations generally serve well as -frequency calibrators at the low frequency end of the spectrum. In -North America we also use the standard time-and-frequency broadcasts -of WWV at 2.500, 5.000, 10.000, 15.000, and 20.000 MHz, and CHU at -3.330, 7.850, and 14.670 MHz. Similar shortwave signals are available -in other parts of the world. - -- In most cases you will want to start by deleting any existing file -`fmt.all` in the directory where your log files are kept. - -- To cycle automatically through your chosen list of calibration -frequencies, check *Execute frequency calibration cycle* on the -*Tools* menu. _WSJT-X_ will spend 30 seconds at each -frequency. Initially no measurement data is saved to the `fmt.all` -file although it is displayed on screen, this allows you to check you -current calibration parameters. - -- During the calibration procedure, the radio's USB dial frequency is -offset 1500 Hz below each *FreqCal* entry in the default frequencies -list. As shown in the screen shot below, detected signal carriers -therefore appear at about 1500 Hz in the _WSJT-X_ waterfall. - -- To start a measurement session check the *Measure* option and let -the calibration cycle run for at least one complete sequence. Note -that, while measuring, any existing calibration parameters are -automatically disabled so you may have to increase the *FTol* range if -your rig is off freqeuncy by more than a few Hertz in order to capture -valid measurements. - -image::FreqCal.png[align="left",alt="FreqCal"] - -With modern synthesized radios, small measured offsets from 1500 Hz -will exhibit a straight-line dependence on frequency. You can -approximate the calibration of your radio by simply dividing the -measured frequency offset (in Hz) at the highest reliable frequency by -the nominal frequency itself (in MHz). For example, the 20 MHz -measurement for WWV shown above produced a measured tone offset of -24.6 Hz, displayed in the _WSJT-X_ decoded text window. The resulting -calibration constant is 24.6/20=1.23 parts per million. This number -may be entered as *Slope* on the *settings -> Frequencies* tab. - -A more precise calibration can be effected by fitting the intercept -and slope of a straight line to the whole sequence of calibration -measurements, as shown for these measurements in the graph plotted -below. Software tools for completing this task are included with the -_WSJT-X_ installation, and detailed instructions for their use are -available at https://physics.princeton.edu/pulsar/k1jt/FMT_User.pdf. - -Using these tools and no specialized hardware beyond your -CAT-interfaced radio, you can calibrate the radio to better than 1 Hz -and compete very effectively in the ARRL's periodic Frequency -Measuring Tests. - -image::FreqCal_Graph.png[align="left",alt="FreqCal_Graph"] - -After running *Execute frequency calibration cycle* at least once with -good results, check and edit the file `fmt.all` in the log directory -and delete any spurious or outlier measurements. The line-fitting -procedure can then be carried out automatically by clicking *Solve for -calibration parameters* on the *Tools* menu. The results will be -displayed as in the following screen shot. Estimated uncertainties -are included for slope and intercept; `N` is the number of averaged -frequency measurements included in the fit, and `StdDev` is the root -mean square deviation of averaged measurements from the fitted -straight line. If the solution seems valid you will be offered an -*Apply* button to push that will automatically set the calibration -parameters in *Settings -> Frequencies -> Frequency Calibration*. - -image::FreqCal_Results.png[align="center",alt="FreqCal_Results"] - -For a quick visual check of the resulting calibration, stay in -*FreqCal* mode with the *Measure* option cleared. _WSJT-X_ will show -the adjusted results directly on the waterfall and the displayed -records. - -=== Reference Spectrum - -_WSJT-X_ provides a tool that can be used to determine the detailed -shape of your receiver's passband. Disconnect your antenna or tune to -a quiet frequency with no signals. With _WSJT-X_ running in one of -the slow modes, select *Measure reference spectrum* from the *Tools* -menu. Wait for about a minute and then hit the *Stop* button. A file -named `refspec.dat` will appear in your log directory. - - [ ... more to come ... ] - -=== Phase Equalization - -*Measure phase response* under the *Tools* menu is for advanced MSK144 -users. Phase equalization is used to compensate for group-delay -variation across your receiver passband. Careful application of this -facility can reduce intersymbol interference, resulting in improved -decoding sensitivity. If you use a software-defined receiver with -linear-phase filters there is no need to apply phase equalization. - -After a frame of received data has been decoded, *Measure phase -response* generates an undistorted audio waveform equal to the one -generated by the transmitting station. Its Fourier transform is then -used as a frequency-dependent phase reference to compare with the -phase of the received frame's Fourier coefficients. Phase differences -between the reference spectrum and received spectrum will include -contributions from the originating station's transmit filter, the -propagation channel, and filters in the receiver. If the received -frame originates from a station known to transmit signals having -little phase distortion (say, a station known to use a properly -adjusted software-defined-transceiver) and if the received signal is -relatively free from multipath distortion so that the channel phase is -close to linear, the measured phase differences will be representative -of the local receiver's phase response. - -Complete the following steps to generate a phase equalization curve: - -- Record a number of wav files that contain decodable signals from -your chosen reference station. Best results will be obtained when the -signal-to-noise ratio of the reference signals is 10 dB or greater. - -- Enter the callsign of the reference station in the DX Call box. - -- Select *Measure phase response* from the *Tools* menu, and open each -of the wav files in turn. The mode character on decoded text lines -will change from `&` to `^` while _WSJT-X_ is measuring the phase -response, and it will change back to `&` after the measurement is -completed. The program needs to average a number of high-SNR frames to -accurately estimate the phase, so it may be necessary to process -several wav files. The measurement can be aborted at any time by -selecting *Measure phase response* again to toggle the phase -measurement off. - -+ - -When the measurement is complete _WSJT-X_ will save the measured -phase response in the *Log directory*, in a file with suffix -".pcoeff". The filename will contain the callsign of the reference -station and a timestamp, for example `K0TPP_170923_112027.pcoeff`. - -- Select *Equalization tools ...* under the *Tools* menu and click the -*Phase ...* button to view the contents of the *Log directory*. Select -the desired pcoeff file. The measured phase values will be plotted as -filled circles along with a fitted red curve labeled "Proposed". This is -the proposed phase equalization curve. It's a good idea to repeat the -phase measurement several times, using different wav files for each -measurement, to ensure that your measurements are repeatable. - -- Once you are satisfied with a fitted curve, push the *Apply* button -to save the proposed response. The red curve will be replaced with a -light green curve labeled "Current" to indicate that the phase -equalization curve is now being applied to the received data. Another -curve labeled "Group Delay" will appear. The "Group Delay" curve shows -the group delay variation across the passband, in ms. Click the -*Discard* button to remove the captured data, leaving only the applied -phase equalization curve and corresponding group delay curve. - -- To revert to no phase equalization, push the *Restore Defaults* -button followed by the *Apply* button. - -The three numbers printed at the end of each MSK144 decode line can be -used to assess the improvement provided by equalization. These numbers -are: `N` = Number of frames averaged, `H` = Number of hard bit errors -corrected, `E` = Size of MSK eye diagram opening. - -Here is a decode of K0TPP obtained while *Measure phase response* was measuring -the phase response: - - 103900 17 6.5 1493 ^ WA8CLT K0TPP +07 1 0 1.2 - -The "^" symbol indicates that a phase measurement is being accumulated -but is not yet finished. The three numbers at the end of the line -indicate that one frame was used to obtain the decode, there were no -hard bit errors, and the eye-opening was 1.2 on a -2 to +2 -scale. Here's how the same decode looks after phase equalization: - - 103900 17 6.5 1493 & WA8CLT K0TPP +07 1 0 1.6 - -In this case, equalization has increased the eye opening from 1.2 to -1.6. Larger positive eye openings are associated with reduced -likelihood of bit errors and higher likelihood that a frame will be -successfully decoded. In this case, the larger eye-opening tells us -that phase equalization was successful, but it is important to note -that this test does not by itself tell us whether the applied phase -equalization curve is going to improve decoding of signals other than -those from the reference station, K0TPP. - -It's a good idea to carry out before and after comparisons using a -large number of saved wav files with signals from many different -stations, to help decide whether your equalization curve improves -decoding for most signals. When doing such comparisons, keep in mind -that equalization may cause _WSJT-X_ to successfully decode a frame -that was not decoded before equalization was applied. For this -reason, be sure that the time "T" of the two decodes are the same -before comparing their end-of-line quality numbers. - -When comparing before and after decodes having the same "T", keep in -mind that a smaller first number means that decoding has improved, -even if the second and third numbers appear to be "worse". For -example, suppose that the end-of-line quality numbers before -equalization are `2 0 0.2` and after equalization `1 5 -0.5`. These -numbers show improved decoding because the decode was obtained using -only a single frame after equalization whereas a 2-frame average was -needed before equalization. This implies that shorter and/or weaker -pings could be decodable. - -NOTE: Further details on phase equalization and examples of fitted -phase curves and eye diagrams can be found in the article on MSK144 by -K9AN and K1JT published in {msk144}. diff --git a/doc/user_guide/en/new_features.adoc b/doc/user_guide/en/new_features.adoc deleted file mode 100644 index c947ad8..0000000 --- a/doc/user_guide/en/new_features.adoc +++ /dev/null @@ -1,56 +0,0 @@ -=== New in Version 1.9 - -For quick reference, here's a short list of features and capabilities -added to _WSJT-X_ since Version 1.8.0: - -- New *FT8 DXpedition Mode* to facilitate high QSO rates in pileup -situations - -- Decoding improvements for JT65 mode, including _a priori_ (AP) -decoding when VHF/UHF/Microwave features are enabled - -- Optional Auto-Sequencing in JT4, JT9, and JT65 when VHF/UHF/Microwave features are enabled - -- Better suppression of low-confidence false decodes generated by AP -decoding in FT8 mode - -- Improved decoding performance for WSPR mode, especially effective at LF and MF - -- Minor adjustments to auto-sequencing behavior - -- More flexible Doppler control features for EME - -- Improved waterfall sensitivity for very weak signals - -- Automatic real-time forwarding of logged information to _N1MM Logger+_ - -- Expanded and improved UDP messages sent to companion programs - -- Bug fixes and other minor tweaks to user interface - -=== Documentation Conventions - -In this manual the following icons call attention to particular types -of information: - -NOTE: *Notes* containing information that may be of interest to -particuar classes of users. - -TIP: *Tips* on program features or capabilities that might otherwise be -overlooked. - -IMPORTANT: *Warnings* about usage that could lead to undesired -consequences. - -=== How You Can Contribute - -_WSJT-X_ is part of an open-source project released under the -{gnu_gpl} (GPL). If you have programming or documentation skills or -would like to contribute to the project in other ways, please make -your interests known to the development team. The project's -source-code repository can be found at {devsvn}, and most -communication among the developers takes place on the email reflector -{devmail}. Bug reports and suggestions for new features, improvements -to the _WSJT-X_ User Guide, etc., may also be sent to the -{wsjt_yahoo_group} email reflector. You must join the relevant group -before posting to either email list. diff --git a/doc/user_guide/en/platform-dependencies.adoc b/doc/user_guide/en/platform-dependencies.adoc deleted file mode 100644 index 384ec3d..0000000 --- a/doc/user_guide/en/platform-dependencies.adoc +++ /dev/null @@ -1,41 +0,0 @@ -// Status=review - -A few _WSJT-X_ features behave differently in Windows, Linux, or OS X, -or may not be relevant to all operating platforms. - -.File locations -* *Windows* - -- *Settings:* %LOCALAPPDATA%\WSJT-X\WSJT-X.ini -- *Log directory:* %LOCALAPPDATA%\WSJT-X\ -- *Default save directory:* %LOCALAPPDATA%\WSJT-X\save\ - -* *Windows, when using "--rig-name=xxx"* - -- *Settings:* %LOCALAPPDATA%\WSJT-X - xxx\WSJT-X - xxx.ini -- *Log directory:* %LOCALAPPDATA%\WSJT-X - xxx\ -- *Default save directory:* %LOCALAPPDATA%\WSJT-X - xxx\save\ - -* *Linux* - -- *Settings:* ~/.config/WSJT-X.ini -- *Log directory:* ~/.local/share/WSJT-X/ -- *Default save directory:* ~/.local/share/WSJT-X/save/ - -* *Linux, when using "--rig-name=xxx"* - -- *Settings:* ~/.config/WSJT-X - xxx.ini -- *Log directory:* ~/.local/share/WSJT-X - xxx/ -- *Default save directory:* ~/.local/share/WSJT-X - xxx/save/ - -* *Macintosh* - -- *Settings:* ~/Library/Preferences/WSJT-X.ini -- *Log directory:* ~/Library/Application Support/WSJT-X/ -- *Default save directory:* ~/Library/Application Support/WSJT-X/save/ - -* *Macintosh, when using "--rig-name=xxx"* - -- *Settings:* ~/Library/Preferences/WSJT-X - xxx.ini -- *Log directory:* ~/Library/Application Support/WSJT-X - xxx/ -- *Default save directory:* ~/Library/Application Support/WSJT-X - xxx/save/ diff --git a/doc/user_guide/en/protocols.adoc b/doc/user_guide/en/protocols.adoc deleted file mode 100644 index 456880d..0000000 --- a/doc/user_guide/en/protocols.adoc +++ /dev/null @@ -1,384 +0,0 @@ -[[PROTOCOL_OVERVIEW]] -=== Overview - -All QSO modes except ISCAT use structured messages that compress -user-readable information into fixed-length packets of 72 bits. Each -message consists of two 28-bit fields normally used for callsigns and -a 15-bit field for a grid locator, report, acknowledgment, or 73. An -additional bit flags a message containing arbitrary alphanumeric text, -up to 13 characters. Special cases allow other information such as -add-on callsign prefixes (e.g., ZA/K1ABC) or suffixes (e.g., K1ABC/P) -to be encoded. The basic aim is to compress the most common messages -used for minimally valid QSOs into a fixed 72-bit length. The -information payload in FT8 includes 3 additional bits (75 bits total). -One of the added bits is used to flag special messages used by the -DXpedition station in FT8 DXpedition Mode. Uses for the remaining two -bits are yet to be defined. - -A standard amateur callsign consists of a one- or two-character -prefix, at least one of which must be a letter, followed by a digit -and a suffix of one to three letters. Within these rules, the number -of possible callsigns is equal to 37×36×10×27×27×27, or somewhat over -262 million. (The numbers 27 and 37 arise because in the first and -last three positions a character may be absent, or a letter, or -perhaps a digit.) Since 2^28^ is more than 268 million, 28 bits are -enough to encode any standard callsign uniquely. Similarly, the number -of 4-digit Maidenhead grid locators on earth is 180×180 = 32,400, -which is less than 2^15^ = 32,768; so a grid locator requires 15 bits. - -Some 6 million of the possible 28-bit values are not needed for -callsigns. A few of these slots have been assigned to special message -components such as `CQ`, `DE`, and `QRZ`. `CQ` may be followed by three -digits to indicate a desired callback frequency. (If K1ABC transmits -on a standard calling frequency, say 50.280, and sends `CQ 290 K1ABC -FN42`, it means that s/he will listen on 50.290 and respond there to -any replies.) A numerical signal report of the form `–nn` or -`R–nn` can be sent in place of a grid locator. (As originally -defined, numerical signal reports `nn` were required to fall between -01 -and -30 dB. Recent program versions accommodate reports between --50 and +49 dB.) A country prefix or portable suffix may be -attached to one of the callsigns. When this feature is used the -additional information is sent in place of the grid locator or by -encoding additional information into some of the 6 million available -slots mentioned above. - -As a convenience for sending directed CQ messages, the compression -algorithm supports messages starting with `CQ AA` through `CQ ZZ`. -These message fragments are encoded internally as if they were the -callsigns `E9AA` through `E9ZZ`. Upon reception they are converted -back to the form `CQ AA` through `CQ ZZ`, for display to the user. - -The FT8 and MSK144 modes support a special feature allowing convenient -transmission and acknowledgment of four-character grid locators, the -required exchanges in most North American VHF contests. With this -Contest Mode enabled, _WSJT-X_ supports messages of the form `W9XYZ -K1ABC R FN42` by converting the grid locator to that of its -diametrically opposite point on Earth. The receiving program -recognizes a locator implying a distance greater than 10,000 km, does -the reverse transformation, and inserts the implied "`R`". Obviously, -this mode should not be used on the HF bands or under other -circumstances where world-wide propagation is possible. - -To be useful on channels with low signal-to-noise ratio, this kind of -lossless message compression requires use of a strong forward error -correcting (FEC) code. Different codes are used for each mode. -Accurate synchronization of time and frequency is required between -transmitting and receiving stations. As an aid to the decoders, each -protocol includes a "`sync vector`" of known symbols interspersed with -the information-carrying symbols. Generated waveforms for all of the -_WSJT-X_ modes have continuous phase and constant envelope. - -[[SLOW_MODES]] -=== Slow Modes - -[[FT8PRO]] -==== FT8 - -Forward error correction (FEC) in FT8 uses a low-density parity check -(LDPC) code with 75 information bits, a 12-bit cyclic redundancy check -(CRC), and 87 parity bits making a 174-bit codeword. It is thus -called an LDPC (174,87) code. Synchronization uses 7×7 Costas arrays -at the beginning, middle, and end of each transmission. Modulation is -8-tone frequency-shift keying (8-FSK) at 12000/1920 = 6.25 baud. Each -transmitted symbol carries three bits, so the total number of channel -symbols is 174/3 + 21 = 79. The total occupied bandwidth is 8 × 6.25 -= 50 Hz. - -[[JT4PRO]] -==== JT4 - -FEC in JT4 uses a strong convolutional code with constraint length -K=32, rate r=1/2, and a zero tail. This choice leads to an encoded -message length of (72+31) x 2 = 206 information-carrying bits. -Modulation is 4-tone frequency-shift keying (4-FSK) at 11025 / 2520 = -4.375 baud. Each symbol carries one information bit (the most -significant bit) and one synchronizing bit. The two 32-bit -polynomials used for convolutional encoding have hexadecimal values -0xf2d05351 and 0xe4613c47, and the ordering of encoded bits is -scrambled by an interleaver. The pseudo-random sync vector is the -following sequence (60 bits per line): - - 000011000110110010100000001100000000000010110110101111101000 - 100100111110001010001111011001000110101010101111101010110101 - 011100101101111000011011000111011101110010001101100100011111 - 10011000011000101101111010 - - -[[JT9PRO]] -==== JT9 - -FEC in JT9 uses the same strong convolutional code as JT4: constraint -length K=32, rate r=1/2, and a zero tail, leading to an encoded -message length of (72+31) × 2 = 206 information-carrying -bits. Modulation is nine-tone frequency-shift keying, 9-FSK at -12000.0/6912 = 1.736 baud. Eight tones are used for data, one for -synchronization. Eight data tones means that three data bits are -conveyed by each transmitted information symbol. Sixteen symbol -intervals are devoted to synchronization, so a transmission requires a -total of 206 / 3 + 16 = 85 (rounded up) channel symbols. The sync -symbols are those numbered 1, 2, 5, 10, 16, 23, 33, 35, 51, 52, 55, -60, 66, 73, 83, and 85 in the transmitted sequence. Tone spacing of -the 9-FSK modulation for JT9A is equal to the keying rate, 1.736 Hz. -The total occupied bandwidth is 9 × 1.736 = 15.6 Hz. - -[[JT65PRO]] -==== JT65 - -A detailed description of the JT65 protocol was published in -{jt65protocol} for September-October, 2005. A Reed Solomon (63,12) -error-control code converts 72-bit user messages into sequences of 63 -six-bit information-carrying symbols. These are interleaved with -another 63 symbols of synchronizing information according to the -following pseudo-random sequence: - - 100110001111110101000101100100011100111101101111000110101011001 - 101010100100000011000000011010010110101010011001001000011111111 - - -The synchronizing tone is normally sent in each interval having a -"`1`" in the sequence. Modulation is 65-FSK at 11025/4096 = 2.692 -baud. Frequency spacing between tones is equal to the keying rate for -JT65A, and 2 and 4 times larger for JT65B and JT65C. For EME QSOs the -signal report OOO is sometimes used instead of numerical signal -reports. It is conveyed by reversing sync and data positions in the -transmitted sequence. Shorthand messages for RO, RRR, and 73 dispense -with the sync vector entirely and use time intervals of 16384/11025 = -1.486 s for pairs of alternating tones. The lower frequency is the -same as that of the sync tone used in long messages, and the frequency -separation is 110250/4096 = 26.92 Hz multiplied by n for JT65A, with n -= 2, 3, 4 used to convey the messages RO, RRR, and 73. - -[[QRA64_PROTOCOL]] -==== QRA64 - -QRA64 is intended for EME and other extreme weak-signal applications. -Its internal code was designed by IV3NWV. The protocol uses a (63,12) -**Q**-ary **R**epeat **A**ccumulate code that is inherently better -than the Reed Solomon (63,12) code used in JT65, yielding a 1.3 dB -advantage. A new synchronizing scheme is based on three 7 x 7 Costas -arrays. This change yields another 1.9 dB advantage. - -In most respects the current implementation of QRA64 is operationally -similar to JT65. QRA64 does not use two-tone shorthand messages, and -it makes no use of a callsign database. Rather, additional -sensitivity is gained by making use of already known information as a -QSO progresses -- for example, when reports are being exchanged and -you have already decoded both callsigns in a previous transmission. -QRA64 presently offers no message averaging capability, though that -feature may be added. In early tests, many EME QSOs were made using -submodes QRA64A-E on bands from 144 MHz to 24 GHz. - -[[WSPR_PROTOCOL]] -==== WSPR - -WSPR is designed for probing potential radio propagation paths using -low power beacon-like transmissions. WSPR signals convey a callsign, -Maidenhead grid locator, and power level using a compressed data -format with strong forward error correction and narrow-band 4-FSK -modulation. The protocol is effective at signal-to-noise ratios as low -as –31 dB in a 2500 Hz bandwidth. - -WSPR messages can have one of three possible formats illustrated by -the following examples: - - - Type 1: K1ABC FN42 37 - - Type 2: PJ4/K1ABC 37 - - Type 3: FK52UD 37 - -Type 1 messages contain a standard callsign, a 4-character Maidenhead -grid locator, and power level in dBm. Type 2 messages omit the grid -locator but include a compound callsign, while type 3 messages replace -the callsign with a 15-bit hash code and include a 6-character locator -as well as the power level. Lossless compression techniques squeeze -all three message types into exactly 50 bits of user -information. Standard callsigns require 28 bits and 4-character grid -locators 15 bits. In Type 1 messages, the remaining 7 bits convey the -power level. In message types 2 and 3 these 7 bits convey power level -along with an extension or re-definition of fields normally used for -callsign and locator. Together, these compression techniques amount to -“source encoding” the user message into the smallest possible number -of bits. - -WSPR uses a convolutional code with constraint length K=32 and rate -r=1/2. Convolution extends the 50 user bits into a total of (50 + K – -1) × 2 = 162 one-bit symbols. Interleaving is applied to scramble the -order of these symbols, thereby minimizing the effect of short bursts -of errors in reception that might be caused by fading or interference. -The data symbols are combined with an equal number of synchronizing -symbols, a pseudo-random pattern of 0’s and 1’s. The 2-bit -combination for each symbol is the quantity that determines which of -four possible tones to transmit in any particular symbol -interval. Data information is taken as the most significant bit, sync -information the least significant. Thus, on a 0 – 3 scale, the tone -for a given symbol is twice the value (0 or 1) of the data bit, plus -the sync bit. - -[[SLOW_SUMMARY]] -==== Summary - -Table 2 provides a brief summary parameters for the slow modes in -_WSJT-X_. Parameters K and r specify the constraint length and rate -of the convolutional codes; n and k specify the sizes of the -(equivalent) block codes; Q is the alphabet size for the -information-carrying channel symbols; Sync Energy is the fraction of -transmitted energy devoted to synchronizing symbols; and S/N Threshold -is the signal-to-noise ratio (in a 2500 Hz reference bandwidth) above -which the probability of decoding is 50% or higher. - -[[SLOW_TAB]] -.Parameters of Slow Modes -[width="90%",cols="3h,^3,^2,^1,^2,^2,^2,^2,^2,^2",frame=topbot,options="header"] -|=============================================================================== -|Mode |FEC Type |(n,k) | Q|Modulation type|Keying rate (Baud)|Bandwidth (Hz) -|Sync Energy|Tx Duration (s)|S/N Threshold (dB) -|FT8 |LDPC, r=1/2|(174,87)| 8| 8-FSK| 6.25 | 50.0 | 0.27| 12.6 | -21 -|JT4A |K=32, r=1/2|(206,72)| 2| 4-FSK| 4.375| 17.5 | 0.50| 47.1 | -23 -|JT9A |K=32, r=1/2|(206,72)| 8| 9-FSK| 1.736| 15.6 | 0.19| 49.0 | -27 -|JT65A |Reed Solomon|(63,12) |64|65-FSK| 2.692| 177.6 | 0.50| 46.8 | -25 -|QRA64A|Q-ary Repeat Accumulate|(63,12) |64|64-FSK|1.736|111.1|0.25|48.4| -26 -| WSPR |K=32, r=1/2|(162,50)| 2| 4-FSK| 1.465| 5.9 | 0.50|110.6 | -31 -|=============================================================================== - -Submodes of JT4, JT9, JT65, and QRA64 offer wider tone spacings for -circumstances that may require them, such significant Doppler spread. -Table 3 summarizes the tone spacings, bandwidths, and approximate -threshold sensitivities of the various submodes when spreading is -comparable to tone spacing. - -[[SLOW_SUBMODES]] -.Parameters of Slow Submodes -[width="50%",cols="h,3*^",frame=topbot,options="header"] -|===================================== -|Mode |Tone Spacing |BW (Hz)|S/N (dB) -|FT8 |6.25 | 50.0 |-21 -|JT4A |4.375| 17.5 |-23 -|JT4B |8.75 | 30.6 |-22 -|JT4C |17.5 | 56.9 |-21 -|JT4D |39.375| 122.5 |-20 -|JT4E |78.75| 240.6 |-19 -|JT4F |157.5| 476.9 |-18 -|JT4G |315.0| 949.4 |-17 -|JT9A |1.736| 15.6 |-27 -|JT9B |3.472| 29.5 |-26 -|JT9C |6.944| 57.3 |-25 -|JT9D |13.889| 112.8 |-24 -|JT9E |27.778| 224.0 |-23 -|JT9F |55.556| 446.2 |-22 -|JT9G |111.111|890.6 |-21 -|JT9H |222.222|1779.5|-20 -|JT65A |2.692| 177.6 |-25 -|JT65B |5.383| 352.6 |-25 -|JT65C |10.767| 702.5 |-25 -|QRA64A|1.736| 111.1 |-26 -|QRA64B|3.472| 220.5 |-25 -|QRA64C|6.944| 439.2 |-24 -|QRA64D|13.889| 876.7 |-23 -|QRA64E|27.778|1751.7 |-22 -|===================================== - -[[FAST_MODES]] -=== Fast Modes - -==== ISCAT - -ISCAT messages are free-form, up to 28 characters in length. -Modulation is 42-tone frequency-shift keying at 11025 / 512 = 21.533 -baud (ISCAT-A), or 11025 / 256 = 43.066 baud (ISCAT-B). Tone -frequencies are spaced by an amount in Hz equal to the baud rate. The -available character set is: - ----- - 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ /.?@- ----- - -Transmissions consist of sequences of 24 symbols: a synchronizing -pattern of four symbols at tone numbers 0, 1, 3, and 2, followed by -two symbols with tone number corresponding to (message length) and -(message length + 5), and finally 18 symbols conveying the user's -message, sent repeatedly character by character. The message always -starts with `@`, the beginning-of-message symbol, which is not -displayed to the user. The sync pattern and message-length indicator -have a fixed repetition period, recurring every 24 symbols. Message -information occurs periodically within the 18 symbol positions set -aside for its use, repeating at its own natural length. - -For example, consider the user message `CQ WA9XYZ`. Including the -beginning-of-message symbol `@`, the message is 10 characters long. -Using the character sequence displayed above to indicate tone numbers, -the transmitted message will therefore start out as shown in the first -line below: - ----- - 0132AF@CQ WA9XYZ@CQ WA9X0132AFYZ@CQ WA9XYZ@CQ W0132AFA9X ... - sync## sync## sync## ----- - -Note that the first six symbols (four for sync, two for message -length) repeat every 24 symbols. Within the 18 information-carrying -symbols in each 24, the user message `@CQ WA9XYZ` repeats at its own -natural length, 10 characters. The resulting sequence is extended as -many times as will fit into a Tx sequence. - -==== JT9 - -The JT9 slow modes all use keying rate 12000/6912 = 1.736 baud. By contrast, with -the *Fast* setting submodes JT9E-H adjust the keying rate to match the -increased tone spacings. Message durations are therefore much -shorter, and they are sent repeatedly throughout each Tx sequence. -For details see Table 4, below. - -==== MSK144 - -Standard MSK144 messages are structured in the same way as those in -the slow modes, with 72 bits of user information. Forward error -correction is implemented by first augmenting the 72 message bits with -an 8-bit cyclic redundancy check (CRC) calculated from the message -bits. The CRC is used to detect and eliminate most false decodes at -the receiver. The resulting 80-bit augmented message is mapped to a -128-bit codeword using a (128,80) binary low-density-parity-check -(LDPC) code designed by K9AN specifically for this purpose. Two 8-bit -synchronizing sequences are added to make a message frame 144 bits -long. Modulation is Offset Quadrature Phase-Shift Keying (OQPSK) at -2000 baud. Even-numbered bits are conveyed over the in-phase channel, -odd-numbered bits on the quadrature channel. Individual symbols are -shaped with half-sine profiles, thereby ensuring a generated waveform -with constant envelope, equivalent to a Minimum Shift Keying (MSK) -waveform. Frame duration is 72 ms, so the effective character -transmission rate for standard messages is up to 250 cps. - -MSK144 also supports short-form messages that can be used after QSO -partners have exchanged both callsigns. Short messages consist of 4 -bits encoding R+report, RRR, or 73, together with a 12-bit hash code -based on the ordered pair of "`to`" and "`from`" callsigns. Another -specially designed LDPC (32,16) code provides error correction, and an -8-bit synchronizing vector is appended to make up a 40-bit frame. -Short-message duration is thus 20 ms, and short messages can be -decoded from very short meteor pings. - -The 72 ms or 20 ms frames of MSK144 messages are repeated without gaps -for the full duration of a transmission cycle. For most purposes, a -cycle duration of 15 s is suitable and recommended for MSK144. - -The modulated MSK144 signal occupies the full bandwidth of a SSB -transmitter, so transmissions are always centered at audio frequency -1500 Hz. For best results, transmitter and receiver filters should be -adjusted to provide the flattest possible response over the range -300Hz to 2700Hz. The maximum permissible frequency offset between you -and your QSO partner ± 200 Hz. - -==== Summary - -.Parameters of Fast Modes -[width="90%",cols="3h,^3,^2,^1,^2,^2,^2,^2,^2",frame="topbot",options="header"] -|===================================================================== -|Mode |FEC Type |(n,k) | Q|Modulation Type|Keying rate (Baud) -|Bandwidth (Hz)|Sync Energy|Tx Duration (s) -|ISCAT-A | - | - |42|42-FSK| 21.5 | 905 | 0.17| 1.176 -|ISCAT-B | - | - |42|42-FSK| 43.1 | 1809 | 0.17| 0.588 -|JT9E |K=32, r=1/2|(206,72)| 8| 9-FSK| 25.0 | 225 | 0.19| 3.400 -|JT9F |K=32, r=1/2|(206,72)| 8| 9-FSK| 50.0 | 450 | 0.19| 1.700 -|JT9G |K=32, r=1/2|(206,72)| 8| 9-FSK|100.0 | 900 | 0.19| 0.850 -|JT9H |K=32, r=1/2|(206,72)| 8| 9-FSK|200.0 | 1800 | 0.19| 0.425 -|MSK144 |LDPC |(128,80)| 2| OQPSK| 2000 | 2400 | 0.11| 0.072 -|MSK144 Sh|LDPC |(32,16) | 2| OQPSK| 2000 | 2400 | 0.20| 0.020 -|===================================================================== diff --git a/doc/user_guide/en/settings-advanced.adoc b/doc/user_guide/en/settings-advanced.adoc deleted file mode 100644 index e939977..0000000 --- a/doc/user_guide/en/settings-advanced.adoc +++ /dev/null @@ -1,44 +0,0 @@ -image::settings-advanced.png[align="center",alt="Settings Advanced"] - -_JT65 decoding parameters_ - -- *Random erasure patterns* logarithmically scales the number of -pseudo-random trials used by the Franke-Taylor JT65 decoder. Larger -numbers give slightly better sensitivity but take longer. For most -purposes a good setting is 6 or 7. - -- *Aggressive decoding level* sets the threshold for acceptable -decodes using Deep Search. Higher numbers will display results -with lower confidence levels. - -- Check *Two-pass decoding* to enable a second decoding pass after -signals producing first-pass decodes have been subtracted from the -received data stream. - -_Miscellaneous_ - -- Set a positive number in *Degrade S/N of .wav file* to add known -amounts of pseudo-random noise to data read from a .wav file. To -ensure that the resulting S/N degradation is close to the requested -number of dB, set *Receiver bandwidth* to your best estimate of the -receiver's effective noise bandwidth. - -- Set *Tx delay* to a number larger than the default 0.2 s to create -a larger delay between execution of a command to enable PTT and onset -of Tx audio. - -IMPORTANT: For the health of your T/R relays and external -preamplifier, we strongly recommend using a hardware sequencer and -testing to make sure that sequencing is correct. - -- Check *x 2 Tone spacing* or *x 4 Tone spacing* to generate Tx audio -with twice or four times the normal tone spacing. This feature is -intended for use with specialized LF/MF transmitters that divide -generated frequencies by 2 or 4 as part of the transmission process. - -_FT8 DXpedition Mode_ - -- Check *Fox* if you are a DXpedition station operating in FT8 -DXpedition Mode. Check *Hound* if you wish to make QSOs with such a -Fox. Be sure to read the operating instructions for {ft8_DXped}. - diff --git a/doc/user_guide/en/settings-audio.adoc b/doc/user_guide/en/settings-audio.adoc deleted file mode 100644 index 4784168..0000000 --- a/doc/user_guide/en/settings-audio.adoc +++ /dev/null @@ -1,41 +0,0 @@ -// Status=review - -image::settings-audio.png[align="center",alt="_WSJT-X_ Audio Configuration Screen"] - -Select the *Audio* tab to configure your sound system. - -- _Soundcard_: Select the audio devices to be used for *Input* and -*Output*. Usually the *Mono* settings will suffice, but in special -cases you can choose *Left*, *Right*, or *Both* stereo channels. - -- Be sure that your audio device is configured to sample at 48000 Hz, -16 bits. - - -IMPORTANT: If you select the audio output device that is also your -computer's default audio device, be sure to turn off all system sounds -to prevent inadvertently transmitting them over the air. - -NOTE: Windows Vista and later may configure audio devices using -the Texas Instruments PCM2900 series CODEC for microphone input rather -line input. (This chip is used in many radios with built-in USB -CODECs, as well as various other audio interfaces.) If you are using -such a device, be sure to set the mic level in the Recording Device -Properties to 0 dB. - -- _Save Directory_: _WSJT-X_ can save its received audio sequences as -`.wav` files. A default directory for these files is provided; you -can select another location if desired. - -- _AzEl Directory_: A file named `azel.dat` will appear in the -specified directory. The file contains information usable by another -program for automatic tracking of the Sun or Moon, as well as -calculated Doppler shift for the specified EME path. The file is -updated once per second whenever the <> -window is displayed. - -- _Remember power settings by band_: Checking either of these will -cause _WSJT-X_ to remember the *Pwr* slider setting for that operation -on a band-by-band basis. For example, when *Tune* is checked here and -you click the *Tune* button on the main window, the power slider will -change to the most recent setting used for *Tune* on the band in use. diff --git a/doc/user_guide/en/settings-colors.adoc b/doc/user_guide/en/settings-colors.adoc deleted file mode 100644 index 6fc95ea..0000000 --- a/doc/user_guide/en/settings-colors.adoc +++ /dev/null @@ -1,5 +0,0 @@ -image::colors.png[align="center",alt="Colors Screen"] - -_WSJT-X_ uses colors to highlight decoded messages containing -information of particular interest. Click on one of the buttons to -select your preferred colors for any message category. diff --git a/doc/user_guide/en/settings-frequencies.adoc b/doc/user_guide/en/settings-frequencies.adoc deleted file mode 100644 index bebf6a3..0000000 --- a/doc/user_guide/en/settings-frequencies.adoc +++ /dev/null @@ -1,61 +0,0 @@ -// Status=review - -[[FIG_BAND_SETTINGS]] -image::settings-frequencies.png[align="center",alt="Frequency Screen"] - -_Working Frequencies_: By default the *Working Frequencies* table -contains a list of frequencies conventionally used for modes JT4, JT9, -JT65, MSK144, WSPR, and Echo. Conventions may change with time or -by user preference; you can modify the frequency table as desired. - -- To change an existing entry, double-click to edit it, type a desired -frequency in MHz or select from the drop down list of options, then -hit *Enter* on the keyboard. The program will format your changed -entry appropriately. - -- To add a new entry, right-click anywhere on the frequency table and -select *Insert*. Enter a frequency in MHz in the pop-up box and -select the desired mode (or leave the Mode selection as *All*). Then -click *OK*. The table may include more than one frequency for a given -band. - -- To delete an entry, right-click it and select *Delete*, multiple -entries can be deleted in a single operation by selecting them before -right-clicking. - -- Right-click any entry and click *Reset* button to return the table -to its default configuration. - -Other more advanced maintenance operations are available on the -right-click context menu that should be self-explanatory. - -_Frequency Calibration_: If you have calibrated your radio using WWV -or other reliable frequency references, or perhaps with the technique -described in {fmt_wspr}, enter the measured values for _Intercept_ A -and _Slope_ B in the equation - - Dial error = A + B*f - -where "`Dial error`" and A are in Hz, f is frequency in MHz, and B is -in parts per million (ppm). Frequency values sent to the radio and -received from it will then be adjusted so that frequencies displayed -by _WSJT-X_ are accurate. - -_Station Information_: You can save *Band*, *Offset* and *Antenna -Description* information for your station. The antenna information -will be included in reception reports sent to {pskreporter}. By -default the frequency offset for each band is zero. Nonzero offsets -may be added if (for example) a <> is in use. - -- To simplify things you might want to delete any unwanted bands -- -for example, bands where you have no equipment. Then click on a -*Frequency* entry and type *Ctrl+A* to "`select all,`" and -drag-and-drop the entries onto the _Station Information_ table. You -can then add any transverter offsets and antenna details. - -- To avoid typing the same information many times, you can -drag-and-drop entries between the lines of the _Station Information_ -table. - -- When all settings have been configured to your liking, click *OK* to -dismiss the *Settings* window. diff --git a/doc/user_guide/en/settings-general.adoc b/doc/user_guide/en/settings-general.adoc deleted file mode 100644 index 0a259dd..0000000 --- a/doc/user_guide/en/settings-general.adoc +++ /dev/null @@ -1,22 +0,0 @@ -// Status=review -[[FIG_CONFIG_STATION]] -image::settings-general.png[align="center",alt="Settings Window"] - -Select the *General* tab on the *Settings* window. Under _Station -Details_ enter your callsign, grid locator (preferably the 6-character -locator) and IARU Region number. Region 1 is Europe, Africa, the -Middle East, and Northern Asia; Region 2 the Americas; and Region 3 -Southern Asia and the Pacific. This information will be sufficient -for initial tests. - -Meanings of remaining options on the *General* tab should be -self-explanatory after you have made some QSOs using _WSJT-X_. You -may return to set these options to your preferences later. - -NOTE: If you are using a callsign with an add-on prefix or -suffix, or wish to work a station using such a call, be sure to read -the section <>. - -NOTE: Enabling VHF/UHF/Microwave features necessarily disables the -wideband multi-decode capability of JT65. In most circumstances you -should turn this feature off when operating at HF. diff --git a/doc/user_guide/en/settings-radio.adoc b/doc/user_guide/en/settings-radio.adoc deleted file mode 100644 index 13f6426..0000000 --- a/doc/user_guide/en/settings-radio.adoc +++ /dev/null @@ -1,77 +0,0 @@ -// Status=review - -image::RadioTab.png[align="center",alt="Radio Tab"] - -_WSJT-X_ offers CAT (Computer Aided Transceiver) control of relevant -features of most modern transceivers. To configure the program for -your radio, select the *Radio* tab. - -- Select your radio type from the drop-down list labeled *Rig*, or -*None* if you do not wish to use CAT control. - -- Alternatively, if you have configured your station for control by -*DX Lab Suite Commander*, *Ham Radio Deluxe*, *Hamlib NET rigctl*, or -*Omni-Rig*, you may select one of those program names from the *Rig* -list. In these cases the entry field immediately under _CAT Control_ -will be relabeled as *Network Server*. Leave this field blank to -access the default instance of your control program, running on the -same computer. If the control program runs on a different computer -and/or port, specify it here. Hover the mouse pointer over the entry -field to see the required formatting details. - -- Select *Omni-Rig Rig 1* or *Omni-Rig Rig 2* to connect to an -_Omni-Rig_ server running on the same computer. Note that _Omni-Rig_ -is available only under Windows. - -- Set *Poll Interval* to the desired interval for _WSJT-X_ to query -your radio. For most radios a small number (say, 1 – 3 s) is -suitable. - -- _CAT Control_: To have _WSJT-X_ control the radio directly rather -than though another program, make the following settings: - -* Select the *Serial Port* used to communicate with your radio. - -* _Serial Port Parameters_: Set values for *Baud Rate*, *Data Bits*, -*Stop Bits*, and *Handshake* method. Consult your radio's user guide -for the proper parameter values. - -* _Force Control Lines_: A few station setups require the CAT serial -port’s *RTS* and/or *DTR* control lines to be forced high or -low. Check these boxes only if you are sure they are needed (for -example, to power the radio serial interface). - -- _PTT Method_: select *VOX*, *CAT*, *DTR*, or *RTS* as the desired -method for T/R switching. If your choice is *DTR* or *RTS*, select -the desired serial port (which may be the same one as used for -CAT control). - -- _Transmit Audio Source_: some radios permit you to choose the -connector that will accept Tx audio. If this choice is enabled, -select *Rear/Data* or *Front/Mic*. - -- _Mode_: _WSJT-X_ uses upper sideband mode for both transmitting and -receiving. Select *USB*, or choose *Data/Pkt* if your radio offers -such an option and uses it to enable the rear-panel audio line input. -Some radios also offer wider and/or flatter passbands when set to -*Data/Pkt* mode. Select *None* if you do not want _WSJT-X_ to change -the radio's Mode setting. - -- _Split Operation_: Significant advantages result from using *Split* -mode (separate VFOs for Rx and Tx) if your radio supports it. If it -does not, _WSJT-X_ can emulate such behavior. Either method will -result in a cleaner transmitted signal, by keeping the Tx audio always -in the range 1500 to 2000 Hz so that audio harmonics cannot pass -through the Tx sideband filter. Select *Rig* to use the radio's Split -mode, or *Fake It* to have _WSJT-X_ adjust the VFO frequency as -needed, when T/R switching occurs. Choose *None* if you do not -wish to use split operation. - -When all required settings have been made, click *Test CAT* to test -communication between _WSJT-X_ and your radio. The button should turn -green to indicate that proper communication has been established. -Failure of the CAT-control test turns the button red and displays an -error message. After a successful CAT test, toggle the *Test PTT* -button to confirm that your selected method of T/R control is working -properly. (If you selected *VOX* for _PTT Method_, you can test T/R -switching later by using the *Tune* button on the main window.) diff --git a/doc/user_guide/en/settings-reporting.adoc b/doc/user_guide/en/settings-reporting.adoc deleted file mode 100644 index 9658b69..0000000 --- a/doc/user_guide/en/settings-reporting.adoc +++ /dev/null @@ -1,21 +0,0 @@ -// Status=review -[[FIG_CONFIG_RPT]] -image::reporting.png[align="center",alt="Reporting Screen"] - -- _Logging_: Choose any desired options from this group. Operators in -a multi-operator station may wish to enter their home callsign as *Op -Call*. - -- _Network Services_: Check *Enable PSK Reporter Spotting* to send -reception reports to the {pskreporter} mapping facility. - -- _UDP Server_: This group of options controls the network name or -address and port number used by a program that will receive status -updates from _WSJT-X_. Cooperating applications like _JTAlert_ use -this feature to obtain information about a running _WSJT-X_ instance. -If you are using _JTAlert_, be sure to check the three boxes at lower -right. - -- _N1MM Logger+ Broadcasts_: To send information on logged QSOs -directly to _N1MM Logger+_, check the box and enter the IP address and -port number for _N1MM_. \ No newline at end of file diff --git a/doc/user_guide/en/settings-txmacros.adoc b/doc/user_guide/en/settings-txmacros.adoc deleted file mode 100644 index 0f31cb8..0000000 --- a/doc/user_guide/en/settings-txmacros.adoc +++ /dev/null @@ -1,20 +0,0 @@ -// Status=review - -[[FigTxMacros]] -image::tx-macros.png[align="center",alt="Tx Macros Screen"] - -*Tx Macros* are an aid for sending brief, frequently used free-text -messages such as the examples shown above. - -- To add a new message to the list, enter the desired text (up to 13 -characters) in the entry field at top, then click *Add*. - -- To remove an unwanted message, click on the message and then on -*Delete*. - -- You can reorder your macro messages by using drag-and-drop. The -new order will be preserved when _WSJT-X_ is restarted. - -- Messages can also be added from the main window's *Tx5* field on Tab -1 or the *Free msg* field on Tab 2. Simply hit [Enter] after the -message has been entered. diff --git a/doc/user_guide/en/support.adoc b/doc/user_guide/en/support.adoc deleted file mode 100644 index 0a7e74b..0000000 --- a/doc/user_guide/en/support.adoc +++ /dev/null @@ -1,34 +0,0 @@ -=== Help with Setup - -The best source of help in setting up your station or configuring -_WSJT-X_ is the {wsjt_yahoo_group} at email address -wsjtgroup@yahoogroups.com. The chances are good that someone with -similar interests and equipment has already solved your problem and -will be happy to help. To post messages here you will need to join -the group. - -=== Bug Reports - -One of your responsibilities as a _WSJT-X_ user is to help the -volunteer programmers to make the program better. Bugs may be -reported to {wsjt_yahoo_group} (email address -wsjtgroup@yahoogroups.com) or the WSJT Developers list -(wsjt-devel@lists.sourceforge.net). Again, you will need to join the -group or subscribe to the list. You can register for the list {wsjt-devel}. - -To be useful, bug reports should include at least the following -information: - -- Program version -- Operating system -- Concise description of the problem -- Exact sequence of steps required to reproduce the problem - -=== Feature Requests - -Suggestions from users often result in new program features. Good -ideas are always welcome: if there's a feature you would like to see -in _WSJT-X_, spell it out in as much detail as seems useful and send -it to us at one of the email addresses given a few lines above. Be -sure to explain why you think the feature is desirable, and what sort -of other users might find it so. diff --git a/doc/user_guide/en/system-requirements.adoc b/doc/user_guide/en/system-requirements.adoc deleted file mode 100644 index e7e61eb..0000000 --- a/doc/user_guide/en/system-requirements.adoc +++ /dev/null @@ -1,14 +0,0 @@ -// Status=review - -- SSB transceiver and antenna -- Computer running Windows (XP or later), Linux, or OS X -- 1.5 GHz or faster CPU and 200 MB of available memory; faster -machines are better -- Monitor with at least 1024 x 780 resolution -- Computer-to-radio interface using a serial port or equivalent USB - device for T/R switching, or CAT control, or VOX, as required for - your radio-to-computer connections -- Audio input and output devices supported by the operating system and - configured for sample rate 48000 Hz, 16 bits -- Audio or equivalent USB connections between transceiver and computer -- A means for synchronizing the computer clock to UTC within ±1 second diff --git a/doc/user_guide/en/transceiver-setup.adoc b/doc/user_guide/en/transceiver-setup.adoc deleted file mode 100644 index 060414c..0000000 --- a/doc/user_guide/en/transceiver-setup.adoc +++ /dev/null @@ -1,54 +0,0 @@ -// Status=review -.Receiver Noise Level - -- If it is not already highlighted in green, click the *Monitor* -button to start normal receive operation. - -- Be sure your transceiver is set to *USB* (or *USB Data*) mode. - -- Use the receiver gain controls and/or the computer's audio mixer -controls to set the background noise level (scale at lower left of -main window) to around 30 dB when no signals are present. It is -usually best to turn AGC off or reduce the RF gain control to minimize -AGC action. - -.Bandwidth and Frequency Setting - -- If your transceiver offers more than one bandwidth setting in USB -mode, it may be advantageous to choose the widest one possible, up to -about 5 kHz. This choice has the desirable effect of allowing the -*Wide Graph* (waterfall and 2D spectrum) to display the conventional -JT65 and JT9 sub-bands simultaneously on most HF bands. Further -details are provided in the <>. A -wider displayed bandwidth may also be helpful at VHF and above, where -FT8, JT4, JT65, and QRA64 signals may be found over much wider ranges -of frequencies. - -- If you have only a standard SSB filter you won’t be able to display -more than about 2.7 kHz bandwidth. Depending on the exact dial -frequency setting, on HF bands you can display the full sub-band -generally used for one mode. - -- Of course, you might prefer to concentrate on one mode at a time, -setting your dial frequency to (say) 14.074 for FT8, 14.076 for JT65, -or 14.078 for JT9. Present conventions have the nominal JT9 dial -frequency 2 kHz higher than the JT65 dial frequency on most bands, and -the FT8 frequency 2 kHz lower. - -.Transmitter Audio Level - -* Click the *Tune* button on the main screen to switch the -radio into transmit mode and generate a steady audio tone. - -* Listen to the generated audio tone using your radio’s *Monitor* -facility. The transmitted tone should be perfectly smooth, with no -clicks or glitches. Make sure that this is true even when you -simultaneously use the computer to do other tasks such as email, web -browsing, etc. - -* Adjust the *Pwr* slider (at right edge of main window) downward from -its maximum until the RF output from your transmitter falls slightly. -This is generally a good level for audio drive. - -* Toggle the *Tune* button once more or click *Halt Tx* to stop your -test transmission. diff --git a/doc/user_guide/en/tutorial-example1.adoc b/doc/user_guide/en/tutorial-example1.adoc deleted file mode 100644 index 8ad5d73..0000000 --- a/doc/user_guide/en/tutorial-example1.adoc +++ /dev/null @@ -1,93 +0,0 @@ -For this step and the next, you may want to pretend you are K1JT -by entering that callsign temporarily as *My Call* on the -*Settings | General* tab. Your results should then be identical to -those shown in the screen shot below. - -.Open a Wave File: - -- Select *File | Open* and select the file -+...\save\samples\JT9\130418_1742.wav+. When the file opens you should -see something similar to the following screen shot: - -[[X12]] -image::main-ui.png[align="center",alt="Main UI and Wide Graph"] - -.Decoding Overview - -Decoding takes place at the end of a receive sequence and proceeds in -two steps. The first decode is done at the selected Rx frequency, -indicated by the U-shaped green marker on the waterfall frequency -scale. Results appear in both the left (*Band Activity*) and right -(*Rx Frequency*) text windows on the main screen. The program then -finds and decodes all signals in the selected mode over the displayed -frequency range. The red marker on the waterfall scale indicates your -Tx frequency. - -Seven JT9 signals are present in the example file, all decodable. -When this file was recorded KF4RWA was finishing a QSO with K1JT. -Since the green marker was placed at his audio frequency, 1224 Hz, his -message `K1JT KF4RWA 73` is decoded first and appears in the *Rx -Frequency* window. The *Band Activity* window shows this message plus -all decodes at other frequencies. By default lines containing `CQ` -are highlighted in green, and lines with *My Call* (in this case K1JT) -in red. - -[[X13]] -.Decoding Controls - -To gain some feeling for controls frequently used when making QSOs, -try clicking with the mouse on the decoded text lines and on the -waterfall spectral display. You should be able to confirm the -following behavior: - -- Click or double-click on either of the decoded lines highlighted in -green. These actions produce the following results: - -** Callsign and locator of a station calling CQ are copied to the *DX -Call* and *DX Grid* entry fields. - -** Messages are generated for a standard minimal QSO. - -** The *Tx even* box is checked or cleared appropriately, so that you -will transmit in the proper (odd or even) minutes. - -** The Rx frequency marker is moved to the frequency of the CQing -station. - -** The *Gen Msg* ("`generated message`") radio button at bottom right -of the main window is selected. - -** *Double-click* does all of the above and also activates *Enable Tx* -so that a transmission will start automatically at the proper time. - -** You can modify the double-click behavior by holding down the -*Shift* key to move only the Tx frequency or the *Ctrl* key to move -both Rx and Tx frequencies. - -NOTE: You can prevent your Tx frequency from being changed by checking the -box *Hold Tx Freq*. - -- Double-click on the decoded message `K1JT N5KDV EM41`, highlighted -in red. Results will be similar to those in the previous step. The Tx -frequency (red marker) is not moved unless *Shift* or *Ctrl* is held -down. Messages highlighted in red are usually in response to your own -CQ or from a tail-ender, and you probably want your Tx frequency to -stay where it was. - -- Click somewhere on the waterfall to set Rx frequency (green marker -on waterfall scale). - -- Shift-click on the waterfall to set Tx frequency (red marker). - -- Ctrl-click on the waterfall to set both Rx and Tx frequencies. - -- Double-click on a signal in the waterfall to set Rx frequency and -start a narrow-band decode there. Decoded text will appear in the -right window only. - -- Ctrl-double-click on a signal to set both Rx and Tx frequencies and -decode at the new frequency. - -- Click *Erase* to clear the right window. - -- Double-click *Erase* to clear both text windows. diff --git a/doc/user_guide/en/tutorial-example2.adoc b/doc/user_guide/en/tutorial-example2.adoc deleted file mode 100644 index e7aa3ae..0000000 --- a/doc/user_guide/en/tutorial-example2.adoc +++ /dev/null @@ -1,119 +0,0 @@ -// Status=review -.Main Window: -- Select *JT9+JT65* on the *Mode* menu. -- Toggle the *Tx mode* button to read *Tx JT65 #*, and set the Tx and Rx -frequencies to 1718 Hz. -- Double-click on *Erase* to clear both text windows. - -.Wide Graph Settings: - -- *Bins/Pixel* = 7 -- *JT65 .... JT9* = 2500 -- Adjust the width of the Wide Graph window so that the upper -frequency limit is approximately 4000 Hz. - -.Open a Wave File: - -- Select *File | Open* and navigate to +...\save\samples\JT9+JT65\130610_2343.wav+. -The waterfall should look something like this: - -//.130610_2343.wav Decode -[[X14]] -image::130610_2343-wav-80.png[align="left",alt="Wide Graph Decode 130610_2343"] - -The position of the blue marker on the waterfall scale is -set by the spinner control *JT65 nnnn JT9*, where nnnn is an audio -frequency in Hz. In *JT9+JT65* mode the program will automatically -decode JT9 signals only above this frequency. JT65 signals will be -decoded over the full displayed frequency range. - -JT9 signals appear in the *Cumulative* spectrum as nearly rectangular -shapes about 16 Hz wide. They have no clearly visible sync tone like -the one at the low-frequency edge of all JT65 signals. By convention -the nominal frequency of both JT9 and JT65 signals is taken to be that -of the lowest tone, at the left edge of its spectrum. - -This sample file contains 17 decodable signals — nine in JT65 mode -(flagged with the character # in the decoded text windows), and eight -in JT9 mode (flagged with @). On multi-core computers the decoders -for JT9 and JT65 modes run simultaneously, so their results will be -interspersed. The *Band Activity* window contains all decodes (you -might need to scroll back in the window to see some of them). A -signal at the frequency specified by the green marker is given -decoding priority, and its message is displayed also in the *Rx -Frequency* window. - -[[FigDecodes]] -image::decodes.png[align="center"] - -- Confirm that mouse-click behavior is similar to that described -earlier, in <>. _WSJT-X_ automatically determines -the mode of each JT9 or JT65 message. - -TIP: When you double-click on a signal in the waterfall it will be -properly decoded even if on the "`wrong`" side of the *JT65 nnnn JT9* -marker. The Tx mode automatically switches to that of the decoded -signal and the Rx and Tx frequency markers on the waterfall scale -resize themselves accordingly. When selecting a JT65 signal, click on -the sync tone at its left edge. - -- Double-click on the waterfall near 815 Hz: a JT65 message -originating from W7VP will be decoded and appear in the *Rx Frequency* -window. Between the *UTC* and *Freq* columns on the decoded text line -you will find *dB*, the measured signal-to-noise ratio, and *DT*, the -signal's time offset in seconds relative to your computer clock. - -[width="80%",align="center",cols="^10,2*^8,2*^10,54",options="header"] -|=== -|UTC|dB|DT|Freq|Mode|Message -|+2343+|+-7+|+0.3+|+815+|+#+|+KK4DSD W7VP -16+ -|=== - -- Double-click on the waterfall at 3196 Hz. The program will decode a -JT9 message from IZ0MIT: - -[width="80%",align="center",cols="^10,2*^8,2*^10,54",options="header"] -|=== -|UTC|dB|DT|Freq|Mode|Message -|+2343+|+-8+|+0.3+|+3196+|+@+|+WB8QPG IZ0MIT -11+ -|=== - -- Scroll back in the *Band Activity* window and double-click on the -message `CQ DL7ACA JO40`. The program will set *Tx mode* to JT65 and -the Rx frequency to that of DL7ACA, 975 Hz. If you hold down the -*Ctrl* key, both Rx and Tx frequencies will be moved. If you had -checked *Double-click on call sets Tx Enable* on the *Setup* menu, the -program would configure itself to begin a transmission and start a QSO -with DL7ACA. - -- Hold *Ctrl* down and double-click on the decoded JT65 message `CQ -TA4A KM37`. The program will set Tx mode to JT9 and the Rx and Tx -frequencies to 3567 Hz. The program is now configured properly for a -JT9 QSO with TA4A. - -.Reopen the First Sample File: -- Select *File | Open* and navigate to `...\save\samples\130418_1742.wav`. - -Taking full advantage of the wide-band, dual-mode capability of -_WSJT-X_ requires a receiver bandwidth of at least 4 kHz. These -data were recorded with a much narrower Rx bandwidth, roughly 200 to -2400 Hz. If you have no Rx filter wider than about 2.7 kHz, you will -be using data like this. For best viewing, adjust *Bins/Pixel* and the -width of the Wide Graph so that only the active part of the spectrum -shows, say 200 to 2400 Hz. Re-open the example file after any change of -*Bins/Pixel* or Wide Graph width, to refresh the waterfall. - -The signals in this file are all JT9 signals. To decode them -automatically in *JT9+JT65* mode you’ll need to move the *JT65 nnnn JT9* -delimiter down to 1000 Hz or less. - -.Waterfall Controls - -Now is a good time to experiment with the *Start* control and the -sliders controlling gain and zero-point of the waterfall and spectrum -plots. *Start* determines the frequency displayed at the left side of -the waterfall scale. Sliders set the baseline level and gain for the -waterfall and the several types of spectra. Good starting values -should be close to mid-scale. You might want to uncheck *Flatten* -when adjusting the sliders. Re-open the wave file after each change, -to see the new results. diff --git a/doc/user_guide/en/tutorial-example3.adoc b/doc/user_guide/en/tutorial-example3.adoc deleted file mode 100644 index 3f2ee03..0000000 --- a/doc/user_guide/en/tutorial-example3.adoc +++ /dev/null @@ -1,76 +0,0 @@ -// Status=review -.Main Window: -- Select *FT8* on the *Mode* menu. -- Set Tx and Rx frequencies to 1200 Hz. -- Double-click on *Erase* to clear both text windows. - -.Wide Graph Settings: - -- *Bins/Pixel* = 4, *Start* = 200 Hz, *N Avg* = 2 -- Adjust the width of the Wide Graph window so that the upper -frequency limit is approximately 2600 Hz. - -.Open a Wave File: - -- Select *File | Open* and navigate to -+...\save\samples\FT8\170709_135615.wav+. The waterfall and decoded -text window should look something like the following screen shots: - -[[X15]] -image::170709_135615.wav.png[align="left",alt="Wide Graph Decode 170709_135615"] - -image::ft8_decodes.png[align="left"] - -- Click with the mouse anywhere on the waterfall display. The green Rx -frequency marker will jump to your selected frequency, and the Rx -frequency control on the main window will be updated accordingly. - -- Do the same thing with the *Shift* key held down. Now the red Tx -frequency marker and its associated control on the main window will -follow your frequency selections. - -- Do the same thing with the *Ctrl* key held down. Now the both colored -markers and both spinner controls will follow your selections. - -- Double-clicking at any frequency on the waterfall does all the -things just described and also invokes the decoder in a small range -around the Rx frequency. To decode a particular signal, double-click -near the left edge of its waterfall trace. - -- Now double-click on any of the the lines of decoded text in the main -window. All three lines will show the same behavior, setting Rx -frequency to that of the selected message and leaving Tx frequency -unchanged. To change both Rx and Tx frequencies, hold *Ctrl* down -when double-clicking. - -NOTE: To avoid QRM from competing callers, it is frequently desirable -to answer a CQ on a different frequency from that of the CQing -station. The same is true when you tail-end another QSO. Choose a Tx -frequency that appears to be not in use. - -NOTE: Keyboard shortcuts *Shift+F11* and *Shift+F12* provide an easy -way to move your Tx frequency down or up in 60 Hz steps. - -NOTE: Further helpful tips on FT8 operating procedures are available -{ft8_tips}. Thanks to ZL2IFB! - -.FT8 DXpedition Mode: - -This special operating mode enables DXpeditions to make FT8 QSOs at -very high rates. Both stations must use _WSJT-X_ Version 1.9 or -later. Detailed operating instructions for {ft8_DXped} are available -online. Do not try to use DXpedition mode without reading these -instructions carefully! - -IMPORTANT: FT8 DXpedition mode is intended for use by rare-entity -DXpeditions and other unusual circumstances in which sustained QSO -rates well above 100/hour are expected. Do not use the multi-signal -capability unless you satisfy this requirement, and do not use -DXpedition Mode in the conventional FT8 sub-bands. If you are -contemplating operation as Fox using DXpedition Mode, find a suitable -dial frequency consistent with regional band plans and publicize it -for the operators you hope to work. Remember that on-the-air signal -frequencies will be higher than the dial frequency by up to 4 kHz. - -IMPORTANT: When finished with this Tutorial, don't forget to re-enter -your own callsign as *My Call* on the *Settings | General* tab. diff --git a/doc/user_guide/en/tutorial-main-window.adoc b/doc/user_guide/en/tutorial-main-window.adoc deleted file mode 100644 index 09a17b1..0000000 --- a/doc/user_guide/en/tutorial-main-window.adoc +++ /dev/null @@ -1,26 +0,0 @@ -// Status=review - -- Click the *Stop* button on the main window to halt any data acquisition. - -- Select *JT9* from the *Mode* menu and *Deep* from the *Decode* menu. - -- Set the audio frequencies to *Tx 1224 Hz* and *Rx 1224 Hz*. - -TIP: Sliders and spinner controls respond to *Arrow* key presses -and *Page Up/Down* key presses, with the *Page* keys moving the -controls in larger steps. You can also type numbers directly into -the spinner controls or use the mouse wheel. - -- Select *Tab 2* (below the *Decode* button) to choose the alternative -set of controls for generating and selecting Tx messages. - -[[DOWNLOAD_SAMPLES]] -=== Download Samples - -- Select *Download samples...* from the *Help* menu. - -- Download some or all of the available sample files using checkboxes -on the screen shown below. For this tutorial you will need at least -the JT9 and JT9+JT65 files. - -image::download_samples.png[align="center",alt="Downlod Samples"] diff --git a/doc/user_guide/en/tutorial-wide-graph-settings.adoc b/doc/user_guide/en/tutorial-wide-graph-settings.adoc deleted file mode 100644 index cdef3f1..0000000 --- a/doc/user_guide/en/tutorial-wide-graph-settings.adoc +++ /dev/null @@ -1,13 +0,0 @@ -// Status=review - -- *Bins/Pixel* = 4 -- *Start* = 200 Hz -- *N Avg* = 5 -- *Palette* = Digipan -- *Flatten* = checked -- Select *Cumulative* for data display -- *Gain* and *Zero* sliders for waterfall and spectrum set near midscale -- *Spec* = 25% - -- Use the mouse to grab the left or right edge of the *Wide Graph*, and -adjust its width so that the upper frequency limit is about 2400 Hz. diff --git a/doc/user_guide/en/utilities.adoc b/doc/user_guide/en/utilities.adoc deleted file mode 100644 index deb27c4..0000000 --- a/doc/user_guide/en/utilities.adoc +++ /dev/null @@ -1,173 +0,0 @@ -The _WSJT-X_ packages include program *`rigctl-wsjtx[.exe]`*, which -can be used to send CAT sequences to a rig from the command line, or -from a batch file or shell script; and program *`rigctld-wsjtx[.exe]`*, -which allows other compatible applications to share a CAT connection -to a rig. These program versions include the latest Hamlib rig -drivers -- the same ones used by _WSJT-X_ itself. - -Additional utility programs *`jt4code`*, *`jt9code`*, and *`jt65code`* -let you explore the conversion of user-level messages into channel -symbols or "`tone numbers,`" and back again. These programs can be -useful to someone designing a beacon generator, for understanding the -permissible structure of transmitted messages, and for studying -behavior of the error-control codes. - -Channel-symbol values for JT4 run from 0 to 3. The total number of -symbols in a transmitted message is 206. To run `jt4code`, enter the -program name followed by a JT4 message enclosed in quotes. In Windows -the command and program output might look like this: - - C:\WSJTX\bin> jt4code "G0XYZ K1ABC FN42" - Message Decoded Err? Type - ------------------------------------------------------------------- - 1. G0XYZ K1ABC FN42 G0XYZ K1ABC FN42 1: Std Msg - - Channel symbols - 2 0 0 1 3 2 0 2 3 1 0 3 3 2 2 1 2 1 0 0 0 2 0 0 2 1 1 2 0 0 - 2 0 2 0 2 0 2 0 2 3 0 3 1 0 3 1 0 3 0 1 1 1 1 1 0 1 0 0 2 3 - 2 2 3 0 2 1 3 3 3 3 2 0 2 1 2 3 0 0 2 3 1 1 1 0 3 1 2 0 3 2 - 0 2 3 3 0 1 2 1 2 1 0 1 0 1 1 1 1 3 0 3 0 3 2 3 3 0 3 0 1 0 - 3 3 3 0 0 3 2 1 3 2 3 1 3 3 2 2 0 2 3 3 2 1 1 0 2 2 3 3 1 2 - 3 1 1 2 1 1 1 0 2 1 2 0 2 3 1 2 3 1 2 2 1 2 0 0 3 3 1 1 1 1 - 2 0 3 3 0 2 2 2 3 3 0 0 0 1 2 3 3 2 1 1 1 3 2 3 0 3 - -Channel-symbol values for JT9 run from 0 to 8, with 0 representing the -sync tone. The total number of symbols in a transmitted message is -85. Enter the program name followed by a JT9 message enclosed in -quotes: - - C:\WSJTX\bin> jt9code "G0XYZ K1ABC FN42" - Message Decoded Err? Type - ------------------------------------------------------------------- - 1. G0XYZ K1ABC FN42 G0XYZ K1ABC FN42 1: Std Msg - - Channel symbols - 0 0 7 3 0 3 2 5 4 0 1 7 7 7 8 0 4 8 8 2 2 1 0 1 1 3 5 4 5 6 - 8 7 0 6 0 1 8 3 3 7 8 1 1 2 4 5 8 1 5 2 0 0 8 6 0 5 8 5 1 0 - 5 8 7 7 2 0 4 6 6 6 7 6 0 1 8 8 5 7 2 5 1 5 0 4 0 - -For the corresponding program *`jt65code`* only the -information-carrying channel symbols are shown, and the symbol values -range from 0 to 63. Sync symbols lie two tone intervals below data -tone 0, and the sequential locations of sync symbols are described in -the <> section of this Guide. - -A typical execution of `jt65code` is shown below. The program -displays the packed message of 72 bits, shown here as 12 six-bit -symbol values, followed by the channel symbols: - - C:\WSJTX\bin> jt65code "G0XYZ K1ABC FN42" - Message Decoded Err? Type - ---------------------------------------------------------------------- - 1. G0XYZ K1ABC FN42 G0XYZ K1ABC FN42 1: Std Msg - - Packed message, 6-bit symbols 61 36 45 30 3 55 3 2 14 5 33 40 - - Information-carrying channel symbols - 56 40 8 40 51 47 50 34 44 53 22 53 28 31 13 60 46 2 14 58 43 - 41 58 35 8 35 3 24 1 21 41 43 0 25 54 9 41 54 7 25 21 9 - 62 59 7 43 31 21 57 13 59 41 17 49 19 54 21 39 33 42 18 2 60 - -For an illustration of the power of the strong error-control coding in -JT9 and JT65, try looking at the channel symbols after changing a -single character in the message. For example, change the grid locator -from FN42 to FN43 in the JT65 message: - - C:\WSJTX\bin> jt65code "G0XYZ K1ABC FN43" - Message Decoded Err? Type - ---------------------------------------------------------------------- - 1. G0XYZ K1ABC FN43 G0XYZ K1ABC FN43 1: Std Msg - - Packed message, 6-bit symbols 61 36 45 30 3 55 3 2 14 5 33 41 - - Information-carrying channel symbols - 25 35 47 8 13 9 61 40 44 9 51 6 8 40 38 34 8 2 21 23 30 - 51 32 56 39 35 3 50 48 30 8 5 40 18 54 9 24 30 26 61 23 11 - 3 59 7 7 39 1 25 24 4 50 17 49 52 19 34 7 4 34 61 2 61 - -You will discover that every possible JT65 message differs from every -other possible JT65 message in at least 52 of the 63 -information-carrying channel symbols. - -Here's an example using the QRA64 mode: - - C:\WSJTX\bin qra64code "KA1ABC WB9XYZ EN37" - Message Decoded Err? Type - -------------------------------------------------------------------------- - 1 KA1ABC WB9XYZ EN37 KA1ABC WB9XYZ EN37 1: Std Msg - - Packed message, 6-bit symbols 34 16 49 32 51 26 31 40 41 22 0 41 - - Information-carrying channel symbols - 34 16 49 32 51 26 31 40 41 22 0 41 16 46 14 24 58 45 22 45 38 54 7 23 2 49 32 50 20 33 - 55 51 7 31 31 46 41 25 55 14 62 33 29 24 2 49 4 38 15 21 1 41 56 56 16 44 17 30 46 36 - 23 23 41 - - Channel symbols including sync - 20 50 60 0 40 10 30 34 16 49 32 51 26 31 40 41 22 0 41 16 46 14 24 58 45 22 45 38 54 7 - 23 2 49 32 50 20 33 55 51 20 50 60 0 40 10 30 7 31 31 46 41 25 55 14 62 33 29 24 2 49 - 4 38 15 21 1 41 56 56 16 44 17 30 46 36 23 23 41 20 50 60 0 40 10 30 - -Execution of any of these utility programs with "-t" as the only -command-line argument produces examples of all supported message -types. For example, using `jt65code -t`: - - C:\WSJTX\bin> jt65code -t - - Message Decoded Err? Type - -------------------------------------------------------------------------- - 1. CQ WB9XYZ EN34 CQ WB9XYZ EN34 1: Std Msg - 2. CQ DX WB9XYZ EN34 CQ DX WB9XYZ EN34 1: Std Msg - 3. QRZ WB9XYZ EN34 QRZ WB9XYZ EN34 1: Std Msg - 4. KA1ABC WB9XYZ EN34 KA1ABC WB9XYZ EN34 1: Std Msg - 5. KA1ABC WB9XYZ RO KA1ABC WB9XYZ RO 1: Std Msg - 6. KA1ABC WB9XYZ -21 KA1ABC WB9XYZ -21 1: Std Msg - 7. KA1ABC WB9XYZ R-19 KA1ABC WB9XYZ R-19 1: Std Msg - 8. KA1ABC WB9XYZ RRR KA1ABC WB9XYZ RRR 1: Std Msg - 9. KA1ABC WB9XYZ 73 KA1ABC WB9XYZ 73 1: Std Msg - 10. KA1ABC WB9XYZ KA1ABC WB9XYZ 1: Std Msg - 11. CQ 000 WB9XYZ EN34 CQ 000 WB9XYZ EN34 1: Std Msg - 12. CQ 999 WB9XYZ EN34 CQ 999 WB9XYZ EN34 1: Std Msg - 13. CQ EU WB9XYZ EN34 CQ EU WB9XYZ EN34 1: Std Msg - 14. CQ WY WB9XYZ EN34 CQ WY WB9XYZ EN34 1: Std Msg - 15. ZL/KA1ABC WB9XYZ ZL/KA1ABC WB9XYZ 2: Type 1 pfx - 16. KA1ABC ZL/WB9XYZ KA1ABC ZL/WB9XYZ 2: Type 1 pfx - 17. KA1ABC/4 WB9XYZ KA1ABC/4 WB9XYZ 3: Type 1 sfx - 18. KA1ABC WB9XYZ/4 KA1ABC WB9XYZ/4 3: Type 1 sfx - 19. CQ ZL4/KA1ABC CQ ZL4/KA1ABC 4: Type 2 pfx - 20. DE ZL4/KA1ABC DE ZL4/KA1ABC 4: Type 2 pfx - 21. QRZ ZL4/KA1ABC QRZ ZL4/KA1ABC 4: Type 2 pfx - 22. CQ WB9XYZ/VE4 CQ WB9XYZ/VE4 5: Type 2 sfx - 23. HELLO WORLD HELLO WORLD 6: Free text - 24. ZL4/KA1ABC 73 ZL4/KA1ABC 73 6: Free text - 25. KA1ABC XL/WB9XYZ KA1ABC XL/WB9 * 6: Free text - 26. KA1ABC WB9XYZ/W4 KA1ABC WB9XYZ * 6: Free text - 27. 123456789ABCDEFGH 123456789ABCD * 6: Free text - 28. KA1ABC WB9XYZ EN34 OOO KA1ABC WB9XYZ EN34 OOO 1: Std Msg - 29. KA1ABC WB9XYZ OOO KA1ABC WB9XYZ OOO 1: Std Msg - 30. RO RO -1: Shorthand - 31. RRR RRR -1: Shorthand - 32. 73 73 -1: Shorthand - -MSK144 uses a binary channel code, so transmitted symbols have the value -0 or 1. Even numbered symbols (index starting at 0) are transmitted on -the I (in-phase) channel, odd numbered symbols on the Q (quadrature) -channel. A typical execution of `msk144code` is shown below. - - C:\WSJTX\bin> msk144code "K1ABC W9XYZ EN37" - - Message Decoded Err? Type - -------------------------------------------------------------------------- - 1. K1ABC W9XYZ EN37 K1ABC W9XYZ EN37 1: Std Msg - - Channel symbols - 110000100011001101010101001000111111001001001100110010011100001001000000 - 010110001011101111001010111011001100110101011000111101100010111100100011 - - C:\WSJTX\bin> msk144code " R-03" - Message Decoded Err? Type - -------------------------------------------------------------------------- - 1. R-03 R-03 7: Hashed calls - - Channel symbols - 1000011100001000111011111010011011111010 diff --git a/doc/user_guide/en/vhf-features.adoc b/doc/user_guide/en/vhf-features.adoc deleted file mode 100644 index d0a4cd7..0000000 --- a/doc/user_guide/en/vhf-features.adoc +++ /dev/null @@ -1,352 +0,0 @@ -_WSJT-X_ v1.9 suppports a number of features designed for use -on the VHF and higher bands. These features include: - -- *FT8*, a mode designed for making fast QSOs with weak, fading -signals - -- *JT4*, a mode particularly useful for EME on the microwave bands - -- *JT9* fast modes, useful for scatter propagation on VHF bands - -- *JT65*, widely used for EME on VHF and higher bands - -- *QRA64*, a mode for EME using a "`Q-ary Repeat Accumulate`" code, -a low-density parity-check (LDPC) code using a 64-character symbol -alphabet - -- *MSK144*, a mode for meteor scatter using a binary LDPC code and -Offset Quadrature Phase-Shift Keying (OQPSK). The resulting waveform -is sometimes called Minimum Shift Keying (MSK). - -- *ISCAT*, intended for aircraft scatter and other types of scatter -propagation - -- *Echo* mode, for detecting and measuring your own lunar echoes - -- *Doppler tracking*, which becomes increasingly important for EME -on bands above 1.2 GHz. - -- Optional *Auto-Sequencing* in JT4, JT9, and JT65 as well as FT8 and QRA64. - -[[VHF_SETUP]] -=== VHF Setup - -To activate the VHF-and-up features: - -- On the *Settings | General* tab check *Enable VHF/UHF/Microwave -features* and *Single decode*. - -- For EME, check *Decode after EME delay* to allow for extra path -delay on received signals. - -- If you will use automatic Doppler tracking and your radio accepts -frequency-setting commands while transmitting, check *Allow Tx -frequency changes while transmitting*. Transceivers known to permit -such changes include the IC-735, IC-756 Pro II, IC-910-H, FT-847, -TS-590S, TS-590SG, TS-2000 (with Rev 9 or later firmware upgrade), -Flex 1500 and 5000, HPSDR, Anan-10, Anan-100, and KX3. To gain full -benefit of Doppler tracking your radio should allow frequency changes -under CAT control in 1 Hz steps. - -NOTE: If your radio does not accept commands to change frequency -while transmitting, Doppler tracking will be approximated with a -single Tx frequency adjustment before a transmission starts, using a -value computed for the middle of the Tx period. - -- On the *Radio* tab select *Split Operation* (use either *Rig* or -*Fake It*; you may need to experiment with both options to find one -that works best with your radio). - -- On the right side of the main window select *Tab 1* to present the -traditional format for entering and choosing Tx messages. - -The main window will reconfigure itself as necessary to display -controls supporting the features of each mode. - -- If you are using transverters, set appropriate frequency offsets on -the *Settings | Frequencies* tab. Offset is defined as (transceiver -dial reading) minus (on-the-air frequency). For example, when using a -144 MHz radio at 10368 MHz, *Offset (MHz)* = (144 - 10368) = --10224.000. If the band is already in the table, you can edit the -offset by double clicking on the offset field itself. Otherwise a new -band can be added by right clicking in the table and selecting -*Insert*. - -image::Add_station_info.png[align="center",alt="Station information"] - -- On the *View* menu, select *Astronomical data* to display a window -with important information for tracking the Moon and performing -automatic Doppler control. The right-hand portion of the window -becomes visible when you check *Doppler tracking*. - -image::Astronomical_data.png[align="center",alt="Astronomical data"] - -Five different types of Doppler tracking are provided: - -- Select *Full Doppler to DX Grid* if you know your QSO partner's locator -and he/she will not be using any Doppler control. - -- Select *Own Echo* to enable EME Doppler tracking of your receive -frequency to your own echo frequency. Your Tx frequency will remain fixed -and is set to the Sked frequency. This mode can be used when announcing -your CQ call on a specific frequency and listening on your own echo -frequency. It can also be used for echo testing with Echo mode. - -- Select *Constant frequency on Moon* to correct for your own one-way -Doppler shift to or from the Moon. If your QSO partner does the same -thing, both stations will have the required Doppler compensation. -Moreover, anyone else using this option will hear both of you -without the need for manual frequency changes. - -- Select *On Dx Echo* when your QSO partner is not using automated -Doppler tracking, and announces his/her transmit frequency and listening -on their own echo frequency. When clicked, this Doppler method will -set your rig frequency on receive to correct for the mutual Doppler -shift. On transmit, your rig frequency will be set so that your -QSO partner will receive you on the same frequency as their own echo -at the start of the QSO. As the QSO proceeds, your QSO partner will -receive you on this starting frequency so that they do not have to -retune their receiver as the Doppler changes. Sked frequency in this -case is set to that announced by your QSO partner. - -- Select *Call DX* after tuning the radio manually to find a station, -with the Doppler mode initally set to *None*. You may be tuning the band -looking for random stations, or to a frequency where a station has been -seen on an SDR display. It is usually necessary to hold down the Ctrl key -while tuning the radio. From the moment *Call DX* is pressed, your -transmit frequency is set so that your echo will fall on the same -frequency you (and the DX station) are listening. - -- See <> for details on the quantities -displayed in this window. - -=== JT4 - -JT4 is designed especially for EME on the microwave bands, 2.3 GHz and -above. - -- Select *JT4* from the *Mode* menu. The central part of the main -window will look something like this: - -image::VHF_controls.png[align="center",alt="VHF Controls"] - -- Select the desired *Submode*, which determines the spacing of -transmitted tones. Wider spacings are used on the higher microwave -bands to allow for larger Doppler spreads. For example, submode JT4F -is generally used for EME on the 5.7 and 10 GHz bands. - -- For EME QSOs some operators use short-form JT4 messages consisting -of a single tone. To activate automatic generation of these messages, -check the box labeled *Sh*. This also enables the generation of a -single tone at 1000Hz by selecting Tx6, to assist in finding signals -initially. The box labeled *Tx6* toggles the Tx6 message from 1000Hz -to 1250Hz to indicate to the other station that you are ready to -receive messages. - -- Select *Deep* from the *Decode* menu. You may also choose to -*Enable averaging* over successive transmissions and/or *Enable deep -search* (correlation decoding). - -image::decode-menu.png[align="center",alt="Decode Menu"] - -The following screen shot shows one transmission from a 10 GHz EME -QSO using submode JT4F. - -image::JT4F.png[align="center",alt="JT4F"] - -=== JT65 - -In many ways JT65 operation on VHF and higher bands is similar to HF -usage, but a few important differences should be noted. Typical -VHF/UHF operation involves only a single signal (or perhaps two or -three) in the receiver passband. You may find it best to check -*Single decode* on the *Settings -> General* tab. There will be -little need for *Two pass decoding* on the *Advanced* tab. With VHF -features enabled the JT65 decoder will respond to special message -formats often used for EME: the OOO signal report and two-tone -shorthand messages for RO, RRR, and 73. These messages are always -enabled for reception; they will be automatically generated for -transmission if you check the shorthand message box *Sh*. - -*Deep* on the *Decode* menu will be automatically selected. You may -optionally include *Enable averaging*, *Enable Deep search*, and -*Enable AP*. - -The following screen shot shows three transmissions from a 144 MHz EME -QSO using submode JT65B and shorthand messages. Take note of the -colored tick marks on the Wide Graph frequency scale. The green -marker at 1220 Hz indicates the selected QSO frequency (the frequency -of the JT65 Sync tone) and the *F Tol* range. A green tick at 1575 Hz -marks the frequency of the highest JT65 data tone. Orange markers -indicate the frequency of the upper tone of the two-tone signals for -RO, RRR, and 73. - -image::JT65B.png[align="center",alt="JT65B"] - -=== QRA64 - -QRA64 is designed for EME on VHF and higher bands; its -operation is generally similar to JT4 and JT65. The following screen -shot shows an example of a QRA64C transmission from DL7YC recorded at -G3WDG over the EME path at 24 GHz. Doppler spread on the path was 78 -Hz, so although the signal is reasonably strong its tones are -broadened enough to make them hard to see on the waterfall. The -triangular red marker below the frequency scale shows that the decoder -has achieved synchronization with a signal at approximately 967 Hz. - -image::QRA64.png[align="center",alt="QRA64"] - -The QRA64 decoder makes no use of a callsign database. Instead, it -takes advantage of _a priori_ (AP) information such as one's own -callsign and the encoded form of message word `CQ`. In normal usage, -as a QSO progresses the available AP information increases to include -the callsign of the station being worked and perhaps also his/her -4-digit grid locator. The decoder always begins by attempting to -decode the full message using no AP information. If this attempt -fails, additional attempts are made using available AP information to -provide initial hypotheses about the message content. At the end of -each iteration the decoder computes the extrinsic probability of the -most likely value for each of the message's 12 six-bit information -symbols. A decode is declared only when the total probability for all -12 symbols has converged to an unambiguous value very close to 1. - -For EME QSOs some operators use short-form QRA64 messages consisting -of a single tone. To activate automatic generation of these messages, -check the box labeled *Sh*. This also enables the generation of a -single tone at 1000Hz by selecting Tx6, to assist in finding signals -initially, as the QRA64 tones are often not visible on the waterfall. -The box labeled *Tx6* switches the Tx6 message from 1000Hz to 1250Hz -to indicate to the other station that you are ready to receive messages. - -TIP: QRA64 is different from JT65 in that the decoder attempts to find -and decode only a single signal in the receiver passband. If many -signals are present you may be able to decode them by double-clicking -on the lowest tone of each one in the waterfall. - -TIP: G3WDG has prepared a more detailed tutorial on using {QRA64_EME}. - -=== ISCAT - -ISCAT is a useful mode for signals that are weak but more or less -steady in amplitude over several seconds or longer. Aircraft scatter -at 10 GHz is a good example. ISCAT messages are free-format and may -have any length from 1 to 28 characters. This protocol includes no -error-correction facility. - -=== MSK144 - -Meteor-scatter QSOs can be made any time on the VHF bands at distances -up to about 2100 km (1300 miles). Completing a QSO takes longer in -the evening than in the morning, longer at higher frequencies, and -longer at distances close to the upper limit. But with patience, 100 -Watts or more, and a single yagi it can usually be done. The -following screen shot shows two 15-second MSK144 transmissions from -W5ADD during a 50 MHz QSO with K1JT, at a distance of about 1800 km -(1100 mi). The decoded segments have been marked on the *Fast -Graph* spectral display. - -image::MSK144.png[align="center",alt="MSK144"] - -Unlike other _WSJT-X_ modes, the MSK144 decoder operates in real time -during the reception sequence. Decoded messages will appear on your -screen almost as soon as you hear them. - -To configure _WSJT-X_ for MSK144 operation: - -- Select *MSK144* from the *Mode* menu. - -- Select *Fast* from the *Decode* menu. - -- Set the audio receiving frequency to *Rx 1500 Hz*. - -- Set frequency tolerance to *F Tol 100*. - -- Set the *T/R* sequence duration to 15 s. - -- To match decoding depth to your computer's capability, click -*Monitor* (if it's not already green) to start a receiving sequence. -Observe the percentage figure displayed on the _Receiving_ label in -the Status Bar: - -image::Rx_pct_MSK144.png[align="center",alt="MSK144 Percent CPU"] - -- The displayed number (here 17%) indicates the fraction of available -time being used for execution of the MSK144 real-time decoder. If -this number is well below 100% you may increase the decoding depth -from *Fast* to *Normal* or *Deep*, and increase *F Tol* from 100 to -200 Hz. - -NOTE: Most modern multi-core computers can easily handle the optimum -parameters *Deep* and *F Tol 200*. Older and slower machines may not -be able to keep up at these settings; at the *Fast* and *Normal* -settings there will be a small loss in decoding capability (relative -to *Deep*) for the weakest pings. - -- T/R sequences of 15 seconds or less requires selecting your -transmitted messages very quickly. Check *Auto Seq* to have the -computer make the necessary decisions automatically, based on the -messages received. - -- For operation at 144 MHz or above you may find it helpful to use -short-format *Sh* messages for Tx3, Tx4, and Tx5. These messages are -20 ms long, compared with 72 ms for full-length MSK144 messages. -Their information content is a 12-bit hash of the two callsigns, -rather than the callsigns themselves, plus a 4-bit numerical report, -acknowledgment (RRR), or sign-off (73). Only the intended recipient -can decode short-messages. They will be displayed with the callsigns -enclosed in <> angle brackets, as in the following model QSO - - CQ K1ABC FN42 - K1ABC W9XYZ EN37 - W9XYZ K1ABC +02 - R+03 - RRR - 73 - - -NOTE: There is little or no advantage to using MSK144 *Sh* -messages at 50 or 70 MHz. At these frequencies, most pings are long -enough to support standard messages -- which have the advantage of -being readable by anyone listening in. - -=== Echo Mode - -*Echo* mode allows you to make sensitive measurements of your own -lunar echoes even when they are too weak to be heard. Select *Echo* -from the *Mode* menu, aim your antenna at the moon, pick a clear -frequency, and toggle click *Tx Enable*. _WSJT-X_ will then cycle -through the following loop every 6 seconds: - -1. Transmit a 1500 Hz fixed tone for 2.3 s -2. Wait about 0.2 s for start of the return echo -3. Record the received signal for 2.3 s -4. Analyze, average, and display the results -5. Repeat from step 1 - -To make a sequence of echo tests: - -- Select *Echo* from the *Mode* menu. - -- Check *Doppler tracking* and *Constant frequency on the Moon* on the -Astronomical Data window. - -- Be sure that your rig control has been set up for _Split Operation_, -using either *Rig* or *Fake It* on the *Settings | Radio* tab. - -- Click *Enable Tx* on the main window to start a sequence of 6-second -cycles. - -- _WSJT-X_ calculates and compensates for Doppler shift automatically. -As shown in the screen shot below, when proper Doppler corrections -have been applied your return echo should always appear at the center -of the plot area on the Echo Graph window. - -image::echo_144.png[align="center",alt="Echo 144 MHz"] - -=== VHF+ Sample Files - -Sample recordings typical of QSOs using the VHF/UHF/Microwave modes -and features of _WSJT-X_ are available for -<>. New users of the VHF-and-up features -are strongly encouraged to practice decoding the signals in these -files. diff --git a/doc/user_guide/en/wsjtx-main.adoc b/doc/user_guide/en/wsjtx-main.adoc deleted file mode 100644 index 71f0e3c..0000000 --- a/doc/user_guide/en/wsjtx-main.adoc +++ /dev/null @@ -1,235 +0,0 @@ -// This is a comment line, anything with // is ignored at process time. -= _WSJT-X_ User Guide -Joseph H Taylor, Jr, K1JT -:revnumber: {VERSION} -// For web-pages, adding :badges: is ok, but is a security issue for -// package building .deb, .rpm, etc as it exposes the IP address and the images -// are non-free, so can't be included as part of the Debian package. -// :badges: -:docinfo1: -:imagesdir: {docdir}/images -:icons: font -:numbered: -:keywords: amateur radio weak signal communication K1JT WSJT JT65 JT9 -:description: Software for Amateur Radio Weak-Signal Communication -:prog: WSJT-X - -// use global link file -include::../../common/links.adoc[] - -// These [[xxxx]] labels are HTML anchors, and can be used to -// navigate though the document easily: <> will -// place a hyper-link in your text to take you too the anchored section. -// All major sections or points of interest should have one. - -// == is level (2), section 1.0, === would mean section 1.1, === would -// be section 1.1.1. This method is used throughout the document. - -[[INTRO]] -== Introduction -include::introduction.adoc[] - -[[NEW_FEATURES]] -include::new_features.adoc[] - -[[SYSREQ]] -== System Requirements -include::system-requirements.adoc[] - -[[INSTALL]] -== Installation - -Installation packages for released versions on Windows, Linux, and OS -X are found on the {homepage}. Click on the _WSJT-X_ link at the -left margin and select the appropriate package for your operating -system. - -[[INSTALL_WIN]] -=== Windows -include::install-windows.adoc[] - -[[INSTALL_LINUX]] -=== Linux -include::install-linux.adoc[] - -[[INSTALL_OSX]] -=== OS X and macOS -include::install-mac.adoc[] - -//// -[[SRC_CODE]] -=== Source Code -include::install-from-source.adoc[] -//// - -[[CONFIG]] -== Settings - -Select *Settings* from the *File* menu or by typing *F2*. (On -Macintosh select *Preferences* from the _WSJT-X_ menu, or use the -keyboard shortcut *Cmd+,*). The following sections describe setup -options available on each of eight tabs selectable near the top of the -window. - -[[GENERAL]] -=== General -include::settings-general.adoc[] - -[[RADIO]] -=== Radio -include::settings-radio.adoc[] - -[[AUDIO]] -=== Audio -include::settings-audio.adoc[] - -[[TXMACROS]] -=== Tx Macros -include::settings-txmacros.adoc[] - -[[REPORTING]] -=== Reporting -include::settings-reporting.adoc[] - -[[BAND_SETTINGS]] -=== Frequencies -include::settings-frequencies.adoc[] - -[[COLORS]] -=== Colors -include::settings-colors.adoc[] - -[[ADVANCED]] -=== Advanced -include::settings-advanced.adoc[] - -[[TRANSCEIVER]] -== Transceiver Setup -include::transceiver-setup.adoc[] - -[[TUTORIAL]] -== Basic Operating Tutorial - -This section introduces the basic user controls and program behavior -of _WSJT-X_, with particular emphasis on the JT9, JT65, and FT8 modes. -We suggest that new users should go through the full HF-oriented -tutorial, preferably while at your radio. Subsequent sections cover -additional details on <>, <> -and <>. - -[[TUT_MAIN]] -=== Main Window Settings -include::tutorial-main-window.adoc[] - -[[TUT_WIDE_GRAPH]] -=== Wide Graph Settings -include::tutorial-wide-graph-settings.adoc[] - -[[TUT_EX1]] -=== JT9 -include::tutorial-example1.adoc[] - -[[TUT_EX2]] -=== JT9+JT65 -include::tutorial-example2.adoc[] - -[[TUT_EX3]] -=== FT8 -include::tutorial-example3.adoc[] - -[[MAKE_QSOS]] -== Making QSOs -include::make-qso.adoc[] - -[[VHF_AND_UP]] -== VHF+ Features -include::vhf-features.adoc[] - -[[WSPR]] -== WSPR Mode -include::wspr.adoc[] - -[[COMMAND_REF]] -== On-Screen Controls - -[[MENUS]] -=== Menus -include::controls-functions-menus.adoc[] - -[[CONTROLS_MAIN]] -=== Button Row -include::controls-functions-main-window.adoc[] - -[[CONTROLS_LEFT]] -=== Left -include::controls-functions-left.adoc[] - -[[CONTROLS_CENTER]] -=== Center -include::controls-functions-center.adoc[] - -[[CONTROLS_MSGS]] -=== Tx Messages -include::controls-functions-messages.adoc[] - -[[STATUS_BAR]] -=== Status Bar -include::controls-functions-status-bar.adoc[] - -[[CONTROLS_WIDE]] -=== Wide Graph -include::controls-functions-wide-graph.adoc[] - -[[LOGGING]] -== Logging -include::logging.adoc[] - -[[DECODER_NOTES]] -== Decoder Notes -include::decoder_notes.adoc[] - -[[MEASUREMENT_TOOLS]] -== Measurement Tools -include::measurement_tools.adoc[] - -[[COOP_PGMS]] -== Cooperating Programs -include::cooperating-programs.adoc[] - -[[PLATFORM]] -== Platform Dependencies -include::platform-dependencies.adoc[] - - -[[FAQ]] -== Frequently Asked Questions -include::faq.adoc[] - -[[PROTOCOLS]] -== Protocol Specifications -include::protocols.adoc[] - -[[ASTRODATA]] -== Astronomical Data -include::astro_data.adoc[] - -[[UTIL]] -== Utility Programs -include::utilities.adoc[] - -[[SUPPORT]] -== Support -include::support.adoc[] - -[[ACK]] -== Acknowledgements -include::acknowledgements.adoc[] - -[[LICENSE]] -== License -include::../../common/license.adoc[] - -ifeval::["{backend}" != "html5"] -[index] -== Index -endif::[] diff --git a/doc/user_guide/en/wspr.adoc b/doc/user_guide/en/wspr.adoc deleted file mode 100644 index 9602359..0000000 --- a/doc/user_guide/en/wspr.adoc +++ /dev/null @@ -1,95 +0,0 @@ -- Select *WSPR* from the *Mode* menu. The main window will -reconfigure itself to the WSPR interface, removing some controls not -used in WSPR mode. - -- Set the Wide Graph controls as suggested below. - -image::WSPR_WideGraphControls.png[align="center",alt="WSPR_WideGraphControls"] - -- Use the mouse to drag the width and height of the main window to the -desired size. - -- Select an active WSPR frequency (for example, 10.1387 or 14.0956 MHz). - -IMPORTANT: If you will transmit in the 60 m band, be sure to choose a -frequency that conforms with your local regulations. - -- Click *Monitor* to start a 2-minute WSPR receiving period. - -- If you will be transmitting as well as receiving, select a suitable -value for *Tx Pct* (average percentage of 2-minute sequences devoted -to transmitting) and activate the *Enable Tx* button. Transmitting -periods are also 2 minutes duration, and will occur randomly in time -to reduce the chance of clashing with other stations you may be -monitoring. - -- Select your Tx power (in dBm) from the drop-down list. - -=== Band Hopping -WSPR mode allows those with CAT-controlled radios to investigate -propagation on many bands without user intervention. Coordinated -hopping enables a sizable group of stations around the world to move -together from band to band, thereby maximizing the chances of -identifying open propagation paths. - -- To enable automatic band hopping, check the *Band Hopping* box on -the main window. - -- Click *Schedule* to open the *WSPR Band Hopping* window, and select -the bands you wish to use at each time of day. - -image::band_hopping.png[align="center",alt="Band Hopping"] - -- Band-switching occurs after each 2-minute interval. Preferred bands -are identified with time slots in a repeating 20-minute cycle, -according to the following table: - -[width="80%",align="center",cols=">20,10*>8",options="header"] -|=== -|Band: |160|80|60|40|30|20|17|15|12|10 -.3+|*UTC minute:* | 00|02|04|06|08|10|12|14|16|18 - >| 20|22|24|26|28|30|32|34|36|38 - >| 40|42|44|46|48|50|52|54|56|58 -|=== - -- If the preferred band is not active according to your band-hopping -schedule, a band will be selected at random from among the active -bands. - -- If the box labeled *Tune* is checked for a particular band, _WSJT-X_ -transmits an unmodulated carrier for several seconds just after -switching to that band and before the normal Rx or Tx period -starts. This feature can be used to activate an automatic antenna -tuner (ATU) to tune a multi-band antenna to the newly selected band. - -- Depending on your station and antenna setup, band changes might -require other switching besides retuning your radio. To make this -possible in an automated way, whenever _WSJT-X_ executes a successful -band-change command to a CAT-controlled radio, it looks for a file -named `user_hardware.bat`, `user_hardware.cmd`, `user_hardware.exe`, -or `user_hardware` in the working directory. If one of these is found, -_WSJT-X_ tries to execute the command - - user_hardware nnn - -- In the above command `nnn` is the band-designation wavelength in -meters. You must write your own program, script, or batch file to do -the necessary switching at your station. - -The following screen shot is an example of WSPR operation with -band hopping enabled: - -image::WSPR_2.png[align="center",alt="WSPR_2"] - -A careful look at the screen shot above illustrates some of the -impressive capabilities of the WSPR decoder. For example, look at the -decodes at UTC 0152, 0154, and 0156 along with the corresponding -minutes from the waterfall display below. Yellow ovals have been -added to highlight two isolated signals decoded at -28 and -29 dB in -the first and third two-minute interval. At 0154 UTC signals from -VE3FAL, AB4QS, and K5CZD fall within a 5 Hz interval near audio -frequency 1492 Hz; similarly, K3FEF, DL2XL/P, and LZ1UBO fall within -a 6 Hz interval near 1543 Hz. Each of the overlapping signals is -decoded flawlessly. - -image::WSPR_1a.png[align="center",alt="WSPR_1a"] diff --git a/jt9.txt b/jt9.txt deleted file mode 100644 index ddbd86b..0000000 --- a/jt9.txt +++ /dev/null @@ -1,65 +0,0 @@ -JT9 is a mode designed for amateur QSOs at MF and LF. The mode uses -the same 72-bit structured messages as JT65. Error control coding -(ECC) uses a strong convolutional code with constraint length K=32, -rate r=1/2, and a zero tail, leading to an encoded message length of -(72+31)*2 = 206 information-carrying bits. Modulation is 9-FSK: 8 -tones for data, one for synchronization. Sixteen symbol intervals are -used for synchronization, so a transmission requires a total of 207/3 -+ 16 = 85 channel symbols. Symbol durations tsym are approximately -(TRperiod-8)/85, where TRperiod is the T/R sequence length in seconds. -Exact symbol lengths are chosen so that nsps, the number of samples -per symbol (at 12000 samples per second) is a number with no prime -factor greater than 7. This choice makes for efficient FFTs. Tone -spacing of the 9-FSK modulation is df=1/tsym=12000/nsps, equal to the -keying rate. The total occupied bandwidth is 9*df. The generated -signal has continuous phase, and there are no key clicks. - -Parameters of five JT9 sub-modes are summarized in the following -table, along with S/N thresholds measured by simulation on an AWGN -channel. Numbers following "JT9-" in the sub-mode names specify the -T/R sequence length in minutes. - --------------------------------------------------------------------------- -Mode nsps nsps2 df tsym BW S/N* Tdec Tfree Factors - 12000 1500 (Hz) (s) (Hz) (dB) (s) (s) of nsps nfft3 --------------------------------------------------------------------------- -JT9-1 6912 864 1.736 0.58 15.6 -26.9 52.5 7.5 2^8 3^3 2048 -JT9-2 15360 1920 0.781 1.28 7.0 -30.2 112.3 7.7 2^10 3 5 2048 -JT9-5 40960 5120 0.293 3.41 2.6 -34.4 293.6 6.4 2^13 5 6144 -JT9-10 82944 10368 0.145 6.91 1.3 -37.5 591.0 9.0 2^10 3^4 12288 -JT9-30 252000 31500 0.048 21.00 0.4 -42.3 1788.5 11.5 2^5 3^2 5^3 7 32768 --------------------------------------------------------------------------- -* Noise power measured in a 2500 Hz bandwidth. -NB: nfft3 might be doubled and used with a sin^2 window. - -Transmitting ------------- -1. Source encode the structured message to 72 bits -2. Apply convolutional ECC (K=32, r=1/2) to yield (72+31)*2 = 206 bits -3. Interleave to scramble the bit order -4. Assemble 3-bit groups to make (206+1)/3 = 69 symbols -5. Gray-code the symbol values -6. Insert 16 sync symbols ==> 69+16=85 channel symbols, values 0-8 - - -Receiving ---------- -1. Apply noise blanking with the timf2 method -2. Filter to 1000 Hz bandwidth and downsample (1/8) to 1500 Hz, saving - complex data to array c0(2,700,000). -3. Compute spectra at half-symbol steps. Use for waterfall display - s(22000) and save in ss(184,22000) and savg(22000) for detecting - sync vectors. -4. At time Tdec, find sync vectors in ss(); get approx DF or list of DFs -5. Do full-length FFT, NFFT1=96*nsps2, zero-padded as required. -6. For each candidate signal, do inverse FFT of length 1536 (or 3072?). - This yields 16 complex samples per symbol; sync tone should be - close to zero frequency. -7. Use afc65b method to get improved values of DF, DT. -8. Tweak freq and time offset to 0. -9. Compute 8-bin spectra of 69 data symbols: ssym(0:7,69). Re-order the - bins to remove Gray code. -10. Compute soft symbols for 206 bits (bit 207 is always 0). -11. Remove interleaving -12. Pack bits into bytes, send to Fano decoder -13. If Fano succeeds, remove source encoding and display user message. diff --git a/lib/jt9.f90 b/lib/jt9.f90 index ff548b4..2131440 100644 --- a/lib/jt9.f90 +++ b/lib/jt9.f90 @@ -23,7 +23,7 @@ program jt9 integer :: arglen,stat,offset,remain,mode=0,flow=200,fsplit=2700, & fhigh=4000,nrxfreq=1500,ntrperiod=1,ndepth=1,nexp_decode=0 logical :: read_files = .true., tx9 = .false., display_help = .false. - type (option) :: long_options(25) = [ & + type (option) :: long_options(21) = [ & option ('help', .false., 'h', 'Display this help message', ''), & option ('shmem',.true.,'s','Use shared memory for sample data','KEY'), & option ('tr-period', .true., 'p', 'Tx/Rx period, default MINUTES=1', & @@ -48,14 +48,14 @@ program jt9 option ('fft-threads', .true., 'm', & 'Number of threads to process large FFTs, default THREADS=1', & 'THREADS'), & - option ('jt65', .false., '6', 'JT65 mode', ''), & - option ('jt9', .false., '9', 'JT9 mode', ''), & - option ('ft8', .false., '8', 'FT8 mode', ''), & - option ('jt4', .false., '4', 'JT4 mode', ''), & - option ('qra64', .false., 'q', 'QRA64 mode', ''), & + !option ('jt65', .false., '6', 'JT65 mode', ''), & + !option ('jt9', .false., '9', 'JT9 mode', ''), & + option ('js8', .false., '8', 'JS8 mode', ''), & + !option ('jt4', .false., '4', 'JT4 mode', ''), & + !option ('qra64', .false., 'q', 'QRA64 mode', ''), & option ('sub-mode', .true., 'b', 'Sub mode, default SUBMODE=A', 'A'), & option ('depth', .true., 'd', & - 'JT9 decoding depth (1-3), default DEPTH=1', 'DEPTH'), & + 'Decoding depth (1-3), default DEPTH=1', 'DEPTH'), & option ('tx-jt9', .false., 'T', 'Tx mode is JT9', ''), & option ('my-call', .true., 'c', 'my callsign', 'CALL'), & option ('my-grid', .true., 'G', 'my grid locator', 'GRID'), & @@ -109,14 +109,14 @@ program jt9 read (optarg(:arglen), *) fsplit case ('H') read (optarg(:arglen), *) fhigh - case ('q') - mode = 164 - case ('4') - mode = 4 - case ('6') - if (mode.lt.65) mode = mode + 65 - case ('9') - if (mode.lt.9.or.mode.eq.65) mode = mode + 9 + !case ('q') + ! mode = 164 + !case ('4') + ! mode = 4 + !case ('6') + ! if (mode.lt.65) mode = mode + 65 + !case ('9') + ! if (mode.lt.9.or.mode.eq.65) mode = mode + 9 case ('8') mode = 8 case ('T') @@ -140,10 +140,10 @@ program jt9 .or. (.not. read_files .and. remain .gt. 0) & .or. (read_files .and. remain .lt. 1)) then - print *, 'Usage: jt9 [OPTIONS] file1 [file2 ...]' + print *, 'Usage: js8 [OPTIONS] file1 [file2 ...]' print *, ' Reads data from *.wav files.' print *, '' - print *, ' jt9 -s [-w patience] [-m threads] [-e path] [-a path] [-t path]' + print *, ' js8 -s [-w patience] [-m threads] [-e path] [-a path] [-t path]' print *, ' Gets data from shared memory region with key==' print *, '' print *, 'OPTIONS:' diff --git a/mainwindow.cpp b/mainwindow.cpp index d0bd45b..da67ee3 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -55,7 +55,6 @@ #include "wsprnet.h" #include "signalmeter.h" #include "HelpTextWindow.hpp" -#include "SampleDownloader.hpp" #include "Audio/BWFFile.hpp" #include "MultiSettings.hpp" #include "MaidenheadLocatorValidator.hpp" @@ -521,7 +520,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, "ZK1S", "ZK2", "ZK3", "ZL", "ZL7", "ZL8", "ZL9", "ZP", "ZS", "ZS8" }, m_sfx {"P", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A"}, - mem_jt9 {shdmem}, + mem_js8 {shdmem}, m_msAudioOutputBuffered (0u), m_framesAudioInputBuffered (RX_SAMPLE_RATE / 10), m_downSampleFactor (downSampleFactor), @@ -666,14 +665,6 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, ui->actionMediumDecode->setActionGroup(DepthGroup); ui->actionDeepestDecode->setActionGroup(DepthGroup); - connect (ui->download_samples_action, &QAction::triggered, [this] () { - if (!m_sampleDownloader) - { - m_sampleDownloader.reset (new SampleDownloader {m_settings, &m_config, &m_network_manager, this}); - } - m_sampleDownloader->show (); - }); - connect (ui->view_phase_response_action, &QAction::triggered, [this] () { if (!m_equalizationToolsDialog) { @@ -743,14 +734,14 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, setWindowTitle (program_title ()); - connect(&proc_jt9, &QProcess::readyReadStandardOutput, this, &MainWindow::readFromStdout); - connect(&proc_jt9, static_cast (&QProcess::error), + connect(&proc_js8, &QProcess::readyReadStandardOutput, this, &MainWindow::readFromStdout); + connect(&proc_js8, static_cast (&QProcess::error), [this] (QProcess::ProcessError error) { - subProcessError (&proc_jt9, error); + subProcessError (&proc_js8, error); }); - connect(&proc_jt9, static_cast (&QProcess::finished), + connect(&proc_js8, static_cast (&QProcess::finished), [this] (int exitCode, QProcess::ExitStatus status) { - subProcessFailed (&proc_jt9, exitCode, status); + subProcessFailed (&proc_js8, exitCode, status); }); connect(&p1, &QProcess::readyReadStandardOutput, this, &MainWindow::p1ReadFromStdout); @@ -923,10 +914,10 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, { while(true) { - int iret=killbyname("jt9.exe"); + int iret=killbyname("js8.exe"); if(iret == 603) break; if(iret != 0) - MessageBox::warning_message (this, tr ("Error Killing jt9.exe Process") + MessageBox::warning_message (this, tr ("Error Killing js8.exe Process") , tr ("KillByName return code: %1") .arg (iret)); } @@ -951,7 +942,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, //Create .lock so jt9 will wait QFile {m_config.temp_dir ().absoluteFilePath (".lock")}.open(QIODevice::ReadWrite); - QStringList jt9_args { + QStringList js8_args { "-s", QApplication::applicationName () // shared memory key, // includes rig #ifdef NDEBUG @@ -973,9 +964,9 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, }; QProcessEnvironment env {QProcessEnvironment::systemEnvironment ()}; env.insert ("OMP_STACKSIZE", "4M"); - proc_jt9.setProcessEnvironment (env); - proc_jt9.start(QDir::toNativeSeparators (m_appDir) + QDir::separator () + - "jt9", jt9_args, QIODevice::ReadWrite | QIODevice::Unbuffered); + proc_js8.setProcessEnvironment (env); + proc_js8.start(QDir::toNativeSeparators (m_appDir) + QDir::separator () + + "js8", js8_args, QIODevice::ReadWrite | QIODevice::Unbuffered); QString fname {QDir::toNativeSeparators(m_config.writeable_data_dir ().absoluteFilePath ("wsjtx_wisdom.dat"))}; QByteArray cfname=fname.toLocal8Bit(); @@ -2883,12 +2874,12 @@ void MainWindow::closeEvent(QCloseEvent * e) int nh=100; int irow=-99; plotsave_(&sw,&nw,&nh,&irow); - mem_jt9->detach(); + mem_js8->detach(); QFile quitFile {m_config.temp_dir ().absoluteFilePath (".quit")}; quitFile.open(QIODevice::ReadWrite); QFile {m_config.temp_dir ().absoluteFilePath (".lock")}.remove(); // Allow jt9 to terminate - bool b=proc_jt9.waitForFinished(1000); - if(!b) proc_jt9.close(); + bool b=proc_js8.waitForFinished(1000); + if(!b) proc_js8.close(); quitFile.remove(); Q_EMIT finished (); @@ -2926,17 +2917,11 @@ void MainWindow::on_actionFT8_DXpedition_Mode_User_Guide_triggered() } void MainWindow::on_actionOnline_User_Guide_triggered() //Display manual { -#if defined (CMAKE_BUILD) - m_manual.display_html_url (QUrl {PROJECT_MANUAL_DIRECTORY_URL}, PROJECT_MANUAL); -#endif } //Display local copy of manual void MainWindow::on_actionLocal_User_Guide_triggered() { -#if defined (CMAKE_BUILD) - m_manual.display_html_file (m_config.doc_dir (), PROJECT_MANUAL); -#endif } void MainWindow::on_actionWide_Waterfall_triggered() //Display Waterfalls @@ -3277,28 +3262,10 @@ void MainWindow::on_actionSave_all_triggered() //Save All void MainWindow::on_actionKeyboard_shortcuts_triggered() { - if (!m_shortcuts) - { - QFont font; - font.setPointSize (10); - m_shortcuts.reset (new HelpTextWindow {tr ("Keyboard Shortcuts") - , ":/shortcuts.txt", font}); - } - m_shortcuts->showNormal (); - m_shortcuts->raise (); } void MainWindow::on_actionSpecial_mouse_commands_triggered() { - if (!m_mouseCmnds) - { - QFont font; - font.setPointSize (10); - m_mouseCmnds.reset (new HelpTextWindow {tr ("Special Mouse Commands") - , ":/mouse_commands.txt", font}); - } - m_mouseCmnds->showNormal (); - m_mouseCmnds->raise (); } void MainWindow::on_DecodeButton_clicked (bool /* checked */) //Decode request @@ -3453,7 +3420,7 @@ void MainWindow::decode() //decode() //newdat=1 ==> this is new data, must do the big FFT //nagain=1 ==> decode only at fQSO +/- Tol - char *to = (char*)mem_jt9->data(); + char *to = (char*)mem_js8->data(); char *from = (char*) dec_data.ss; int size=sizeof(struct dec_data); if(dec_data.params.newdat==0) { @@ -3497,7 +3464,7 @@ void MainWindow::decode() //decode() &narg[0],&m_TRperiod,&m_msg[0][0], dec_data.params.mycall,dec_data.params.hiscall,8000,12,12))); } else { - memcpy(to, from, qMin(mem_jt9->size(), size)); + memcpy(to, from, qMin(mem_js8->size(), size)); QFile {m_config.temp_dir ().absoluteFilePath (".lock")}.remove (); // Allow jt9 to start decodeBusy(true); } @@ -3584,19 +3551,9 @@ void MainWindow::decodeDone () void MainWindow::readFromStdout() //readFromStdout { - while(proc_jt9.canReadLine()) { - QByteArray t=proc_jt9.readLine(); - qDebug() << "JT9: " << QString(t); - if(m_mode=="FT8" and !m_config.bHound() and t.contains(";")) { - if(t.contains("<...>")) continue; - if(!m_bWarnedHound) { - QString errorMsg; - MessageBox::critical_message (this, - tr("Should you be in \"FT8 DXpedition Hound\" mode?"), errorMsg); - m_bWarnedHound=true; - } - } -// qint64 ms=DriftingDateTime::currentMSecsSinceEpoch() - m_msec0; + while(proc_js8.canReadLine()) { + QByteArray t=proc_js8.readLine(); + qDebug() << "JS8: " << QString(t); bool bAvgMsg=false; int navg=0; if(t.indexOf("") >= 0) { @@ -3661,10 +3618,11 @@ void MainWindow::readFromStdout() //readFromStdout int bits = decodedtext.bits(); bool bValidFrame = ( - bits == Varicode::FT8Call || + decodedtext.snr() > -24 && + (bits == Varicode::FT8Call || ((bits & Varicode::FT8CallFirst) == Varicode::FT8CallFirst) || ((bits & Varicode::FT8CallLast) == Varicode::FT8CallLast) || - ((bits & Varicode::FT8CallReserved) == 0 /*Varicode::FT8CallReserved*/) // This is unused...so is invalid at this time... + ((bits & Varicode::FT8CallReserved) == 0 /*Varicode::FT8CallReserved*/)) // This is unused...so is invalid at this time... ); qDebug() << "valid" << bValidFrame << "decoded text" << decodedtext.message(); @@ -8390,11 +8348,6 @@ void MainWindow::on_outAttenuation_valueChanged (int a) void MainWindow::on_actionShort_list_of_add_on_prefixes_and_suffixes_triggered() { - if (!m_prefixes) { - m_prefixes.reset (new HelpTextWindow {tr ("Prefixes"), ":/prefixes.txt", {"Courier", 10}}); - } - m_prefixes->showNormal(); - m_prefixes->raise (); } bool MainWindow::shortList(QString callsign) diff --git a/mainwindow.h b/mainwindow.h index 5c28350..6f49434 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -87,7 +87,6 @@ class SoundOutput; class Modulator; class SoundInput; class Detector; -class SampleDownloader; class MultiSettings; class EqualizationToolsDialog; class DecodedText; @@ -433,7 +432,6 @@ private: WSPRBandHopping m_WSPR_band_hopping; bool m_WSPR_tx_next; MessageBox m_rigErrorMessageBox; - QScopedPointer m_sampleDownloader; QScopedPointer m_equalizationToolsDialog; QScopedPointer m_wideGraph; @@ -631,7 +629,7 @@ private: QFutureWatcher watcher3; QFutureWatcher m_saveWAVWatcher; - QProcess proc_jt9; + QProcess proc_js8; QProcess p1; QProcess p3; @@ -818,7 +816,7 @@ private: QDateTime m_dateTimeQSOOn; QDateTime m_dateTimeLastTX; - QSharedMemory *mem_jt9; + QSharedMemory *mem_js8; LogBook m_logBook; QString m_QSOText; unsigned m_msAudioOutputBuffered; diff --git a/manpages/CMakeLists.txt b/manpages/CMakeLists.txt deleted file mode 100644 index f5ed53f..0000000 --- a/manpages/CMakeLists.txt +++ /dev/null @@ -1,85 +0,0 @@ -set (ASCIIDOC_MANS - man1/wsjtx.1.txt - man1/wsprd.1.txt - man1/jt65code.1.txt - man1/rigctl-wsjtx.1.txt - man1/rigctld-wsjtx.1.txt - man1/message_aggregator.1.txt - man1/udp_daemon.1.txt - ) - -find_program (A2X_EXECUTABLE NAMES a2x a2x.py) -if (NOT A2X_EXECUTABLE) - if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug") - message (SEND_ERROR "Failed to find a2x which is an optional requirement for non-debug -builds on *nix platforms. - -You can choose to skip manpage generation and this error by setting -the CMake option WSJT_SKIP_MANPAGES to ON. This option is designed for -those that are building for their own use, package builders should not -opt to skip manpage generation since package building requires the -manpages.") - - else (NOT CMAKE_BUILD_TYPE STREQUAL "Debug") - message (WARNING "Failed to find a2x skipping manpage generation.") - endif (NOT CMAKE_BUILD_TYPE STREQUAL "Debug") -endif () -find_program (GZIP_EXECUTABLE NAMES gzip) -find_program (SED_EXECUTABLE NAMES sed) - -set (XSLTPROC_OPTS - "-param man.endnotes.list.enabled 0 -param man.endnotes.are.numbered 0" - ) -set (A2X_OPTS - --format=manpage - --xsltproc-opts=${XSLTPROC_OPTS} - --doctype=manpage - --no-xmllint - -a VERSION=${wsjtx_VERSION} - ) - -set (MANPAGES) -if (A2X_EXECUTABLE AND GZIP_EXECUTABLE AND SED_EXECUTABLE) - foreach (f IN LISTS ASCIIDOC_MANS) - get_filename_component (d "${f}" PATH) - string (SUBSTRING "${d}" 3 -1 section) - if (NOT section MATCHES "[1-9]") - message (SEND_ERROR "Invalid man section ${section} in ${f}") - endif (NOT section MATCHES "[1-9]") - get_filename_component (filename "${f}" NAME) - get_filename_component (filename_we "${f}" NAME_WE) - set (f "${CMAKE_CURRENT_SOURCE_DIR}/${f}") - set (d "man/${d}") - set (o "${d}/${filename_we}.${section}.gz") - add_custom_command (OUTPUT "${o}" - COMMAND ${CMAKE_COMMAND} ARGS -E make_directory "${d}" - COMMAND ${CMAKE_COMMAND} ARGS -E copy "${f}" "${d}" - COMMAND ${A2X_EXECUTABLE} ARGS ${A2X_OPTS} "${d}/${filename}" - COMMAND ${CMAKE_COMMAND} ARGS -E remove "${d}/${filename}" -# -# the following edit command is used to make the alias manpages -# compatible with Debian packaging rules when a2x generates alias -# pages baseed in the section directory instead of the man parent -# directory -# - COMMAND ${SED_EXECUTABLE} ARGS -e '/^.so [^\\/]*$$/s@.so @&man${section}\\/@' -i.orig "${d}/*.${section}" - COMMAND ${GZIP_EXECUTABLE} ARGS -f9 "${d}/*.${section}" - DEPENDS "${f}" "${previous_output}" - COMMENT "Generating ${o}" - ) - list (APPEND MANPAGES "${o}") - - # use this as a dependency in the next iteration to serialize so - # that gzips don't overlap in parallel builds - set (previous_output "${o}") - endforeach () - - install ( - DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/man/ - DESTINATION ${CMAKE_INSTALL_MANDIR} - PATTERN "*.orig" EXCLUDE - #COMPONENT Runtime - ) -endif (A2X_EXECUTABLE AND GZIP_EXECUTABLE AND SED_EXECUTABLE) - -add_custom_target (manpages DEPENDS ${MANPAGES}) diff --git a/manpages/man1/jt65code.1.txt b/manpages/man1/jt65code.1.txt deleted file mode 100644 index ef3bf74..0000000 --- a/manpages/man1/jt65code.1.txt +++ /dev/null @@ -1,114 +0,0 @@ -:doctype: manpage -:man source: AsciiDoc -:man version: {VERSION} -:man manual: WSJT-X Manual -= jt65code(1) - -== NAME - -jt65code, jt9code, jt4code - Weak signal communications encoding support utility. - -== SYNOPSIS - -*jt65code* "'MESSAGE'" - -*jt65code* ['OPTIONS'] - -*jt9code* "'MESSAGE'" - -*jt9code* ['OPTIONS'] - -*jt4code* "'MESSAGE'" - -*jt4code* ['OPTIONS'] - -== OPTIONS -*-t*:: - Prints a selection of messages alongside their corresponding - decoded form and types. - -== DESCRIPTION - -*jt65code*, *jt9code* and *jt4code* are utility programs that let you -explore the conversion of user-level messages into channel symbols or -“tone numbers.” These programs can be useful to someone designing a -beacon generator for JT9 or JT65, or for studying behavior of the -error-control codes for each of the protocols. - -Channel-symbol values for JT9 run from 0 to 8, with 0 representing the -sync tone. The total number of symbols in a transmitted message is -85. To run jt9code, enter the program name followed by a JT9 message -enclosed in quotes. In Windows the command and program output might -look like this: - -..... -$ jt9code "G0XYZ K1ABC FN42" -Message: G0XYZ K1ABC FN42 -Channel symbols: - 0 0 7 3 0 3 2 5 4 0 1 7 7 7 8 0 4 8 8 2 2 1 0 1 1 3 5 4 5 6 - 8 7 0 6 0 1 8 3 3 7 8 1 1 2 4 5 8 1 5 2 0 0 8 6 0 5 8 5 1 0 - 5 8 7 7 2 0 4 6 6 6 7 6 0 1 8 8 5 7 2 5 1 5 0 4 0 -Decoded message: G0XYZ K1ABC FN42 -..... - -For the corresponding program jt65code only the information-carrying -channel symbols are shown, and the symbol values range from 0 to -63. Sync synbols lie two tone intervals below data tone 0, and the -sequential locations of sync symbols are described in the JT65 -Protocol section of this Guide. - -A typical execution of jt65code is shown below. The program displays -the packed message of 72 bits, shown here as 12 six-bit symbol values, -followed by the channel symbols: - -..... -$ jt65code "G0XYZ K1ABC FN42" -Message: G0XYZ K1ABC FN42 -Packed message, 6-bit symbols: 61 36 45 30 3 55 3 2 14 5 33 40 -Information-carrying channel symbols: - 56 40 8 40 51 47 50 34 44 53 22 53 28 31 13 60 46 2 14 58 43 - 41 58 35 8 35 3 24 1 21 41 43 0 25 54 9 41 54 7 25 21 9 - 62 59 7 43 31 21 57 13 59 41 17 49 19 54 21 39 33 42 18 2 60 -Decoded message: G0XYZ K1ABC FN42 -..... - -For an illustration of the power of the strong error-control coding in -JT9, JT65 and JT4, try looking at the channel symbols after changing a -single character in the message. For example, change the grid locater -from FN42 to FN43 in the JT65 message: - -..... -$ jt65code "G0XYZ K1ABC FN43" -Message: G0XYZ K1ABC FN43 -Packed message, 6-bit symbols: 61 36 45 30 3 55 3 2 14 5 33 41 -Information-carrying channel symbols: - 25 35 47 8 13 9 61 40 44 9 51 6 8 40 38 34 8 2 21 23 30 - 51 32 56 39 35 3 50 48 30 8 5 40 18 54 9 24 30 26 61 23 11 - 3 59 7 7 39 1 25 24 4 50 17 49 52 19 34 7 4 34 61 2 61 -Decoded message: G0XYZ K1ABC FN43 -..... - -You will discover that every possible JT65 message differs from every -other possible JT65 message in at least 52 of the 63 -information-carrying channel symbols. - -WSJT-X home page:: http://www.physics.princeton.edu/pulsar/K1JT/wsjtx.html - -WSJT-X User's Guide:: -http://www.physics.princeton.edu/pulsar/K1JT/wsjtx-doc/wsjtx-main-{VERSION}.html - -== AUTHOR - -Joe Taylor, K1JT. - -== COPYING - -*jt65code*, *jt9code* and *jt4code* are Copyright (C) 2001 - 2015 by -Joseph H. Taylor, Jr., K1JT, with contributions from additional -authors. WSJT-X is Open Source software, licensed under the GNU -General Public License (GPLv3). - -These programs are distributed in the hope that they will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. diff --git a/manpages/man1/message_aggregator.1.txt b/manpages/man1/message_aggregator.1.txt deleted file mode 100644 index 7f2a020..0000000 --- a/manpages/man1/message_aggregator.1.txt +++ /dev/null @@ -1,54 +0,0 @@ -:doctype: manpage -:man source: AsciiDoc -:man version: {VERSION} -:man manual: WSJT-X Manual -= wsjtx(1) - -== NAME - -message_aggregator - Reference example UDP server - -== SYNOPSIS - -*message_aggregator* - -== DESCRIPTION - -*message_aggregator* does not serve any useful purpose other than to - demonstrate the UDP message features of *WSJT-X*. It is a small GUI - application that interacts with any running *WSJT-X* instances. - -Developers writing add on applications may find the source code of -message_aggregator contained in the *WSJT-X* code repository -useful. The files NetworkMessage.hpp, MessageServer.hpp, -MessageClient.hpp and their associated implementations along with the -application source MessageAggregator.cpp should cover all the required -areas. All these files can be found at: - -https://sourceforge.net/p/wsjt/wsjt/HEAD/tree/branches/wsjtx/ - -*message_aggregator* may also be used as a multi-cast UDP server which -allows multiple instances of *message_aggregator* to be run -concurrently, to do this simply use a suitable multi-cast group -address in *message_aggregator* and in *WSJT-X* in the -"*Settings->Reporting->UDP Server*" pane e.g. 239.255.0.1 or ff03::1 -for a local scope group. - -Note that on some systems it may be necessary to add a static -multi-cast route to the routing table before multi-cast traffic can be -routed to sockets on the same host as the sender. - -== AUTHOR - -Bill Somerville, G4WJS. - -== COPYING - -*message_aggregator* is Copyright (C) 2015 by William Somerville, G4WJS, -with contributions from additional authors. *message_aggregator* is Open Source -software, licensed under the GNU General Public License (GPLv3). - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. diff --git a/manpages/man1/rigctl-wsjtx.1.txt b/manpages/man1/rigctl-wsjtx.1.txt deleted file mode 100644 index e96667f..0000000 --- a/manpages/man1/rigctl-wsjtx.1.txt +++ /dev/null @@ -1,29 +0,0 @@ -:doctype: manpage -:man source: AsciiDoc -:man version: {revnumber} -:man manual: WSJT-X Manual -= rigctl-wsjtx(1) - -== NAME - -rigctl-wsjtx - Hamlib 3 rigctld server. - -== SYNOPSIS - -*rigctl-wsjtx* [OPTIONS] - -== DESCRIPTION - -*wsjtx* uses a version of the *hamlib* CAT control library. This - library is heavily modified over the current release version of - *hamlib*. If a *wsjtx* user wishes to use the *hamlib* network rig - server *rigctld* to remotely control their transceiver; then this - special version of the *rigctl* client should be used since that too - has the modified *hamlib* code embedded with it. - -WSJT-X home page:: http://www.physics.princeton.edu/pulsar/K1JT/wsjtx.html - -WSJT-X User's Guide:: http://www.physics.princeton.edu/pulsar/K1JT/wsjtx-doc/wsjtx-main-toc2.html - -== OPTIONS -Refer to the *hamlib* documentation. diff --git a/manpages/man1/rigctld-wsjtx.1.txt b/manpages/man1/rigctld-wsjtx.1.txt deleted file mode 100644 index 6cf9ebf..0000000 --- a/manpages/man1/rigctld-wsjtx.1.txt +++ /dev/null @@ -1,29 +0,0 @@ -:doctype: manpage -:man source: AsciiDoc -:man version: {revnumber} -:man manual: WSJT-X Manual -= rigctld-wsjtx(1) - -== NAME - -rigctld-wsjtx - Hamlib 3 rigctld server. - -== SYNOPSIS - -*rigctld-wsjtx* [OPTIONS] - -== DESCRIPTION - -*wsjtx* uses a version of the *hamlib* CAT control library. This - library is heavily modified over the current release version of - *hamlib*. If a *wsjtx* user wishes to use the *hamlib* network rig - server *rigctld* to remotely control their transceiver; then this - special version of *rigctld* should be used since that too has the - modified *hamlib* code embedded with it. - -WSJT-X home page:: http://www.physics.princeton.edu/pulsar/K1JT/wsjtx.html - -WSJT-X User's Guide:: http://www.physics.princeton.edu/pulsar/K1JT/wsjtx-doc/wsjtx-main-toc2.html - -== OPTIONS -Refer to the *hamlib* documentation. diff --git a/manpages/man1/udp_daemon.1.txt b/manpages/man1/udp_daemon.1.txt deleted file mode 100644 index e1182e8..0000000 --- a/manpages/man1/udp_daemon.1.txt +++ /dev/null @@ -1,67 +0,0 @@ -:doctype: manpage -:man source: AsciiDoc -:man version: {VERSION} -:man manual: WSJT-X Manual -= wsjtx(1) - -== NAME - -udp_daemon - Reference example UDP server - -== SYNOPSIS - -*udp_daemon* ['OPTIONS'] - -== DESCRIPTION - -*udp_daemon* does not serve any useful purpose other than to - demonstrate the UDP message features of *WSJT-X*. It is a small - command line application that interacts with any running *WSJT-X* - instances. - -Developers writing add on applications may find the source code of -*udp_daemon* contained in the *WSJT-X* code repository useful. The -files NetworkMessage.hpp, MessageServer.hpp, MessageClient.hpp and -their associated implementations along with the application source -UDPDaemon.cpp should cover all the required areas. All these files can -be found at: - -https://sourceforge.net/p/wsjt/wsjt/HEAD/tree/branches/wsjtx/ - -*udp_daemon* may also be used as a multi-cast UDP server which allows -multiple instances of *udp_daemon* to be run concurrently, to do this -simply pass a suitable multi-cast group address using the command line -option and in *WSJT-X* in the "*Settings->Reporting->UDP Server*" pane -e.g. 239.255.0.1 or ff03::1 for a local scope group. - -Note that on some systems it may be necessary to add a static -multi-cast route to the routing table before multi-cast traffic can be -routed to sockets on the same host as the sender. - -== OPTIONS -*-p* PORT, *--port*=PORT:: - -Optional service port number to listen on (default 2237). - -*-g* MULTICAST-GROUP, *--group*=MULTICAST-GROUP:: - -Optional multicast group address to join (Default unicast server). - -*-v, --version*:: Display the application version. - -*-h,--help*:: Display usage information. - -== AUTHOR - -Bill Somerville, G4WJS. - -== COPYING - -*udp_daemon* is Copyright (C) 2015 by William Somerville, G4WJS, -with contributions from additional authors. *udp_daemon* is Open Source -software, licensed under the GNU General Public License (GPLv3). - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. diff --git a/manpages/man1/wsjtx.1.txt b/manpages/man1/wsjtx.1.txt deleted file mode 100644 index b92ad83..0000000 --- a/manpages/man1/wsjtx.1.txt +++ /dev/null @@ -1,121 +0,0 @@ -:doctype: manpage -:man source: AsciiDoc -:man version: {VERSION} -:man manual: WSJT-X Manual -= wsjtx(1) - -== NAME - -wsjtx, jt9 - Weak signal communications program. - -== SYNOPSIS - -*wsjtx* ['OPTIONS'] - -== DESCRIPTION - -*wsjtx* is a weak signal communications program supporting several operating -modes: JT65, JT9, JT4 and WSPR (*wsjtx* version 1 supported JT9 only). - -WSJT-X home page:: http://www.physics.princeton.edu/pulsar/K1JT/wsjtx.html - -WSJT-X User's Guide:: -http://www.physics.princeton.edu/pulsar/K1JT/wsjtx-doc/wsjtx-main-{VERSION}.html - -An alternative JT65 decoder executable *kvasd* for i386 Ubuntu is -available at http://www.physics.princeton.edu/pulsar/K1JT/kvasd . -This decoder is not open-source, is not included in the wsjtx package, -and is not required for JT65 decoding. - -== OPTIONS -*-r, --rig-name*[=RIGNAME]:: - -Enable multiple instances of the wsjtx(1) application to run -concurrently. Each RIGNAME must be unique. One instance may use no -RIGNAME. If this option is not supplied then only one instance of -wsjtx(1) may be run at any time. - -*-v, --version*:: Display the application version. - -*-h,--help*:: Display usage information. - -*--test-mode*:: - -When this option is provided all writable files will be placed in a -special test location (~/.qttest). This option is only for -application testing and is not designed for normal operations. **Use -with caution**. - -== FILES - -Most of the following files are in a directory path containing the -directory name *WSJT-X[ - RIGNAME]* which indicates the value of the -command line option *--rig-name=RIGNAME* to indicate multiple instances of -*wsjtx* running concurrently. All writable files listed below are -therefore unique to each concurrent instance of *wsjtx*. If the -*--rig-name* command line option is not supplied or the *RIGNAME* argument -is not supplied then the directory paths below will have the directory -*WSJT-X*. - -~/.config/WSJT-X[ - RIGNAME].ini:: - -This file stores the application -configuration settings. - -~/.local/share/WSJT-X[ - RIGNAME]/ALL.txt:: - -*ALL.txt* contains a record of transmitted and received messages and -other activity such as frequency or band changes. - -~/.local/share/WSJT-X[ - RIGNAME]/save/:: - -Is the default location for saved .WAV files recorded by the -application. The .WAV file save location may be changed in the -applications settings dialog. - -~/.local/share/WSJT-X[ - RIGNAME]/save/samples/:: - -Sample .WAV files suppied with the application are found in this -directory, they may be played back in the application and are referred -to in the user guide tutorial sections. - -~/.local/share/WSJT-X[ -RIGNAME]/timer.out:: - -This is a diagnostic file that records decode performance profiling -information. - -~/.local/share/WSJT-X[ - RIGNAME]/cty.dat:: - -This file is not required as a version of it is embedded in the -application, but if you wish an updated version can be placed here. -If present that version will be used in preference to the embedded -version. - -~/.local/share/WSJT-X[ - RIGNAME]/wsjtx.log:: - -This is a plain text CSV record of logged QSOs. - -~/.local/share/WSJT-X[ - RIGNAME]/wsjtx_log.adi:: - -This is a record of QSOs logged in the ADIF format which is suitable -for import into many Ham Radio logging programs. - -== AUTHOR - -Joe Taylor, K1JT. - -== COPYING - -*wsjtx* is Copyright (C) 2001 - 2015 by Joseph H. Taylor, Jr., K1JT, -with contributions from additional authors. WSJT-X is Open Source -software, licensed under the GNU General Public License (GPLv3). - -*wsjtx* includes the ``**Hamlib - Ham Radio Control Libraries**'' -software which is licensed under the GNU Lesser General Public License -(LGPL). Home page https://sourceforge.net/apps/mediawiki/hamlib, -sources from https://sourceforge.net/p/hamlib/code/ci/master/tree/. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. diff --git a/manpages/man1/wsprd.1.txt b/manpages/man1/wsprd.1.txt deleted file mode 100644 index 8a95235..0000000 --- a/manpages/man1/wsprd.1.txt +++ /dev/null @@ -1,93 +0,0 @@ -:doctype: manpage -:man source: AsciiDoc -:man version: {VERSION} -:man manual: WSPRD Manual -= wsprd(1) - -== NAME - -wsprd - is a decoder for K1JT's Weak Signal Propagation Reporter (WSPR) mode. - -== SYNOPSIS - -*wsprd* ['OPTIONS'] - -== DESCRIPTION - -*wsprd* - The program is written in C and is a command-line program that reads -from a .c2 file or .wav file and writes output to the console. It is used by -WSJT-X for wspr-mode decoding. - - -== OPTIONS -*-a *:: Path to writeable data files, default="." - -*-c *:: Write .c2 file at the end of the first pass - -*-e x*:: x is transceiver dial frequency error in Hz - -*-f x*:: x is transceiver dial frequency in MHz - -*-H* :: do not use, or update the hash table - -*-m* :: decode wspr-15 .wav file - -*-q* :: quick mode - does not dig deep for weak signals - -*-s* :: single pass mode, no subtraction (same as original wsprd) - -*-v* :: verbose mode, shows duplicate decodings - -*-w* :: wideband mode - decode signals within {plus}/- 150 Hz of center - -*-z x*:: x is fano metric table bias, default is 0.42 - -The Infile can be either .wav or .c2, for example: - ------ -./wsprd -wf 14.0956 140709_2258.wav ------ - -*NOTE* for .c2 files, the frequency within the file overrides the command -line value. - -== FEATURES -* By default, *wsprd* reports signals that are within {plus}/- 110 Hz of the -subband center frequency. The wideband option (-w) extends this to {plus}/- 150 Hz. - -* *wsprd* maintains a hashtable and will decode all three types of wspr -messages. An option (-H) is available to turn off use of the hashtable. - -* The symbols are decoded using Phil Karn's sequential decoder routine, fano.c - -== NOTES -. This program attempts to maximize the number of successful decodes per transmit -interval by trying to decode virtually every peak in the averaged spectrum. -The program also implements two-pass decoding, whereby signals that are successfully -decoded are subtracted one-by-one during the first decoding pass. Then, the -decoder is run again. In many cases the subtraction process will uncover signals -that can then be successfully decoded on the second pass. - -. There will be occasional duplicate decodes when two closely spaced -peaks come from the same signal. The program removes dupes based on callsign -and frequency. Two decodes that have the same callsign and estimated frequencies -that are within 1 Hz will be treated as decodes of the same signal. This -dupechecking is turned off with the -v flag. - - -== AUTHORS - -Joe Taylor, K1JT and Steven Franks, K9AN - - -== COPYING - -*WSPRD* is Copyright (C) 2015 by Joseph H. Taylor, Jr., K1JT, -and Steven Franke, K9AN, with contributions from additional authors. -*WSPRD* is Open Source software, licensed under the GNU General Public -License (GPLv3). - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. diff --git a/mouse_commands.txt b/mouse_commands.txt deleted file mode 100644 index 57dd5bd..0000000 --- a/mouse_commands.txt +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - -
Click onAction
Waterfall:Click to set Rx frequency.
- Shift-click to set Tx frequency.
- Ctrl-click or Right-click to set Rx and Tx frequencies.
- Double-click to also decode at Rx frequency.
-
Decoded text:Double-click to copy second callsign to Dx Call,
- locator to Dx Grid, change Rx and Tx frequency to
- decoded signal's frequency, and generate standard
- messages.
- If Hold Tx Freq is checked or first callsign in message
- is your own call, Tx frequency is not changed unless
- Ctrl is held down.
-
Erase button:Click to erase QSO window.
- Double-click to erase QSO and Band Activity windows. -
diff --git a/prefixes.txt b/prefixes.txt deleted file mode 100644 index 7ac0d67..0000000 --- a/prefixes.txt +++ /dev/null @@ -1,27 +0,0 @@ -Type 1 Prefixes: - - 1A 1S 3A 3B6 3B8 3B9 3C 3C0 3D2 3D2C 3D2R 3DA 3V 3W 3X - 3Y 3YB 3YP 4J 4L 4S 4U1I 4U1U 4W 4X 5A 5B 5H 5N 5R - 5T 5U 5V 5W 5X 5Z 6W 6Y 7O 7P 7Q 7X 8P 8Q 8R - 9A 9G 9H 9J 9K 9L 9M2 9M6 9N 9Q 9U 9V 9X 9Y A2 - A3 A4 A5 A6 A7 A9 AP BS7 BV BV9 BY C2 C3 C5 C6 - C9 CE CE0X CE0Y CE0Z CE9 CM CN CP CT CT3 CU CX CY0 CY9 - D2 D4 D6 DL DU E3 E4 EA EA6 EA8 EA9 EI EK EL EP - ER ES ET EU EX EY EZ F FG FH FJ FK FKC FM FO - FOA FOC FOM FP FR FRG FRJ FRT FT5W FT5X FT5Z FW FY M MD - MI MJ MM MU MW H4 H40 HA HB HB0 HC HC8 HH HI HK - HK0A HK0M HL HM HP HR HS HV HZ I IS IS0 J2 J3 J5 - J6 J7 J8 JA JDM JDO JT JW JX JY K KG4 KH0 KH1 KH2 - KH3 KH4 KH5 KH5K KH6 KH7 KH8 KH9 KL KP1 KP2 KP4 KP5 LA LU - LX LY LZ OA OD OE OH OH0 OJ0 OK OM ON OX OY OZ - P2 P4 PA PJ2 PJ7 PY PY0F PT0S PY0T PZ R1F R1M S0 S2 S5 - S7 S9 SM SP ST SU SV SVA SV5 SV9 T2 T30 T31 T32 T33 - T5 T7 T8 T9 TA TF TG TI TI9 TJ TK TL TN TR TT - TU TY TZ UA UA2 UA9 UK UN UR V2 V3 V4 V5 V6 V7 - V8 VE VK VK0H VK0M VK9C VK9L VK9M VK9N VK9W VK9X VP2E VP2M VP2V VP5 - VP6 VP6D VP8 VP8G VP8H VP8O VP8S VP9 VQ9 VR VU VU4 VU7 XE XF4 - XT XU XW XX9 XZ YA YB YI YJ YK YL YN YO YS YU - YV YV0 Z2 Z3 ZA ZB ZC4 ZD7 ZD8 ZD9 ZF ZK1N ZK1S ZK2 ZK3 - ZL ZL7 ZL8 ZL9 ZP ZS ZS8 KC4 E5 - -Type 1 Suffixes: /0 /1 /2 /3 /4 /5 /6 /7 /8 /9 /A /P diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt deleted file mode 100644 index 8c5fa4a..0000000 --- a/samples/CMakeLists.txt +++ /dev/null @@ -1,37 +0,0 @@ -set (SAMPLE_FILES - FT8/170709_135615.wav - ISCAT/ISCAT-A/VK7MO_110401_235515.wav - ISCAT/ISCAT-B/K0AWU_100714_115000.wav - JT4/JT4A/DF2ZC_070926_040700.WAV - JT4/JT4F/OK1KIR_141105_175700.WAV - JT65/JT65B/DL7UAE_040308_002400.wav - JT9+JT65/130610_2343.wav - JT9/130418_1742.wav - MSK144/160915_113100.wav - MSK144/160915_113230.wav - QRA64/QRA64C/161113_0111.wav - WSPR/150426_0918.wav - ) - -set (contents_file_name contents_${WSJTX_VERSION_MAJOR}.${WSJTX_VERSION_MINOR}.json) -set (contents_file ${CMAKE_CURRENT_BINARY_DIR}/${contents_file_name}) -set (web_tree ${CMAKE_CURRENT_BINARY_DIR}/web) -set_source_files_properties (${contents_file} PROPERTIES GENERATED ON) - -add_custom_command ( - OUTPUT ${contents_file} - COMMAND ${CMAKE_COMMAND} ARGS -Dcontents_file=${contents_file} -DFILES="${SAMPLE_FILES}" -DDEST=${CMAKE_CURRENT_BINARY_DIR} -P make_contents.cmake - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - DEPENDS ${SAMPLE_FILES} make_contents.cmake -) - -find_program (RSYNC_EXECUTABLE rsync) -add_custom_command ( - OUTPUT upload.timestamp - COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${contents_file} ${web_tree}/samples/${contents_file_name} - COMMAND ${RSYNC_EXECUTABLE} ARGS -avz --progress ${CMAKE_CURRENT_BINARY_DIR}/web/samples ${PROJECT_SAMPLES_UPLOAD_DEST} - COMMAND ${CMAKE_COMMAND} ARGS -E touch upload.timestamp - DEPENDS ${contents_file} - COMMENT "Uploading WSJT-X samples to web server" - ) -add_custom_target (upload-samples DEPENDS upload.timestamp) diff --git a/samples/FT8/170709_135615.wav b/samples/FT8/170709_135615.wav deleted file mode 100644 index a3ebf88..0000000 Binary files a/samples/FT8/170709_135615.wav and /dev/null differ diff --git a/samples/ISCAT/ISCAT-A/VK7MO_110401_235515.wav b/samples/ISCAT/ISCAT-A/VK7MO_110401_235515.wav deleted file mode 100644 index ca8cbf2..0000000 Binary files a/samples/ISCAT/ISCAT-A/VK7MO_110401_235515.wav and /dev/null differ diff --git a/samples/ISCAT/ISCAT-B/K0AWU_100714_115000.wav b/samples/ISCAT/ISCAT-B/K0AWU_100714_115000.wav deleted file mode 100644 index 405ba86..0000000 Binary files a/samples/ISCAT/ISCAT-B/K0AWU_100714_115000.wav and /dev/null differ diff --git a/samples/JT4/JT4A/DF2ZC_070926_040700.WAV b/samples/JT4/JT4A/DF2ZC_070926_040700.WAV deleted file mode 100644 index 76b2b10..0000000 Binary files a/samples/JT4/JT4A/DF2ZC_070926_040700.WAV and /dev/null differ diff --git a/samples/JT4/JT4F/OK1KIR_141105_175700.WAV b/samples/JT4/JT4F/OK1KIR_141105_175700.WAV deleted file mode 100644 index 5c260cd..0000000 Binary files a/samples/JT4/JT4F/OK1KIR_141105_175700.WAV and /dev/null differ diff --git a/samples/JT65/JT65B/DL7UAE_040308_002400.wav b/samples/JT65/JT65B/DL7UAE_040308_002400.wav deleted file mode 100644 index f0d3d58..0000000 Binary files a/samples/JT65/JT65B/DL7UAE_040308_002400.wav and /dev/null differ diff --git a/samples/JT9+JT65/130610_2343.wav b/samples/JT9+JT65/130610_2343.wav deleted file mode 100644 index 1fbfaf2..0000000 Binary files a/samples/JT9+JT65/130610_2343.wav and /dev/null differ diff --git a/samples/JT9/130418_1742.wav b/samples/JT9/130418_1742.wav deleted file mode 100644 index 056cd2e..0000000 Binary files a/samples/JT9/130418_1742.wav and /dev/null differ diff --git a/samples/MSK144/160915_113100.wav b/samples/MSK144/160915_113100.wav deleted file mode 100644 index 295f11d..0000000 Binary files a/samples/MSK144/160915_113100.wav and /dev/null differ diff --git a/samples/MSK144/160915_113230.wav b/samples/MSK144/160915_113230.wav deleted file mode 100644 index f1337a7..0000000 Binary files a/samples/MSK144/160915_113230.wav and /dev/null differ diff --git a/samples/QRA64/QRA64C/161113_0111.wav b/samples/QRA64/QRA64C/161113_0111.wav deleted file mode 100644 index 03dec21..0000000 Binary files a/samples/QRA64/QRA64C/161113_0111.wav and /dev/null differ diff --git a/samples/README b/samples/README deleted file mode 100644 index db1c18e..0000000 --- a/samples/README +++ /dev/null @@ -1,20 +0,0 @@ -This directory contains the resources necessary to build the WSJT-X -samples database. The CMake build script creates a directory structure -ready for upload to the project samples web or ftp file server. The -CMake script also defines a build target 'upload-samples' which -uploads the sample database to the the destination defined by the -project CMake variable PROJECT_SAMPLES_UPLOAD_DEST (defined in the -project root CMake script). A suitably authorized user may use this -target to update the server with the latest samples. - -The samples database includes a JSON contents file for each -major/minor version combination of WSJT-X, this file is generated by -CMake and should not be manually edited. - -To add new samples simply add the files here and update the -SAMPLE_FILES list variable in the CMakeLists.txt file in this -directory. Sample files must be checked into source control. A -meaningful directory structure is advisable, the same directory -structure will be replicated by the WSJT-X sample downloader dialog -allowing WSJT-X users to easily identify wath each sample file -contains. diff --git a/samples/WSPR/150426_0918.wav b/samples/WSPR/150426_0918.wav deleted file mode 100644 index c53ec20..0000000 Binary files a/samples/WSPR/150426_0918.wav and /dev/null differ diff --git a/samples/make_contents.cmake b/samples/make_contents.cmake deleted file mode 100644 index 42f2bea..0000000 --- a/samples/make_contents.cmake +++ /dev/null @@ -1,107 +0,0 @@ -string (REPLACE " " ";" FILES ${FILES}) # make back into a list - -function(JOIN VALUES GLUE OUTPUT) - string (REGEX REPLACE "([^\\]|^);" "\\1${GLUE}" _TMP_STR "${VALUES}") - string (REGEX REPLACE "[\\](.)" "\\1" _TMP_STR "${_TMP_STR}") #fixes escaping - set (${OUTPUT} "${_TMP_STR}" PARENT_SCOPE) -endfunction() - -function (indent) - foreach (temp RANGE ${level}) - file (APPEND ${contents_file} " ") - endforeach () -endfunction () - -function (end_entry) - file (APPEND ${contents_file} "\n") - set(first 0 PARENT_SCOPE) - math (EXPR level "${level} - 1") - indent () - file (APPEND ${contents_file} "]\n") - math (EXPR level "${level} - 2") - indent () - file (APPEND ${contents_file} "}") - string (FIND "${dirs}" "${cwd}" pos) - set (level ${level} PARENT_SCOPE) -endfunction () - -file (WRITE ${contents_file} "[") -set (cwd) -set (level 0) -set (first 1) -list (SORT FILES) -foreach (file IN LISTS FILES) - string (REGEX MATCHALL "[^/]*/" dirs "${file}") - string (REPLACE "/" "" dirs "${dirs}") - string (REGEX MATCH "[^/]*$" name "${file}") - string (FIND "${dirs}" "${cwd}" pos) - list (LENGTH cwd cwd_count) - if (${pos} EQUAL 0) - # same root - while (${cwd_count} GREATER 0) - list (REMOVE_AT dirs 0) - math (EXPR cwd_count "${cwd_count} - 1") - endwhile () - else () - # reduce cwd until matched - while ((NOT ${pos} EQUAL 0) AND ${cwd_count} GREATER 0) - math (EXPR cwd_count "${cwd_count} - 1") - list (REMOVE_AT cwd ${cwd_count}) - string (FIND "${dirs}" "${cwd}" pos) - end_entry () - endwhile () - # back to same root - while (${cwd_count} GREATER 0) - list (REMOVE_AT dirs 0) - math (EXPR cwd_count "${cwd_count} - 1") - endwhile () - endif () - list (LENGTH cwd cwd_count) - list (LENGTH dirs path_count) - while (${path_count} GREATER 0) - list (GET dirs 0 dir) - list (APPEND cwd "${dir}") - list (REMOVE_AT dirs 0) - if (${first}) - file (APPEND ${contents_file} "\n") - set (first 0) - else () - file (APPEND ${contents_file} ",\n") - endif () - indent () - file (APPEND ${contents_file} "{\n") - math (EXPR level "${level} + 1") - indent () - file (APPEND ${contents_file} "\"type\": \"directory\",\n") - indent () - file (APPEND ${contents_file} "\"name\": \"${dir}\",\n") - indent () - file (APPEND ${contents_file} "\"entries\": [") - set (first 1) - math (EXPR level "${level} + 2") - math (EXPR path_count "${path_count} - 1") - endwhile () - JOIN ("${cwd}" "/" path) - file (COPY "${file}" DESTINATION "${DEST}/web/samples/${path}") - if (${first}) - file (APPEND ${contents_file} "\n") - set (first 0) - else () - file (APPEND ${contents_file} ",\n") - endif () - indent () - file (APPEND ${contents_file} "{\n") - math (EXPR level "${level} + 1") - indent () - file (APPEND ${contents_file} "\"type\": \"file\",\n") - indent () - file (APPEND ${contents_file} "\"name\": \"${name}\"\n") - math (EXPR level "${level} - 1") - indent () - file (APPEND ${contents_file} "}") - set (first 0) -endforeach () -if (${level} GREATER 1) - end_entry () -endif () -file (APPEND ${contents_file} "\n]\n") diff --git a/shortcuts.txt b/shortcuts.txt deleted file mode 100644 index 61da9de..0000000 --- a/shortcuts.txt +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
F1 Online User's Guide
Shift+F1 Copyright Notice
Ctrl+F1 About WSJT-X
F2 Open settings window
F3 Display keyboard shortcuts
F4 Clear DX Call, DX Grid, Tx messages 1-4
Alt+F4 Exit program
F5 Display special mouse commands
F6 Open next file in directory
Shift+F6 Decode all remaining files in directrory
F7 Display Message Averaging window
F11 Move Rx frequency down 1 Hz
Ctrl+F11 Move identical Rx and Tx frequencies down 1 Hz
Shift+F11 Move Tx frequency down 60 Hz
F12 Move Rx frequency up 1 Hz
Ctrl+F12 Move identical Rx and Tx frequencies up 1 Hz
Shift+F12 Move Tx frequency up 60 Hz
Alt+1-6 Set now transmission to this number on Tab 1
Ctl+1-6 Set next transmission to this number on Tab 1
Alt+D Decode again at QSO frequency
Shift+D Full decode (both windows)
Ctrl+E Turn on TX even/1st
Shift+E Turn off TX even/1st
Alt+E Erase
Ctrl+F Edit the free text message box
Alt+G Generate standard messages
Alt+H Halt Tx
Ctrl+L Lookup callsign in database, generate standard messages
Alt+M Monitor
Alt+N Enable Tx
Ctrl+O Open a .wav file
Alt+Q Log QSO
Alt+S Stop monitoring
Alt+T Tune
Alt+V Save the most recently completed *.wav file
diff --git a/wsjtx.iss b/wsjtx.iss deleted file mode 100644 index 16a7dd9..0000000 --- a/wsjtx.iss +++ /dev/null @@ -1,30 +0,0 @@ -[Setup] -AppName=wsjtx -AppVerName=wsjtx Version 1.3 r3673 -AppCopyright=Copyright (C) 2001-2014 by Joe Taylor, K1JT -DefaultDirName=c:\wsjtx_w -DefaultGroupName=wsjtx_w - -[Files] -Source: "c:\Users\joe\wsjt\wsjtx_install\wsjtx.exe"; DestDir: "{app}" -Source: "c:\Users\joe\wsjt\wsjtx_install\jt9.exe"; DestDir: "{app}" -Source: "c:\Users\joe\wsjt\wsjtx_install\jt9code.exe"; DestDir: "{app}" -Source: "c:\Users\joe\wsjt\wsjtx_install\kvasd.exe"; DestDir: "{app}" -Source: "c:\Users\joe\wsjt\wsjtx_install\*.dll"; DestDir: "{app}"; -Source: "c:\Users\joe\wsjt\wsjtx\cty.dat"; DestDir: "{app}"; -Source: "c:\Users\joe\wsjt\wsjtx\kvasd.dat"; DestDir: "{app}"; -Source: "c:\Users\joe\wsjt\wsjtx\wsjt.ico"; DestDir: "{app}"; -Source: "c:\Users\joe\wsjt\wsjtx\qt.conf"; DestDir: "{app}"; -Source: "c:\Users\joe\wsjt\wsjtx\CALL3.TXT"; DestDir: "{app}"; Flags: onlyifdoesntexist -Source: "c:\Users\joe\wsjt\wsjtx\shortcuts.txt"; DestDir: "{app}" -Source: "c:\Users\joe\wsjt\wsjtx\mouse_commands.txt"; DestDir: "{app}" -Source: "c:\Users\joe\wsjt\wsjtx\prefixes.txt"; DestDir: "{app}" -Source: "c:\Users\joe\wsjt\wsjtx_install\save\Samples\130418_1742.wav"; DestDir: "{app}\save\Samples"; -Source: "c:\Users\joe\wsjt\wsjtx_install\save\Samples\130610_2343.wav"; DestDir: "{app}\save\Samples"; -Source: "c:\Users\joe\wsjt\wsjtx_install\platforms\qwindows.dll"; DestDir: "{app}\platforms"; -Source: "c:\Users\joe\wsjt\wsjtx_install\Palettes\*.pal"; DestDir: "{app}\Palettes"; - -[Icons] -Name: "{group}\wsjtx_w"; Filename: "{app}\wsjtx.exe"; WorkingDir: {app}; IconFilename: {app}\wsjt.ico -Name: "{userdesktop}\wsjtx_w"; Filename: "{app}\wsjtx.exe"; WorkingDir: {app}; IconFilename: {app}\wsjt.ico - diff --git a/wsjtx.pro b/wsjtx.pro index cf01f67..48fe370 100644 --- a/wsjtx.pro +++ b/wsjtx.pro @@ -14,7 +14,6 @@ VERSION = "Not for Release" TEMPLATE = app DEFINES = QT5 QMAKE_CXXFLAGS += -std=c++11 -DEFINES += PROJECT_MANUAL="'\"http://www.physics.princeton.edu/pulsar/K1JT/wsjtx-doc/wsjtx-main.html\"'" isEmpty (DESTDIR) { DESTDIR = ../wsjtx_exp_install @@ -65,7 +64,7 @@ SOURCES += \ WFPalette.cpp plotter.cpp widegraph.cpp about.cpp WsprTxScheduler.cpp mainwindow.cpp \ main.cpp decodedtext.cpp wsprnet.cpp messageaveraging.cpp \ echoplot.cpp echograph.cpp fastgraph.cpp fastplot.cpp Modes.cpp \ - WSPRBandHopping.cpp MessageAggregator.cpp SampleDownloader.cpp qt_helpers.cpp\ + WSPRBandHopping.cpp MessageAggregator.cpp qt_helpers.cpp\ MultiSettings.cpp PhaseEqualizationDialog.cpp IARURegions.cpp MessageBox.cpp \ EqualizationToolsDialog.cpp \ varicode.cpp \ @@ -91,7 +90,7 @@ HEADERS += qt_helpers.hpp \ Configuration.hpp wsprnet.h signalmeter.h meterwidget.h \ logbook/logbook.h logbook/countrydat.h logbook/countriesworked.h logbook/adif.h \ messageaveraging.h echoplot.h echograph.h fastgraph.h fastplot.h Modes.hpp WSPRBandHopping.hpp \ - WsprTxScheduler.h SampleDownloader.hpp MultiSettings.hpp PhaseEqualizationDialog.hpp \ + WsprTxScheduler.h MultiSettings.hpp PhaseEqualizationDialog.hpp \ IARURegions.hpp MessageBox.hpp EqualizationToolsDialog.hpp \ qorderedmap.h \ varicode.h \ diff --git a/wsjtx_config.h.in b/wsjtx_config.h.in index 39ea733..53a8bd6 100644 --- a/wsjtx_config.h.in +++ b/wsjtx_config.h.in @@ -13,10 +13,7 @@ extern "C" { #cmakedefine CMAKE_INSTALL_DOCDIR "@CMAKE_INSTALL_DOCDIR@" #cmakedefine CMAKE_INSTALL_DATADIR "@CMAKE_INSTALL_DATADIR@" #cmakedefine CMAKE_PROJECT_NAME "@CMAKE_PROJECT_NAME@" -#cmakedefine PROJECT_MANUAL "@PROJECT_MANUAL@" #cmakedefine PROJECT_HOMEPAGE "@PROJECT_HOMEPAGE@" -#cmakedefine PROJECT_MANUAL_DIRECTORY_URL "@PROJECT_MANUAL_DIRECTORY_URL@" -#cmakedefine PROJECT_SAMPLES_URL "@PROJECT_SAMPLES_URL@" #cmakedefine PROJECT_SUMMARY_DESCRIPTION "@PROJECT_SUMMARY_DESCRIPTION@" #cmakedefine01 WSJT_SHARED_RUNTIME diff --git a/wsjtx_opti.iss b/wsjtx_opti.iss deleted file mode 100644 index 1fbfedc..0000000 --- a/wsjtx_opti.iss +++ /dev/null @@ -1,23 +0,0 @@ -[Setup] -AppName=wsjtx -AppVerName=wsjtx Version 1.1.0 r3478 -AppCopyright=Copyright (C) 2001-2013 by Joe Taylor, K1JT -DefaultDirName=c:\wsjtx2 -DefaultGroupName=wsjtx2 - -[Files] -Source: "c:\Users\joe\wsjt\wsjtx_install\*.exe"; DestDir: "{app}" -Source: "c:\Users\joe\wsjt\wsjtx_install\*.dll"; DestDir: "{app}"; -Source: "c:\Users\joe\wsjt\wsjtx_install\*.dat"; DestDir: "{app}"; -Source: "c:\Users\joe\wsjt\wsjtx_install\wsjt.ico"; DestDir: "{app}"; -Source: "c:\Users\joe\wsjt\wsjtx_install\CALL3.TXT"; DestDir: "{app}"; Flags: onlyifdoesntexist -Source: "c:\Users\joe\wsjt\wsjtx\shortcuts.txt"; DestDir: "{app}" -Source: "c:\Users\joe\wsjt\wsjtx\mouse_commands.txt"; DestDir: "{app}" -Source: "c:\Users\joe\wsjt\wsjtx\WSJT-X_Users_Guide_v1.1.pdf"; DestDir: "{app}" -Source: "c:\Users\joe\wsjt\wsjtx_install\save\Samples\130418_1742.wav"; DestDir: "{app}\save\Samples"; -Source: "c:\Users\joe\wsjt\wsjtx_install\save\Samples\130610_2343.wav"; DestDir: "{app}\save\Samples"; - -[Icons] -Name: "{group}\wsjtx2"; Filename: "{app}\wsjtx.exe"; WorkingDir: {app}; IconFilename: {app}\wsjt.ico -Name: "{userdesktop}\wsjtx2"; Filename: "{app}\wsjtx.exe"; WorkingDir: {app}; IconFilename: {app}\wsjt.ico - diff --git a/wsjtx_update.iss b/wsjtx_update.iss deleted file mode 100644 index da3bec2..0000000 --- a/wsjtx_update.iss +++ /dev/null @@ -1,18 +0,0 @@ -[Setup] -AppName=wsjtx -AppVerName=wsjtx Version 1.2 r3537 -AppCopyright=Copyright (C) 2001-2013 by Joe Taylor, K1JT -DefaultDirName=c:\wsjtx1.2 -DefaultGroupName=wsjtx1.2 - -[Files] -Source: "c:\Users\joe\wsjt\wsjtx_install\wsjtx.exe"; DestDir: "{app}" -Source: "c:\Users\joe\wsjt\wsjtx_install\jt9.exe"; DestDir: "{app}" -Source: "c:\Users\joe\wsjt\wsjtx\shortcuts.txt"; DestDir: "{app}" -Source: "c:\Users\joe\wsjt\wsjtx\mouse_commands.txt"; DestDir: "{app}" -Source: "c:\Users\joe\wsjt\wsjtx\WSJT-X_Users_Guide_v1.2.pdf"; DestDir: "{app}" - -[Icons] -Name: "{group}\wsjtx1.2"; Filename: "{app}\wsjtx.exe"; WorkingDir: {app}; IconFilename: {app}\wsjt.ico -Name: "{userdesktop}\wsjtx1.2"; Filename: "{app}\wsjtx.exe"; WorkingDir: {app}; IconFilename: {app}\wsjt.ico -