The Rise of Lxi-Tools V2.0
I have released lxi-tools v2.0
See https://lxi-tools.github.io for more details.
lxi-tools is an open source project of mine for managing network attached LXI compatible test instruments.
Features include automatic discovery of test instruments, sending SCPI commands, grabbing screenshots from supported instruments, benchmarking SCPI message performance, and powerful scripting for test automation. Both a commandline tool (lxi) and a GUI tool (lxi-gui) are available.
I started the lxi-tools project because I needed a simple command-line tool to manage my Rigol 1000Z series oscilloscope that I had at the time. Specifically, I needed a tool to find my instrument on the local network and send a few SCPI commands (Standard Commands for Programmable Instruments) for testing purposes. Quickly the project grew with new features such as support for grabbing screenshots from instruments using screenshot plugins. Also a benchmark feature was added to measure the message response time of test instruments.
Later on I decided to write a GUI tool including the same features but present them in a simple QT5 based GUI interface. I’ve never really liked the QT5 end result so this year I decided to rewrite the application from scratch using the GTK4 widget toolkit. This turned out to be a good decision because the process of migrating to GTK4 was a surprisingly good one. In my daily work I do not normally write UI applications but I find that the GTK4 API is more intuitive to use and more true to the way things are done on Linux. My only argument against GTK4 is that it does not currently feature a working UI design tool so you basically have to do all the UI design in UI descriptive XML. However, the upside of using the GTK4 XML UI design language is that it offers very fine control of all UI elements. Having walked this path I’m not even sure I would ever go back to using a UI design tool. However, new UI design tools for GTK4 will soon arrive so I may change my mind on that.
Why not QT6? Because I really like the new graphical design of modern GTK4 applications and in particular Gnome applications. In fact, the new lxi-gui tool is using libadwaita (see https://gitlab.gnome.org/GNOME/libadwaita) which is a newly released UI library that provides various widgets that replace their GTK4 counterpart and offer a different Gnome specific look and behaviour. Also, compared to GTK3, GTK4 is now cross platform and GPU accelerated.
One of the most important new features of the lxi-gui application is the script feature which allows running lua scripts to do advanced test automation.
The new script feature includes various new Lua functions for managing and presenting sampled instrument data in the GUI live.
I believe this may be the beginning of a great open source tool for test automation using LXI compatible instruments. Expect to see more exciting features to support test automation in the future.