Skip to content
Snippets Groups Projects
Select Git revision
  • b29d12113fa6eee283590c05f28100882627dc8e
  • main default protected
  • leveleditor
  • david-author
  • clang-tidy-cleanup
  • architecture-refactoring
  • cleanUpMenus
  • doxygen-cleanup
  • project-structure-refactoring
  • interpolation
  • buildingFeatures
  • win_end_screen
  • helpMenu
  • leveleditor-placement
  • text-rendering
  • updated_unit_contextmenu
  • level-from-commandline
  • unit_contextmenu
  • player
  • engine-scaling
  • clang-tidy
21 results

Engine.cpp

Blame
  • interface.py 8.39 KiB
    import ipywidgets as widgets
    from ipywidgets import GridspecLayout,Layout, AppLayout,TwoByTwoLayout
    import sys
    from IPython.display import clear_output
    
    
    def probendaten():
        width = 'auto'
        probendaten = GridspecLayout(6,2)
    
        probendaten[0,0] = widgets.Label('Wafer',layout=Layout(height='auto', width = width))
        probendaten[0,1] = widgets.Label('Comment',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('Sample',layout=Layout(height='auto', width = width))
        probendaten[3,0] = widgets.Text(layout=Layout(height='auto', width = width)) #probe value
        probendaten[4,0] = widgets.Label('Field',layout=Layout(height='auto', width = width)) 
        probendaten[4,1] = widgets.Label('Temeperature (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],
            'comment':probendaten[1,1],
            'sample':probendaten[3,0],
            'field':probendaten[5,0],
            'temperature':probendaten[5,1]
        }
        
        tab = widgets.Tab()
        tab.children = [probendaten]
        tab.set_title(0,'Sample Information')
    
        return tab,dict
    
    
    def messparameter():
        width = 'auto'
        messparameter = GridspecLayout(15,1)
    
        messparameter[0,0] = widgets.Label('V_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('V_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('V_step (V)',layout=Layout(height='auto', width = width))
        messparameter[5,0] = widgets.BoundedFloatText(value = 0.1,min = -80 ,max = 80,step = 0.01,layout=Layout(height='auto', width = width)) #step value
        messparameter[6,0] = widgets.Label('Wait in Voltage Point (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 of The Test Stucture(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('Observed Frequency Point',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('Observed Voltage Point',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 = 'Hysterisis',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],
            'f_point':messparameter[11,0],
            'v_point':messparameter[13,0],
            'hysterisis':messparameter[14,0]
        }
        
        tab = widgets.Tab()
        tab.children = [messparameter]
        tab.set_title(0,'Voltage Parameters')
        
    
        return tab,dict
        
    def sweep_parameter():
        width = 'auto'
    
        sweep_parameter= GridspecLayout(12,2)
    
        #title
    
        #first column
        sweep_parameter[0,0] = widgets.Label('Number of Frequency Points',layout=Layout(height='auto', width = width))
        sweep_parameter[1,0] = widgets.BoundedIntText(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[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[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\nParameters')
    
        return tab,dict
        
    
    def control_panel():
        width =  'auto'
        control_panel = GridspecLayout(6,2)
    
        control_panel[0,:] = widgets.Button(description = "Start Measurement",layout=Layout(height='auto', width = width))
        control_panel[1,0] = widgets.Label("V-Point",layout=Layout(height='auto', width = width))
        control_panel[1,1] = widgets.Label("f-Point",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("Actual Voltage",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,:]
    
        view = {
            'v-point': control_panel[2,0],
            'f-point': control_panel[2,1],
            'v-value':control_panel[4,0]
        }
    
        return control_panel,measure,view