Skip to content
Snippets Groups Projects
Commit 2d5d4c1c authored by Alexandros Asonitis's avatar Alexandros Asonitis
Browse files

debugging part 3 software plots work

parent 66202602
No related branches found
No related tags found
No related merge requests found
%% Cell type:code id:51b012d0-95b0-41c2-81bb-2205f3c53be2 tags: %% Cell type:code id:51b012d0-95b0-41c2-81bb-2205f3c53be2 tags:
``` python ``` python
%run double_gate_ADU.py %run double_gate_ADU.py
``` ```
%% Output %% Output
%% Cell type:code id:1a0e956e-9d25-481e-b1ec-b03babcb4c19 tags: %% Cell type:code id:40d5f341-bc61-4698-8bdd-f99e94f4e325 tags:
``` python ``` python
``` ```
......
...@@ -204,7 +204,7 @@ def graph_tool(params,device): ...@@ -204,7 +204,7 @@ def graph_tool(params,device):
device.delete_axis("Y2") device.delete_axis("Y2")
device.del_user_functions() device.del_user_functions()
device.error() device.clear_error_stack()
# How to define user functions correctly and not multiple times # How to define user functions correctly and not multiple times
plot_list = [params["PLOT"]["x"],params["PLOT"]["y1"],params["PLOT"]["y2"]] plot_list = [params["PLOT"]["x"],params["PLOT"]["y1"],params["PLOT"]["y2"]]
...@@ -227,27 +227,76 @@ def graph_tool(params,device): ...@@ -227,27 +227,76 @@ def graph_tool(params,device):
# Now send the parameters in the tool # Now send the parameters in the tool
device.display_variable('X',params["PLOT"]["x"]) device.display_variable('X',params["PLOT"]["x"])
device.axis_scale('X',params["PLOT"]["x_scale"]) device.error_occured()
device.axis_scale('X','LIN')
device.error_occured()
device.display_variable_min_max('X','MIN',params["PLOT"]["x_min"]) device.display_variable_min_max('X','MIN',params["PLOT"]["x_min"])
device.error_occured()
device.display_variable_min_max('X','MAX',params["PLOT"]["x_max"]) device.display_variable_min_max('X','MAX',params["PLOT"]["x_max"])
device.error_occured()
if params["PLOT"]["y1_scale"]=='LOG': if params["PLOT"]["y1_scale"]=='LOG':
device.display_variable('Y1',"A"+params["PLOT"]["y1"]) device.display_variable('Y1',"A"+params["PLOT"]["y1"])
else: else:
device.display_variable('Y1',params["PLOT"]["y1"]) device.display_variable('Y1',params["PLOT"]["y1"])
device.error_occured()
device.axis_scale('Y1',params["PLOT"]["y1_scale"]) device.axis_scale('Y1',params["PLOT"]["y1_scale"])
device.error_occured()
device.display_variable_min_max('Y1','MIN',params["PLOT"]["y1_min"]) device.display_variable_min_max('Y1','MIN',params["PLOT"]["y1_min"])
device.error_occured()
device.display_variable_min_max('Y1','MAX',params["PLOT"]["y1_max"]) device.display_variable_min_max('Y1','MAX',params["PLOT"]["y1_max"])
device.error_occured()
if params["PLOT"]["y2"]!= "None": if params["PLOT"]["y2"]!= "None":
if params["PLOT"]["y2_scale"]=='LOG': if params["PLOT"]["y2_scale"]=='LOG':
device.display_variable('Y2',"A"+params["PLOT"]["y2"]) device.display_variable('Y2',"A"+params["PLOT"]["y2"])
else: else:
device.display_variable('Y2',params["PLOT"]["y2"]) device.display_variable('Y2',params["PLOT"]["y2"])
device.error_occured()
device.axis_scale('Y2',params["PLOT"]["y2_scale"]) device.axis_scale('Y2',params["PLOT"]["y2_scale"])
device.error_occured()
device.display_variable_min_max('Y2','MIN',params["PLOT"]["y2_min"]) device.display_variable_min_max('Y2','MIN',params["PLOT"]["y2_min"])
device.display_variable_min_max('Y2','MAX',params["PLOT"]["y2_max"]) device.display_variable_min_max('Y2','MAX',params["PLOT"]["y2_max"])
device.error_occured()
#plot software functions
def values_to_plot(params,device):
#plotted variables as they are named in the tool
#return the plotted data for easier configuration
plotted_variables = {'X':device.get_axis_variable('X'),'Y1': device.get_axis_variable('Y1')}
if params["PLOT"]["y2"]!= "None":
plotted_variables['Y2']= device.get_axis_variable('Y2')
plot_values ={}
for axis,variable in plotted_variables.items():
plot_values.setdefault(axis,np.array(device.return_values(variable)))
return plot_values
def set_axes_labels(plot_list):
axes_labels=[]
# define the axes labels similarly to the user functions
for element in plot_list:
if element != "None": #only the last one
if element.startswith("V"):
label = f"{element} (V)"
elif element.startswith('I') and element.endswith('mm'):
label = f"{element[:-2]} (uA/um)"
else: # regular I
label = f"{element} (A)"
axes_labels.append(label)
return axes_labels
This diff is collapsed.
...@@ -45,7 +45,20 @@ class HP4155a(object): ...@@ -45,7 +45,20 @@ class HP4155a(object):
self.inst.write(":PAGE:STR") self.inst.write(":PAGE:STR")
def error(self): def error(self):
return self.inst.query(":SYST:ERR?") error = self.inst.query(":SYST:ERR?")
error_code = int(error.split(',',1)[0])
error_message = error.split(',',1)[1]
return error_code,error_message
def error_occured(self):
code,message = self.error()
if code != 0:
raise Exception(message)
def clear_error_stack(self):
code,_ = self.error()
while code != 0:
code,_ = self.error()
def operation_completed(self): def operation_completed(self):
text = self.inst.query('*OPC?') text = self.inst.query('*OPC?')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment