Re-enabling the WSJT-X i18n facilities. This allows translation files
to be created for languages that are automatically used to lookup
translatable strings. To enable a new language the language name must
be added to the CMakeLists.txt LANGUAGES list variable in BCP47 format
(i.e. en_US, en_GB, pt_PT, ...). Do one build with the CMake option
UPDATE_TRANSLATIONS enabled (do not leave it enabled as there is a
danger of loosing existing translated texts), that will create a fresh
translations/wsjtx_<lang>.ts file which should be immediately checked
in with the CMakeLists.txt change. The .ts should then be updated by
the translator using the Qt Linguist tool to add translations. Check
in the updated .ts file to complete the initial translation process
for that language.
To aid translators their WIP .ts file may be tested by releasing
(using the lrelease tool or from the Linguist menu) a .qm file and
placing that .qm file in the current directory before starting
WSJT-X. The translations will be used if the system locale matches the
file name. If the system locale does not match the file name; the
language may be overridden by setting the LANG environment variable.
For example if a wsjtx_pt_PT.qm file is in the current directory
WSJT-X will use it for translation lookups, regardless of the current
system locale setting, if the LANG variable is set to pt_PT or pt-PT.
On MS Windows from a command prompt:
set LANG=pt_PT
C:\WSJT\wsjtx\bin\wsjtx
elsewhere:
LANG=pt_PT wsjtx
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
Hamlib now used libusb-1.0 and since that is available on Windows we
can now build with it across platforms. This change allows for that if
the custom USB backends are configured in Hamlib.
As it looks like Hamlib v3.1 will be suitable for WSJT-X this change
also puts in place what is needed to link to a Hamlib SO/DLL/DYLIB
when required. This is switched on by not defining the CMake variable
hamlib_STATIC. This could be used on Windows and Mac but Linux still
must have Hamlib statically linked due to repository versions being
too old.
For now Hamlib remains statically linked for consistency across
platforms.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6581 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
The latest Clang shipped with Apple Xcode errors on unrecognized flags
that gcc/g++ accept. By using generator expressions the OpenMP flag
is now only applied to Fortran compiles when needed on Mac. Note that
this is necessary since the Apple Clang does not support OpenMP so we
have to hack the link to support OpenMP in jt9 by mixing gfortran OpenMP
object code with Clang/Clang++ object code.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6566 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2. Add ability to set ndepth and do message averaging ti fer65.
3. Correct SNR values for measured Doppler width.
4. Comment out the "write(62..." diagnostics.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6537 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
1. Measure Doppler width by fitting a (modified) Lorentzian.
2. Don't call "slope" in sync65().
3. New definition of "sync1".
4. Get snr from sync1.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6536 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Clang++ detected some warnings that g++ did not.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6409 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Missing '/' character on directory URL. QUrl treats URLs not ending
with a '/' character as file URLS and QUrl::resolved() strips
filenames.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6393 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Broadcast Wave Format is a backwards compatible superset of teh
Microsoft WAV file format that has been implemented in teh hope that
Windows File Explorer might show the WAV file metadta, as it turns out
that is not the case but as it's done anyway.
It appears to be impossible to write a WAV file such that MS Windows
File Explorer shows any metadata so unless we adopt FLAC format audio
files we will have to show metadata with our own software :(
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6384 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
The WAV file format allows for optional header content, allow for this
in preparation for adding some metadata to WSJT-X recorded WAV files.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6335 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Re-factor the JT4, JT65 and JT9 decoders as Fortran modules using type
bound procedures, the decoder types implement a callback procedure
such that he client of the decoder can interpret the decode results as
they need.
The JT4 decoder has a second callback that delivers message averaging
status. Also the previously separate source files lib/jt4a.f90 and
lib/avg4.f90 have been merged into lib/jt4_decode.f90 as private type
bound procedures of the new jt4_decoder type.
Re-factored the lib/decoder.f90 subroutine to utilize the new decoder
types. Added local procedures to process decodes and averaging results
including the necessary OpenMP synchronization directives for parallel
JT9+JT65 decoding.
Added the jt65_test module which is a basic test harness for JT65
decoding. Re-factored the jt65 utility to utilize the new jt65_test
module.
Changed a few integers to logical variables where their meaning is
clearly binary.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6324 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Groundwork for calling the decoders directly from C/C++ threads.
To access the timer module timer_module must now be used.
Instrumented code need only use the module function 'timer' which is
now a procedure pointer that is guaranteed to be associated (unless
null() is assigned to it, which should not be done). The default
behaviour of 'timer' is to do nothing.
If a Fortran program wishes to profile code it should now use the
timer_impl module which contains a default timer implementation. The
main program should call 'init_timer([filename])' before using 'timer'
or calling routines that are instrumented. If
'init_timer([filename])'. If it is called then an optional file name
may be provided with 'timer.out' being used as a default. The
procedure 'fini_timer()' may be called to close the file.
The default timer implementation is thread safe if used with OpenMP
multi-threaded code so long as the OpenMP thread team is given the
copyin(/timer_private/) attribute for correct operation. The common
block /timer_private/ should be included for OpenMP use by including
the file 'timer_common.inc'.
The module 'lib/timer_C_wrapper.f90' provides a Fortran wrapper along
with 'init' and 'fini' subroutines which allow a C/C++ application to
call timer instrumented Fortran code and for it to receive callbacks
of 'timer()' subroutine invocations. No C/C++ timer implementation is
provided at this stage.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6320 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Samples are downloaded from a web server, currently the SF download
server. The samples are stored in the source controlled samples
directory and the CMake script there builds a suitable directory tree
for upload to the web server under samples/web containing the samples
hierarchy and the generated JSON contents database file. The samples
CMake script also defines an 'upload-samples' target that uses rsync
to efficiently upload the samples and the accompanying contents JSON
database file.
Any directory structure under the samples directory may be created, to
add a new sample file simply add the file to source control and amend
the list of sample files (SAMPLE_FILES) in samples/CMakeLists.txt.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6308 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Also use correct C binding and have compilers determine sizes and
offsets.
The wsjtx.exe program now owns the decoder shared data that is shared
with symspec. It is now in struct dec_data, still a global variable
for now but hopefully a MainWindow member variable soon.
The struct dec_data (in both C/C++ and Fortran) has a sub structure
with the decoder parameters which enables copying and manipulating a
lot cleaner.
New of changed types of shared data must still be modified in
commons.h and a new file lib/jt9com.f90, they must stay in sync as a
pointer to the structure is passed between C and Fortran.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6290 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Build script now builds jt65. The tools jt65 and jt65sim usilize the
options module for all comamnd line parsing.
The tool jt65sim now has conventinal command line options and
switchs. Default values have been added where appropriate and options
documentation updated. An option to disable PRNG seeding has been
added.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6276 ab8295b8-cf94-4d9e-aec4-7959e3be5d79