Using a human-based data acquisition plugin
Why buy expensive data acquisition boards, if you can have a cheap human being
entering the data on some terminal? No, just kidding.
Anyway, GSPC now has a gpsc_acquire_user.c plugin that retrieves measurement data via a ncurses-based dialog instead of any data acquisition board. This is useful for testing, but also in some real-world cases.
Adding support for multiple data acquisition boards
Tomorrow I'll be hacking GSPC to support multiple data acquisition boards in
one system. The main focus will be testing, since GSPC already contains the
untested code for this. However, the vendor-supplied driver is hardly able to
deal with this situation *lol*.
One should think that console-based applications are common under Linux, as on
any other *NIX-like OS. Furthermore, one would assume that there is at least
one, if not a variety of curses-based widget toolkits available.
The largest such project seems to be CDK (Curses Development Kit), so I choose
it for the GSPC software.
Apparently, CDK isn't used that frequently either - otherwise it would be
impossible for me to find that many bugs, even without trying to do something
wicked. Let's say you want to add an item to a scrolled list... and after
adding about 8 items, the toolkit segfaults. It turns out the list items are
dynamically allocated, but only reallocated if you replace all of them (as
opposed to just adding a single one).
Or let's say you want the "END" key to work in such a scrolled list,
independent if there are less, equal or more items than fitting in your
So Unix is supposed to be the text-oriented world, and still there are way more
(and more stable) widget toolkits for X11 than there are for text mode. *sigh*
Evaluating GTK+ / GTK-- for GSPC graphical interface
After not having done any GUI programming for the last five years or so, I'm
now investigating the world of GTK+ / GTK--. GSPC will soon need a graphical
frontend, running directly on the framebuffer (potentially DirectFB), with no
mouse and only a very limited keyboards as input device.
Finding a suitable math parser
GSPC currently uses spar-0.5.10, a quite nice math language parser. However,
it is unmaintained, still contains a lot of bugs and is incomplete. Can
anybody tell me why in this big world of free software there is not a single
simple mathematical parser that can be embedded into an application? I just
want to evaluate simple statements like "(X*3.56)-max(y*1.23,z*1.341)".
The author of spar has since started a new project, called Iguana. It is a
whole language, not only simple mathematical statements. However, it still
lacks some of the functionality spar used to have - and it has a totally different syntax.
Now I face the choice between extending the good old spar with stuff like
variable length argument functions, or convert everything to use Iguana (and implement the missing bits from spar in Iguana).
GSPC: Gnumonks.org Statistical Process Control
This is some piece of software I wrote about a year ago for a German massive
forming technology company. Luckily, they agreed to make this software
available under the GNU GPL. To my knowledge, it is the only GPL-licensed
software for statistical process control.
Unfortunately I didn't have the time to write any decent documentation or put up a homepage for that software so far. I will to do so shortly.
During the last week, I was contracted to extend GSPC to support up to 16
inductive displacement transducers, and support multiple data acquisition
boards per system.