I assume you're compiling hamlib -- so change netrigctl.c on this line
   .timeout = 3000,  /* enough for the worst rig we have */
Make that 5000 or higher and see if that makes it happy.  I may change that to 
10000 as that is now the worst rig we have.
   .timeout = 5000,  /* enough for the worst rig we have */

At some point the thing has to timeout to let you know something is wrong.  I 
won't be implementing ad nauseum retries.
If SparkSDR can't handle it's own timeouts than that's their problem.
Mike W9MDB
 

    On Monday, July 12, 2021, 11:06:29 AM CDT, Alan Hopper 
<[email protected]> wrote:  
 
 Hi Mike,this is with WSJT-X connecting to the fake rigctld in SparkSDR.  It 
connects and then if a delay happens some time later (hours in real use) it 
will reconnect again but if the delay happens again it does not retry. Maybe be 
retry was planned for the initial connect? For long running connections it 
would be nice if it kept reconnecting.73 Alan M0NNB
On Mon, Jul 12, 2021 at 4:45 PM Black Michael via wsjt-devel 
<[email protected]> wrote:

It should be trying to reconnect twice with 3 second timeout each time.
What rig are you using?  You could increase the timeout value  by adding a 
switch to rigctld
rigctld --set-conf=timeout=10000

You could also try increasing the retry in rigctld.c from 3 to maybe 4 or 5 and 
see if that makes it happy.

        if (retcode < 0 && !RIG_IS_SOFT_ERRCODE(-retcode))
        {
            int retry = 3;


Mike W9MDB

 

    On Monday, July 12, 2021, 10:08:36 AM CDT, Alan Hopper 
<[email protected]> wrote:  
 
 Hi all,I've been doing some testing to try and make the hamlib NET rigctl 
connection to SparkSDR as robust as possible. Very infrequently (maybe once in 
24hrs) responses from spark are delayed by a few seconds, This causes a time 
out at the WSJT-X side which then auto reconnects which is great, however if it 
happens a second time the auto retry does not seem to happen (I see no attempt 
to reconnect) and a dialog pops up with :-
"Hamlib error: Communication timed outread_string called, rxmax=1024
read_string(): Timed out 3.000 seconds after 0 chars
rig.c(1000):rig_open return(-5) while opening connection to rig

Timestamp: 2021-07-11T20:55:06.057Z"
I've added an artificial delay to test and the auto retry only ever appears to 
happen once. A manual retry does work after the second failure.
In the ideal world spark would never send a delayed response but it is often 
used on heavily loaded pcs running many WSJT-X instances 24/7.  The delays 
happen in a low level socket send so I don't think I have any control over it.
I see it in 2.4.0 and 2.5.0rc3, I've not tested with any other versions.
Is this intended behaviour or a bug?
73 Alan M0NNB

 _______________________________________________
wsjt-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wsjt-devel
  _______________________________________________
wsjt-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wsjt-devel

  
_______________________________________________
wsjt-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wsjt-devel

Reply via email to