[ANN]: GenericInstruments.jl

After changing my mind many times I decided to convert https://github.com/iuliancioarca/GenericInstruments.jl into a package.
Its purpose: lab equipment control.
The package is structured on two levels:

Bottom level wraps the visa library along with some PXI libraries for oscilloscope, multimeter and function generator and exposes their api and constants for low level use. This means someone can use the visa library to send SCPI commands (or VBS strings) for typical bench equipment, or use the PXI wrappers to control the PXI instruments.

Top level bundles similar basic functionalities of instruments, in order to offer some degree of portability of the user’s measurement routines in case they swap instruments. For example, both niScope and Lecroy HDO6054 scopes share the same configuration functions, specialized, of course to call their appropriate bottom level api.

The reason I was reluctant of transforming this into a package is the availability and discoverability of the necessary libs on different platforms. At the moment it is tested only on Windows, since this is the platform I use in my daily work.

I’m not sure how many people are into the instrument control business with Julia, but I hope this will be helpful for someone.

12 Likes

Cool. Looks like a great topic for a JuliaCon talk. Eg, you mentioned elsewhere that multiple dispatch gives advantages over OO in this problem space. You could elaborate on that.

Thank you! Maybe I’ll apply for next year. I hope I will be able to improve the package.

1 Like