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

Abillity to save the initial plots

parent f9eeb0c8
Branches
No related tags found
No related merge requests found
......@@ -111,7 +111,7 @@ def on_start_clicked(b):
enable_widgets(all_widgets)
return
save_plot = sample['save_fig'].value
#reset replotting columns
replot_transfer['x_variable'].options = []
replot_transfer['y_variable'].options = []
......@@ -125,19 +125,19 @@ def on_start_clicked(b):
if transfer_check.value == True:
match transfer_gates.value:
case 'VTG' if check_values(Vtg_transfer,'primary') and check_values(Vds_transfer,'secondary'):
df_transfer,points_transfer = Transfer_VTG(Vtg_transfer,Vds_transfer,integration_transfer.value,sample,device)
df_transfer,points_transfer = Transfer_VTG(Vtg_transfer,Vds_transfer,integration_transfer.value,sample,device,smu_map,save_plot)
replot_transfer['x_variable'].options = df_transfer.columns.tolist()
replot_transfer['y_variable'].options = df_transfer.columns.tolist()
replot_transfer['x_variable'].value = 'VTG/V'
replot_transfer['y_variable'].value = 'IDmm/uA/um'
case 'VBG' if check_values(Vbg_transfer,'primary') and check_values(Vds_transfer,'secondary'):
df_transfer,points_transfer = Transfer_VBG(Vbg_transfer,Vds_transfer,integration_transfer.value,sample,device)
df_transfer,points_transfer = Transfer_VBG(Vbg_transfer,Vds_transfer,integration_transfer.value,sample,device,smu_map,save_plot)
replot_transfer['x_variable'].options = df_transfer.columns.tolist()
replot_transfer['y_variable'].options = df_transfer.columns.tolist()
replot_transfer['x_variable'].value = 'VBG/V'
replot_transfer['y_variable'].value = 'IDmm/uA/um'
case 'BOTH' if check_values(Vbg_transfer,'synchronous') and check_values(Vds_transfer,'secondary') and check_values(Vtg_transfer,'primary'):
df_transfer,points_transfer = Transfer_BOTH(Vtg_transfer,Vbg_transfer,Vds_transfer,integration_transfer.value,sample,device)
df_transfer,points_transfer = Transfer_BOTH(Vtg_transfer,Vbg_transfer,Vds_transfer,integration_transfer.value,sample,device,smu_map,save_plot)
replot_transfer['x_variable'].options = df_transfer.columns.tolist()
replot_transfer['y_variable'].options = df_transfer.columns.tolist()
replot_transfer['x_variable'].value = 'VBG/V'
......@@ -150,19 +150,19 @@ def on_start_clicked(b):
if output_check.value == True:
match output_gates.value:
case 'VTG' if check_values(Vds_output,'primary') and check_values(Vtg_output,'secondary'):
df_output,points_output = Output_VTG(Vds_output,Vtg_output,integration_output.value,sample,device)
df_output,points_output = Output_VTG(Vds_output,Vtg_output,integration_output.value,sample,device,smu_map,save_plot)
replot_output['x_variable'].options = df_output.columns.tolist()
replot_output['y_variable'].options = df_output.columns.tolist()
replot_output['x_variable'].value = 'VDS/V'
replot_output['y_variable'].value = 'IDmm/uA/um'
case 'VBG' if check_values(Vds_output,'primary') and check_values(Vbg_output,'secondary'):
df_output,points_output = Output_VBG(Vds_output,Vbg_output,integration_output.value,sample,device)
df_output,points_output = Output_VBG(Vds_output,Vbg_output,integration_output.value,sample,device,smu_map,save_plot)
replot_output['x_variable'].options = df_output.columns.tolist()
replot_output['y_variable'].options = df_output.columns.tolist()
replot_output['x_variable'].value = 'VDS/V'
replot_output['y_variable'].value = 'IDmm/uA/um'
case 'BOTH' if check_values(Vds_output,'primary') and check_values(Vtg_output,'secondary') and check_values(Vbg_output,'secondary'):
df_output,points_output = Output_BOTH(Vds_output,Vtg_output,Vbg_output,integration_output.value,sample,device)
df_output,points_output = Output_BOTH(Vds_output,Vtg_output,Vbg_output,integration_output.value,sample,device,smu_map,save_plot)
replot_output['x_variable'].options = df_output.columns.tolist()
replot_output['y_variable'].options = df_output.columns.tolist()
replot_output['x_variable'].value = 'VDS/V'
......@@ -176,13 +176,13 @@ def on_start_clicked(b):
if gatediode_check.value == True:
match terminal.value:
case 'VTG' if check_values(Vg_gatediode,'primary'):
df_gatediode = Gatediode_VTG(Vg_gatediode,integration_gatediode.value,sample,device)
df_gatediode = Gatediode_VTG(Vg_gatediode,integration_gatediode.value,sample,device,smu_map,save_plot)
replot_gatediode['x_variable'].options = df_gatediode.columns.tolist()
replot_gatediode['y_variable'].options = df_gatediode.columns.tolist()
replot_gatediode['x_variable'].value = 'VTG/V'
replot_gatediode['y_variable'].value = 'ITGmm/uA/um'
case 'VBG' if check_values(Vg_gatediode,'primary'):
df_gatediode = Gatediode_VBG(Vg_gatediode,integration_gatediode.value,sample,device)
df_gatediode = Gatediode_VBG(Vg_gatediode,integration_gatediode.value,sample,device,smu_map,save_plot)
replot_gatediode['x_variable'].options = df_gatediode.columns.tolist()
replot_gatediode['y_variable'].options = df_gatediode.columns.tolist()
replot_gatediode['x_variable'].value = 'VBG/V'
......
......@@ -9,6 +9,8 @@ import hp4155a
from help import *
from decimal import Decimal
import os
def Setup(device):
device.reset()
......@@ -19,7 +21,7 @@ def Setup(device):
device.disable_not_smu()
# Transfer only VTG
def Transfer_VTG(VTG,VDS,integration,sample,device,smu_map):
def Transfer_VTG(VTG,VDS,integration,sample,device,smu_map,save_plot):
smu_t = device.smu_dict()
smu_t.update(vname = 'VTG',iname='ITG',mode = 'V',func='VAR1')
smu_d = device.smu_dict()
......@@ -150,10 +152,17 @@ def Transfer_VTG(VTG,VDS,integration,sample,device,smu_map):
f.write("\nResults\n")
df.to_csv(file,sep=" ",mode='a')
#save plot if checked
if save_plot == True:
filename= os.path.splitext(path)[0]
fig.savefig(filename+'.png')
return df,points
# Transfer only VBG
def Transfer_VBG(VBG,VDS,integration,sample,device,smu_map):
def Transfer_VBG(VBG,VDS,integration,sample,device,smu_map,save_plot):
smu_t = device.smu_dict()
smu_t.update(vname = 'VTG',iname='ITG',mode = 'COMM',func='CONS')
smu_d = device.smu_dict()
......@@ -288,10 +297,14 @@ def Transfer_VBG(VBG,VDS,integration,sample,device,smu_map):
f.write("\nResults\n")
df.to_csv(file,sep=" ",mode='a')
if save_plot == True:
filename= os.path.splitext(path)[0]
fig.savefig(filename+'.png')
return df,points
def Transfer_BOTH(VTG,VBG,VDS,integration,sample,device,smu_map):
def Transfer_BOTH(VTG,VBG,VDS,integration,sample,device,smu_map,save_plot):
smu_t = device.smu_dict()
smu_t.update(vname = 'VTG',iname='ITG',mode = 'V',func='VAR1')
smu_d = device.smu_dict()
......@@ -456,10 +469,13 @@ def Transfer_BOTH(VTG,VBG,VDS,integration,sample,device,smu_map):
f.write("\nResults\n")
df.to_csv(file,sep=" ",mode='a')
if save_plot == True:
filename= os.path.splitext(path)[0]
fig.savefig(filename+'.png')
return df,points
# Output with VTG
def Output_VTG(VDS,VTG,integration,sample,device,smu_map):
def Output_VTG(VDS,VTG,integration,sample,device,smu_map,save_plot):
smu_t=device.smu_dict()
smu_t.update(vname ='VTG',iname = 'ITG',mode = 'V',func='VAR2')
smu_d = device.smu_dict()
......@@ -596,10 +612,13 @@ def Output_VTG(VDS,VTG,integration,sample,device,smu_map):
f.write("\nResults\n")
df.to_csv(file,sep=" ",mode='a')
if save_plot == True:
filename= os.path.splitext(path)[0]
fig.savefig(filename+'.png')
return df,points
#Output VBG
def Output_VBG(VDS,VBG,integration,sample,device,smu_map):
def Output_VBG(VDS,VBG,integration,sample,device,smu_map,save_plot):
smu_t=device.smu_dict()
smu_t.update(vname ='VTG',iname = 'ITG',mode = 'COMM',func='CONS')
smu_d = device.smu_dict()
......@@ -735,10 +754,13 @@ def Output_VBG(VDS,VBG,integration,sample,device,smu_map):
f.write("\nResults\n")
df.to_csv(file,sep=" ",mode='a')
if save_plot == True:
filename= os.path.splitext(path)[0]
fig.savefig(filename+'.png')
return df,points
# Output both
def Output_BOTH(VDS,VTG,VBG,integration,sample,device,smu_map):
def Output_BOTH(VDS,VTG,VBG,integration,sample,device,smu_map,save_plot):
smu_t=device.smu_dict()
smu_t.update(vname ='VTG',iname = 'ITG',mode = 'V',func='VAR2')
smu_d = device.smu_dict()
......@@ -894,10 +916,13 @@ def Output_BOTH(VDS,VTG,VBG,integration,sample,device,smu_map):
f.write("\nResults\n")
df.to_csv(file,sep=" ",mode='a')
if save_plot == True:
filename= os.path.splitext(path)[0]
fig.savefig(filename+'.png')
return df,points
def Gatediode_VTG(VTG,integration,sample,device,smu_map):
def Gatediode_VTG(VTG,integration,sample,device,smu_map,save_plot):
smu_t=device.smu_dict()
smu_t.update(vname ='VTG',iname = 'ITG',mode = 'V',func='VAR1')
smu_s = device.smu_dict()
......@@ -1005,9 +1030,12 @@ def Gatediode_VTG(VTG,integration,sample,device,smu_map):
f.write("\nResults\n")
df.to_csv(file,sep=" ",mode='a')
if save_plot == True:
filename= os.path.splitext(path)[0]
fig.savefig(filename+'.png')
return df
def Gatediode_VBG(VBG,integration,sample,device,smu_map):
def Gatediode_VBG(VBG,integration,sample,device,smu_map,save_plot):
smu_b=device.smu_dict()
smu_b.update(vname ='VBG',iname = 'IBG',mode = 'V',func='VAR1')
smu_s = device.smu_dict()
......@@ -1117,4 +1145,7 @@ def Gatediode_VBG(VBG,integration,sample,device,smu_map):
f.write("\nResults\n")
df.to_csv(file,sep=" ",mode='a')
if save_plot == True:
filename= os.path.splitext(path)[0]
fig.savefig(filename+'.png')
return df
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment