Double-clicks on 73 messages fixed. Fixed issue with incorrect decode
being selected by double-click. Refined auto-sequencing sign off
handling, any 73 or rr73 free text near Rx or Tx frequency taken as a
73 from QSO partner but if a standard message then must be from QSO
partner.
Moved functionality from MainWindow to DecodedText class.
More efficient picking of messages from decoded text windows by
extracting the text block directly.
Tighten up use of RR73 and skipping Tx1, these are now disabled for
relevant compound calls where they would break the QSO exchange.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8056 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Enable or disable by double-clicking the Tx4 button or the adjacent
radio button. Is auto disabled by a band change as it is expected that
the user reassess the conditions to see if message repetitions are
unlikely to be needed.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7950 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Enable and disable by double-clicking the Tx1 button or the adjacent
radio button. Tx1 message shows grayed out when the Tx1 message is
elided.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7949 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
moves the Rx frequency to theirs, this facilitates calling a station
who is busy and may have many callers on their frequency. Updated the
corresponding mouse shortcuts help text.
Allow for times with seconds when parsing fast mode and FT8 decodes.
Exclude the RR73 grid square from and grid validation or matching, it
is not a grid square any more as far as WSJT-X is concerned, it is an
RRR substitute.
Add a simple state machine for QSO progress such that replies and
auto-sequencing can be better controlled.
Get compound callsign edge cases working again and allow QSOs from and
to compound callsign holders working in as many situations as possible
including auto-sequencing and FT8 auto-reply mode. This does mean
that a "DE W6/K1ABC DM93" type message close to a callers Tx or Rx
frequency will be taken as a reply to a CQ call despite it not being
explicitly addressed back to the CQ caller. Compound callsigns should
work in MSK144 contest mode also as well as in short code modes with
some minor restrictions (short codes will not be used where
configuration demands that a message be used to send a full compound
callsign).
Auto sequencing has been made generic such that it can be used for
more than one mode if desired.
Allow the use of free text messages to sign off in auto sequenced QSOs
without the message being overwritten by the sequencer. Double click
actions have been added to the Tx5 radio and push buttons to revert
back to the default standard 73 message.
Make DisplayText class interface more idiomatic C++ and simplify a
bit.
Fixed some displayed widget arrangements for different modes and
sub-modes so that they are consistent when starting up and when
switching mode or sub-mode.
This is a big change which has been extensively tested but no doubt
there will also be some new defects introduced.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7939 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
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
More to come on this but should get Tab 2 basically working with
MSK144 running from a calling frequency.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7675 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Thanks to Mike, W9MDB, for this contribution.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7653 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Ctrl+M (Cmd+M) was being used as a menu shortcut and in key press
event handlers which leads to inconsistent behaviour on some
platforms. Removed menu action shortcut.
Also tidied up handling of the hide controls menu action by making it
a checkable action and using its checked state to store the control
hiding state.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7608 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
1. Level meter range increased to 0-90 dB.
2. Level meter reading is independent of slider setting.
3. For a trial period: thermometer bar goes red if a 16-bit sample
is within 5 dB A/D limit.
4. Slider can be used to adjust levels sent to waterfall.
5. Tx6 message is selected on program startup.
Thanks to W9MDB for most of this code.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7596 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
1. Menu item *Tools -> Execute frequency calibration cycle* is renamed and checkable. Cycling does not start until checked.
2. Ctrl+F10 now allows you to cycle manually through the list of calibration frequencies.
3. Calibration sequence lengths can be set to 5, 10, 15, or 30 s with the sbTR spinBox.
Also: don't set sbTR index to 0 when entering a slow mode.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7485 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
... rather than the working frequency.
Users set their working frequency and specify a calling frequency as a
kHz offset into the current Rx MHz with the main window spin box.
Calling CQ on the specified calling frequency is enabled by checking
the associated option.
Also enhanced the auto sequencing to handle short code 73 messages
correctly.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7339 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2. Correct several more flaws in making GUI controls visible or invisible.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7170 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This option, on by default, maintains backwards compatibility for
non-compound callsign holders. If switched off and they have
specified a 6 digit grid then it will be sent in the type 2 protocol
using two messages and a hashed callsign.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7053 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Fix the improper display of "Fast" checkbox.
Disable "CQ nnn" checkbox if MyCall is not K1JT or K9AN.
Use AppDir as path to execute the LDPC encode program.
Don't display submodes in mode label for JTMSK, MSK144.
Make Rx Freq spinner invisible in MSK144 mode.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7001 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
The watchdog configuration is now a spin box of minutes with a special
first value of disabled. WSJT-X counts down minutes on the minute, if
the countdown reaches zero any attempt to transmit is aborted. The
countdown is reset by any mouse press or key press event inside the
main window or if the Tx message changes (auto sequencing).
The status bar now shows the Tx watchdog countdown if it is
active. This information is shown to the right of the progress bar
text.
The warning message boxes triggered within the GUI update routine now
no longer block the GUI updates.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6840 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Qt does its best job laying out widgets consistently across platforms
if all unecessary constraints are removed. Widget layout policies can
almost always be used to achieve the required layout without reverting
to hard coded pixel values.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6759 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Pass file path for peg-128 files to fast_decode(). (Inelegant, but it works.)
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6741 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
The concept of a nominal receive and transmit frequency has been
introduced. This is used as a base frequency for Doppler correction,
frequency setting and reporting. The start up frequency is now zero
which is updated by the first rig control status report. This needs
more work to accommodate calling frequency plus working frequency
operation as is used for random MS operation etc..
The main window frequency display now shows the transmit dial
frequency while transmitting.
The mode changing logic sequence has been changed such that the rig is
correctly put into and taken out of split mode as required by the
target mode. This also avoids the "other" VFO having its frequency
changed when entering a mode that does not use split operating like
WSPR.
The main window band combo box edit may now be used to input an kHz
offset from the current MHz dial frequency. This is intended for
setting a sked or working frequency on the VHF and up bands. For
example the working frequency for 23cms might be set to 1296MHz and a
working frequency of 1296.3MHz would be selected by selecting the
23cms band with the combo box drop down list and then entering 300k
into the band combo box edit widget.
When using JT4 modes a CTRL+Click on the waterfall adjusts the nominal
frequency such that the frequency clicked on becomes the Tx and Rx
frequency using the fixed 1000Hz DF that JT4 modes use. This will
probably be extended to all QSO modes when used in VHF & up mode. This
assumes that 1000Hz is an optimal DF for both Tx and Rx and therefore
one can "net" to an off frequency, but visible on the waterfall,
caller with one click.
Improvements to OmniRig rig control including use of the serial port
control lines RTS or DTR, on the CAT serial port used by OmniRig, for
PTT control.
Incrementing transaction sequence numbers added to messages to and from
the rig control thread. This enables round trip status to be tracked
and associated with a request. For example a command that might cause
several asynchronous status updates can now be tracked in the
originating thread such that it is clear which updates are caused by
executing the request. This in turn allows updates to be held until
the request is complete i.e. the state is consistent with the results
of the request.
Messages to the rig control thread are now posted as a new state
(Transceiver::TransceiverState) object. The rig control thread tracks
requests and actions any differences between the prior requests and
the new state.
The rig control thread is now stored on the heap so that it can be
closed down and released as needed. Along with this the rig control
close down semantics are better defined avoiding some potential
deadlock situations.
If the rig is placed into split mode it will be reverted to simplex
mode when the rig connection is closed.
When using direct rig control via Hamlib, rigs that have A/B VFO
arrangements and no method to query the current VFO like many Icoms
and the Yaesu FT-817/857/897(D) series now have smarted frequency
updating requiring no VFO changes when changing the frequency. This
is particularly important when doing Tx Doppler correction to avoid
glitches.
The implementation of emulated split operating mode ("Fake It") is
simplified and improved.
A dummy Hamlib transceiver for PTT control on a separate port is no
long instantiated if CAT or VOX PTT control is selected.
The resolution and any rounding of the rig CAT frequency set and get
commands is determined automatically upon opening the rig connection.
This is needed to determine the rate of frequency updates for Doppler
tracking. It also allows the rig to be more accurately controlled.
Frequency calibration is calculated separately for the receive and
transmit frequencies.
Whether the rig modulation mode should be controlled is now a
constructor argument rather than being passed with individual rig
control requests.
Doppler shift correction is considerably enhanced with simpler
controls and much better rig control. A new mode of tracking called
"receive only" is introduced for those with rigs that cannot be QSY:ed
via CAT when transmitting. Such rigs have a Doppler correction
calculated for the middle of the next transmit period just before
transmission starts. While using Doppler tracking it is now possible
to adjust the sked frequency either using the new kHz offset feature
of the main window band combo box or by directly tuning the rig VFO
knob while holding down the CTRL key.
The astronomical data window that includes Doppler tracking control is
now opened and closed using a checkable menu item to avoid it being
accidentally closed.
Debug configuration rig control diagnostic messages now have a
facility argument for clearer and more standardized trace messages.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6590 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2. Make averaging and DS separately selecteble.
3. Clear nftt and avemsg on Clear Avg.
4. Allow fer65 to handle message averaging.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6543 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
The header QMetaType must now be included explicitly if no other
header includes QObject.
Adjust band combo box layout settings to ensure it is rendered at
minimum content size otherwise it stretches the signal meter width to
an ugly extent.
Also retired the "frequencies" settings file key so that upgrades and
downgrades between 1.5 and 1.6 no longer require rebuilding the
working frequencies list.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5727 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Also enhanced delete .wav files menu entry to delete .c2 files as
well.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5672 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
The Rx meter is now a better Qt citizen and can be resized. Added a
more obvious peak signal indicator. It is now a custom widget derived
from QFrame and is now directly added via promotion in Designer.
Added a custom widget to act as a letter spin box, this is used for
sub mode control. Switched the frequency tolerance widget to a combo
box with preset values so that it is more uniform across systems and
font sizes.
Added container widgets for group control of various UI widgets such
as QSO controls, DX call controls and WSPR controls. Introduced a
stacked widget to allow the WSPR controls to be swapped in in place of
the "QSO" controls. The "QSO" controls are are the Rx, Tx and related
controls along with the main tab widget with the message buttons and
fields. This means that the WSPR version of the main window (and EME
Echo mode) are now much cleaner.
Increased the size of the rig control widget and styled its colour
using a dynamic property so that it can be defined in the Designer UI
definition. Reinstated it as a push button to do a rig control reset
and retry after an error.
Reset most UI widgets to default properties, particularly removing any
fixed sizes so that they can resize freely when fonts are changed. The
overall layout is now controlled almost exclusively by stretch factors
on some of the rows and columns of the various grid layout managers.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5630 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This is now half way between the recent change to 30dB when the
formula was corrected to voltage attenuation from power and prior to
that.
Also corrected formula for the SoundOutput::attenuation property to
use the correct voltage attenuation calculation.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5579 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
Provide a dialog for band hopping scheduling which replaces tab
four. Ensure that split mode is not used for WSPR. Select the correct
tab for WSPR operation. Shift WSPR band hopping code out of the
MainWindow class.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5517 ab8295b8-cf94-4d9e-aec4-7959e3be5d79