diff --git a/dstatInterface/dstat_comm.py b/dstatInterface/dstat_comm.py index b5ce1ada59ffb554bbc3641306ddb0468760115a..562b0dc128052ac593cfbce2d228d869a534d492 100644 --- a/dstatInterface/dstat_comm.py +++ b/dstatInterface/dstat_comm.py @@ -204,6 +204,14 @@ class lsv_exp(Experiment): self.init() #need to call after xmin and xmax are set self.commands += "L" + self.commands[2] += str(self.parameters['clean_s']) + self.commands[2] += " " + self.commands[2] += str(self.parameters['dep_s']) + self.commands[2] += " " + self.commands[2] += str(int(self.parameters['clean_mV']*(65536./3000)+32768)) + self.commands[2] += " " + self.commands[2] += str(int(self.parameters['dep_mV']*(65536./3000)+32768)) + self.commands[2] += " " self.commands[2] += str(self.parameters['start']) self.commands[2] += " " self.commands[2] += str(self.parameters['stop']) @@ -219,7 +227,7 @@ class cv_exp(Experiment): self.databuffer = databuffer_instance self.datatype = "CVData" - self.xlabel = "Voltage (DAC units)" + self.xlabel = "Voltage (mV)" self.ylabel = "Current (A)" self.data = [[],[]] #Will have to alter data_handler to add new lists as needed self.datalength = 2 * self.parameters['scans'] #x and y for each scan @@ -229,6 +237,14 @@ class cv_exp(Experiment): self.init() self.commands += "C" + self.commands[2] += str(self.parameters['clean_s']) + self.commands[2] += " " + self.commands[2] += str(self.parameters['dep_s']) + self.commands[2] += " " + self.commands[2] += str(int(self.parameters['clean_mV']*(65536./3000)+32768)) + self.commands[2] += " " + self.commands[2] += str(int(self.parameters['dep_mV']*(65536./3000)+32768)) + self.commands[2] += " " self.commands[2] += str(self.parameters['v1']) self.commands[2] += " " self.commands[2] += str(self.parameters['v2']) @@ -301,6 +317,14 @@ class swv_exp(Experiment): self.data_extra = [[],[]] #forward/reverse stored here - needs to be after self.init to keep from being redefined self.commands += "S" + self.commands[2] += str(self.parameters['clean_s']) + self.commands[2] += " " + self.commands[2] += str(self.parameters['dep_s']) + self.commands[2] += " " + self.commands[2] += str(int(self.parameters['clean_mV']*(65536./3000)+32768)) + self.commands[2] += " " + self.commands[2] += str(int(self.parameters['dep_mV']*(65536./3000)+32768)) + self.commands[2] += " " self.commands[2] += str(self.parameters['start']) self.commands[2] += " " self.commands[2] += str(self.parameters['stop']) diff --git a/dstatInterface/interface/cv.py b/dstatInterface/interface/cv.py index 1b02a9dc54dccc1eaca7bac1897dfe6b9abada72..0aadf29d6e6f46e12793d5916514600dc9448da7 100644 --- a/dstatInterface/interface/cv.py +++ b/dstatInterface/interface/cv.py @@ -8,6 +8,10 @@ class cv: self.builder.add_from_file('interface/cv.glade') self.builder.connect_signals(self) + self.clean_mV = self.builder.get_object('clean_mV') + self.clean_s = self.builder.get_object('clean_s') + self.dep_mV = self.builder.get_object('dep_mV') + self.dep_s = self.builder.get_object('dep_s') self.start_entry = self.builder.get_object('start_entry') self.v1_entry = self.builder.get_object('v1_entry') self.v2_entry = self.builder.get_object('v2_entry') diff --git a/dstatInterface/interface/lsv.py b/dstatInterface/interface/lsv.py index e1941f393aaa65bec6c4a8a35f0b9cbd10a46b28..990ca640c8c4471d4bae47205d79302bb72c7000 100644 --- a/dstatInterface/interface/lsv.py +++ b/dstatInterface/interface/lsv.py @@ -7,7 +7,12 @@ class lsv: self.builder = gtk.Builder() self.builder.add_from_file('interface/lsv.glade') self.builder.connect_signals(self) - + + + self.clean_mV = self.builder.get_object('clean_mV') + self.clean_s = self.builder.get_object('clean_s') + self.dep_mV = self.builder.get_object('dep_mV') + self.dep_s = self.builder.get_object('dep_s') self.start_entry = self.builder.get_object('start_entry') self.stop_entry = self.builder.get_object('stop_entry') self.slope_entry = self.builder.get_object('slope_entry') \ No newline at end of file diff --git a/dstatInterface/interface/swv.py b/dstatInterface/interface/swv.py index ff7a4976bbcb183645fbcb8c36ab51111fbbac10..a78c44b9ec1cd518c23a5b9c14417a68d492daec 100644 --- a/dstatInterface/interface/swv.py +++ b/dstatInterface/interface/swv.py @@ -8,6 +8,10 @@ class swv: self.builder.add_from_file('interface/swv.glade') self.builder.connect_signals(self) + self.clean_mV = self.builder.get_object('clean_mV') + self.clean_s = self.builder.get_object('clean_s') + self.dep_mV = self.builder.get_object('dep_mV') + self.dep_s = self.builder.get_object('dep_s') self.start_entry = self.builder.get_object('start_entry') self.stop_entry = self.builder.get_object('stop_entry') self.step_entry = self.builder.get_object('step_entry') diff --git a/dstatInterface/interface_test.py b/dstatInterface/interface_test.py index e521d967f26eaf56e82ec9b69f341f530add6272..e16ed93081d1f07982b50faaf5d52e2f838a4679 100644 --- a/dstatInterface/interface_test.py +++ b/dstatInterface/interface_test.py @@ -212,12 +212,25 @@ class main: self.current_exp = comm.chronoamp(parameters, view_parameters, self.plot, self.rawbuffer) self.current_exp.run(self.serial_liststore.get_value(self.serial_combobox.get_active_iter(), 0)) + elif selection == 1: #LSV + parameters['clean_mV'] = int(self.lsv.clean_mV.get_text()) + parameters['clean_s'] = int(self.lsv.clean_s.get_text()) + parameters['dep_mV'] = int(self.lsv.dep_mV.get_text()) + parameters['dep_s'] = int(self.lsv.dep_s.get_text()) parameters['start'] = int(self.lsv.start_entry.get_text()) parameters['stop'] = int(self.lsv.stop_entry.get_text()) parameters['slope'] = int(self.lsv.slope_entry.get_text()) #check parameters are within hardware limits + if (parameters['clean_mV'] > 1499 or parameters['clean_mV'] < -1500): + raise InputError(parameters['clean_mV'],"Clean potential exceeds hardware limits.") + if (parameters['dep_mV'] > 1499 or parameters['dep_mV'] < -1500): + raise InputError(parameters['dep_mV'],"Deposition potential exceeds hardware limits.") + if (parameters['clean_s'] < 0): + raise InputError(parameters['clean_s'],"Clean time cannot be negative.") + if (parameters['dep_s'] < 0): + raise InputError(parameters['dep_s'],"Deposition time cannot be negative.") if (parameters['start'] > 1499 or parameters['start'] < -1500): raise InputError(parameters['start'],"Start parameter exceeds hardware limits.") if (parameters['stop'] > 1499 or parameters['stop'] < -1500): @@ -231,6 +244,10 @@ class main: self.current_exp.run(self.serial_liststore.get_value(self.serial_combobox.get_active_iter(), 0)) elif selection == 2: #CV + parameters['clean_mV'] = int(self.cv.clean_mV.get_text()) + parameters['clean_s'] = int(self.cv.clean_s.get_text()) + parameters['dep_mV'] = int(self.cv.dep_mV.get_text()) + parameters['dep_s'] = int(self.cv.dep_s.get_text()) parameters['start'] = int(self.cv.start_entry.get_text()) parameters['slope'] = int(self.cv.slope_entry.get_text()) parameters['v1'] = int(self.cv.v1_entry.get_text()) @@ -238,6 +255,14 @@ class main: parameters['scans'] = int(self.cv.scans_entry.get_text()) #check parameters are within hardware limits + if (parameters['clean_mV'] > 1499 or parameters['clean_mV'] < -1500): + raise InputError(parameters['clean_mV'],"Clean potential exceeds hardware limits.") + if (parameters['dep_mV'] > 1499 or parameters['dep_mV'] < -1500): + raise InputError(parameters['dep_mV'],"Deposition potential exceeds hardware limits.") + if (parameters['clean_s'] < 0): + raise InputError(parameters['clean_s'],"Clean time cannot be negative.") + if (parameters['dep_s'] < 0): + raise InputError(parameters['dep_s'],"Deposition time cannot be negative.") if (parameters['start'] > 1499 or parameters['start'] < -1500): raise InputError(parameters['start'],"Start parameter exceeds hardware limits.") if (parameters['slope'] > 2000 or parameters['slope'] < 1): @@ -255,6 +280,10 @@ class main: self.current_exp.run(self.serial_liststore.get_value(self.serial_combobox.get_active_iter(), 0)) elif selection == 3: #SWV + parameters['clean_mV'] = int(self.swv.clean_mV.get_text()) + parameters['clean_s'] = int(self.swv.clean_s.get_text()) + parameters['dep_mV'] = int(self.swv.dep_mV.get_text()) + parameters['dep_s'] = int(self.swv.dep_s.get_text()) parameters['start'] = int(self.swv.start_entry.get_text()) parameters['stop'] = int(self.swv.stop_entry.get_text()) parameters['step'] = int(self.swv.step_entry.get_text()) @@ -269,6 +298,14 @@ class main: parameters['scans'] = 0 #check parameters are within hardware limits (doesn't check if pulse will go out of bounds, but instrument checks this (I think)) + if (parameters['clean_mV'] > 1499 or parameters['clean_mV'] < -1500): + raise InputError(parameters['clean_mV'],"Clean potential exceeds hardware limits.") + if (parameters['dep_mV'] > 1499 or parameters['dep_mV'] < -1500): + raise InputError(parameters['dep_mV'],"Deposition potential exceeds hardware limits.") + if (parameters['clean_s'] < 0): + raise InputError(parameters['clean_s'],"Clean time cannot be negative.") + if (parameters['dep_s'] < 0): + raise InputError(parameters['dep_s'],"Deposition time cannot be negative.") if (parameters['start'] > 1499 or parameters['start'] < -1500): raise InputError(parameters['start'],"Start parameter exceeds hardware limits.") if (parameters['step'] > 200 or parameters['step'] < 1):