add secop_psi/triton.py
triton dil support Change-Id: Ifbb0d382adec29b031a1e99c68515f7bb23ead45
This commit is contained in:
@ -41,7 +41,7 @@ SOURCECMDS = {
|
||||
' smua.source.output = 0 print("ok")',
|
||||
1: 'reset()'
|
||||
' smua.source.func = smua.OUTPUT_DCAMPS'
|
||||
' display.smua.measure.func = display.MEASURE_VOLTS'
|
||||
' display.smua.measure.func = display.MEASURE_DCVOLTS'
|
||||
' smua.source.autorangei = 1'
|
||||
' smua.source.output = 1 print("ok")',
|
||||
2: 'reset()'
|
||||
@ -65,11 +65,11 @@ class SourceMeter(HasIO, Module):
|
||||
return float(self.communicate('print((smua.source.func+1)*smua.source.output)'))
|
||||
|
||||
def write_mode(self, value):
|
||||
assert self.communicate(SOURCECMDS[value]) == 'ok'
|
||||
if value == 'current':
|
||||
self.write_vlimit(self.vlimit)
|
||||
elif value == 'voltage':
|
||||
self.write_ilimit(self.ilimit)
|
||||
assert self.communicate(SOURCECMDS[value]) == 'ok'
|
||||
return self.read_mode()
|
||||
|
||||
def read_ilimit(self):
|
||||
@ -118,6 +118,7 @@ class Current(HasIO, Writable):
|
||||
limit = Parameter('current limit', FloatRange(0, 2.0, unit='A'), default=2)
|
||||
|
||||
def initModule(self):
|
||||
super().initModule()
|
||||
self.sourcemeter.registerCallbacks(self)
|
||||
|
||||
def read_value(self):
|
||||
@ -129,9 +130,9 @@ class Current(HasIO, Writable):
|
||||
def write_target(self, value):
|
||||
if value > self.sourcemeter.ilimit:
|
||||
raise ValueError('current exceeds limit')
|
||||
value = float(self.communicate('smua.source.leveli = %g print(smua.source.leveli)' % value))
|
||||
if not self.active:
|
||||
self.sourcemeter.write_mode('current') # triggers update_mode -> set active to True
|
||||
value = float(self.communicate('smua.source.leveli = %g print(smua.source.leveli)' % value))
|
||||
return value
|
||||
|
||||
def read_limit(self):
|
||||
@ -163,6 +164,7 @@ class Voltage(HasIO, Writable):
|
||||
limit = Parameter('voltage limit', FloatRange(0, 2.0, unit='V'), default=2)
|
||||
|
||||
def initModule(self):
|
||||
super().initModule()
|
||||
self.sourcemeter.registerCallbacks(self)
|
||||
|
||||
def read_value(self):
|
||||
@ -174,9 +176,9 @@ class Voltage(HasIO, Writable):
|
||||
def write_target(self, value):
|
||||
if value > self.sourcemeter.vlimit:
|
||||
raise ValueError('voltage exceeds limit')
|
||||
value = float(self.communicate('smua.source.levelv = %g print(smua.source.levelv)' % value))
|
||||
if not self.active:
|
||||
self.sourcemeter.write_mode('voltage') # triggers update_mode -> set active to True
|
||||
value = float(self.communicate('smua.source.levelv = %g print(smua.source.levelv)' % value))
|
||||
return value
|
||||
|
||||
def read_limit(self):
|
||||
|
Reference in New Issue
Block a user