[ANN]: GenericInstruments.jl

After changing my mind many times I decided to convert GitHub - iuliancioarca/GenericInstruments.jl: Bundles similar functionalities of instruments under a single generic object: power supplies, arbitrary waveform generators, etc. 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.

13 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.

2 Likes

Insted of using the N-IVSA, why not the VISA from the IVI-Foundation, it is free and should not be propriatary.

M.f.G. Pascal

We have a lot of NI PXI systems in the lab, so it was just convenience I guess. Never tried the IVI Visa.

Yes, this is mostly so, NI also has it from IVI, so to be independent from Labview, could be interresting?

You don’t need to depend on LabView. You just need to install NI Package Manager and then install NIVISA. And you’re good to go.

Yeah also true.