Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a VISA plugin for generic VISA support #413

Merged
merged 11 commits into from
Nov 28, 2023

Conversation

pbirkhol-ni
Copy link
Contributor

@pbirkhol-ni pbirkhol-ni commented Nov 17, 2023

What does this Pull Request accomplish?

  • Add a MeasurementLink VISA library with all of the normal APIs plus a palette file. There is one main difference between this API and other driver APIs:
    • Both the Initialize and Get Connections VIs require an instrument type id input. Since we are making a generic VISA API, the customer gets to define their own instrument type id in the pin map so we can't know what it is unless they tell us.
  • Add a VISA ISessionFactory. This has a few differences from normal ISessionFactory implementations
    • The instrument type id is not a static value so it must be passed in during construction and then it gets returned by a property.
    • The Close MeasurementLink Session.vi ignores the initialize and close session behavior input. It just unconditionally calls VISA Close because the close behavior is defined during init.
    • The VISA Open for gRPC Session.vi has an Open / Close Behavior input that has an Auto enum value. However, the ISessionFactory initialize and close session behavior enum does not have an Auto value. What this means is that we never pass Auto to VISA Open for gRPC Session.vi, which I think is okay but I can't 100% convince myself.
  • Add all of the standard tests that we write for all of our plugins. Some of them are disabled for two main reasons:
    • They require a pre-release VISA driver on spawningpool. My preference would be to wait for the official release before we install it.
    • Even with the prerelease driver installed, however, a few tests still fail due to AB#2582855. Once that bug is fixed, those tests should pass, although I had to take an educated guess on what error code we should be expecting.

What testing has been done?

Auto tests.

@pbirkhol-ni pbirkhol-ni merged commit 36b76bd into main Nov 28, 2023
2 checks passed
@pbirkhol-ni pbirkhol-ni deleted the users/pbirkhol/add-visa-support branch November 28, 2023 15:18
jasonmreding added a commit that referenced this pull request Dec 5, 2023
* main:
  Update examples to use new Run Service.vi (#429)
  Update the service class of the .measui for LabVIEW Game of Life. It was still pointing to the .NET measurement service. (#427)
  Add unit tests for data type checking (#426)
  Update Keysight doc and delete UIProgressUpdates (#425)
  Create a generic VISA example (#421)
  Remove UI Progress Updates example. Game of Life covers the same features (#424)
  Bump version for pre-release (#423)
  Fix up Get Metadata from Configuration and Results to use a common subVI. Fix the logic for getting the array element type (#422)
  examples: Add gRPC support to VISA example (34401A) (#416)
  Remove breakpoint (#420)
  Use type definition name of actual DoubleXYData .ctl (#410)
  Add a VISA plugin for generic VISA support (#413)
  examples: Fix lvlib references to old TestStand VI names (#415)
  Fix ni_protobuf_types.vipb source path and build number (#414)
  Add game of life example (#402)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants