Oops...make that code this instead...still have to parse the frequency. CHKSCN1ARG(num_sscanf(buf, "%"SCNfreq, freq));
#if 0 ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1); if (ret <= 0) { return (ret < 0) ? ret : -RIG_EPROTO; } *vfotmp = rig_parse_vfo(buf);#else vfotmp = "Unknown";#endif On Wednesday, May 13, 2020, 12:47:31 PM CDT, Black Michael <mdblac...@yahoo.com> wrote: As a test try changing dummy/netrigctl.c line 622 and block out the code that expects another argument from "f". With the new code all you should need to do in spark is also provide the VFO along with the frequency.So f is now is expected to answer like this to say which VFO the frequency came from.14074000VFOA #if 0 CHKSCN1ARG(num_sscanf(buf, "%"SCNfreq, freq)); ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1); if (ret <= 0) { return (ret < 0) ? ret : -RIG_EPROTO; } *vfotmp = rig_parse_vfo(buf);#else vfotmp = "Unknown";#endif And On Wednesday, May 13, 2020, 12:38:50 PM CDT, Alan Hopper <a...@samsararesearch.com> wrote: Hi Bill,this is how spark currently works with a connection per virtual transceiver, eliminating the need for virtual audio cables would be the next level of simple. If I were to create a Hamlib module it would probably just use the rigctl protocol which does not make much sense :), I'd prefer to spend my time working on something that improved the situation by including audio as well (multipsk has an interface that allows this). I understand if the protocol is internal and subject to change it is a mistake to use it but it works and does what a number of people find useful, it would be nice to keep using it. I remember looking at the Flex and pihpsdr protocols when I wrote my cat code and chose rigctl because it was so much cleaner, but if needs must.I really appreciate your help with this and don't mean to argue, I just like the rigctl protocol.73 Alan M0NNB On Wed, May 13, 2020 at 5:52 PM Bill Somerville <g4...@classdesign.com> wrote: Hi Alan, there are already network capabilities that Hamlib back ends can access, it is not tied to serial port connections by design, reference the Flex 6xxx one for example. Using individual connections per Rx must be the way to go, then a client can open as many rig connections using the Hamlib API as it wishes or separate clients can open one each etc. This is how it is kept simple! 73 Bill G4WJS. On 13/05/2020 17:41, Alan Hopper wrote: Mike, thanks very much, If there is anything I can do to help/test or change in my software please let me know. I've been looking through the dump_state source and that part is a bit of a reverse engineering job:) but if that is the cause of the problem I'll dive in if it will fix it in the short term. In the long term I would really like a network protocol that combines rig control and audio or iq data, it is a bit crazy that connecting an sdr to other software is more tricky than a conventional radio. As some people connect tens of simultaneous instances of digimode sw to spark it is particularly desirable to keep it simple. 73 Alan M0NNB On Wed, May 13, 2020 at 4:44 PM Black Michael via wsjt-devel <wsjt-devel@lists.sourceforge.net> wrote: I'm going to see about fixing the backwards compatibility. Hopefully today... Mike On Wednesday, May 13, 2020, 09:27:48 AM CDT, Alan Hopper <a...@samsararesearch.com> wrote: Hi Bill and Michael thanks very much for your reply. I added the response to 'q' but as expected no magic fix. The error message from wsjtx is 'Hamlib error: Communicatons timed out while getting current VFO frequency'. If the protocol has not been published then it has been at least well documented here https://www.systutorials.com/docs/linux/man/8-rigctld/ which seems to encourage its use directly. I have a personal hatred of virtual serial ports (and audio ports), serial and audio connections make perfect sense for traditional radios connected to PCs but not for connecting SDR clients to digi mode software. I had not realised that the rigctl protocol was considered internal and entirely take you point that in that case it is my problem, however it is a great protocol that does just what I need and the creator is to be commended. I shall investigate other options for network connection to Hamlib. The published api for spark is the rigctl protocol :) 73 Alan M0NNB On Wed, May 13, 2020 at 1:02 PM Bill Somerville <g4...@classdesign.com> wrote: On 13/05/2020 11:43, Alan Hopper wrote: > Hi Bill, > I'm the developer of SparkSDR, spark does indeed pretend to be rigctld > and is not the only one, QUISK also does the same thing. To my mind It > makes good sense to use a published proven network protocol rather > than invent yet another and then have to write further software to use it. > > This is the log from spark which shows connection happens but appears > to be dropped and retried after a few messages. WSJTX is actively > sending the quit command, is there any debugging/logging I can use in > wsjtx to find out what it does not like? Hi Alan, I realize that other applications spoof a rigctld server, the problem is that AFAIK the Hamlib NET rigctl protocol is not published as useable by other applications. That in turn leads to this situation where an internal Hamlib change to the protocol breaks other applications. If SparkSDR, and others, either emulated an existing rig or preferably contributed a driver to Hamlib for their application if it is not possible to provide a complete enough emulation, then all that would be needed would be a serial port loopback like com0com to get Hamlib rigctl clients to talk to their software. IMHO that is the published way to get these things interoperating. Having dug the whole that they have fallen into I believe it is their responsibility to look at the Hamlib change history to work out how to become compatible with Hamlib v4. I can help with the immediate issue, the latest version of the Hamlib NET protocol is expecting a status reply from the quit (q) command. I believe it is expected that the server completes a graceful shutdown of that connection before returning an OK status. The key being that the server must be ready to re-establish an identical connection immediately after the quit status return with no race conditions. As to why the client is sending a quit (q) command I can't tell from your example but the error message in WSJT-X would probably make things clearer. 73 Bill G4WJS. _______________________________________________ wsjt-devel mailing list wsjt-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wsjt-devel _______________________________________________ wsjt-devel mailing list wsjt-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wsjt-devel
_______________________________________________ wsjt-devel mailing list wsjt-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wsjt-devel