SetAveraging
This commit is contained in:
3
dump.py
3
dump.py
@@ -23,6 +23,9 @@ def PrintLine(label, value, unit=''):
|
|||||||
ilt = ilt1000.ILT1000(device=FLAGS.device)
|
ilt = ilt1000.ILT1000(device=FLAGS.device)
|
||||||
|
|
||||||
|
|
||||||
|
ilt.SetAveraging(ilt.AVERAGING_AUTO)
|
||||||
|
|
||||||
|
|
||||||
LINES = [
|
LINES = [
|
||||||
('Model', ilt.GetModelName, ''),
|
('Model', ilt.GetModelName, ''),
|
||||||
('Generation', ilt.GetGeneration, ''),
|
('Generation', ilt.GetGeneration, ''),
|
||||||
|
|||||||
43
ilt1000.py
43
ilt1000.py
@@ -25,14 +25,14 @@ class Saturated(Error):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class CommandError(Error):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
# TODO commands:
|
# TODO commands:
|
||||||
# eraselogdata
|
# eraselogdata
|
||||||
# getlogdata
|
# getlogdata
|
||||||
# setautaveraging
|
|
||||||
# setcurrentloop
|
# setcurrentloop
|
||||||
# sethiaveraging
|
|
||||||
# setlowaveraging
|
|
||||||
# setmedaveraging
|
|
||||||
# setsimpleirrcal
|
# setsimpleirrcal
|
||||||
# setuserdark
|
# setuserdark
|
||||||
# startlogdata
|
# startlogdata
|
||||||
@@ -61,6 +61,11 @@ class ILT1000(object):
|
|||||||
FEEDBACK_RES_MEDIUM = 2
|
FEEDBACK_RES_MEDIUM = 2
|
||||||
FEEDBACK_RES_HIGH = 3
|
FEEDBACK_RES_HIGH = 3
|
||||||
|
|
||||||
|
AVERAGING_AUTO = 0
|
||||||
|
AVERAGING_LOW = 1 # 5 ㎐
|
||||||
|
AVERAGING_MEDIUM = 2 # 2 ㎐
|
||||||
|
AVERAGING_HIGH = 3 # 0.5 ㎐
|
||||||
|
|
||||||
# ILT1000 presents two FTDI serial devices, which become ttyUSB0 and ttyUSB1
|
# ILT1000 presents two FTDI serial devices, which become ttyUSB0 and ttyUSB1
|
||||||
# if nothing else is attached. ttyUSB0 seems to be completely non-responsive.
|
# if nothing else is attached. ttyUSB0 seems to be completely non-responsive.
|
||||||
# We default to ttyUSB1
|
# We default to ttyUSB1
|
||||||
@@ -68,7 +73,7 @@ class ILT1000(object):
|
|||||||
def __init__(self, device='/dev/ttyUSB1', set_time=True):
|
def __init__(self, device='/dev/ttyUSB1', set_time=True):
|
||||||
self._dev = serial.Serial(device, baudrate=115200)
|
self._dev = serial.Serial(device, baudrate=115200)
|
||||||
self._Clear()
|
self._Clear()
|
||||||
assert int(self._SendCommand('echooff')) == 0
|
self._SendCommandOrDie('echooff')
|
||||||
if set_time:
|
if set_time:
|
||||||
self.SetDateTime()
|
self.SetDateTime()
|
||||||
|
|
||||||
@@ -91,6 +96,11 @@ class ILT1000(object):
|
|||||||
raise Saturated(command)
|
raise Saturated(command)
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
def _SendCommandOrDie(self, command):
|
||||||
|
ret = self._SendCommand(command)
|
||||||
|
if int(ret) != 0:
|
||||||
|
raise CommandError
|
||||||
|
|
||||||
def GetModelName(self):
|
def GetModelName(self):
|
||||||
return self._SendCommand('getmodelname')
|
return self._SendCommand('getmodelname')
|
||||||
|
|
||||||
@@ -109,7 +119,7 @@ class ILT1000(object):
|
|||||||
def SetAuxSerialNumber(self, serial):
|
def SetAuxSerialNumber(self, serial):
|
||||||
# SPEC ERROR
|
# SPEC ERROR
|
||||||
# This is undocumented.
|
# This is undocumented.
|
||||||
assert int(self._SendCommand('setauxserialno %s' % serial)) == 0
|
self._SendCommandOrDie('setauxserialno %s' % serial)
|
||||||
|
|
||||||
def GetControllerTempF(self):
|
def GetControllerTempF(self):
|
||||||
return int(self._SendCommand('gettemp'))
|
return int(self._SendCommand('gettemp'))
|
||||||
@@ -127,8 +137,7 @@ class ILT1000(object):
|
|||||||
def SetDateTime(self, now=None):
|
def SetDateTime(self, now=None):
|
||||||
now = now or datetime.datetime.utcnow()
|
now = now or datetime.datetime.utcnow()
|
||||||
timestr = now.strftime('%m/%d/%Y %H:%M:%S')
|
timestr = now.strftime('%m/%d/%Y %H:%M:%S')
|
||||||
ret = self._SendCommand('setdatetime ' + timestr)
|
self._SendCommandOrDie('setdatetime ' + timestr)
|
||||||
assert int(ret) == 0
|
|
||||||
|
|
||||||
def GetSensorCurrent(self):
|
def GetSensorCurrent(self):
|
||||||
# SPEC ERROR
|
# SPEC ERROR
|
||||||
@@ -172,7 +181,7 @@ class ILT1000(object):
|
|||||||
}
|
}
|
||||||
|
|
||||||
def SetDarkMode(self, mode):
|
def SetDarkMode(self, mode):
|
||||||
assert int(self._SendCommand(self._DARK_MODE_COMMANDS[mode])) == 0
|
self._SendCommandOrDie(self._DARK_MODE_COMMANDS[mode])
|
||||||
|
|
||||||
def GetFactoryDarkVoltages(self):
|
def GetFactoryDarkVoltages(self):
|
||||||
# SPEC ERROR
|
# SPEC ERROR
|
||||||
@@ -200,7 +209,7 @@ class ILT1000(object):
|
|||||||
# SPEC ERROR
|
# SPEC ERROR
|
||||||
# Command returns -999 on my ILT1000-V02. Implementation below is untested
|
# Command returns -999 on my ILT1000-V02. Implementation below is untested
|
||||||
# and likely wrong.
|
# and likely wrong.
|
||||||
assert int(self._SendCommand('setclockfreq')) == 0
|
self._SendCommandOrDie('setclockfreq')
|
||||||
self._dev.write(b'A')
|
self._dev.write(b'A')
|
||||||
time.sleep(60.0)
|
time.sleep(60.0)
|
||||||
self._dev.write(b'B')
|
self._dev.write(b'B')
|
||||||
@@ -210,4 +219,16 @@ class ILT1000(object):
|
|||||||
return float(ret) * 100
|
return float(ret) * 100
|
||||||
|
|
||||||
def SetFeedbackResistor(self, resistor):
|
def SetFeedbackResistor(self, resistor):
|
||||||
assert int(self._SendCommand('usefeedbackres %d' % resistor)) == 0
|
self._SendCommandOrDie('usefeedbackres %d' % resistor)
|
||||||
|
|
||||||
|
_AVERAGING_COMMANDS = {
|
||||||
|
AVERAGING_AUTO: 'setautaveraging',
|
||||||
|
AVERAGING_LOW: 'setlowaveraging',
|
||||||
|
AVERAGING_MEDIUM: 'setmedaveraging',
|
||||||
|
AVERAGING_HIGH: 'sethiaveraging',
|
||||||
|
}
|
||||||
|
|
||||||
|
def SetAveraging(self, averaging):
|
||||||
|
# SPEC WARNING
|
||||||
|
# There does not appear to be a way to read this back.
|
||||||
|
self._SendCommandOrDie(self._AVERAGING_COMMANDS[averaging])
|
||||||
|
|||||||
Reference in New Issue
Block a user