Commit Graph

12 Commits

Author SHA1 Message Date
Bill Somerville 3ec6d211c8 Extend UDP status message - added Rx/Tx DF, call and grid information
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
2016-05-24 10:08:35 +00:00
Bill Somerville ef8c2ad0bb Clarify UDP network message schema negotiation prior to schema 3
Before schema  3 the Heartbeat(0)  message did not contain  a "Maximum
schema  number" field,  this field  being absent  implies that  schema
number 2 is the highest usable (schema 1 is broken and not used in the
field).

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6450 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-01-31 00:07:42 +00:00
Bill Somerville 58fab3474d Add WSPR decodes to UDP message protocol
The message_aggregator (MessageAggregator.cpp) has  been updated to do
something with WSPR decodes.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6101 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-11-15 23:03:11 +00:00
Bill Somerville 6bf8361850 Add decoding is busy flag to UDP Status message
Updated  message_aggregator reference  application  to  show the  mode
label in the status bar with a cyan background colour when decoding is
busy.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6089 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-11-13 15:44:11 +00:00
Bill Somerville 297e4c8755 Implement schema negotiation for the UDP protocol
The MessageClient and MessageServer classes now agree a maximum common
schema number  for the protocol described  in NetworkMessage.hpp. this
is achieved by  the client sending a Heartbeat  message specifying the
highest  schema number  supported, the  server responds  with messages
using  the minimum  of its  highest  supported schema  number and  the
highest  schema number  sent by  the client  in its  initial Heartbeat
message.   This  mechanism  enables  clients and  servers  built  with
different  generations  of the  message  schema  to interoperate  with
minimum loss of functionality.

It should  be noted that messages  may be extended with  new fields on
the  end of  the current  definition  so long  as the  meaning of  the
original fields  are unchanged.  Such  an extension does not  need the
schema number  to be  incremented. On  the other  hand, using  a newer
version  of  the  underlying  Qt  QDataStream::Version  should  always
increment  the schema  number  since  the NetworkMessage::Builder  and
NetworkMessage::Reader classes need to know which QDataStream::Version
to use.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5991 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-10-21 18:56:29 +00:00
Bill Somerville 1937612685 Remove Tab 1/2 differences from UDP interface
The UDP "Free  text" message comamnd should  not expose implementation
differences between tab one and tab two. The "send next" capability is
not available on  tab two so use  of it has been removed  from the UDP
interface.

The ability  to trigger  the immediate  (or in next  Tx period  if the
current period  is Rx) sending  of the  current free text  message has
been added to the UDP interface. This is done by sending a "Free text"
UDP message containing an empty text message with the "Send" flag set.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5725 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-07-27 11:34:11 +00:00
Bill Somerville 4bf1471d2b Made the UDP message to change the free text message optionally send ASAP
This  message now  has  the ability  to simply  change  the free  text
message or to change the message and send it ASAP.

The message_aggregator reference UDP server application exercises this
feature by sending a new free  text message on any edit and requesting
it be sent  by WSJT-X when editing is finished  i,e, RETURN pressed or
focus moved away.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5445 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-05-28 17:33:39 +00:00
Bill Somerville bbd7c06047 Added some more documentation to UDP message descriptions
Merged from the wsjtx-1.5 branch.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5355 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-05-10 12:02:14 +00:00
Bill Somerville 2e08443d08 Added flag to halt Tx UDP reply
The  reply  can now  be  used  to  turn off  auto  Tx  or to  halt  Tx
immediately. Also enforced the accept UDP requests setting for halt Tx
and set free text message replies.

Merged from the wsjtx-1.5 branch.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5336 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-05-06 22:25:56 +00:00
Bill Somerville 3b3ef37848 Added UDP replies to halt Tx and set free text message
Also added Tx status to status UDP message.

Added   the    above   features   to   the    reference   UDP   server
message_aggregator.

Merged from the wsjtx-1.5 branch.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5334 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-05-06 20:30:29 +00:00
Bill Somerville 26137ac1b1 Increased NetworkMessage schema number and Qt serialization format
The Qt_5_0  QDataStream serialization  format is  buggy, moved  to the
Qt_5_2 format.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5231 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-04-16 22:17:14 +00:00
Bill Somerville 3f75b4144a Send status information to UDP server
To  facilitate interaction  with other  applications WSJT-X  now sends
status  updates  to  a  predefined   UDP  server  or  multicast  group
address. The  status updates include the  information currently posted
to  the  decodes.txt and  wsjtx_status.txt  files.   An optional  back
communications  channel is  also implemented  allowing the  UDP server
application to control some basic actions in WSJT-X.

A reference implementaion of a typical UDP server written in C++ using
Qt is  provided to demonstrate  these facilities. This  application is
not intended  as a user  tool but  only as an  example of how  a third
party application may interact with WSJT-X.

The  UDP messages  Use QDataStream  based serialization.  Messages are
documented in  NetworkMessage.hpp along with some  helper classes that
simplify the building and decoding of messages.

Two  message  handling  classes   are  introduced,  MessageClient  and
MessageServer.  WSJT-X uses the MessageClient class to manage outgoing
and  incoming  UDP  messages   that  allow  communication  with  other
applications.   The MessageServer  class implements  the kind  of code
that a  potential cooperating  application might use.   Although these
classes  use  Qt serialization  facilities,  the  message formats  are
easily  read and  written  by  applications that  do  not  use the  Qt
framework.

MessageAggregator   is   a   demonstration   application   that   uses
MessageServer and  presents a GUI  that displays messages from  one or
more  WSJT-X instances  and  allows sending  back a  CQ  or QRZ  reply
invocation  by double  clicking  a decode.   This  application is  not
intended as  a user facing tool  but rather as a  demonstration of the
WSJT-X UDP messaging facility. It  also demonstrates being a multicast
UDP server by allowing multiple instances to run concurrently. This is
enabled by using an appropriate  multicast group address as the server
address.  Cooperating   applications  need  not   implement  multicast
techniques but  it is recomended  otherwise only a  single appliaction
can act as a broadcast message (from WSJT-X) recipient.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5225 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2015-04-15 16:40:49 +00:00