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
import numpy as np
from time import sleep
from artiq.experiment import *
from pyLIAF.artiq.controllers import UrukulCh
from pyLIAF.RedPitaya import Read_analog as rp
from scipy import interpolate
class IR_LaserPowerCalibration_BS(EnvExperiment):
"""Binary search - IR Laser power calibration with photodiode and a red pitaya """
def build(self):
self.setattr_device("ccb")
self.setattr_device("scheduler")
self.setattr_device("core")
self.setattr_argument("Calibration_freqs_IR", Scannable(
default=CenterScan(208*MHz, 10*MHz, 0.1*MHz),
unit="MHz",
scale=MHz,
global_min = 1*MHz,
global_max = 400*MHz
)
)
@rpc
def create_datasets(self):
#self.set_dataset("PD_UV_counts", list(np.zeros(len(self.Calibration_freqs.sequence)*len(self.Calibration_amps.sequence), dtype=int)), broadcast=True, archive=True)
self.set_dataset("Current_PD_IR", np.array([0.05]), broadcast=True, archive=False)
self.set_dataset("Calibration_freqs", self.Calibration_freqs_IR.sequence, broadcast=True, archive=True)
self.set_dataset("Experiment_freqs_IR_final", self.Calibration_freqs_IR.sequence, broadcast=True, archive=True)
self.set_dataset("Experiment_amps_IR_final", np.zeros(len(self.Calibration_freqs_IR.sequence), dtype=float), broadcast=True, archive=True)
@rpc(flags={"async"})
def run(self):
Calibrated_Experiment_freqs = self.get_dataset("Experiment_freqs_IR")
Calibrated_Experiment_amps = list(self.get_dataset("Experiment_amps_IR"))
def run(self):
self.create_datasets()
self.init_kernel()