Commit Graph

87 Commits

Author SHA1 Message Date
Bill Somerville
780b1f74ee
Message Client allows sending multicast UDP on multiple interfaces 2020-11-10 20:12:37 +00:00
Bill Somerville
662ed0fa7a
Network interface selection for outgoing UDP multicast datagrams
Default  selection  is  the  loop-back interface.  Users  who  require
interoperation  between  WSJT-X   instances  cooperating  applications
running on different hosts should  select a suitable network interface
and  carefully choose  a multicast  group address,  and TTL,  that has
minimal scope covering the necessary  network(s). Using 224.0.0.1 is a
reasonable    strategy    if   all    hosts    are    on   the    same
subnet. Administratively  scoped multicast group addresses  like those
within 239.255.0.0/16  can cover larger  boundaries, but care  must be
taken if the local subnet has access to a multicast enabled router.

The  IPv4  broadcast  address  (255.255.255.255) may  be  used  as  an
alternative  to multicast  UDP, but  note that  WSJT-X will  only send
broadcast UDP datagrams  on the loop-back interface,  so all recipient
applications must be running on the same host system.

The reference UDP Message protocol  applications are being extended to
be configurable  with a list of  interfaces to join a  multicast group
address on. By default they will only join on the loop-back interface,
which is also  recommended for any applications designed  to take part
in the WSJT-X  UDP Message Protocol. This allows full  user control of
the  scope of  multicast  group membership  with  a very  conservative
default  mode  that will  work  with  all interoperating  applications
running on the same host system.
2020-11-10 20:12:33 +00:00
Bill Somerville
542ffe8311
Improve audio device handling and error recovery
where possible  audio devices that  disappear are not  forgotten until
the user selects another device, this should allow temporarily missing
devices or forgetting  to switch on devices before  starting WSJT-X to
be  handled more  cleanly. If  all else  fails, visiting  the Settings
dialog and  clicking OK should  get things  going again. Note  that we
still  do not  have  a  reliable way  of  detecting  failed audio  out
devices, in that  case selecting another device and  then returning to
the original should work.

Enumerating  audio devices  is expensive  and on  Linux may  take many
seconds per  device. To avoid  lengthy blocking behaviour until  it is
absolutely necessary,  audio devices are  not enumerated until  one of
the "Settings->Audio" device drop-down lists is opened. Elsewhere when
devices  must be  discovered  the  enumeration stops  as  soon as  the
configured device is  discovered. A status bar message  is posted when
audio devices are being enumerated as a reminder that the UI may block
while this is happening.

The message box warning about  unaccounted-for input audio samples now
only triggers when  >5 seconds of audio appears to  be missing or over
provided. Hopefully this will make the warning less annoying for those
that are  using audio sources  with high and/or variable  latencies. A
status  bar message  is still  posted for  any amount  of audio  input
samples  unaccounted for  >1/5 second,  this message  appearing a  lot
should be considered as notification that  there is a problem with the
audio sub-system, system load is  too high, or time synchronization is
stepping the PC clock rather  than adjusting the frequency to maintain
monotonic clock ticks.
2020-09-20 18:20:16 +01:00
Bill Somerville
5014c62bfa
Notify user when enumerating audio devices 2020-09-13 17:12:11 +01:00
Bill Somerville
b48b23450d
First iteration of optional TCP/IP client for PSK Reporter 2020-06-21 01:36:30 +01:00
Steven Franke
70b84478f0 Add WW_DIGI to the special activities section. Make necessary changes to
the decoders. Also, an experimental change to the FT4 decoder to base
AP decoding passes on 4-symbol block detection instead of single symbol
detection. This provides about 1 dB improvement on the AWGN channel.
Sensitivity changes on other channels are TBD.
2020-01-24 11:26:36 -06:00
Bill Somerville
ca07d22e89
Add option to highlight un-worked grid fields
This  is a  check box  option  in "Settings->Colors"  rather than  new
    highlighting types so un-worked  field highlighting and un-worked grid
    square highlighting are mutually exclusive. The check box state can be
    changed at  any time, no  log rescanning is necessary,  and subsequent
    decoded message highlighting will be according to the check box state.
2019-08-09 11:25:50 +01:00
sirhc808
1f57ba5fec improve physical structure 2019-07-02 12:45:05 -05:00
sirhc808
27d4471cde Merge branch 'ft9_refactor' into feat-refactor
# Conflicts:
#	CMakeLists.txt
#	lib/ft4/getcandidates4.f90
#	lib/ft4/sync4d.f90
2019-07-02 12:06:14 -05:00
sirhc808
ee5d5c8ae9 improve physical structure 2019-07-02 10:19:43 -05:00
Bill Somerville
c65d832356
New UDP messages to close and reconfigure WSJT-X plus more status fields
The Status(1) message acquires the new fields Frequency Tolerance, T/R
Period,  and  Configuration Name.  The  Rx  DF,  Tx DF  fields  become
unsigned (this should be a benign change which is just for correctness
as -ve values have never been possible).

The   Close(6)  message   becomes  bi-directional   allowing  external
applications to gracefully close down WSJT-X instances.

A  new  message SwitchConfiguration(14)  is  provided  that allows  an
external application to  switch the current configuration  of a WSJT-X
instance.

Another  new  message  Configure(15)  is provided  to  allow  external
applications to adjust some key parameters like the mode and submode.

See the  NetworkMessages.hpp header  commentary for full  details. The
UDPExamples/MessageAggregator reference  application has  been updated
to be able to exercise all of the above changes.

Note   that   this   commit   enforces  stricter   checking   on   the
"Settings->Reporting->Allow  UDP  requests"   option,  which  must  be
checked  before  any state  changing  incoming  messages to  a  WSJT-X
instance are processed.
2019-06-25 14:35:58 +01:00
Bill Somerville
381faca99a
Add option to include or exclude WAE extra entities in DXCC entity lookups
Also  refactored  object  relationships  as a  start  to  implementing
contest multiplier highlighting.
2019-05-29 23:35:18 +01:00
Bill Somerville
67ab7c7b8b
Add Alt+O hotkey to change the operator quickly without going to the Settings dialog
Thanks to Jim, W2JC, for suggesting this enhancement.
2019-05-28 12:18:54 +01:00
Joe Taylor
7334ebb20b New user option: "Calling CQ forces Call 1st". 2019-05-23 14:31:08 -04:00
Joe Taylor
fdfb655b06 Option to select "Low sidelobes" or "Most sensitive" for waterfall spectra. 2019-02-25 15:04:05 -05:00
Bill Somerville
e871860642 Option to always start new decode periods at the top of the Band Activity window 2019-01-08 18:03:43 +00:00
Joe Taylor
8379fa86eb Optional key bindings for F1 through F5, especially for contest use. 2018-12-28 11:19:29 -05:00
Bill Somerville
cf6311e007 Scan ADIF log asynchronously and new settings button to rescan ADIF log 2018-11-30 16:26:46 +00:00
Bill Somerville
947b429723 Start implememntation of database based Fox log model and a new Fox log window widget
This change incorporates a reorganization of the GUI code with
widgets, validators, models, and item delegates being moved to
sub-directories.

Relax  the   requirements  of   the  ForeignKeyDelegate   and  related
CandidateKeyFilter classes to  allow them to work  with constant model
pointers for both referenced and referencing models.
2018-11-07 17:49:45 +00:00
Steve Franke
ab34db7556 Get rid of unused variable ldecode77. 2018-11-05 14:40:55 -06:00
Steve Franke
3d4dd9c761 More work on contest type selection. 2018-10-31 15:53:10 -05:00
Steve Franke
a9d096941a A second attempt at grouping contest selection radio buttons using hints from Bill. Contest types are now defined in a named enum in the Configuration class, Configuration::SpecialOperatingActivity. Current contest selection is queried using a Configuration class function, m_config.special_op_activity(). 2018-10-30 16:06:01 -05:00
Steve Franke
9baa8c755d Change Fox/Hound checkboxes to radio buttons and move them into the same group box as the other contest radio buttons.
Make the group box checkable and the radio buttons mutually exclusive.
Prevent switch from any other mode to MSK144 and put up an error box if the contest radio button setting is not allowed for MSK144.
If currently in MSK144 mode and an invalid contest type is selected, put up an error box and change mode to FT8 where any contest type is allowed.
2018-10-27 17:21:29 -05:00
Bill Somerville
8215f3412b Priorities for decoded message highlighting and new worked before internal database
Settings option to highlight not worked before entities/grids/calls by
mode. Fix issues with highlighting  decodes and generally refactor the
internal  workings  of  ADIF  and  QSO  recording  for  worked  before
detection.
2018-10-25 00:00:19 +01:00
Bill Somerville
873b1d1c43 Updated decode highlighting and LotW user's data file management
Includes a new settings facility  with the highlighting being contrled
by a new model class and a  modified QListView to display the data for
editing. Edits  include enable and  disable check boxes,  a contextual
pop-up menu to adjust backkground and foreground colours.

Still   to   be   implemented    are   priorities   for   highlighting
categories. This  will be adjustable  by drag  and drop in  the Colors
settings panel, it is already implemented by the priority order has no
effect on highlighting of decodes yet.

The LotW  users data file fetch  and time since user's  last upload is
now controled from the settings dialog.

This change also drops support for Qt versions before 5.5 so that many
workarounds for earlier versions can be removed.

Debug trace is slightly modified to make better use of the Qt built in
facilities to format and synchronize cross thread messaging.
2018-10-17 00:26:04 +01:00
Joe Taylor
c9cb15052c Option to AutoLog in contests; display to "Fox and Contest Log" window. 2018-10-03 20:08:47 +01:00
Bill Somerville
617b845a85 Move LotW users file management to Configuration implementation 2018-10-01 22:43:13 +01:00
Joe Taylor
2c6344cdfa Switch automatically to EU VHF contest messages, with notification to user. 2018-09-05 11:07:27 -04:00
Joe Taylor
410cd2b9a1 Allow user choice of "Not in LoTW" highlighting color. 2018-09-01 15:42:02 -04:00
Joe Taylor
7df048d10a Extend color options to include New DXCC, call, and grid by band. 2018-08-02 14:35:55 -04:00
Joe Taylor
adcffe3db4 Pass "nContest" value to ft8_decode.f90. 2018-07-27 09:30:00 -04:00
Joe Taylor
b6cd4fba41 Add widgets for input of contest exchanges. 2018-07-06 14:29:36 -04:00
Joe Taylor
2963e8c19a Add a m_config.bNoSpecial() function. 2018-07-03 10:38:50 -04:00
Joe Taylor
394efcae71 Add radio buttons for None, FieldDay, RTTYroundup, NA_VHF_Contest, and EU_VHF_Contest. 2018-07-02 15:58:55 -04:00
Joe Taylor
ed7f2a2aa6 Add checkboxes for use of 77-bit messages. 2018-07-02 15:19:17 -04:00
Bill Somerville
3c384f7cbb Add UDP message to set temporary Maidenhead locator
When "Auto  Grid" is  checked in  "Settings->General" UDP  messages of
type "Location" will update a temporary  DE grid square. The intent is
to  allow  an external  application  joining  the WSJT-X  UDP  message
protocol to dynamically update the DE grid during mobile operation.

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

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

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

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8454 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2018-02-04 22:42:35 +00:00
Joe Taylor
ec644ae5f6 Implement optional x4 tone spacing for FT8, JT9, WSPR. Also some code cleanup.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8447 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2018-02-02 15:18:39 +00:00
Joe Taylor
053a83dc52 Option to display principal prefix instead of country name.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8287 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-12-04 17:55:24 +00:00
Joe Taylor
bc31f581bd Broadcast logged QSOs to N1MM Logger+. Mostly thanks to Brian, N9ADG. Needs testing!
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8269 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-11-29 21:05:27 +00:00
Joe Taylor
8b1ec72b1f Operator field for DXpeditions and other Multi-Op events.
Operator callsign is sent to DIF log if not empty.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8267 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-11-29 19:43:27 +00:00
Joe Taylor
3e5f703ed2 Starting to experiment with FoxCalls.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8197 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-10-30 15:18:54 +00:00
Bill Somerville
6424b4986f Improved frequency calibration
Measure check  box added to FreqCal  mode, check to record  to fmt.all
with  current  calibration correction  disabled,  uncheck  to see  the
impact of the current calibration parameters.

The  fmt.all  file  is  now  optionally  renamed  to  fmt.bak  when  a
calibration solution  is accepted.  This allows  users to  preserve an
fmt.all file that they might have edited for best fit.

A calibration procedure might proceed thus:-

1) select FreqCal mode,

2) step through suggested  calibration test frequencies deleting those
that have no usable signal,

3) enable "Menu->Tools->Execute frequency calibration cycle" and check
that suitable signals are present,

4) select a suitable FTol and T/R period,

5) check  "Measure" and let the  cycle complete a few  times to gather
data,

6) uncheck "Measure" to complete the data capture, optionally tidy the
fmt.all file with your favourite editor,

7) push "Menu->Tools->Solve for  calibration parameters" and accept if
you like what you see,

8) sit back and admire your accurately frequency calibrated station.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8167 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-10-13 22:34:21 +00:00
Bill Somerville
592316fc42 Add an accessor method to Configuration to get the current calibration parameters
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8163 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-10-06 16:18:17 +00:00
Bill Somerville
a3bdea0a21 Add "Apply" button to calibration solution message box
Make calibration  solution application iterative so  that calibrations
can be applied sequentially if desired.

Tidy up calibration solution messages boxes and make i18n friendly.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8153 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-10-01 21:44:15 +00:00
Joe Taylor
d7baae12f8 Another try at optimizing the GUI for simplex and split behavior. Details below:
1. Checkbox "Double-click on call sets Tx and Rx freqs" has been removed
from the Settings -> General tab.

2. Checkbox "Lock Tx Freq" on main window is relabled "Hold Tx Freq".

3. Behavior now defaults to the "simplex" behavior in use up to code
revision r8123.  In particular, double-clicking on decoded mesages
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.

4. If "Hold Tx Freq" is checked, double-clicking on decoded messages
moves the Rx frequency; Tx frequency is moved only if CTRL was held
down.

5. 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 (which
is why this box is no longer labeled "Lock Tx Freq").


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8146 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-09-30 17:48:46 +00:00
Joe Taylor
5c8458de35 Add an option to enforce simplex operation (moving both Tx and Rx frequency) when double-clicking on a decoded text line.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8144 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-09-29 17:40:30 +00:00
Bill Somerville
c8dc00320f Fix initialization issue with user modified application font
The main  window font  has to  be set  after main  window construction
otherwise the menu bar font does not get set.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8077 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-09-09 19:34:54 +00:00
Bill Somerville
9f1cd9defd Fix issue with v1.8.0 trashing v1.7 working frequencies
Note  that  reverting  to  v1.7  will  invalidate  any  saved  working
frequencies  from v1.8  but proceeding  to v1.8  again will  present a
reset set of working frequencies i.e. any user defined entries in v1.8
will be lost of a v1.8 -> v1.7 -> v1.8 transition is made.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@8018 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-08-09 16:06:17 +00:00
Bill Somerville
e910277ebe Force Settings tab to Radio tab when navigating there from a rig error message
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7947 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-07-26 01:38:37 +00:00
Bill Somerville
94cec5bdc1 IARU region specific working frequencies
Working  frequencies can  be for  all regions  or for  individual IARU
regions. This allows each mode band  tuple to have one or more working
frequencies which  can include local  ones only offered when  the user
configures their IARU region.

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

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

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

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7810 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2017-07-07 23:11:41 +00:00