Changed driver for lock-in 65
Change-Id: Ic452f2309e54dd583a1ff796e82a12469357830d
This commit is contained in:
parent
e89bc07759
commit
e22da0db67
@ -45,13 +45,13 @@ class XY(HasIO, Readable):
|
|||||||
autorange = Parameter('autorange_on', EnumType('autorange', off=0, soft=1, hard=2),
|
autorange = Parameter('autorange_on', EnumType('autorange', off=0, soft=1, hard=2),
|
||||||
readonly=False, default=0)
|
readonly=False, default=0)
|
||||||
|
|
||||||
sen_range = {name: value + 1 for value, name in enumerate(
|
sen_range = {index + 1: name for index, name in enumerate(
|
||||||
['2nV', '5nV', '10nV', '20nV', '50nV', '100nV', '200nV', '500nV', '1uV',
|
['2nV', '5nV', '10nV', '20nV', '50nV', '100nV', '200nV', '500nV', '1uV',
|
||||||
'2uV', '5uV', '10uV', '20uV', '50uV', '100uV', '200uV', '500uV', '1mV',
|
'2uV', '5uV', '10uV', '20uV', '50uV', '100uV', '200uV', '500uV', '1mV',
|
||||||
'2mV', '5mV', '10mV', '20mV', '50mV', '100mV', '200mV', '500mV', '1V']
|
'2mV', '5mV', '10mV', '20mV', '50mV', '100mV', '200mV', '500mV', '1V']
|
||||||
)}
|
)}
|
||||||
|
|
||||||
irange = Parameter('sensitivity index', EnumType('sensitivity index range', sen_range), readonly=False)
|
irange = Parameter('sensitivity index', EnumType('sensitivity index range', sen_range))
|
||||||
nm = Parameter('noise mode on', BoolType(), readonly=False)
|
nm = Parameter('noise mode on', BoolType(), readonly=False)
|
||||||
phase = Parameter('reference phase control', FloatRange(-360, 360), unit='deg', readonly=False)
|
phase = Parameter('reference phase control', FloatRange(-360, 360), unit='deg', readonly=False)
|
||||||
vmode = Parameter('control mode', EnumType(both_grounded=0, A=1, B=2, A_B_diff=3), readonly=False)
|
vmode = Parameter('control mode', EnumType(both_grounded=0, A=1, B=2, A_B_diff=3), readonly=False)
|
||||||
@ -76,7 +76,7 @@ class XY(HasIO, Readable):
|
|||||||
"""
|
"""
|
||||||
value_with_unit = re.compile(r'(\d+)([pnumkMG]?)')
|
value_with_unit = re.compile(r'(\d+)([pnumkMG]?)')
|
||||||
value, pfx = value_with_unit.match(value).groups()
|
value, pfx = value_with_unit.match(value).groups()
|
||||||
pfx_dict = {'p': 1e-12, 'n': 1e-9, 'u': 1e-6, 'm': 1e-3, 'k': 1e3, 'M': 1e6, 'G':1e9}
|
pfx_dict = {'p': 1e-12, 'n': 1e-9, 'u': 1e-6, 'm': 1e-3, 'k': 1e3, 'M': 1e6, 'G': 1e9}
|
||||||
if pfx in pfx_dict:
|
if pfx in pfx_dict:
|
||||||
value = round(float(value) * pfx_dict[pfx], 12)
|
value = round(float(value) * pfx_dict[pfx], 12)
|
||||||
return float(value)
|
return float(value)
|
||||||
@ -140,11 +140,14 @@ class XY(HasIO, Readable):
|
|||||||
def write_range(self, target):
|
def write_range(self, target):
|
||||||
cl_idx = None
|
cl_idx = None
|
||||||
|
|
||||||
for name, idx in self.sen_range.items():
|
for idx, name in self.sen_range.items():
|
||||||
value = self.string_to_value(name)
|
|
||||||
if value < target < self.sen_range.get(idx + 1, float('inf')):
|
if idx < len(self.sen_range):
|
||||||
|
value_l = self.string_to_value(self.sen_range.get(idx))
|
||||||
|
value_r = self.string_to_value(self.sen_range.get(idx + 1))
|
||||||
|
if value_l < target <= value_r:
|
||||||
cl_idx = idx + 1
|
cl_idx = idx + 1
|
||||||
elif value == target:
|
break
|
||||||
cl_idx = idx
|
cl_idx = idx
|
||||||
self.write_irange(cl_idx)
|
self.write_irange(cl_idx)
|
||||||
return self.read_range()
|
return self.read_range()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user