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 trigger, and program feature to Yokogawa GS200, and digitizer feature to Keithley 7510 #2138
Add trigger, and program feature to Yokogawa GS200, and digitizer feature to Keithley 7510 #2138
Conversation
Codecov Report
@@ Coverage Diff @@
## master #2138 +/- ##
==========================================
- Coverage 71.74% 71.60% -0.14%
==========================================
Files 156 156
Lines 20749 20919 +170
==========================================
+ Hits 14886 14979 +93
- Misses 5863 5940 +77 |
…d load program pattern
There does not seem to be an example of reading the buffer into a qcodes parameter. Is this supported? It is an esential feature for a qcodes driver to be able to capture the data as a parameter so it can be storred in a dataset easily |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There does not seem to be an example of reading the buffer into a qcodes parameter. Is this supported? It is an esential feature for a qcodes driver to be able to capture the data as a parameter so it can be storred in a dataset easily
I have made data
a parameter, and the usage is as following:
buffer.data_start = 1
buffer.data_end = total_data_points
v=buffer.data()
the type of v
is a list, with float-type elements.
User can specify several different elements, such as time, measurement, unit...
buffer.elements(['measurement', 'time', 'measurement_unit'])
data=buffer.data()
In this case, the data will be a 3xN matrix/array, of which all the elements are str-type.
I didn't add the vals=Arrays(...)
nor the parameter_class
, for the data
parameter, because:
- the shape of the data is not fixed, it depends on how many elements the user wants;
- the
parameter_class=...
part can only be added if there is thevals=Arrays(..)
suggestion? @jenshnielsen
(Maybe I can just save everything -- all total 14 elements)
style: str = '' | ||
) -> None: | ||
super().__init__(parent, name) | ||
self.buffer_name = name |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is self.buffer_name
needed. It seems like this will always be equivalent to self.short_name which is already defined on all instruments
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It turns out self.short_name
works. (not self.name
though)
I was not sure if I should use self.name
or self.short_name
, so I created my own... :D
I think you can set this up dynamically from the parameters that determine the size. Have a look at EDIT: It would be nice to have it as a ParameterWithSetpoints so that one can register what setpoints the axes corresponds to |
I tried to match what they did in the example, and here it is... My concerns:
All those extra works just to make the |
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"## 4. Make the measurement" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please rewrite this section so that we only show how to make measurements with qcodes. We do not want to promote manual measurements with this driver that are different from every other driver
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The make measurement section has been rewritten.
…/liangosc/Qcodes into Add_triggering_to_Yokogawa_GS200
First of all, this PR includes changes to two instruments.
The reason why I want to include two changes in one:
The changes made to the Yokogawa GS200 will add the ability of programming source data pattern, and sending out external triggers. Hence, it'll be great if I can measure the pattern with a dmm which can receive the trigger.
The changes made to the Keithley 7510 will add the ability of receiving external trigger, and performing a "digitize" measurement, which is ideal for high speed measurement.
It feels "incomplete" if I include the new changes to each instrument in its existing QCoDeS example, so I combine two together in this one PR, with one new example notebook, but I can always split this PR into two separate ones if necessary.
Changes proposed in this pull request:
For the Yokogawa GS200:
For the Keithley 7510:
@sohailc