Hi All, On 14/04/2015 19:46, Bill Somerville wrote: > On 14/04/2015 18:35, SM0THU wrote: >> Hi Bill, >> >> >> That sounds great. <snip> >> I’ll have to look into QDataStream and see how I can do that with Swift. > Here is the key information: http://doc.qt.io/qt-5/datastreamformat.html > > That page lists how the various supported data types are serialized. All > the numbers are Big Endian i.e. normal network byte ordering. There will > be a header and the message formats are implicit i.e. no type ids or > framing, just read the expected fields in the expected order. Simple and > compact. Strings will all be encoded as utf-8 and serialized as > QByteArray types i.e. 32-bit count followed by the string content > converted to utf-8. > > There will be a C++ header file that documents the message format, > headers, various message types and, content. Here is a provisional > snapshot of that: <snip> > So a message will be like: > > Magic number id: 0xabbccbda > Schema number: 0x00000001 > followed by the serialized payload. > > So for example a two field payload of a single string of length 10 that > maps to a 10 byte utf-8 sequence and a 32 bit number would form a > message of length 26 bytes: > > the eight byte header above > a string count of 10 serialized as a 32 bit unsigned BE number (4 bytes) > the 10 utf-8 bytes > 4 bytes of the number in BE format. > > The real messages have a payload header as well which is an unsigned > 32-bit number for the message type followed by a utf-8 string that > identifies the "arena" of the message. This last field the the same > unique string that identifies the instance of WSJT-X i.e. "WSJT-X" for > the default instance or "WSJT-X - rigname" for a WSJT-X instance started as: > > wsjtx --rig-name=rigname > > The message server (your application) cannot broadcast messages but it > can reply to a client (a WSJT-X instance) that it has received messages > from beforehand. This is sort of similar to a web server that serves > many clients except that the bulk of the data flows from client to > server and the protocol is UDP. This is now committed to the WSJT-X development branch. For now the demo application that shows off the UDP server facilities is built and installed along with the rest of the WSJT-X application. It is called message_aggregator(.exe) and is fully functional. I intend to remove this application from the installed tree for release builds but for convenience for now it is in for anyone who wants to investigate this new feature. >> 73 >> /Anders > 73 > Bill 73 Bill G4WJS. > G4WJS. >>> On 14 Apr 2015, at 19:23, Bill Somerville <g4...@classdesign.com> wrote: >>> >>> On 14/04/2015 17:57, Anders Östlund wrote: >>>> Hi, >>> Hi Anders, >>>> I'm writing a program that is kind of a JT-Alert alternative, but for Mac >>>> OS X. >>>> Being able to trigger a reply to a CQ from externally would be a great >>>> feature. >>>> >>>> I've got Mike's patch to work on r5068. Before trying to get it to work on >>>> a >>>> more recent commit, I just want to ask if there has been more work done on >>>> this already. >>> Yes, I am close to committing a full functioning version with a formal >>> message protocol that is extensible. I am adding some other messages >>> (outgoing from WSJT-X) that should be useful to applications like >>> JTAlert and yours such as status updates, WSJT-X closedown and >>> notification of QSOs logged. >>> >>> The protocol is binary and pretty simple, based on the Qt QDataStream >>> serialization capability. I am testing my changes right now after a >>> final clean up before check in, currently it is broken but I should have >>> it all working again shortly. >>>> I'd be happy to help out with testing or coding, if needed. >>> OK. What is your choice of implementation language and tools for your >>> application? I would like to have some reference code for various >>> platforms for usage of the message protocol. C++ with Qt I have in hand >>> already. >>>> 73 >>>> /Anders - SM0THU >>>> http://jt-bridge.eller.nu >>> 73 >>> Bill >>> G4WJS.
------------------------------------------------------------------------------ BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT Develop your own process in accordance with the BPMN 2 standard Learn Process modeling best practices with Bonita BPM through live exercises http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_ source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF _______________________________________________ wsjt-devel mailing list wsjt-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wsjt-devel