Changed driver for lock-in 65

Change-Id: Ic452f2309e54dd583a1ff796e82a12469357830d
This commit is contained in:
Oksana Shliakhtun 2023-09-28 09:15:25 +02:00
parent e89bc07759
commit e22da0db67

View File

@ -45,13 +45,13 @@ class XY(HasIO, Readable):
autorange = Parameter('autorange_on', EnumType('autorange', off=0, soft=1, hard=2),
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',
'2uV', '5uV', '10uV', '20uV', '50uV', '100uV', '200uV', '500uV', '1mV',
'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)
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)
@ -76,7 +76,7 @@ class XY(HasIO, Readable):
"""
value_with_unit = re.compile(r'(\d+)([pnumkMG]?)')
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:
value = round(float(value) * pfx_dict[pfx], 12)
return float(value)
@ -140,12 +140,15 @@ class XY(HasIO, Readable):
def write_range(self, target):
cl_idx = None
for name, idx in self.sen_range.items():
value = self.string_to_value(name)
if value < target < self.sen_range.get(idx + 1, float('inf')):
cl_idx = idx + 1
elif value == target:
cl_idx = idx
for idx, name in self.sen_range.items():
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
break
cl_idx = idx
self.write_irange(cl_idx)
return self.read_range()