FLRig thread safety improved and now works WSJT-X split mode with multiple connections

pull/25/head
Michael Black W9MDB 2018-05-09 23:01:55 -05:00
rodzic 299bf17b22
commit b8cd8c0a9a
4 zmienionych plików z 960 dodań i 424 usunięć

Wyświetl plik

@ -41,7 +41,7 @@ sockets. This allows multiple user programs to share one radio (this needs
more development). Multiple radios can be controlled on different TCP ports
by use of multiple
.B rigctld
processes. The syntax of the commands are the same as
processes. Note that multiple processes/ports are also necessary if some clients use extended responses and/or vfo mode. So up to 4 processes/ports may be needed for each combination of extended response/vfo mode. The syntax of the commands are the same as
.BR rigctl (1).
It is hoped that
.B rigctld

Wyświetl plik

@ -1,5 +1,7 @@
As of version 0.1 this works well with rigs have a full ack/nak protocol as coded in FLRig. So Kenwood, Icom and such.
But Yaesu rigs for example are not stable with applications like WSJT-X since the FLRig driver does not wait or obtain status after frequency change commands for example (fire and forget). Hamlib's Yaesu drivers always send and ID request after such commands and wait for an appropriate response but FLRig does not so can miss commands as a result. Slow operation (manual command from rigctl) works fine.
Rig drivers in FLRig will have to be changed to allow stable operation with fast comm programs like WJST-X.
As of version 1.0 20180508 this works very well with flrig-1.3.40.50 and WSJT-X split mode.
Log4OM can be run conconcurrently connecting to "rigctld -M 4".
Note that for that Log4OM instance only clients that use extended protocol can connect to the client (since Log4OM uses extended protocol). If you want to use a client that does not have extended protocol you must run another rigctld on a separate TCP port.
The same thing holds for any vfo mode clients.
So you could end up with 4 rigctld's. One for each combination of extended/vfo mode.
Flrig can now handle numerous clients connecting at once thanks to a lot of work done by Dave W1HKJ
de Mike W9MDB

Plik diff jest za duży Load Diff

Wyświetl plik

@ -28,12 +28,11 @@
#include <sys/time.h>
#endif
#define BACKEND_VER "0.1"
#define BACKEND_VER "1.0"
#define EOM "\r"
#define TRUE 1
#define FALSE 0
#define BUF_MAX 32768
extern const struct rig_caps flrig_caps;