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

Merge branch 'refactor'

parents 66ceffa8 3dde8247
Branches
Tags
No related merge requests found
......@@ -54,13 +54,11 @@ class Experiment(object):
self.proc.start()
def __init__(self, parameters, main_pipe):
"""Must be overridden to define self.parameters, and self.databytes."""
"""Adds commands for gain and ADC."""
self.parameters = parameters
self.main_pipe = main_pipe
self.databytes = 8
def init(self):
"""Adds commands for gain and ADC."""
self.data_extra = [] # must be defined even when not needed
self.__gaintable = [1e2, 3e2, 3e3, 3e4, 3e5, 3e6, 3e7, 5e8]
self.gain = self.__gaintable[int(self.parameters['gain'])]
......@@ -147,11 +145,11 @@ class Experiment(object):
"""
pass
class chronoamp(Experiment):
class Chronoamp(Experiment):
"""Chronoamperometry experiment"""
def __init__(self, parameters, main_pipe):
self.main_pipe = main_pipe
self.parameters = parameters
super(Chronoamp, self).__init__(parameters, main_pipe)
self.datatype = "linearData"
self.xlabel = "Time (s)"
self.ylabel = "Current (A)"
......@@ -164,8 +162,6 @@ class chronoamp(Experiment):
for i in self.parameters['time']:
self.xmax += int(i)
self.init() # need to call after xmin and xmax are set
self.commands += "R"
self.commands[2] += str(len(self.parameters['potential']))
self.commands[2] += " "
......@@ -184,11 +180,10 @@ class chronoamp(Experiment):
return (scan,
[seconds+milliseconds/1000., current*(1.5/self.gain/8388607)])
class lsv_exp(Experiment):
class LSVExp(Experiment):
"""Linear Scan Voltammetry experiment"""
def __init__(self, parameters, send_pipe):
self.main_pipe = send_pipe
self.parameters = parameters
def __init__(self, parameters, main_pipe):
super(LSVExp, self).__init__(parameters, main_pipe)
self.datatype = "linearData"
self.xlabel = "Voltage (mV)"
......@@ -219,11 +214,10 @@ class lsv_exp(Experiment):
self.commands[2] += str(self.parameters['slope'])
self.commands[2] += " "
class cv_exp(Experiment):
class CVExp(Experiment):
"""Cyclic Voltammetry experiment"""
def __init__(self, parameters, main_pipe):
self.main_pipe = main_pipe
self.parameters = parameters
super(CVExp, self).__init__(parameters, main_pipe)
self.datatype = "CVData"
self.xlabel = "Voltage (mV)"
......@@ -234,8 +228,6 @@ class cv_exp(Experiment):
self.xmin = self.parameters['v1']
self.xmax = self.parameters['v2']
self.init()
self.commands += "C"
self.commands[2] += str(self.parameters['clean_s'])
self.commands[2] += " "
......@@ -258,11 +250,10 @@ class cv_exp(Experiment):
self.commands[2] += str(self.parameters['slope'])
self.commands[2] += " "
class swv_exp(Experiment):
class SWVExp(Experiment):
"""Square Wave Voltammetry experiment"""
def __init__(self, parameters, main_pipe):
self.main_pipe = main_pipe
self.parameters = parameters
super(SWVExp, self).__init__(parameters, main_pipe)
self.datatype = "SWVData"
self.xlabel = "Voltage (mV)"
......@@ -273,8 +264,7 @@ class swv_exp(Experiment):
self.xmin = self.parameters['start']
self.xmax = self.parameters['stop']
self.init()
# forward/reverse stored here - needs to be after
# self.init to keep from being redefined
self.data_extra = [[], []]
......@@ -314,12 +304,11 @@ class swv_exp(Experiment):
reverse*(1.5/self.gain/8388607)])
class dpv_exp(swv_exp):
class DPVExp(SWVExp):
"""Diffential Pulse Voltammetry experiment."""
def __init__(self, parameters, main_pipe):
"""Overrides swv_exp method"""
self.main_pipe = main_pipe
self.parameters = parameters
"""Overrides SWVExp method"""
super(DPVExp, self).__init__(parameters, main_pipe)
self.datatype = "SWVData"
self.xlabel = "Voltage (mV)"
......
......@@ -24,7 +24,7 @@ import interface.save as save
import dstat_comm as comm
import interface.exp_window as exp_window
import interface.adc_pot as adc_pot
import mpltest
import plot
import microdrop
from serial import SerialException
......@@ -77,7 +77,7 @@ class Main(object):
self.autosavedir_button = self.builder.get_object('autosavedir_button')
self.autosavename = self.builder.get_object('autosavename')
self.plot = mpltest.plotbox(self.plotwindow)
self.plot = plot.plotbox(self.plotwindow)
#fill adc_pot_box
self.adc_pot_box = self.builder.get_object('gain_adc_box')
......@@ -205,7 +205,7 @@ class Main(object):
"Step table is empty")
self.recv_p, self.send_p = multiprocessing.Pipe(duplex=True)
self.current_exp = comm.chronoamp(parameters, self.send_p)
self.current_exp = comm.Chronoamp(parameters, self.send_p)
self.plot.clearall()
self.plot.changetype(self.current_exp)
......@@ -257,15 +257,10 @@ class Main(object):
"Start cannot equal Stop.")
self.recv_p, self.send_p = multiprocessing.Pipe(duplex=True)
self.current_exp = comm.lsv_exp(parameters, self.send_p)
self.current_exp = comm.LSVExp(parameters, self.send_p)
self.plot.clearall()
self.plot.changetype(self.current_exp)
self.rawbuffer.set_text("")
self.rawbuffer.place_cursor(self.rawbuffer.get_start_iter())
for i in self.current_exp.commands:
self.rawbuffer.insert_at_cursor(i)
self.current_exp.run_wrapper(
self.serial_liststore.get_value(
......@@ -274,7 +269,7 @@ class Main(object):
self.send_p.close()
self.plot_proc = gobject.timeout_add(200,
self.experiment_running_plot)
self.experiment_running_plot)
gobject.idle_add(self.experiment_running)
return
......@@ -316,15 +311,10 @@ class Main(object):
"Vertex 1 cannot equal Vertex 2.")
self.recv_p, self.send_p = multiprocessing.Pipe(duplex=True)
self.current_exp = comm.cv_exp(parameters, self.send_p)
self.current_exp = comm.CVExp(parameters, self.send_p)
self.plot.clearall()
self.plot.changetype(self.current_exp)
self.rawbuffer.set_text("")
self.rawbuffer.place_cursor(self.rawbuffer.get_start_iter())
for i in self.current_exp.commands:
self.rawbuffer.insert_at_cursor(i)
self.current_exp.run_wrapper(
self.serial_liststore.get_value(
......@@ -333,7 +323,7 @@ class Main(object):
self.send_p.close()
self.plot_proc = gobject.timeout_add(200,
self.experiment_running_plot)
self.experiment_running_plot)
gobject.idle_add(self.experiment_running)
return
......@@ -384,15 +374,10 @@ class Main(object):
"Start cannot equal Stop.")
self.recv_p, self.send_p = multiprocessing.Pipe(duplex=True)
self.current_exp = comm.swv_exp(parameters, self.send_p)
self.current_exp = comm.SWVExp(parameters, self.send_p)
self.plot.clearall()
self.plot.changetype(self.current_exp)
self.rawbuffer.set_text("")
self.rawbuffer.place_cursor(self.rawbuffer.get_start_iter())
for i in self.current_exp.commands:
self.rawbuffer.insert_at_cursor(i)
self.current_exp.run_wrapper(
self.serial_liststore.get_value(
......@@ -448,15 +433,10 @@ class Main(object):
"Start cannot equal Stop.")
self.recv_p, self.send_p = multiprocessing.Pipe(duplex=True)
self.current_exp = comm.dpv_exp(parameters, self.send_p)
self.current_exp = comm.DPVExp(parameters, self.send_p)
self.plot.clearall()
self.plot.changetype(self.current_exp)
self.rawbuffer.set_text("")
self.rawbuffer.place_cursor(self.rawbuffer.get_start_iter())
for i in self.current_exp.commands:
self.rawbuffer.insert_at_cursor(i)
self.current_exp.run_wrapper(
self.serial_liststore.get_value(
......@@ -551,6 +531,9 @@ class Main(object):
self.rawbuffer.set_text("")
self.rawbuffer.place_cursor(self.rawbuffer.get_start_iter())
for i in self.current_exp.commands:
self.rawbuffer.insert_at_cursor(i)
for col in zip(*self.current_exp.data):
for row in col:
self.rawbuffer.insert_at_cursor(str(row)+ " ")
......@@ -590,11 +573,11 @@ class Main(object):
def on_file_save_exp_activate(self, menuitem, data=None):
"""Activate dialogue to save current experiment data. """
if self.current_exp:
save_inst = save.manSave(self.current_exp)
save.manSave(self.current_exp)
def on_file_save_plot_activate(self, menuitem, data=None):
"""Activate dialogue to save current plot."""
save_inst = save.plotSave(self.plot)
save.plotSave(self.plot)
def on_menu_dropbot_connect_activate(self, menuitem, data=None):
"""Listen for remote control connection from µDrop."""
......
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