Re: [linuxham] Interfacing with fldigi and a couple of future enhancement requests
- Hi Iain,
>>>>> On Wed, 11 Jun 2008 12:18:04 -0000, "g7iii" <g7iii@...> said:Fldigi has an IPC interface that is used by flarq and pskmail on Linux.
> Hey Folks,
> I see a number of utilities interfacing with fldigi (pskmail, flarg,
> fllog, psykviewer, pskscope etc). Some use fldigi just as a pure
> MODEM. How do they all do this ? Is there an API Somewhere ? I
> couldn't find anything
The Other Platform uses file-based I/O rather than POSIX message queues.
The next version will have two additional interfaces:
1) An EXEC macro that runs external programs. Information is passed to
those programs safely via environment variables. At the moment we pass
all the log fields text, as well as the operator's callsign, name and
locator, rig dial frequency and modem name and audio frequency.
Fldigi can wait for the process to finish and then enter its output
into the transmit text buffer. It can also parse that output for more
So not really an interface, but it may be all you need for custom
logging or sending data to DX clusters etc; amazing what you can do
with a Perl script these days ;-) The downside is that macros
must be triggered manually, though the psk viewer could be made to
call some macro automatically when the search string is found.
2) A simple XML-RPC interface. When activated, fldigi starts an embedded
http server and listens for requests on the loopback interface (it can
also be told to sit on an interface with a routable IP address so that
it can be accessed across the net). Concurrent connections are allowed,
though requests are really only served one at a time.
Fldigi remains responsive to mouse/keyboard events or, put another way,
you still need an X server connection. (A "fake" X server such as xvfb
can be used to alleviate that).
The interface itself is not set in stone right now, but it will be
able to do at least the following:
* Fetch all the log field contents
* Get/set/toggle the afc, sql, rev etc. controls and levels
* Get/set frequency, modem audio carrier, active modem
* Return some modem signal quality indicators
* Retrieve text from the RX text widget, add text to the TX widget
HTTP/XML-RPC clients can be written in just about any language. I have
been writing an "fldigi-shell" control script in Perl that may be in
good enough shape for general use by the time 3.0 is relased...
> I'm kind of half thinking about writing a couple of "add-ons" myself -If there is some facility that you'd like to see in the EXEC mechanism
> propnet comes to mind, along with maybe some PSK APRS related extras.
or XML-RPC interface, please let me know and I'll try to implement it.
> I've tried to look thru sources (esp pskmail), but I must be missingYes, this is all the interfacing documentation that exists atm.
> the interfacing code. Also Googled for "interfacing with fldigi", but
> that came up with mainly interfacing fldigi with hamlib!
> Thanks in Advance for any hintsA what? :-)
> PS, A couple of things I'd love to see in the next version of fldigi,
> for when the developers get the coding bug again (Since I know they
> are taking a well deserved break right now)
> a) BPS 400 support (Both FEC and non FEC), for the future HEO birdsFldigi 2.x already supports JACK via the PortAudio backend. I have used
> (P3E, Eagle, etc. KA9Q did a prototype encoder/decoder iirc
> b) Jack (http://www.jackaudio.org) support.
it with various JACK applications, including a couple of SDR programs
with a softrock RXTXv6.1 kit that I built last year. JACK audio I/O
works but can be a little flaky, especially with a slow CPU or really
bad sound cards.