Source code for tc300

try: 
    from serial import Serial
except: 
    print('no serial')
  
[docs] class TC300 : def __init__(self, logger=None ) : """ Initialize dome properties and capabilities """ print('init TC300') self.maxswitch = 2 self.description = 'Thorlabs TC 300' self.name = 'Iodine temperature' self.minswitchvalue = 0 self.maxswitchvalue = 80 self.canasync = False self.connect(port='COM7') def connect(self,port='COM7') : print('connect TC300') try : self.tc300=Serial(port,115200,timeout=1) print('connected TC300') self.connected = True except : print('failed to connect TC300') self.connected = False def connected(self) : return self.connected def canwrite(self,id) : return True def disconnect(self) : self.connected(False) def get_description(self,id) : return '{:s}, channel {:d}'.format(self.description,id) def get_name(self,id) : return self.name def get_minvalue(self,id) : return self.minswitchvalue def get_maxvalue(self,id) : return self.maxswitchvalue def set_value(self,id,val) : self.tc300.write('TSET{:d}={:d}\r'.format(id+1,int(val*10)).encode()) self.tc300.readline() self.tc300.write('EN{:d}=1\r'.format(id+1).encode()) self.tc300.readline() def get_enable(self,id) : self.tc300.write('ST?\r'.format(id+1).encode()) status = int(self.tc300.readline().strip(b'>').split()[0]) print('status: ', status) return (status & (1<<id)) > 0 def set_enable(self,id,val) : self.tc300.write('EN{:d}={:d}\r'.format(id+1,int(val)).encode()) self.tc300.readline() def set_dark(self,id,val) : self.tc300.write('DARK={:d}\r'.format(int(val)).encode()) self.tc300.readline() def set_bright(self,id,val) : self.tc300.write('BRIGHT={:d}\r'.format(int(val)).encode()) self.tc300.readline() def getswitch(self,id) : return True def get_value(self,id) : return self.get_tact(id) def get_tset(self,id) : self.tc300.write('TSET{:d}?\r'.format(id+1).encode()) return float(self.tc300.readline().strip(b'>').split()[0]) def get_tact(self,id) : self.tc300.write('TACT{:d}?\r'.format(id+1).encode()) return float(self.tc300.readline().strip(b'>').split()[0]) def get_voltage(self,id) : self.tc300.write('VOLT{:d}?\r'.format(id+1).encode()) return float(self.tc300.readline().strip(b'>').split()[0]) def get_current(self,id) : self.tc300.write('CURR{:d}?\r'.format(id+1).encode()) return float(self.tc300.readline().strip(b'>').split()[0]) def get_dark(self,id) : self.tc300.write('DARK?\r'.encode()) return float(self.tc300.readline().strip(b'>').split()[0]) def get_bright(self,id) : self.tc300.write('BRIGHT?\r'.encode()) return float(self.tc300.readline().strip(b'>').split()[0]) def get_step(self,id) : return 0.1