Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import core_tools as ct
from core_tools.sweeps.scans import Scan, sweep, Function, Break
import qcodes as qc
import numpy as np
from qcodes import ManualParameter
from qcodes.parameters.specialized_parameters import ElapsedTimeParameter
class MyParam(qc.MultiParameter):
def __init__(self, t_measure, ch=[0, 1], name='my_param',
Vmax=2.0, sample_rate=1e9, n_rep=1000):
self.t_measure = t_measure
self.ch = ch
self.Vmax = Vmax
self.sample_rate = sample_rate
self.timetrace = tuple(np.arange(0, t_measure, 1e9/sample_rate))
self.n_samples = len(self.timetrace)
self.n_rep = n_rep
names = tuple()
shapes = tuple()
setpoints = tuple()
setpoint_names = tuple()
setpoint_units = tuple()
if n_rep is None or n_rep < 2:
for (i, channel) in enumerate(ch):
names += (f't_trace{i+1}',)
shapes += ((self.n_samples,),)
setpoints += ((self.timetrace,),)
setpoint_names += (('t',),)
setpoint_units +=(('ns',),)
else:
sp_rep = tuple(np.arange(0, n_rep))
for (i, channel) in enumerate(ch):
names += (f't_trace{i+1}',)
shapes += ((self.n_rep, self.n_samples),)
setpoints += ((sp_rep, (self.timetrace,)*n_rep), )
setpoint_names += (('n_rep','t',),)
setpoint_units +=(('', 'ns',),)
super().__init__(name=name, names=names, shapes=shapes,
units=('mV',)*len(ch),
setpoints=setpoints, setpoint_names=setpoint_names,
setpoint_labels=setpoint_names,
setpoint_units=setpoint_units)
def snapshot_base(self, update=True, params_to_skip_update=None):
snapshot = super().snapshot_base(update, params_to_skip_update)
snapshot['t_measure'] = self.t_measure
snapshot['sample_rate'] = self.sample_rate
snapshot['Vmax'] = self.Vmax
return snapshot
def get_raw(self):
return_data = list()
for ch in self.ch:
apex = int(self.n_samples / (ch+1))
data = self.Vmax * np.concatenate([np.linspace(0, 1, apex),
np.linspace(1, 0, self.n_samples-apex)])
if self.n_rep is not None and self.n_rep > 1:
reps = np.arange(0, self.n_rep)
data = data * reps[:,None]
return_data.append(data)
return return_data
ct.configure('./setup_config/ct_config_measurement.yaml')
ct.launch_databrowser()
station = qc.Station()
x = ManualParameter('x', initial_value=0)
y = ManualParameter('y', initial_value=9)
m_param = MyParam(4)
#%%
t = ElapsedTimeParameter('t')
scan = Scan(
# sweep(x, 1, 100, 100, delay=0.0),
sweep(y, 1, 10, 1000, delay=0.05),
# t,
m_param,
name='test_scan',
silent=False,
)
ds = scan.run()