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 import ipywidgets as widgets
from ipywidgets import GridspecLayout,Layout from ipywidgets import GridspecLayout,Layout, AppLayout,TwoByTwoLayout
import sys import sys
from IPython.display import clear_output
def probendaten(): def probendaten():
width = '50%' width = 'auto'
probendaten = GridspecLayout(7,2) probendaten = GridspecLayout(6,2)
probendaten[0,:] = widgets.Label('Probendaten',layout=Layout(height='auto', width = width)) probendaten[0,0] = widgets.Label('Wafer',layout=Layout(height='auto', width = width))
probendaten[0,:].style.font_weight='bold' probendaten[0,1] = widgets.Label('Bemerkung',layout=Layout(height='auto', width = width))
probendaten[1,0] = widgets.Label('Wafer',layout=Layout(height='auto', width = width)) probendaten[1,0] = widgets.Text(layout=Layout(height='auto', width = width)) # wafer value
probendaten[1,1] = widgets.Label('Bemerkung',layout=Layout(height='auto', width = width)) probendaten[1,1] = widgets.Text(layout=Layout(height='auto', width = width)) # Bemerkung value
probendaten[2,0] = widgets.Text(layout=Layout(height='auto', width = width)) # wafer value probendaten[2,0] = widgets.Label('Probe',layout=Layout(height='auto', width = width))
probendaten[2,1] = widgets.Text(layout=Layout(height='auto', width = width)) # Bemerkung value probendaten[3,0] = widgets.Text(layout=Layout(height='auto', width = width)) #probe value
probendaten[3,0] = widgets.Label('Probe',layout=Layout(height='auto', width = width)) probendaten[4,0] = widgets.Label('Feld',layout=Layout(height='auto', width = width))
probendaten[4,0] = widgets.Text(layout=Layout(height='auto', width = width)) #probe value probendaten[4,1] = widgets.Label('Temeperatur (K)',layout=Layout(height='auto', width = width))
probendaten[5,0] = widgets.Label('Feld',layout=Layout(height='auto', width = width)) probendaten[5,0] = widgets.Text(layout=Layout(height='auto', width = width)) # Feld value
probendaten[5,1] = widgets.Label('Temeperatur (K)',layout=Layout(height='auto', width = width)) probendaten[5,1] = widgets.BoundedFloatText(value = 295,min = 0 ,max = sys.float_info.max,step = 1,layout=Layout(height='auto', width = width)) #Temperatur value
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 dict = {
'wafer': probendaten[1,0],
probendaten_dict = { 'bemerkung':probendaten[1,1],
'wafer': probendaten[2,0], 'probe':probendaten[3,0],
'bemerkung':probendaten[2,1], 'feld':probendaten[5,0],
'probe':probendaten[4,0], 'temperatur':probendaten[5,1]
'feld':probendaten[6,0],
'temperatur':probendaten[6,1]
} }
return probendaten,probendaten_dict tab = widgets.Tab()
tab.children = [probendaten]
tab.set_title(0,'Probendaten')
return tab,dict
def messparameter(): def messparameter():
width = 'auto' width = 'auto'
messparameter = GridspecLayout(16,1) messparameter = GridspecLayout(15,1)
messparameter[0,0] = widgets.Label('Messparameter',layout=Layout(height='auto', width = width)) messparameter[0,0] = widgets.Label('U_start (V)',layout=Layout(height='auto', width = width))
messparameter[0,0].style.font_weight='bold' messparameter[1,0] = widgets.BoundedFloatText(value = 1,min =-40 ,max = 40,step = 1,layout=Layout(height='auto', width = width)) # Start value
messparameter[1,0] = widgets.Label('U_start (V)',layout=Layout(height='auto', width = width)) messparameter[2,0] = widgets.Label('U_stop (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.BoundedFloatText(value = -3,min =-40 ,max = 40,step = 1,layout=Layout(height='auto', width = width)) #stop value
messparameter[3,0] = widgets.Label('U_stop (V)',layout=Layout(height='auto', width = width)) messparameter[4,0] = widgets.Label('Spannungsschritt (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.BoundedFloatText(value = 0.05,min =0.01 ,max = 80,step = 0.01,layout=Layout(height='auto', width = width)) #step value
messparameter[5,0] = widgets.Label('Spannungsschritt (V)',layout=Layout(height='auto', width = width)) messparameter[6,0] = widgets.Label('Warten im Spannungsschritt (s)',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.BoundedFloatText(value = 0,min = 0 ,max = sys.float_info.max,step = 1,layout=Layout(height='auto', width = width)) #sleep value
messparameter[7,0] = widgets.Label('Warten im Spannungsschritt (s)',layout=Layout(height='auto', width = width)) messparameter[8,0] = widgets.Label('Radius der Teststruktur (um)',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.BoundedIntText(value = 50,min = 1 ,max = sys.float_info.max,step = 1,layout=Layout(height='auto', width = width)) #radius value
messparameter[9,0] = widgets.Label('Radius der Teststruktur (um)',layout=Layout(height='auto', width = width)) messparameter[10,0] = widgets.Label('Beobachteter Frequenzpunkt',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.BoundedIntText(value = 2,min = 1 ,max = sys.maxsize,step = 1,layout=Layout(height='auto', width = width)) #Frequenzpunkt value
messparameter[11,0] = widgets.Label('Beobachteter Frequenzpunkt',layout=Layout(height='auto', width = width)) messparameter[12,0] = widgets.Label('Beobachteter Spannungspunkt',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.BoundedIntText(value = 20,min = 1 ,max = sys.maxsize,step = 1,layout=Layout(height='auto', width = width)) #Spannungspunkt value
messparameter[13,0] = widgets.Label('Beobachteter Spannungspunkt',layout=Layout(height='auto', width = width)) messparameter[14,0] = widgets.Checkbox(description = 'Hysterese messen',value = True, indent = True, style = {'description_width': 'initial'},layout=Layout(height='auto', width = width)) #hysterisis value
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 dict={
'start':messparameter[1,0],
messparameter_dict={ 'stop':messparameter[3,0],
'start':messparameter[2,0], 'step':messparameter[5,0],
'stop':messparameter[4,0], 'sleep':messparameter[7,0],
'step':messparameter[6,0], 'radius':messparameter[9,0],
'sleep':messparameter[8,0], 'frequenzpunkt':messparameter[11,0],
'radius':messparameter[10,0], 'spannungspunkt':messparameter[13,0],
'frequenzpunkt':messparameter[12,0], 'hysterese':messparameter[14,0]
'spannungspunkt':messparameter[14,0],
'hysterese':messparameter[15,0]
} }
return messparameter,messparameter_dict tab = widgets.Tab()
tab.children = [messparameter]
tab.set_title(0,'Messparameter')
return tab,dict
def sweep_parameter(): def sweep_parameter():
width = '60%' width = 'auto'
sweep_parameter= GridspecLayout(16,2) sweep_parameter= GridspecLayout(12,2)
#title #title
sweep_parameter[0,:] = widgets.Label('Sweep Parameter',layout=Layout(height='auto', width = width))
sweep_parameter[0,:].style.font_weight='bold'
#first column #first column
sweep_parameter[1,0] = widgets.Label('Anzahl Frequenzpunkte',layout=Layout(height='auto', width = width)) sweep_parameter[0,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[1,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[2,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[3,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[4,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[5,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[6,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[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[9,0] = widgets.Label('Sweep Type',layout=Layout(height='auto', width = width)) sweep_parameter[8,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[9,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[10,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[11,0] = widgets.Dropdown(options = ['Short','Medium','Long'],value = 'Medium',layout = Layout(height='auto', width = width)) # Integration time
#second column #second column
sweep_parameter[1,1] = widgets.Label('Delay Time (ms)',layout=Layout(height='auto', width = width)) sweep_parameter[0,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[1,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[2,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[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 # Now continue next to sweep type
sweep_parameter[9,1] = widgets.Label('Sweep Direction',layout=Layout(height='auto', width = width)) sweep_parameter[8,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[9,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[10,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[11,1] = widgets.FloatLogSlider(value=4,base=2,min=0,max=8, step=1,layout = Layout(height='auto', width = width))# Averaging
sweep_parameter_dict = { dict = {
'nop': sweep_parameter[2,0], 'nop': sweep_parameter[1,0],
'start': sweep_parameter[4,0], 'start': sweep_parameter[3,0],
'stop': sweep_parameter[6,0], 'stop': sweep_parameter[5,0],
'osc': sweep_parameter[8,0], 'osc': sweep_parameter[7,0],
'type': sweep_parameter[10,0], 'type': sweep_parameter[9,0],
'integration': sweep_parameter[12,0], 'integration': sweep_parameter[11,0],
'd_time': sweep_parameter[2,1], 'd_time': sweep_parameter[1,1],
'd_apperture': sweep_parameter[4,1], 'd_apperture': sweep_parameter[3,1],
'direction': sweep_parameter[10,1], 'direction': sweep_parameter[9,1],
'averaging': sweep_parameter[12,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: %% Cell type:code id:fe623b67-28af-4351-9e76-4381b0db3e0a tags:
``` python ``` python
from interface import * from interface import *
import matplotlib.pyplot as plt
``` ```
%% Cell type:code id:035405a8-a07b-4f45-b4db-fa4a56c94053 tags: %% Cell type:code id:035405a8-a07b-4f45-b4db-fa4a56c94053 tags:
``` python ``` python
sample,sample_dict = probendaten() sample,sample_dict = probendaten()
``` ```
%% Cell type:code id:ee6f1392-5976-430b-a26b-b594de19011c tags: %% Cell type:code id:ee6f1392-5976-430b-a26b-b594de19011c tags:
``` python ``` python
messparameter,messparameter_dict = messparameter() messparameter,messparameter_dict = messparameter()
``` ```
%% Cell type:code id:77f6a2b9-5837-4144-93ce-1a68d74fe370 tags: %% Cell type:code id:77f6a2b9-5837-4144-93ce-1a68d74fe370 tags:
``` python ``` python
sweep_parameter,sweep_parameter_dict = sweep_parameter() 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 ``` python
tab = widgets.Tab() control_panel,measure,calibrate,clear_graphs,view=control_panel()
children = [widgets.VBox([sample,widgets.HBox([sweep_parameter,messparameter])])]
tab.children = children
tab.set_title(0,'CV-measurement')
display(tab)
``` ```
%% 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 ``` python
measure = widgets.Button(description = 'Start Measurement') hbox1 = widgets.HBox([sample,control_panel])
calibrate = widgets.Button(description = 'Start Calibration') display(hbox1)
hbox2=widgets.HBox([messparameter,sweep_parameter])
display(hbox2)
display(out)
display(widgets.HBox([measure,calibrate])) with out:
print("Hello World!")
``` ```
%% Output %% 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