Kplex 1.5 beta
This release adds some significant new features. There are no significant bug fixes so it should not be necessary for existing users to upgrade if they don't need the new features, although community testing is always appreciated!
Configuration information for the latest beta release can always be found on the beta configuration page.
- What's new?
- Beta caveats
- Obtaining and Installing the Beta Release
- New Features and How to Use Them
- Known issues with current beta version
- kplex 1.5 beta version history
This release adds some significant new features.
Bugs fixed in this release:
- Minor fix to Makefile
This is pre-production software. It is more likely to have bugs than a full release. Features may change and options may change if ongoing testing suggests alternatives would be better. Please do leave feedback, if you are using this version, even if only "Works for me".
Both source and binaries for this beta are now available via the download page.
Or checkout the "keepalive" branch on github.
For compiling and installing, just follow the normal kplex installation instructions.
System error messages will now be displayed in the language of the current locale. kplex messages will be displayed in the language of the current locale if a translation exists (under /usr/share/kplex/locale with most Linux installs ). Translations may not always be complete meaning that untranslated messages will still be in English. Initially the only language other than English supported for kplex messages is Netherlands Dutch. Errors/omissions/further translations gratefully accepted.
Further details including how to help with translation are here: http://www.stripydog.com/kplex/i18n.html.
A new per-interface "heartbeat" option tells kplex to send out an NMEA sentence
from the specified interface with a given frequency (in seconds). The sentence
(terminated with "\r\n" or "\n" according to interface type and configuration).
The "heartbeat" option can be applied to any bi-directional or output interface.
Its argument is the frequency of the heartbeat in seconds so:
will send out a heartbeat sentence every 5 minutes.
Possible use case include:
- Maintaining firewall/NAT state on connections with infrequent data. This can also be achieved using tcp keepalives via the "keepalive" option.
- Ensuring regular reconnection of dropped connections when using the "persist" option with outbound-only interfaces. kplex only notices dropped "direction=out" connections when attempting to write something, so connections with infrequent data transfer take a long time to reconnect. This is not normally an issue and does not aplpy to bi-directional connections, but the heartbeat option ensures outbound connections regularly have some data to write.
Currently the "checksum" option has two possible values:
- "yes", meaning incoming sentences are dropped unless they have a correct checksum
- "no" (the default), meaning no checksum checking is performed.
In this release the checksum option still defaults to "no" but may take the following additional values:
- "strict", a synonym for "yes".
- "loose", meaning checksum checking is performed and sentences with incorrect checksums discarded, but sentences without checksums are accepted.
- "add", meaning checksum checking is performed and sentences with incorrect sentences are discarded, but those without checksums have one added.
- "addonly", meaning checksum checking is not performed, but sentences without checksums have one added.
With the "add" and "addonly" options, sentences without checksums which are too large to have a checksum added and remain within the maximum length of an NMEA-0183 sentence are discarded.
- Some async-unsafe code lurks in the signal handler which terminates threads. It could theoretically cause kplex to crash or hang on exit but this has never been reported.