The tool record_time_signal is designed to measure the performance of
QAudioInput. The intended use is to record a short period of live
audio from an on-air time signal of known good quaility, the basic
required parameters are an audio input device, an output file name
(.WAV), a start second in a minute, and a duration in seconds. So for
example to record the time signal ticks and fast data at the top of
the minute:
$ record_time_signal -o wwv.wav -s 55 -d 15
will record 15s of audio at 48000Hz sample rate, stereo, from the
default audio input device, starting at second 55. This will use a
separate timer to stop the recording which is likely to leave the
output file a little short due to buffer latency. The buffer size can
be adjusted using the '-b <buffered-frames>' option.
The tool also supoorts a different mechanism to time the recording
which uses the audio progress via a notify signal. This should ensure
at least the requested duration is recorded The shorter the notify
interval the closer teh final size shoould be to the requested
duration. Use the '-d <interval-ms>' option to adjust the notify
interval.
$ record_time_signal -o wwv.wav -s 55 -d 15 -n 100
Non-default audio devices can be selected, use the '-I' option to list
the available input devices with an index number that can be used to
select the device using the 'R <device-number>' option.
Other options are available, use '-h' for details.
Basic validation, must have non-empty exchange sent and received.
Abstracted log view window widget behaviour into a base class. Turned
on auto resize to row height in log view windows and enabled
alternating colours. Convert empty fields to NULL when inserting new
log table rows to signify missing data. Trap insert row errors when
adding to contest log table so that logging can be held back if
constraints are not met. Re-factored log QSO processing to try insert
row into log table first and pop up a message box if constraints are
not met, this pops up the Log QSO window in case it was initiated by
an auto log event.
This change incorporates a reorganization of the GUI code with
widgets, validators, models, and item delegates being moved to
sub-directories.
Relax the requirements of the ForeignKeyDelegate and related
CandidateKeyFilter classes to allow them to work with constant model
pointers for both referenced and referencing models.
Settings option to highlight not worked before entities/grids/calls by
mode. Fix issues with highlighting decodes and generally refactor the
internal workings of ADIF and QSO recording for worked before
detection.
Includes a new settings facility with the highlighting being contrled
by a new model class and a modified QListView to display the data for
editing. Edits include enable and disable check boxes, a contextual
pop-up menu to adjust backkground and foreground colours.
Still to be implemented are priorities for highlighting
categories. This will be adjustable by drag and drop in the Colors
settings panel, it is already implemented by the priority order has no
effect on highlighting of decodes yet.
The LotW users data file fetch and time since user's last upload is
now controled from the settings dialog.
This change also drops support for Qt versions before 5.5 so that many
workarounds for earlier versions can be removed.
Debug trace is slightly modified to make better use of the Qt built in
facilities to format and synchronize cross thread messaging.
Add lines to the sources.exclude file to select paths and wildcards
that will be excluded from source tarballs. See the tar
--exclude-from=FILE option for syntax.
If a source directory that is used to build targets is included then
those targets should be defined in a CMakeLists.txt file in the same
directory and the following syntax should be used in the parent
CMakeLists.txt script to ensue the parent CMakeLists.txt file remains
valid when the excluded directory is not present:
if (EXITS ${CMAKE_SOURCE_DIR}/optional-source-dir AND IS_DIRECTORY ${CMAKE_SOURCE_DIR}/optional-source-dir)
add_subdirectory (optional-source-dir)
endif ()
- Add file contrib/lotw-user-activity.csv, install in data_dir().
- Add suggested frequencies on 20 and 40m for testing FT8 v2.0 messages.
- Add a timeout date (Nov 1 2018) beyond which -rc1 will not run.
- Change Versions.cmake to indicate v2.0.0-rc1.
Also first stage of allowing for builds from a git repository.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/wsjtx/trunk@8732 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This change enables support for Retina type displays on macOS.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8595 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
UDP servers can request that WSJT-X clients highlight a specified
callsign in the Band Activity decodes window. Either the last
occurrence of the callsign may be highlighted or all past and future
occurrences can be highlighted. The latter case WSJT-X will remember
the callsign and requested highlighting options so that future
occurrences can be correctly highlighted.
Either or both of the text background color and the text foreground
color may be specified. A further UDP message may be sent to change
the persistent color highlighting for a given callsign, including
reseting persistent highlighting by passing an invalid color value.
Thanks to Alex, VE3NEA, for this contribution.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8589 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Compiler ICE on 64-bit Fedora 27 fixed either by not using array
bounds checking or by limiting optimization to level 2.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8495 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
When "Auto Grid" is checked in "Settings->General" UDP messages of
type "Location" will update a temporary DE grid square. The intent is
to allow an external application joining the WSJT-X UDP message
protocol to dynamically update the DE grid during mobile operation.
This change also tidies up some outstanding issues around logging the
operator call.
This change adds a new UDP message "Logged ADIF" that is emitted in
parallel with "QSO Logged" messages. The new message is valid ADIF
file format and contains the logged QSO fields. The intent is that
basic UDP server applications might already have ADIF log record
capture capabilities and could use this message to feed existing ADIF
parsing routines to log QSOs. All that should be needed is to identify
this message type and the single field is ADIF compatible ASCII.
Thanks to Brian, N9ADG, for the patches that lead to these
enhancements.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8454 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
1. Send nQSOProgress into jt65 decoder.
2. Add experimental version of extract.f90.
3. Change CMakeFile.txt to use experimental routines.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8217 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
1. Checkbox "Lock Tx=Rx" is now labeled "Lock Tx Freq", and its meaning is
quite different. If checked, the audio Tx frequency cannot be changed.
It's like the "Lock" function on some transceivers.
2. Clicking on the Wide Graph waterfall and on lines of decoded text now
behave as follows:
Click on Action
---------------------------------------------------------------------
Waterfall: Click to set Rx frequency
Shift-click to set Tx frequency
Ctrl-click to set Rx and Tx frequencies
If Lock Tx Freq is checked, Tx freq does not move
Double-click to set Rx frequency and decode there
Decoded Text: Double-click to copy transmitting callsign to DX Call
and locator to DX Grid; change Rx frequency to decoded
signal's frequency; generate standard messages.
Tx frequency is not changed unless Ctrl is held down
and Lock Tx Freq not checked.
If this experimental behavior is adopted, some descriptions in the
User Guide and Special Mouse Commands will need to be updated.
3. Starting to implement a new function on the Tools menu,
"Solve for calibration parameters". This is not yet finished;
DO NOT USE in its present form.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8125 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Generic message packing and unpacking routines now understand antipode
grid contest messages. These messages are now recognized as standard
messages in message response processing and dealt with appropriately
when contest mode is selected and applicable (currently FT8 and MSK144
only).
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8062 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
------------------------------------------------------------------------
r7977 | bsomervi | 2017-08-02 01:19:07 +0100 (Wed, 02 Aug 2017) | 1 line
Adjust the CMake script to allow for a rewritten FindOpenMP script in CMake v3.9
------------------------------------------------------------------------
r7978 | bsomervi | 2017-08-02 02:14:52 +0100 (Wed, 02 Aug 2017) | 1 line
Fix a typo in r7977
------------------------------------------------------------------------
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7979 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
These emit doubleClicked signal when double-clicked, otherwise they
are identical to their super-classes.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7938 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2. "Call 1st" label turns red when armed to respond to a caller.
3. Suppress some recognizable false decodes, send them to cumulative file
"data_dir/false_decodes.txt".
4. Reduce sleep delay in decoder() to 10 ms.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7928 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Now equlization tools as it covers both amplitude and phase
equalization.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7875 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Working frequencies can be for all regions or for individual IARU
regions. This allows each mode band tuple to have one or more working
frequencies which can include local ones only offered when the user
configures their IARU region.
Change working frequency default suggestions to better fit in
FT8. General rule is FT8 is at JT65 -2kHz except where that is not
possible e.g. where that would fall into a segment not allocated for
narrow band data modes. For tight bands like top band sqeeze existing
JT65 and JT allocations to allow space for FT8.
NOTE: this change changes the WSPR frequency on 80m to allow access to
JA stations that currently have no allocation where it was placed.
ALSO NOTE: the JT65 and JT9 frequencies for 80m move down 6 kHz, again
to accommodate region 3 users. Other appliactions not within our
control should be asked to move in step when 1.8.0 is released.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7810 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Reverted to default stack allocation for jt9.exe on Windows.
Tidied up FT8 decoder inteface to remove arguments that will probably
never be used.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7768 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2. ft8d is now a bare-bones multi-decoder.
3. wsjt-x now includes the bare-bones multi-decoder for FT8.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7729 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
These were using a hijacked custom spin box that was designed only for
letters i.e. submodes. Now there are two new custom spin boxes.
HistedSpinBox:- can be set with a list of integer values which the
step up and down will follow. Optionally limits the maximum and
minimum value to the upper and lower bounds of the values set. Note
that intermediate values are still valid.
RestrictedSpinBox:- more like a combo box because the provided values
are the only ones that can be set.
HintedSpinBox is used for the frequency tolerance and
RestrictedSpinBox is used for T/R period.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7698 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
CMake does not seem to recognize Fortran module file dependencies
correctly and sometimes builds them after modules that reference
them. This change moves all the module files to the beginning of the
library sources list so that they should always be compiled before use
after changes. I'm not sure this will work 100% reliably for
inter-module references so further reordering may be needed in future
if unexpected clean rebuilds are becoming necessary after module
source file changes.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7632 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Separate translation units avoids compiler generated CRC tables being
linked when not needed.
Also only compile once and add to wsjt_cxx library for later link
editing.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7631 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Using the CMake module GNUInstallDirs to set up standard locations
which allows better customisation for packagers building for various
distributions.
The change does change some internal package file paths and will leave
some files in old locations in Windows installations. Running
uninstall is probably wise on Windows before installing this new
package layout if future clean uninstalls are desired.
Linux and other *nix package maintainers can use the CMake variables
CMAKE_INSTALL_xxx to vary the install paths of various components. See
the CMake GNUInstallDirs module documentation for more details. An
example might be for Slackware where package documents are expected to
be installed into
<install-prefix>/doc/<package-name>-<package-version>/ whereas the GNU
default is to install them into
<install-prefix>/share/doc/<package-name>/. To achieve this set the
CMake variable CMAKE_INSTALL_DOCDIR as follows when configuring:
cmake -D CMAKE_INSTALL_DOCDIR:PATH=doc/wsjtx-1.7.1 -D CMAKE_INSTALL_PREFIX= ...
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7623 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This change obseletes Mac OS X 10.7 and 10.8 which are not supported
by Qt 5.8.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7613 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This builds on the static phase compensation in the MSK144 decoder and
the phase analysis and polynomial fitting capabilities also in teh
MSK144 decoder, by allowing captured data to be selected for phase
equalization from the WSJT-X UI.
Reads captured phase compensation curve estimate files containing
fitted polynomial coefficients and measured phase data from MSK144
receptions. Intent is to select a compensation curve that is from a
known transmitter like an SDR which have good phase linearity. Phase
plots and compensation polynomials may be viewed and compared with the
current compensation polynomial. A suitable polynomial can be applied
to be use in all further decoding of MSK144 signals.
Plots of the currently selected polynomial and its modified higher
order terms polynomial which is actually used in equalization (this
plot may be dropped - it is just for kicks at the moment). When a
captured phase analysis file is loaded plots of the measured phase and
the proposed best fit polynomial are shown.
Basic maintenance is also included allowing clearing and loading
captured plots and an option to revert to a flat no equalization
curve.
More to come on this as amplitude equalization is also possible, this
will probably be similar, maybe even plotted on the same graph with
dual axes for phase and amplitude. Amplitude correction from a
measured reference spectrum could be viewed and selected for
equalization for all modes. TBC...
This change also introduces the QCustomPlot 3rd party
widget. Currently this is statically linked from a qcp library built
by the WSJT-X CMake script. This will probably be migrated to a shared
object (DLL) build as a CMake external project, once some CMake script
re-factoring has been completed, which is more in line with the
QCustomPlot author's intentions. This will allow efficient reuse in
other tools shipped with WSJT-X.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7570 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This issue was probably triggered by OpenMP forcing some large arrays
onto the stack where Fortran might normally make them static. The
change that seemed to make the difference was putting cdat2 in
msk144_freq_search into static storage. I am not convinced that the
problem is really solved but it works for now.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7130 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Also increase Windows stack size from 1Mbyte to 8Mbyte due to the
impact of Fortran arrays not being automatically moved to static
storage above a certain size. This needs attention by setting the SAVE
attribute on large arrays that do not need to be on the stack i.e. do
no need to be duplicated across OpenMP thread teams.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7122 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
The change also includes a new MultiSettings feature that allows
settings keys common to all configurations. The splash screen disable
is the first of those to be used.
The MultiSettings class has been made safer to use by ensuring it
saves and re-enables the current QSettings group when doing multi
settings actions. This allows access to common, across configuration,
items while within a normal settings group without breaking the
MultiSettings internal implementation.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7073 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Two new validator classes CallsignValidator and
MaidenheadLocatorValidator are introduced and used in the
Configuration and MainWindow implementations.
MaidenheadLocatorValidator supports different lengths and minimum
required lengths with a default of subsquare with square being
required.
The message_aggregator application has been enhanced to show the
current DX call and DX grid as shown in the WSJT-X main window.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6903 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Instead of using the Qt QMessageBox class directly a new class
MessageBox (MessageBox.hpp) has been added to deal with platform
independence issues like the title not being shown on Mac OS X.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6861 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Now exporting a shared and static version of the wsjtx_udp library.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6695 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
If needed then requires a newer CMake minimum version.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6692 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Build now creates and installs a UDP library that contains the server
side of the UDP messaging facility. This library is used by the
udp_daemon and message_aggregator reference examples. The new library
is currently a static archive but can also be built as a shared
library. The library allows third party Qt applications to easily
access UDP messages from WSJT-X.
Refactored the message_aggregator reference example to split out
classes into separate translation units. Added new functionality to
exercise the new UDP status fields, highlight own call, CQ/QRZ
messages and decodes near Rx DF.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6691 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Multiple configurations are accessed and maintained from a new main
window menu bar pop up menu "Configurations". The prior settings are
the "Default" entry. New configurations may be added by cloning
existing ones. Maintenance and navigation is via sub menus for each
configuration.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6623 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Setting the CMake option WSJT_RIG_NONE_CAN_SPLIT=ON will buold a
version taht allows split operating with the dummy rig. This must not
be shipped since it will generate incorrect Tx tones.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6589 ab8295b8-cf94-4d9e-aec4-7959e3be5d79