This release adds the ability to run a script after gax25 connects. It also fixes rig support for gax25, which wasn't working in 0.6.
To use scripting, add script= to the url as a standard url item. So, for instance, I used:
the script is a program. If the program writes to stdout, that will be written to ax25. Data received on ax25 will be sent to stdin on the program. Once the program exits, the connection process will continue. This way you can write a script in the programming language of your choosing, like expect, for instance. Or python. Or shell.
If connecting via the web gui, you can add &script=... to the parms field and it should work.
This is not well tested.Ā I don't have an easy way to test this without doing a lot of hacking things up.Ā The scripting gensio is tested, I've tested that I can run a script, but that script couldn't do any I/O without breaking my as25 connection.
This should work on Windows, as all the code is generic, but is not tested.
It's available at https://github.com/cminyard/pat/releases/tag/gensio-0.7
For a review, this version of Pat is one with an AX25 packet stack built in. Ā This means:
* You don't have to mess around with the Linux AX25 stack for packet. Ā It's all configured in Pat.
* AX25 packet works on Windows and Mac.
Also:
* I have ported over some patches and added my own patches to fix some forms issues; it will now properly load the To field and others from a form.
* D710 setup is availableĀ See https://github.com/cminyard/pat/tree/gensio-work
* and, of course, there is scripting now.
LIBS = -lm -lnsl -ldl -lpthread -lasound
Next and before running make.bash, I had to disable the section that redownloads, patches, and configures the gensio source. Note the lines that I commented out in pat/make.bash:
function install_gensio {
Ā Ā Ā Ā mkdir -p .build && cd .build
Ā Ā Ā Ā if [ ! -f "${GENSIODIST}" ]; then
Ā Ā Ā Ā Ā Ā Ā Ā echo "Downloading ${GENSIODIST_URL}"
# Ā Ā Ā Ā Ā Ā Ā curl -LSsf "${GENSIODIST_URL}" | tar zx
Ā Ā Ā Ā Ā Ā Ā Ā cd "${GENSIODIST}"
# Ā Ā Ā Ā Ā Ā Ā for i in ${GENSIODIST_PATCHES}; do
# Ā Ā Ā Ā Ā Ā Ā Ā Ā echo "Applying patch $i"
# Ā Ā Ā Ā Ā Ā Ā Ā Ā curl -LSsf "${GENSIODIST_BASEURL}/$i" | patch -p1
# Ā Ā Ā Ā Ā Ā Ā done
Ā Ā Ā Ā else
Ā Ā Ā Ā Ā Ā Ā Ā cd "${GENSIODIST}"
Ā Ā Ā Ā fi
Ā Ā Ā Ā ./configure --prefix=/ --enable-static --disable-shared --with-go=no --with-sctp=no --with-mdns=no --with-ssl=no --with-certauth=no --with-ipmisol=no && make && cd ../../