Skip to content
Snippets Groups Projects
Commit 3a091d5b authored by Michael DM Dryden's avatar Michael DM Dryden
Browse files

Added preconditioning commands. **Requires dstat-firmware ≥ 36805a2da**

parent 36fa4179
Branches
Tags
No related merge requests found
......@@ -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'])
......
......@@ -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')
......
......@@ -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
......@@ -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')
......
......@@ -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):
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment