Tech! français

Kplex Home
top border

Frequently Asked Questions

Is this free software?
Yes. As in "Beer" and as in "Speech". It is released under the terms of GPLv3 (see the COPYING file which should be included with this software)
Can we use it in our product?
Subject to the conditions of GPLv3, yes. You can optionally hire me to customize and provide support for the code. See the contact page for how to get in touch
Why "kplex"?
Originally it was called "mplex", but that's the name of an mpeg stream multiplexer for linux. changing only one letter of the name simplified changing the file names. And "kplex" scores loads in french scrabble.
Do you have a git repository?
Yes but not a public one. That will change one day, probably after I've written a hacking guide to the code. Any version of kplex currently on github was not put there by me and probably isn't up to date
How can I contribute code?
Send me a patch but please don't be disappointed/angry if I don't include it.
How else can I help?
Send me a link to a page describing how you use kplex
Are you planning to support Raymarine seatalk?
The code was written for an earlier version of kplex but it wasn't included in a "production" release for a number of reasons which might make support difficult. These included:
  • Requirement for additional hardware to convert seatalk to rs232
  • Problems with handling of parity errors in many serial to USB converters. Kplex's interpretation of seatalk relies on correct handling of parity errors.
  • Difficulty of writing data to the network. To do collision avoidance "correctly" requires real time processing which intriduces a significant level of complexity for the user. Reading is rather easier with less chance of chaos on the seatalk bus.
  • Lack of data. I only have data from my own seatalk network. Conclusions I draw regarding timing and ordering of data sent out by various sorts of instrument may not generalize to other Raymarine products
The code may at some point be revived but if it is, it won't be guaranteed to work.
Does this run on a raspberry pi?
Yes. Note the 3.3v weirdness of the serial interface though if not using serial to usb adaptors.
Why is kplex so heavily multithreaded when the target systems are raspberry pis and laptops?
Multithreading suits the program's structure and allows blocking I/O without using poll/select and without resorting to non-portable event notification mechanisms like epoll or kqueue. Plus when it was first written I was thinking that I hadn't written anything with pthreads for a while...
Filtering etc. uses linear searches with linked lists. Isn't that inefficient?
Typically target systems have few network interfaces and filter lists don't extend into hundreds of rules. The lack of fixed overheard associated with hash tables makes linear search more efficient for the common case. I'd throw in a gag about it being distressing if N is over C, but that's the kind of crossover humour that rarely goes down well.
Can I use this to bridge to a tablet using just my laptop?
Not exactly. kplex does not create a wireless access point, it just uses a linux computer's existing wireless interfaces. If you want to create a wireless access point using a linux system, check out hostapd. An Alternative may be to use ad hoc networking to connect to your wireless device (The comar box does this).
bottom border