¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io

kcat (kachina 505dsp) used to play nice with fldigi but now not so much


 

I use kcat all the time and it works great. I use fldigi only now and then. But I built fldigi from source yesterday, to get all the new-and-improved, all looked clean. But now doesn't work with kcat.
?
I wish I had tried this before blowing away my old fldigi. I can't say what version it was, or if for sure it would have worked yesterday. But it used to work.
?
fldigi version 4.2.06
kcat version 1.2.5
?
Sequence & Symptoms:
- start fldigi
- some alsa lib errors, JackShmReadWritePtr messages
- some complaints about not being able to open sockets
- But it starts up and shows a nice normal looking window.
- start kcat - no indicated issues
?
I start fldigi in a terminal window and after starting kcat I can see that the two are talking over the xmlrpc link, constant streaming of freq/band/mode messages in the fldigi terminal window that look ok.
Frequency, mode, bandwidth are the same in both gui windows.
If I change mode or bandwidth on kcat, fldigi tracks. Likewise if I change mode or bandwidth from fldigi, kcat tracks.
===> If I try to change frequency from kcat, it won't, meaning it briefly shows the changed frequency then jumps back.
===> If I change frequency from fldigi, fldigi updates the display as if normal, but nothing happens on the kcat end (stays stuck on same freq as when started).
If I close fldigi, kcat can then manage the frequency as normal. So it would seem fldigi is not allowing kcat to change frequency.
?
I think this setup worked a few months ago. kcat has not changed. fldigi has changed.?
I would try building a downlevel fldigi to test against but I don't know how, and can't find instructions.
?
Any suggestions appreciated.
?
Bill N7DZ
?


 

I found Dave's archive of tarballs. I'll try some of those to see if going back fixes this.


 

Tried a couple earlier versions, including 4.1.17 from 2020. Same behavior as the newest version. So I guess it's nothing in the new code that broke it. And maybe I'm dreaming that it ever worked...
?
Pasted below are a few log lines that show the behavior. You can see that kcat is trying to increment the frequency up, but if I'm interpreting the log correctly, fldigi keeps pushing it back to 14070.?
Interesting lines underlined and bold.
?

I: [20:59:21] network/xmlrpc.cxx : 2232 : execute
? ? rig.get_freq: 14070000.000000
V: [20:59:21] network/xmlrpc.cxx : 2365 : execute
? ? rig.get_mode: LSB
V: [20:59:21] network/xmlrpc.cxx : 2450 : execute
? ? rig.get_bandwidth: 1000
V: [20:59:21] network/xmlrpc.cxx : 2215 : execute
? ? rig.set_frequency: 14071000
V: [20:59:21] network/xmlrpc.cxx : 1909 : execute
? ? main.get_trx_state: RX
I: [20:59:21] network/xmlrpc.cxx : 2232 : execute
? ? rig.get_freq: 14070000.000000
V: [20:59:21] network/xmlrpc.cxx : 2365 : execute
? ? rig.get_mode: LSB
V: [20:59:21] network/xmlrpc.cxx : 2450 : execute
? ? rig.get_bandwidth: 1000
V: [20:59:21] network/xmlrpc.cxx : 2215 : execute
? ? rig.set_frequency: 14072000
V: [20:59:21] network/xmlrpc.cxx : 1909 : execute
? ? main.get_trx_state: RX
I: [20:59:21] network/xmlrpc.cxx : 2232 : execute
? ? rig.get_freq: 14070000.000000
V: [20:59:21] network/xmlrpc.cxx : 2365 : execute
? ? rig.get_mode: LSB
V: [20:59:21] network/xmlrpc.cxx : 2450 : execute
? ? rig.get_bandwidth: 1000
V: [20:59:22] network/xmlrpc.cxx : 2215 : execute
? ? rig.set_frequency: 14073000
V: [20:59:22] network/xmlrpc.cxx : 1909 : execute
? ? main.get_trx_state: RX
?
and so on
?
Bill N7DZ


 

OK after some head scratching and deep reading, the fix is simple. kcat uses obsolete method main.get_frequency. The new method is rig.get_frequency. I changed that in src/support/xml_io.cxx and now all is well.
?
Dave W1HKJ - below is the patch. Just a two line change.
Hey, would you be willing to put kcat up on github with your other stuff?
?
73 - Bill N7DZ
?
diff --git a/src/support/xml_io.cxx b/src/support/xml_io.cxx
index 6397de8..d2464e5 100644
--- a/src/support/xml_io.cxx
+++ b/src/support/xml_io.cxx
@@ -44,7 +44,7 @@ static const char* rig_take_control ? ? = "rig.take_control";
?static const char* rig_release_control ?= "rig.release_control";
?
?// these are get/set
-static const char* main_get_frequency ? = "main.get_frequency";
+static const char* rig_get_frequency ? = "rig.get_frequency";
?static const char* main_set_wf_sideband = "main.set_wf_sideband";
?static const char* rig_set_frequency ? ?= "rig.set_frequency";
?static const char* rig_set_mode ? ? ? ? = "rig.set_mode";
@@ -83,7 +83,7 @@ void open_rig_xmlrpc()
? ? ? ? XmlRpcValue nil(XmlRpc::nil);
? ? ? ? status_query = new XmlRpcValue;
? ? ? ? const char* status_methods[] = {
- ? ? ? ? ? ? ? main_get_trx_state, main_get_frequency,
+ ? ? ? ? ? ? ? main_get_trx_state, rig_get_frequency,
? ? ? ? ? ? ? ? rig_get_mode, rig_get_bandwidth
? ? ? ? };
? ? ? ? for (size_t i = 0; i < sizeof(status_methods)/sizeof(*status_methods); i++) {
?