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

IVI interfaces #466

Open
wants to merge 52 commits into
base: master
Choose a base branch
from
Open

IVI interfaces #466

wants to merge 52 commits into from

Conversation

tobiasgehring
Copy link
Collaborator

Interfaces for oscilloscopes and AWGs following the IVI specifications. Wrapper for python ivi instrument library.

Description

The IVI foundation has published industry specifications for interfaces to various instruments. Here I define interfaces which follow these specifications and implement a wrapper to the python ivi instrument library. So far interfaces for oscilloscopes and AWGs are implemented.

This pull request is based on an earlier pull request which was reviewed by @a-stark. Since then I have improved the interface a lot. It is much more streamlined now and in my opinion easier to implement.

Motivation and Context

Qudi needs a standard interface for common instruments and the IVI specifications deliver such an interface definition.

How Has This Been Tested?

Using a Tektronix AWG5002C and a Keysight DSOS204A.

Screenshots (only if appropriate, delete if not):

Types of changes

New interfaces and a wrapper.

Checklist:

  • My code follows the code style of this project.
  • I have documented my changes in the changelog (documentation/changelog.md)
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have added/updated for the module the config example in the docstring of the class accordingly.
  • I have checked that the change does not contain obvious errors (syntax, indentation, mutable default values).
  • I have tested my changes using 'Load all modules' on the default dummy configuration with my changes included.
  • All changed Jupyter notebooks have been stripped of their output cells.

tobiasgehring and others added 30 commits December 22, 2017 22:21
…interface functionality and the ivi implementation in the filename.

Change also the class name.
…terface.py) into the ivi implementation files.
…e class dictionary

this solves the issue with QT signals being added dynamically after class instanciation.
… follow the same structure as scope interface
Copy link
Member

@Neverhorst Neverhorst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, so far I have not tested functionality with real hardware.

  • Could you please put all IVI related modules into a single subfolder, like hardware/ivi/?
  • For such a big, new (in terms of qudi) hardware module concept the documentation is way too shallow in my opinion. There is a lot more documentation needed on how to implement new ivi modules and what the crucial points are for a scientist sitting in the lab and implementing a module for a new device.
    Also the existing doc is a bit thin on what these namespaces are etc.

core/manager.py Outdated
@@ -683,7 +683,7 @@ def connectModule(self, base, mkey):
'legacy format since it contains a dot.'
''.format(base, mkey, c))
logger.error('{0}.{1}.{2}: Connector is no dictionary.'
''.format(c, base, mkey))
''.format(c, base, mkey))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please remove that? This is neither one tab from the "logger" statement nor directly below the start of the string literal.

@timoML timoML self-assigned this Sep 11, 2021
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.

None yet

3 participants