diff --git a/frappy_psi/SR.py b/frappy_psi/SR.py index 709de26..229350f 100644 --- a/frappy_psi/SR.py +++ b/frappy_psi/SR.py @@ -54,7 +54,7 @@ class XY(HasIO, Readable): time_const = {name: value for value, name in enumerate( ['10us', '20us', '50us', '100us', '200us', '500us', '1ms', '2ms', '5ms', '10ms', '20ms', '50ms', '100ms', '200ms', '500ms', '1s', '2s', '5s', '10s', '20s', '50s', - '100s', '200s', '500s', '1ks', '10ks', '20ks', '50ks', '100ks'] + '100s', '200s', '500s', '1ks', '2ks', '5ks', '10ks', '20ks', '50ks', '100ks'] )} tc = Parameter('time const. value', FloatRange(0.00005, 100000), unit='s', readonly=False) @@ -146,12 +146,22 @@ class XY(HasIO, Readable): reply = self.comm('SEN.') # range value return float(reply) - def write_range(self): - curr_value = self.read_range() - new_value = self.value - c_ind = self.comparison(curr_value, new_value, self.sen_range) - self.read_irange() - return self.comm(f'SEN {c_ind}') + # def write_range(self, val): + # curr_val = self.read_range + # curr_idx = self.read_irange + # + # close_val = None + # min_diff = None + # + # for idx, value in self.sen_range.items(): + # diff = abs(value - val) + # close_idx = self.comparison(curr_val, value, self.sen_range) + # if close_idx ?: + # close_val = value + # close_idx = close_idx + # min_diff = abs(curr_val - close_val) + # + # return self.comm(f'SEN {close_idx}') def read_nm(self): reply = self.comm('NOISEMODE') @@ -166,21 +176,24 @@ class XY(HasIO, Readable): reply = self.comm('TC.') return float(reply) - def write_tc(self): - pass - - def read_itc(self): - return int(self.comm('TC')) - - def write_itc(self, new_itc): - curr_value = self.read_itc() + def write_tc(self, new_tc): + curr_value = self.read_tc() new_value = self.time_const[self.itc] c_ind = self.comparison(curr_value, new_value, self.time_const) if abs(curr_value - new_value) < c_ind: - if self.read_nm() == 1 and (5e-4 <= self.time_const[new_itc] <= 1e-2): - raise RangeError('not allowed with noisemode=1') - return self.comm(f'TC {new_itc}') + if self.read_nm() == 1 and (5e-4 <= self.time_const[new_tc] <= 1e-2): + raise RangeError('Not allowed with noisemode=1') + return self.comm(f'TC {new_tc}') + + def read_itc(self): + return int(self.comm('TC')) + + def write_itc(self, itc): + value = int(itc) + self.comm(f'TC {value}') + self.read_tc() + return value # phase and autophase def read_phase(self):