I want to have wsjt-x send data to ft8mapper and cqrlog. I have tried everything from both the cqrlog docs and the net. Nothing works.
I set wsjt-x to "multicast" at 239.255.0.0, port 2237 and tl = 2. ft8mapper set to the same ip and port. CQRLOG set to the same ip and port. The wsjt address is set to 239.255.0.0. I do not know what to enter into the adif port.
I start wsjt from cqrlog. Data goes to ft8mapper no problem but nothing goes to CQRLOG. I used to use gridtracker a the middle man. It had simple settings to recive udp and the forward it to a port on the same server. Unfortunatly there are video problems. The gridtracker maps are not displayed, as they should be, within the programs gui. To get arroud that I use ft8mapper that does show the data in real time. The qso data stops there. It does not make to cqrlog. A post in the fourm states "the latest version automaticaly supports multicasting on address suchas 2390255.0.0." I have versio 2.5.2.
I need to know exactly how to setup communication between the three apps in simple step by set procedure.
Thanks,
Marty N3MOW




Hi Marty!
Lets begin with WSTX and Cqrlog.
As you are using 2.5.2 and working digital modes I strongly recommend you to upgrade to Cqrlog_Improved that has lot of fixes compared to 2.5.2
https://github.com/OH1KH/CqrlogImproved/blob/main/compiled/README.md
Tested with old 2.5.2 and WSJTX-improved 3.1.0 Plus edition by DG2YCB

Following setup works with multicast udp:
Use same 239.255.0.1 address for all, Cqrlog and WSJTX . Use also same port number 2237 for all.
WSJTX needs the outgoing interface name, that is the network card's name of your Linux. Fortunately it is there just to choose (if you have several network cards). you do not need to dig out the name from system.
By Google-AI FT8Mapper supports only UDP unicast. So it is not possible to get it work with multicast setup if AI is right.
You need to use some kind of relay program that can relay multicast UDP frames to unicast udp.
I quick prepared one by connecting some of my test programs together.
This one is made with perl. When running it you might need to install some perl modules first using cpan. Program will complain for missing modules.
# Listen multicast UDP, relay to unicast UDP
use IO::Socket::Multicast;
use IO::Socket::INET;
my ($socket,$data);
$socket = new IO::Socket::INET (
PeerAddr => $addressee ,
PeerPort => '60000',#unicast port
ReuseAddr => 1,
ReusePort => 1,
Proto => 'udp' ) or die "Unicast socket fail";
use constant PORT => '2237';#multicast port
Proto=>'udp',
LocalPort=>PORT,
ReuseAddr => 1,
ReusePort => 1,
) or die $!;
$data='';
next unless $sock->recv($data,2048);
$socket->send($data);
print $data;
}
$sock->close();
Set FT8Mapper settings the UDP address to 127.0.0.1 and port 60000
--
Saku
OH1KH
Saku;
Yes I'm running V2.5.2. I will upgrade to cqrlog improved. Is it avalible on the cqrlog website or only git? I'll checkout the link you provided. Not sure how to use perl. Sounds like perl program is the way to start. I'm sure that there is abundant info on the web.
Thanks for taking the time to do the testing! will let you know how it goes.
73,
Marty, N3MOW
Marty, N3MOW
Hi!
Cqrlog_Improved exist only in github.com/OH1KH , source or ready compiled one.
With perl do as:
Paint the part of message where the perl source is, then use "copy".
Open your favorite plain text editor and do "paste" there.
Now you should have lines from "#!/usr/bin/perl" to "exit(0);" in your editor.
"Save as" the editor content using some suitable name ending ".pl". Like: "udprelay.pl"
Open command terminal and navigate to folder where you have saved your "udprelay.pl" using command:
cd /foder/names/to/find/your/file
Then execute command:
chmod a+x udprelay.pl
That will turn the execute bit so that you can start the file execution.
You should have perl installed. Usually I think it is but some modules may be missing.
Starting "udprelay.pl" with command:
./udprelay.pl
may give error texts like this:
Can't locate IO/Socket/Multicast.pm in @INC (you may need to install the IO::Socket::Multicast module) (@INC contains: /home/saku/perl5/lib/perl5/5.36.0/aarch64-linux-gnu-thread-multi /home/saku/perl5/lib/perl5/5.36.0 /home/saku/perl5/lib/perl5/aarch64-linux-gnu-thread-multi /home/saku/perl5/lib/perl5 /etc/perl /usr/local/lib/aarch64-linux-gnu/perl/5.36.0 /usr/local/share/perl/5.36.0 /usr/lib/aarch64-linux-gnu/perl5/5.36 /usr/share/perl5 /usr/lib/aarch64-linux-gnu/perl-base /usr/lib/aarch64-linux-gnu/perl/5.36 /usr/share/perl/5.36 /usr/local/lib/site_perl) at ./hi.pl line 4.
BEGIN failed--compilation aborted at ./hi.pl line 4.
Note the text: "you may need to install the IO::Socket::Multicast module"
That means you need to install "IO::Socket::Multicast"
You can do it with program cpan, or if you are using Synaptic you can try to find module from it's list and install there.
Install using cpan from command console:
sudo cpan -T IO::Socket::Multicast
"-T" will ignore testing that might sometimes take a very long time. After cpan finishes try to start ./udprelay.pl again.
It may again give error for another module, if so then install it with cpan until you do not get any errors and
./udprelay.pl just leaves running without printing anything.
Then, when the next WSJTX decode happens you will see some printing and know it is running.
--
Saku
OH1KH