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

Interface Complete!

parent 42796918
Branches
No related tags found
No related merge requests found
import ipywidgets as widgets
from ipywidgets import GridspecLayout,Layout
from ipywidgets import GridspecLayout,Layout, AppLayout,TwoByTwoLayout
import sys
from IPython.display import clear_output
def probendaten():
width = '50%'
probendaten = GridspecLayout(7,2)
probendaten[0,:] = widgets.Label('Probendaten',layout=Layout(height='auto', width = width))
probendaten[0,:].style.font_weight='bold'
probendaten[1,0] = widgets.Label('Wafer',layout=Layout(height='auto', width = width))
probendaten[1,1] = widgets.Label('Bemerkung',layout=Layout(height='auto', width = width))
probendaten[2,0] = widgets.Text(layout=Layout(height='auto', width = width)) # wafer value
probendaten[2,1] = widgets.Text(layout=Layout(height='auto', width = width)) # Bemerkung value
probendaten[3,0] = widgets.Label('Probe',layout=Layout(height='auto', width = width))
probendaten[4,0] = widgets.Text(layout=Layout(height='auto', width = width)) #probe value
probendaten[5,0] = widgets.Label('Feld',layout=Layout(height='auto', width = width))
probendaten[5,1] = widgets.Label('Temeperatur (K)',layout=Layout(height='auto', width = width))
probendaten[6,0] = widgets.Text(layout=Layout(height='auto', width = width)) # Feld value
probendaten[6,1] = widgets.BoundedFloatText(value = 295,min = 0 ,max = sys.float_info.max,step = 1,layout=Layout(height='auto', width = width)) #Temperatur value
probendaten_dict = {
'wafer': probendaten[2,0],
'bemerkung':probendaten[2,1],
'probe':probendaten[4,0],
'feld':probendaten[6,0],
'temperatur':probendaten[6,1]
width = 'auto'
probendaten = GridspecLayout(6,2)
probendaten[0,0] = widgets.Label('Wafer',layout=Layout(height='auto', width = width))
probendaten[0,1] = widgets.Label('Bemerkung',layout=Layout(height='auto', width = width))
probendaten[1,0] = widgets.Text(layout=Layout(height='auto', width = width)) # wafer value
probendaten[1,1] = widgets.Text(layout=Layout(height='auto', width = width)) # Bemerkung value
probendaten[2,0] = widgets.Label('Probe',layout=Layout(height='auto', width = width))
probendaten[3,0] = widgets.Text(layout=Layout(height='auto', width = width)) #probe value
probendaten[4,0] = widgets.Label('Feld',layout=Layout(height='auto', width = width))
probendaten[4,1] = widgets.Label('Temeperatur (K)',layout=Layout(height='auto', width = width))
probendaten[5,0] = widgets.Text(layout=Layout(height='auto', width = width)) # Feld value
probendaten[5,1] = widgets.BoundedFloatText(value = 295,min = 0 ,max = sys.float_info.max,step = 1,layout=Layout(height='auto', width = width)) #Temperatur value
dict = {
'wafer': probendaten[1,0],
'bemerkung':probendaten[1,1],
'probe':probendaten[3,0],
'feld':probendaten[5,0],
'temperatur':probendaten[5,1]
}
return probendaten,probendaten_dict
tab = widgets.Tab()
tab.children = [probendaten]
tab.set_title(0,'Probendaten')
return tab,dict
def messparameter():
width = 'auto'
messparameter = GridspecLayout(16,1)
messparameter[0,0] = widgets.Label('Messparameter',layout=Layout(height='auto', width = width))
messparameter[0,0].style.font_weight='bold'
messparameter[1,0] = widgets.Label('U_start (V)',layout=Layout(height='auto', width = width))
messparameter[2,0] = widgets.BoundedFloatText(value = 1,min =-40 ,max = 40,step = 1,layout=Layout(height='auto', width = width)) # Start value
messparameter[3,0] = widgets.Label('U_stop (V)',layout=Layout(height='auto', width = width))
messparameter[4,0] = widgets.BoundedFloatText(value = -3,min =-40 ,max = 40,step = 1,layout=Layout(height='auto', width = width)) #stop value
messparameter[5,0] = widgets.Label('Spannungsschritt (V)',layout=Layout(height='auto', width = width))
messparameter[6,0] = widgets.BoundedFloatText(value = 0.05,min =0.01 ,max = 80,step = 0.01,layout=Layout(height='auto', width = width)) #step value
messparameter[7,0] = widgets.Label('Warten im Spannungsschritt (s)',layout=Layout(height='auto', width = width))
messparameter[8,0] = widgets.BoundedFloatText(value = 0,min = 0 ,max = sys.float_info.max,step = 1,layout=Layout(height='auto', width = width)) #sleep value
messparameter[9,0] = widgets.Label('Radius der Teststruktur (um)',layout=Layout(height='auto', width = width))
messparameter[10,0] = widgets.BoundedIntText(value = 50,min = 1 ,max = sys.float_info.max,step = 1,layout=Layout(height='auto', width = width)) #radius value
messparameter[11,0] = widgets.Label('Beobachteter Frequenzpunkt',layout=Layout(height='auto', width = width))
messparameter[12,0] = widgets.BoundedIntText(value = 2,min = 1 ,max = sys.maxsize,step = 1,layout=Layout(height='auto', width = width)) #Frequenzpunkt value
messparameter[13,0] = widgets.Label('Beobachteter Spannungspunkt',layout=Layout(height='auto', width = width))
messparameter[14,0] = widgets.BoundedIntText(value = 20,min = 1 ,max = sys.maxsize,step = 1,layout=Layout(height='auto', width = width)) #Spannungspunkt value
messparameter[15,0] = widgets.Checkbox(description = 'Hysterese messen',value = True, indent = True, style = {'description_width': 'initial'},layout=Layout(height='auto', width = width)) #hysterisis value
messparameter_dict={
'start':messparameter[2,0],
'stop':messparameter[4,0],
'step':messparameter[6,0],
'sleep':messparameter[8,0],
'radius':messparameter[10,0],
'frequenzpunkt':messparameter[12,0],
'spannungspunkt':messparameter[14,0],
'hysterese':messparameter[15,0]
messparameter = GridspecLayout(15,1)
messparameter[0,0] = widgets.Label('U_start (V)',layout=Layout(height='auto', width = width))
messparameter[1,0] = widgets.BoundedFloatText(value = 1,min =-40 ,max = 40,step = 1,layout=Layout(height='auto', width = width)) # Start value
messparameter[2,0] = widgets.Label('U_stop (V)',layout=Layout(height='auto', width = width))
messparameter[3,0] = widgets.BoundedFloatText(value = -3,min =-40 ,max = 40,step = 1,layout=Layout(height='auto', width = width)) #stop value
messparameter[4,0] = widgets.Label('Spannungsschritt (V)',layout=Layout(height='auto', width = width))
messparameter[5,0] = widgets.BoundedFloatText(value = 0.05,min =0.01 ,max = 80,step = 0.01,layout=Layout(height='auto', width = width)) #step value
messparameter[6,0] = widgets.Label('Warten im Spannungsschritt (s)',layout=Layout(height='auto', width = width))
messparameter[7,0] = widgets.BoundedFloatText(value = 0,min = 0 ,max = sys.float_info.max,step = 1,layout=Layout(height='auto', width = width)) #sleep value
messparameter[8,0] = widgets.Label('Radius der Teststruktur (um)',layout=Layout(height='auto', width = width))
messparameter[9,0] = widgets.BoundedIntText(value = 50,min = 1 ,max = sys.float_info.max,step = 1,layout=Layout(height='auto', width = width)) #radius value
messparameter[10,0] = widgets.Label('Beobachteter Frequenzpunkt',layout=Layout(height='auto', width = width))
messparameter[11,0] = widgets.BoundedIntText(value = 2,min = 1 ,max = sys.maxsize,step = 1,layout=Layout(height='auto', width = width)) #Frequenzpunkt value
messparameter[12,0] = widgets.Label('Beobachteter Spannungspunkt',layout=Layout(height='auto', width = width))
messparameter[13,0] = widgets.BoundedIntText(value = 20,min = 1 ,max = sys.maxsize,step = 1,layout=Layout(height='auto', width = width)) #Spannungspunkt value
messparameter[14,0] = widgets.Checkbox(description = 'Hysterese messen',value = True, indent = True, style = {'description_width': 'initial'},layout=Layout(height='auto', width = width)) #hysterisis value
dict={
'start':messparameter[1,0],
'stop':messparameter[3,0],
'step':messparameter[5,0],
'sleep':messparameter[7,0],
'radius':messparameter[9,0],
'frequenzpunkt':messparameter[11,0],
'spannungspunkt':messparameter[13,0],
'hysterese':messparameter[14,0]
}
return messparameter,messparameter_dict
tab = widgets.Tab()
tab.children = [messparameter]
tab.set_title(0,'Messparameter')
return tab,dict
def sweep_parameter():
width = '60%'
width = 'auto'
sweep_parameter= GridspecLayout(16,2)
sweep_parameter= GridspecLayout(12,2)
#title
sweep_parameter[0,:] = widgets.Label('Sweep Parameter',layout=Layout(height='auto', width = width))
sweep_parameter[0,:].style.font_weight='bold'
#first column
sweep_parameter[1,0] = widgets.Label('Anzahl Frequenzpunkte',layout=Layout(height='auto', width = width))
sweep_parameter[2,0] = widgets.BoundedFloatText(value = 4,min =1 ,max = 401,step = 1,layout=Layout(height='auto', width = width)) # Anzahl Frequenzpunkte
sweep_parameter[3,0] = widgets.Label('f_start (Hz)',layout=Layout(height='auto', width = width))
sweep_parameter[4,0] = widgets.BoundedFloatText(value=100000,min = 100, max = 40e6,step = 100,layout=Layout(height='auto', width = width)) #start frequency
sweep_parameter[5,0] = widgets.Label('f_stop (Hz)',layout=Layout(height='auto', width = width))
sweep_parameter[6,0] = widgets.BoundedFloatText(value=1000000,min = 100, max = 40e6,step = 100,layout=Layout(height='auto', width = width)) #stop frequency
sweep_parameter[7,0] = widgets.Label('OSC Level (V)',layout=Layout(height='auto', width = width))
sweep_parameter[8,0] = widgets.BoundedFloatText(value=0.05,min = 10e-3, max = 1,step = 1e-3,layout=Layout(height='auto', width = width)) # Osc level
sweep_parameter[9,0] = widgets.Label('Sweep Type',layout=Layout(height='auto', width = width))
sweep_parameter[10,0] = widgets.RadioButtons(options = ['Logarithmic','Linear'],value = 'Linear',layout = Layout(height='auto', width = width)) #sweep type
sweep_parameter[11,0] = widgets.Label('Integration Time',layout=Layout(height='auto', width = width))
sweep_parameter[12,0] = widgets.Dropdown(options = ['Short','Medium','Long'],value = 'Medium',layout = Layout(height='auto', width = width)) # Integration time
sweep_parameter[0,0] = widgets.Label('Anzahl Frequenzpunkte',layout=Layout(height='auto', width = width))
sweep_parameter[1,0] = widgets.BoundedFloatText(value = 4,min =1 ,max = 401,step = 1,layout=Layout(height='auto', width = width)) # Anzahl Frequenzpunkte
sweep_parameter[2,0] = widgets.Label('f_start (Hz)',layout=Layout(height='auto', width = width))
sweep_parameter[3,0] = widgets.BoundedFloatText(value=100000,min = 100, max = 40e6,step = 100,layout=Layout(height='auto', width = width)) #start frequency
sweep_parameter[4,0] = widgets.Label('f_stop (Hz)',layout=Layout(height='auto', width = width))
sweep_parameter[5,0] = widgets.BoundedFloatText(value=1000000,min = 100, max = 40e6,step = 100,layout=Layout(height='auto', width = width)) #stop frequency
sweep_parameter[6,0] = widgets.Label('OSC Level (V)',layout=Layout(height='auto', width = width))
sweep_parameter[7,0] = widgets.BoundedFloatText(value=0.05,min = 10e-3, max = 1,step = 1e-3,layout=Layout(height='auto', width = width)) # Osc level
sweep_parameter[8,0] = widgets.Label('Sweep Type',layout=Layout(height='auto', width = width))
sweep_parameter[9,0] = widgets.RadioButtons(options = ['Logarithmic','Linear'],value = 'Linear',layout = Layout(height='auto', width = width)) #sweep type
sweep_parameter[10,0] = widgets.Label('Integration Time',layout=Layout(height='auto', width = width))
sweep_parameter[11,0] = widgets.Dropdown(options = ['Short','Medium','Long'],value = 'Medium',layout = Layout(height='auto', width = width)) # Integration time
#second column
sweep_parameter[1,1] = widgets.Label('Delay Time (ms)',layout=Layout(height='auto', width = width))
sweep_parameter[2,1] = widgets.BoundedFloatText(value = 0,min =0 ,max = 3.6e6,step = 1,layout=Layout(height='auto', width = width)) # delay time
sweep_parameter[3,1] = widgets.Label('Delay Aperture (%)',layout=Layout(height='auto', width = width))
sweep_parameter[4,1] = widgets.BoundedFloatText(value=0.5,min = 0.5, max = 100,step = 0.1,layout=Layout(height='auto', width = width)) #delay aperture
sweep_parameter[0,1] = widgets.Label('Delay Time (ms)',layout=Layout(height='auto', width = width))
sweep_parameter[1,1] = widgets.BoundedFloatText(value = 0,min =0 ,max = 3.6e6,step = 1,layout=Layout(height='auto', width = width)) # delay time
sweep_parameter[2,1] = widgets.Label('Delay Aperture (%)',layout=Layout(height='auto', width = width))
sweep_parameter[3,1] = widgets.BoundedFloatText(value=0.5,min = 0.5, max = 100,step = 0.1,layout=Layout(height='auto', width = width)) #delay aperture
# Now continue next to sweep type
sweep_parameter[9,1] = widgets.Label('Sweep Direction',layout=Layout(height='auto', width = width))
sweep_parameter[10,1] = widgets.RadioButtons(options = ['Up','Down'],value = 'Up',layout = Layout(height='auto', width = width)) #sweep direction
sweep_parameter[11,1] = widgets.Label('Averaging Number',layout=Layout(height='auto', width = width))
sweep_parameter[12,1] = widgets.FloatLogSlider(value=4,base=2,min=0,max=8, step=1)# Averaging
sweep_parameter_dict = {
'nop': sweep_parameter[2,0],
'start': sweep_parameter[4,0],
'stop': sweep_parameter[6,0],
'osc': sweep_parameter[8,0],
'type': sweep_parameter[10,0],
'integration': sweep_parameter[12,0],
'd_time': sweep_parameter[2,1],
'd_apperture': sweep_parameter[4,1],
'direction': sweep_parameter[10,1],
'averaging': sweep_parameter[12,1]
sweep_parameter[8,1] = widgets.Label('Sweep Direction',layout=Layout(height='auto', width = width))
sweep_parameter[9,1] = widgets.RadioButtons(options = ['Up','Down'],value = 'Up',layout = Layout(height='auto', width = width)) #sweep direction
sweep_parameter[10,1] = widgets.Label('Averaging Number',layout=Layout(height='auto', width = width))
sweep_parameter[11,1] = widgets.FloatLogSlider(value=4,base=2,min=0,max=8, step=1,layout = Layout(height='auto', width = width))# Averaging
dict = {
'nop': sweep_parameter[1,0],
'start': sweep_parameter[3,0],
'stop': sweep_parameter[5,0],
'osc': sweep_parameter[7,0],
'type': sweep_parameter[9,0],
'integration': sweep_parameter[11,0],
'd_time': sweep_parameter[1,1],
'd_apperture': sweep_parameter[3,1],
'direction': sweep_parameter[9,1],
'averaging': sweep_parameter[11,1]
}
tab = widgets.Tab()
tab.children = [sweep_parameter]
tab.set_title(0,'Sweep Parameter')
return tab,dict
def control_panel():
width = 'auto'
control_panel = GridspecLayout(6,2)
control_panel[0,0] = widgets.Button(description = "Start Measurement",layout=Layout(height='auto', width = width))
control_panel[0,1] = widgets.Button(description = "Start Calibration",layout=Layout(height='auto', width = width))
control_panel[1,0] = widgets.Label("U-Punkt",layout=Layout(height='auto', width = width))
control_panel[1,1] = widgets.Label("f-Punkt",layout=Layout(height='auto', width = width))
for j in range(2):
control_panel[2,j]= widgets.Text(disabled = True,layout=Layout(height='auto', width = width))
control_panel[3,0] = widgets.Label("Aktuelle Spannung",layout=Layout(height='auto', width = width))
control_panel[4,0] = widgets.Text(disabled = True,layout=Layout(height='auto', width = width))
control_panel[4,1] = widgets.Checkbox(description = 'Clear Graphs',value = True,indent = False,layout=Layout(height='auto', width = width))
measure = control_panel[0,0]
calibrate = control_panel[0,1]
clear_graphs = control_panel[4,1]
view = {
'u-point': control_panel[2,0],
'f-point': control_panel[2,1],
'u-value':control_panel[4,0]
}
return sweep_parameter,sweep_parameter_dict
return control_panel,measure,calibrate,clear_graphs,view
......
%% Cell type:code id:fe623b67-28af-4351-9e76-4381b0db3e0a tags:
``` python
from interface import *
import matplotlib.pyplot as plt
```
%% Cell type:code id:035405a8-a07b-4f45-b4db-fa4a56c94053 tags:
``` python
sample,sample_dict = probendaten()
```
%% Cell type:code id:ee6f1392-5976-430b-a26b-b594de19011c tags:
``` python
messparameter,messparameter_dict = messparameter()
```
%% Cell type:code id:77f6a2b9-5837-4144-93ce-1a68d74fe370 tags:
``` python
sweep_parameter,sweep_parameter_dict = sweep_parameter()
```
%% Cell type:code id:61d429a5-3be8-41e2-84af-7fd69862d936 tags:
%% Cell type:code id:f1f412ce-73c2-4a73-8f22-b69f58681ffa tags:
``` python
tab = widgets.Tab()
children = [widgets.VBox([sample,widgets.HBox([sweep_parameter,messparameter])])]
tab.children = children
tab.set_title(0,'CV-measurement')
display(tab)
control_panel,measure,calibrate,clear_graphs,view=control_panel()
```
%% Output
%% Cell type:code id:dcfbf35d-fcfa-48d4-a1f5-583ea1256618 tags:
``` python
out = widgets.Output()
```
%% Cell type:code id:81c3319b-4581-44c5-9849-89dd97714d22 tags:
%% Cell type:code id:65fd57be-5b4a-4247-9e71-8c799c05ff24 tags:
``` python
measure = widgets.Button(description = 'Start Measurement')
calibrate = widgets.Button(description = 'Start Calibration')
hbox1 = widgets.HBox([sample,control_panel])
display(hbox1)
hbox2=widgets.HBox([messparameter,sweep_parameter])
display(hbox2)
display(out)
display(widgets.HBox([measure,calibrate]))
with out:
print("Hello World!")
```
%% Output
%% Cell type:code id:7f308fc0-43e6-4794-b6fd-15e47079c5cb tags:
``` python
```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment