Get/set aux serial number, better clearing.

This commit is contained in:
Ian Gulliver
2016-04-08 12:04:17 -07:00
parent 54f601d911
commit 63765798ff
2 changed files with 24 additions and 8 deletions

View File

@@ -28,7 +28,7 @@ LINES = [
('Generation', ilt.GetGeneration, ''),
('Firmware version', ilt.GetFirmwareVersion, ''),
('Serial number', ilt.GetSerialNumber, ''),
# No GetAuxSerialNumber, because it errors on my ILT1000-V02
('Aux serial number', ilt.GetAuxSerialNumber, ''),
('Controller temperature', ilt.GetControllerTempF, '°F'),
('Ambient temperature', ilt.GetAmbientTempF, '°F'),
('Date/time', ilt.GetDateTime, ''),

View File

@@ -2,6 +2,7 @@
import datetime
import serial
import time
class Error(Exception):
@@ -48,7 +49,6 @@ class Saturated(Error):
# getcalfactor
# getfeedbackres
# setcalfactor
# setclockfreq
# setsamplecount
@@ -69,16 +69,18 @@ class ILT1000(object):
# We default to ttyUSB1
def __init__(self, device='/dev/ttyUSB1', set_time=True):
self._dev = serial.Serial(device, 115200)
try:
# clear junk in outgoing buffer
self._SendCommand('echooff')
except UnsupportedCommand:
pass
self._dev = serial.Serial(device, baudrate=115200)
self._Clear()
assert int(self._SendCommand('echooff')) == 0
if set_time:
self.SetDateTime()
def _Clear(self):
self._dev.timeout = 0.1
self._dev.write(b'\r\n')
self._dev.read(128)
self._dev.timeout = None
def _SendCommand(self, command):
self._dev.write(command.encode('ascii') + b'\r\n')
ret = self._dev.readline().rstrip().decode('ascii')
@@ -107,6 +109,11 @@ class ILT1000(object):
def GetAuxSerialNumber(self):
return self._SendCommand('getauxserialno')
def SetAuxSerialNumber(self, serial):
# SPEC ERROR
# This is undocumented.
assert int(self._SendCommand('setauxserialno %s' % serial)) == 0
def GetControllerTempF(self):
return int(self._SendCommand('gettemp'))
@@ -162,3 +169,12 @@ class ILT1000(object):
def GetClockFrequencyHz(self):
ret = self._SendCommand('getclockfreq')
return float(ret) / 100
def SetClockFrequency(self):
# SPEC ERROR
# Command returns -999 on my ILT1000-V02. Implementation below is untested
# and likely wrong.
assert int(self._SendCommand('setclockfreq')) == 0
self._dev.write(b'A')
time.sleep(60.0)
self._dev.write(b'B')