# \[ANN\]: GenericInstruments.jl

**URL:** https://discourse.julialang.org/t/ann-genericinstruments-jl/39341
**Category:** Package Announcements
**Created:** [May 12, 2020, 11:20am UTC](https://discourse.julialang.org/t/ann-genericinstruments-jl/39341 "2020-05-12T11:20:35Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![Iulian.Cioarca](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/iulian.cioarca/32/30166_2.png) [@Iulian.Cioarca](https://discourse.julialang.org/u/Iulian.Cioarca)
#### Post date: [May 12, 2020, 11:20am UTC](https://discourse.julialang.org/t/ann-genericinstruments-jl/39341/1 "2020-05-12T11:20:35Z")

</div>

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.](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.

---

<div class="post-metadata">

### Author: ![jlapeyre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jlapeyre/32/4514_2.png) [@jlapeyre](https://discourse.julialang.org/u/jlapeyre)
#### Post date: [May 12, 2020, 2:08pm UTC](https://discourse.julialang.org/t/ann-genericinstruments-jl/39341/2 "2020-05-12T14:08:07Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![Iulian.Cioarca](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/iulian.cioarca/32/30166_2.png) [@Iulian.Cioarca](https://discourse.julialang.org/u/Iulian.Cioarca)
#### Post date: [May 13, 2020, 12:21pm UTC](https://discourse.julialang.org/t/ann-genericinstruments-jl/39341/3 "2020-05-13T12:21:30Z")

</div>

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

---

<div class="post-metadata">

### Author: ![Pascal\_Buhler](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pascal_buhler/32/45582_2.png) [@Pascal\_Buhler](https://discourse.julialang.org/u/Pascal_Buhler)
#### Post date: [March 17, 2023, 10:43am UTC](https://discourse.julialang.org/t/ann-genericinstruments-jl/39341/4 "2023-03-17T10:43:26Z")

</div>

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

---

<div class="post-metadata">

### Author: ![Iulian.Cioarca](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/iulian.cioarca/32/30166_2.png) [@Iulian.Cioarca](https://discourse.julialang.org/u/Iulian.Cioarca)
#### Post date: [March 17, 2023, 11:57am UTC](https://discourse.julialang.org/t/ann-genericinstruments-jl/39341/5 "2023-03-17T11:57:12Z")

</div>

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

---

<div class="post-metadata">

### Author: ![Pascal\_Buhler](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pascal_buhler/32/45582_2.png) [@Pascal\_Buhler](https://discourse.julialang.org/u/Pascal_Buhler)
#### Post date: [March 17, 2023, 12:04pm UTC](https://discourse.julialang.org/t/ann-genericinstruments-jl/39341/6 "2023-03-17T12:04:25Z")

</div>

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

---

<div class="post-metadata">

### Author: ![Iulian.Cioarca](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/iulian.cioarca/32/30166_2.png) [@Iulian.Cioarca](https://discourse.julialang.org/u/Iulian.Cioarca)
#### Post date: [March 17, 2023, 3:44pm UTC](https://discourse.julialang.org/t/ann-genericinstruments-jl/39341/7 "2023-03-17T15:44:11Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![Pascal\_Buhler](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pascal_buhler/32/45582_2.png) [@Pascal\_Buhler](https://discourse.julialang.org/u/Pascal_Buhler)
#### Post date: [March 17, 2023, 4:15pm UTC](https://discourse.julialang.org/t/ann-genericinstruments-jl/39341/8 "2023-03-17T16:15:13Z")

</div>

Yeah also true.
