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

Double Gate Devices part 8 (More interface)

parent a0f5f1eb
No related branches found
No related tags found
No related merge requests found
......@@ -8,12 +8,14 @@ from help import *
from measurements import *
import configparser
# Create the grids
#create the information grid
style = {'description_width': 'initial'}
sample = information_box_new()
###end of sampling information#######################################
# move checkboxes outside of the tabs
transfer_check,integration_transfer,transfer_gates = header('Transfer Curve',"MEDium")
output_check,integration_output,output_gates = header('Output Curve',"SHORt")
......@@ -21,7 +23,6 @@ gatediode_check,integration_gatediode,_=header('Gatediode',"MEDium")
checkboxes = widgets.HBox([transfer_check,output_check,gatediode_check])
display(checkboxes)
print()
#transfer
Vds_transfer_widgets,Vds_transfer = secondary('VDS',0.05,0.95,1,1e-2)
......@@ -44,8 +45,8 @@ terminal = widgets.Dropdown(
value ='VTG',
style= {'description_width': 'initial'}
)
Vgs_gatediode_widgets,Vgs_gatediode=primary('VG',-5,0.05,5,1e-3)
gatediode_box = widgets.VBox([integration_gatediode,terminal,Vgs_gatediode_widgets])
Vg_gatediode_widgets,Vg_gatediode=primary('VG',-5,0.05,5,1e-3)
gatediode_box = widgets.VBox([integration_gatediode,terminal,Vg_gatediode_widgets])
#the tab widget
children = [transfer_box,output_box,gatediode_box]
......@@ -55,9 +56,7 @@ tab.children = children
tab.titles = titles
display(tab)
print()
# the button
button = widgets.Button(description ='Start Measurement')
output = widgets.Output()
......
......@@ -50,8 +50,6 @@ def plot_output(values,curves_var2,curves_var3):
color='tab:red'
ax1.set_xlabel('$V_{DS} (V)$')
ax1.set_ylabel('$I_{D} (mA/mm)$', color = color)
else:
ax1.set_ylabel('$I_{D} (uA/um)$', color = color)
for i in range(curves):
ax1.plot(x[i],y1[i],color=color)
......@@ -120,7 +118,7 @@ def check_values(dictionary,function):
root.attributes("-topmost", True)#window stays above all other applications
if function =='primary':
if abs(dictionary['step'].value) > abs(dictionary['stop'].value-dictionary.['start'].value) or dictionary['step'].value==0:#invalid parameter setting
if abs(dictionary['step'].value) > abs(dictionary['stop'].value-dictionary['start'].value) or dictionary['step'].value==0:#invalid parameter setting
valid = False
tkinter.messagebox.showerror(message="Invalid parameter setting!")
......@@ -136,7 +134,7 @@ def check_values(dictionary,function):
if function == 'secondary':
if dictionary['start'].value == dictionary['stop'].value:
pass
elif abs(dictionary['step'].value) > abs(dictionary['stop'].value-dictionary.['start'].value) or dictionary['step'].value==0:#invalid parameter setting
elif abs(dictionary['step'].value) > abs(dictionary['stop'].value-dictionary['start'].value) or dictionary['step'].value==0:#invalid parameter setting
valid = False
tkinter.messagebox.showerror(message="Invalid parameter setting!")
if dictionary['start'].value<dictionary['step'].value and dictionary['step'].value<0: #change polarity
......@@ -155,6 +153,8 @@ def check_values(dictionary,function):
if max(abs(comp*start),abs(comp*stop)) > 2 and pcomp==0:
dictionary['pcomp'].value = 2
except:
pass
root.destroy()
return valid
......
......@@ -25,13 +25,11 @@ def header(name,integration):
layout=Layout(height='auto', width="30%")
)
select = widgets.SelectMultiple(
options = ["VTG","VBG"],
value = ["VTG","VBG"],
description = "Sweeping Gates (press ctrl and click):",
style =style,
layout=Layout(height='auto', width="30%"),
rows = 2
select =widgets.Dropdown(
options = ['VTG','VBG',"BOTH"],
description = 'Sweeping Gates:',
value ='BOTH',
style= {'description_width': 'initial'}
)
return check, integration ,select
......@@ -155,7 +153,6 @@ def information_box_new():
vbox2 = widgets.VBox([config,smu1,smu2,smu3,smu4])
vbox1=widgets.VBox([sample_information,information_grid])
display(widgets.HBox([vbox1,vbox2]))
print()
information = {
'processing_number': information_grid[0,0],
......
%% Cell type:code id:81f37cac-ea14-4540-8bc9-78bee248dfbb tags:
``` python
import sys
sys.path.insert(0, './lib')
sys.path.insert(0, '..') #append parent directory
from interface import *
from help import *
```
%% Cell type:code id:731635ba-6f97-4a65-ad78-ae90b277544b tags:
``` python
# Create the grids
#create the information grid
style = {'description_width': 'initial'}
sample = information_box_new()
###end of sampling information#######################################
# move checkboxes outside of the tabs
transfer_check,integration_transfer,transfer_gates = header('Transfer Curve',"MEDium")
output_check,integration_output,output_gates = header('Output Curve',"SHORt")
gatediode_check,integration_gatediode,_=header('Gatediode',"MEDium")
checkboxes = widgets.HBox([transfer_check,output_check,gatediode_check])
display(checkboxes)
print()
#transfer
Vds_transfer_widgets,Vds_transfer = secondary('VDS',0.05,0.95,1,1e-2)
Vtg_transfer_widgets,Vtg_transfer = primary('VTG',-5,0.01,5,1e-3)
Vbg_transfer_widgets,Vbg_transfer = synchronous('VBG',-15,0.1,15,1e-3)
transfer_box = widgets.VBox([integration_transfer,transfer_gates,Vds_transfer_widgets,Vtg_transfer_widgets,Vbg_transfer_widgets])
#output
Vds_output_widgets,Vds_output = primary('VDS',0,0.01,5,1e-2)
Vtg_output_widgets,Vtg_output = secondary('VTG',-5,2,5,1e-3)
Vbg_output_widgets,Vbg_output = additional_secondary('VBG',-15,5,15,1e-3)
output_box = widgets.VBox([integration_output,output_gates,Vds_output_widgets,Vtg_output_widgets,Vbg_output_widgets])
#GateDiodde
terminal = widgets.Dropdown(
options = ['VTG','VBG'],
description = 'Selected Gate:',
value ='VTG',
style= {'description_width': 'initial'}
)
Vgs_gatediode_widgets,Vgs_gatediode=primary('VG',-5,0.05,5,1e-3)
gatediode_box = widgets.VBox([integration_gatediode,terminal,Vgs_gatediode_widgets])
Vg_gatediode_widgets,Vg_gatediode=primary('VG',-5,0.05,5,1e-3)
gatediode_box = widgets.VBox([integration_gatediode,terminal,Vg_gatediode_widgets])
#the tab widget
children = [transfer_box,output_box,gatediode_box]
titles = ["Transfer","Output","Gatediode"]
tab = widgets.Tab()
tab.children = children
tab.titles = titles
display(tab)
print()
button = widgets.Button(description ='Start Measurement')
output = widgets.Output()
export_ini_button = widgets.Button(description = 'Export as ini')
import_ini_button = widgets.Button(description='Import from ini')
all_widgets =[transfer_gates,output_gates,button,transfer_check,integration_transfer,output_check,integration_output,gatediode_check,integration_gatediode,terminal,export_ini_button,import_ini_button]
add_widgets_to_list(sample,all_widgets)
add_widgets_to_list(Vds_transfer,all_widgets)
add_widgets_to_list(Vtg_transfer,all_widgets)
add_widgets_to_list(Vbg_transfer,all_widgets)
add_widgets_to_list(Vds_output,all_widgets)
add_widgets_to_list(Vtg_output,all_widgets)
add_widgets_to_list(Vbg_output,all_widgets)
add_widgets_to_list(Vg_gatediode,all_widgets)
line = widgets.HBox([button,import_ini_button,export_ini_button])
display(line,output)
```
%% Output
%% Cell type:code id:686c8934-9c7f-4485-a817-1daa1ffe0168 tags:
``` python
```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment