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

Feature/signadyne driver #575

Merged

Conversation

lgnjanssen
Copy link

@lgnjanssen lgnjanssen commented Apr 18, 2017

Adds drivers for the Keysight AWG and Digitizer PXIe cards (series M32/M33xxA).

Changes proposed in this pull request:

  • Add general Keysight SD_Module, SD_AWG and SD_DIG drivers
  • Add specific M3201A and M3300A card drivers
  • Add test suites for the above drivers

@giulioungaretti @WilliamHPNielsen @maij

lgnjanssen and others added 30 commits March 2, 2017 15:55
Also removed unnecessary wrapper functions in the base class.
Add a correct get_cmd, since it previously was not a function, rather an evaluated function.
…ers to private attributes with set and get functions.
…ot class variables. This should be convention for all future variables.
Add missing test for testing open/close and chassis/slot related functions.
Also created internal variable storage to aid get/set commands with first time execution.
change the order of positional arguments of several channel-related set functions so they can be used in 'partial'
add test functions for channel-related set-commands like frequency, phase, amplitude, offset and wave chape
Fixed some missing parentheses.
previously only the get-cmd was available. This commit adds the set-cmd and also add a test function for this parameter.
Add waveform and awg related functions to the M3201A driver. Also add clock and trigger related functions.
Changed library location to be ~/site_packages/signadyne.py to agree with SD AWG driver.
…e used instead of class funcs.

Small corrections to some validator declarations.
Add waveform related functions to the M3201A driver and also fix waveform writing convention
lgnjanssen and others added 22 commits March 22, 2017 17:46
Move pxi-read/write functions to SD_Module level. Previously they were in SD_AWG, but they are shared by all SD_Modules.
…re is no real reason to use a get_cmd rather than get_latest for a purely settable device parameter
Add PCport-read and -write functions at SD_Module level. These are used for communicating with the FPGA PCports.
…integration

Feature/signadyne digitizer integration
Cleanup of SD driver classes so the have the same naming and functionality conventions.
Add the new awg_queue_config method, that was previously not in the Keysight lib
Add trigger_io parameter to SD_DIG. It uses already existing get and set functions.
Add a correct reference to the SD_AIN_TriggerMode class, which is in the keysightSD1 package.
Remove the SD_DIG_test file since it is practically empty and has no functionality.
method `set_points_per_cycle` was missing '{}' in the format string
Add decorators `@staticmethod` where methods could be functions.
@giulioungaretti
Copy link
Contributor

@jenshnielsen aka master of sphinx. How do we solve the build issue here?
In other drivers we raise a warning, instead of re raising the exception. Maybe we should to the same here ?

@jenshnielsen
Copy link
Collaborator

jenshnielsen commented Apr 25, 2017

The tests in test_suite.py need to be skipped if the keysight module is not installed.

I would suggest

import unittest
try:
    from .M3201A import Keysight_M3201A
    from .M3300A import M3300A_AWG
    from .SD_common.SD_Module import SD_Module
except ImportError:
    SD_Module = None
    Keysight_M3201A = None
    M3300A_AWG = None

changing the import to catch any import errors and then decorating the test classes with

@unittest.skipIf(not SD_Module, "SD_Module tests requires the keysightSD1 module")

Alternatively you can catch the ImportError and raise a unittest.SkipTest in the exception handling but then the tests are not counted correctly by pytest.

To make sure the documentation builds without the keysight module you should add it to autodoc_mock_imports here https://github.com/QCoDeS/Qcodes/blob/master/docs/conf.py#L387

@giulioungaretti
Copy link
Contributor

@lgnjanssen see suggestion from @jenshnielsen (with which I totally agree)

and @lgnjanssen super contribution! Thanks

lgnjanssen added 3 commits April 26, 2017 17:18
Make the test suite skip tests if the keysight module is not installed.
Add the keysightSD1 module to autodoc_mock_imports such that the documentation builds without the module installed.
@giulioungaretti giulioungaretti merged commit eabcce5 into microsoft:master Apr 26, 2017
giulioungaretti pushed a commit that referenced this pull request Apr 26, 2017
Author: lgnjanssen <L.G.N.Janssen@student.tudelft.nl>

    dirver: Signadyne driver (#575)
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

4 participants