Exemple #1
0
 def _fill_bus_boxes(self):
     
     kys = BusFactory().createable_objects()          
     
     row = 0
     col = 0
     
     for ky in list(kys):
         
         # Information gathering
         name = self._load_gui_name(ky, BusFactory())  
         ico = self._load_gui_icon(ky, BusFactory())                        
         
         # New Element per Object
         gb = GBuilder().groupbox(self, name, None, None)
         gb.setFont(QtGui.QFont('SansSerif', 7))
         gb.setFixedHeight(70)
         gb.setFixedWidth(70)            
         db = GBuilder().dragbutton(gb, '', self._add_component_boxes, ico, icon_x=45, icon_y=45, size_x=60, size_y=50, pos_x=5, pos_y=15)
         db.set_drop_func(self.core.add_bus_box_to_env)
         db.set_move_icon_context_acts(self.core.load_context_menu_actions(ky))
         db.ecu_key = ky
         db.setCheckable(True)
         db.setStyleSheet('QPushButton {background-color: #F2F2F2; color: red;border: 0px solid gray;border-radius: 12px;}')
         
         # Add to Layout
         self.bus_box.addWidget(gb, row, col, Qt.AlignTop)            
         col += 1
         if col == 3:
             row += 1
             col = 0
             
     # Add Widget        
     self.bus_box.addWidget(QWidget())
Exemple #2
0
    def create_widgets(self, parent, mapp=False):    
        
        # Layout
        GBuilder().set_props(self, min_sz_x=500, min_sz_y=150)
        main_lo = QVBoxLayout()
        self.setLayout(main_lo)

        # Get Add Dialog
        try:
            
            # Read API Spec that I need
            cls = ECUFactory().get_class(self.ecu_type)
            self.processor = cls.get_add_plugin(parent)
            if mapp:
                self.processor.set_gui(mapp)
            main_lo.addWidget(self.processor)
        except:
            print(traceback.format_exc())
            ECULogger().log_traceback()
        
        # Ok and Cancel
        main_lo.addWidget(GBuilder().hor_line(parent))
        hl = QHBoxLayout() 
        hl.addWidget(GBuilder().label(parent, ""))
        ok = GBuilder().pushbutton(parent, "OK", self._ok_hit)
        ok.setFixedWidth(100)
        hl.addWidget(ok)
        canc = GBuilder().pushbutton(parent, "Cancel", self._cancel_hit)
        canc.setFixedWidth(100)
        hl.addWidget(canc)
Exemple #3
0
 def _fill_environment_box(self):
     
     # Main Layout
     main_lo = QVBoxLayout()        
     self.environment_gb.setLayout(main_lo)
             
     # Combobox
     lo, self.env_select_cb, lab = GBuilder().label_combobox(self, "Current Environment:", [], self._env_select_changed)
     hl = QHBoxLayout()
     hl.addLayout(lo)
     but = GBuilder().pushbutton(self, "New", self._new_env_hit)
     but.setFixedWidth(40)
     hl.addWidget(but)        
     lab.setFixedWidth(140)
     self.env_select_cb.setFixedHeight(22)  
     self.env_select_cb.setFixedWidth(350)      
     main_lo.addLayout(hl)
     
     # Groupbox (to make it look nicer)
     self.content_gb = EnvironmentView(self.environment_gb)    
     main_lo.addWidget(self.content_gb)
     self.content_gb.setFixedHeight(550)  
     self.content_gb.setFixedWidth(1000)  
     self.content_gb.setLayout(lo)
     
     # QStackedWidget with environments
     self.stacked_env = QStackedWidget()
     lo.addWidget(self.stacked_env)
Exemple #4
0
    def create_widgets(self, parent):

        # Layout and Label
        vbox = QtGui.QVBoxLayout()
        self.label = QtGui.QLabel()
        self.label.setText("Bus View")

        # Plot and Curves
        view = pg.GraphicsLayoutWidget(parent)
        self.plot = view.addPlot(title="Bus View")
        self.plot.showGrid(x=True, y=True)
        self.plot_1 = self.plot.plot(pen=(255, 0, 0),
                                     name="Red curve",
                                     fillLevel=0,
                                     fillBrush=(255, 255, 255, 30))

        self.plot.setLabel('left', 'Datarate [KB/s]')
        self.plot.setLabel('bottom', 'Time [sec]')

        # Combobox
        self.bus_selection_cb = GBuilder().combobox(
            self, [], self._ecu_selection_changed)

        # Checkbuttons
        h_lay = QHBoxLayout()

        # Layout
        vbox.addWidget(self.label)
        vbox.addWidget(view)
        h_lay.addWidget(self.bus_selection_cb)
        vbox.addLayout(h_lay)
        self.setLayout(vbox)
Exemple #5
0
    def create_widgets(self, parent):
        
        # Layout
        GBuilder().set_props(self, min_sz_x=900, min_sz_y=700)
        self.setWindowTitle("Simulation Configuration")
        self.setFixedHeight(700)
        self.setFixedWidth(1350)
        main_lo = QVBoxLayout()
        self.setLayout(main_lo)

        # Label
        self.desc_label = GBuilder().label(self, "Create a new simulation. Create one or more environments and"\
                                           " fill them with components. Then connect the components.", None, None)
        self.desc_label.setFixedHeight(20)
        main_lo.addWidget(self.desc_label)
        
        # Horizontal Layout
        hl_1 = QHBoxLayout()
        main_lo.addLayout(hl_1)
        
        # Groupboxes
        self.components_gb = GBuilder().hand_groupbox(self, "Components", None, None)
        self.components_gb.setFixedWidth(300)
        self.environment_gb = GBuilder().groupbox(self, "Environments", None, None)
        hl_1.addWidget(self.components_gb)
        hl_1.addWidget(self.environment_gb)
        
        # Components Boxes
        self.comps_layout = QVBoxLayout()
        self.components_gb.setLayout(self.comps_layout)
        self._add_component_boxes()
               
        # Buttons
        main_lo.addWidget(GBuilder().hor_line(self))
        hl = QHBoxLayout()
        hl.addWidget(GBuilder().label(self, ""))
        ok_but = GBuilder().pushbutton(self, "OK", self._ok_hit)
        ok_but.setFixedWidth(150)
        ok_but.setFixedHeight(25)
        cancel_but = GBuilder().pushbutton(self, "Cancel", self._ok_hit)
        cancel_but.setFixedWidth(150)
        cancel_but.setFixedHeight(25)
        hl.addWidget(ok_but)
        hl.addWidget(cancel_but)
        main_lo.addLayout(hl)
        
        # Fill Components Boxes
        self._fill_ecu_boxes()
        self._fill_bus_boxes()
        self._fill_others_boxes()
        
        # Fill environment
        self._fill_environment_box()
        
        # Style 
        self._set_stle()
Exemple #6
0
          
 def _connect(self):
     ''' connect two items'''
             
     # open Connect window,
     self._cur_selected_connection = None
     self.dia = QDialog(self.gui); main_lo = QVBoxLayout()        
     GBuilder().set_props(self.dia, None, 250, 130, max_sz_x=400, max_sz_y=250)
     try:
         self.selected_env_elems = EnvironmentElement.icons_to_env_els(DragSelection().selected, self.env_map[self.selected_env])
         self.clicked_elem = EnvironmentElement.icons_to_env_els([DragSelection().clicked], self.env_map[self.selected_env])[0]
         self.selected_env_elems.remove(self.clicked_elem)
     except:
         return
     
     # show possible connections
     if not self.selected_env_elems: return
     acts = self.clicked_elem.processor.get_actions()
     main_lo.addWidget(GBuilder().label(self.dia, "Select a connection to be executed between type %s and type %s" % (self.clicked_elem.comp_type, self.selected_env_elems[0].comp_type)))
     hl, self._con_cb, te = GBuilder().label_combobox(self.dia, "Select Connection ", list(acts.values()), self.dia.show)
     main_lo.addLayout(hl)
     
     # ok cancel
     main_lo.addWidget(GBuilder().hor_line(self.dia))
     ok = GBuilder().pushbutton(self.dia, "Apply", self._ok_dia_hit); ok.setFixedWidth(100)
     canc = GBuilder().pushbutton(self.dia, "Cancel", self._cancel_dia_hit); canc.setFixedWidth(100)
     
     hl = QHBoxLayout() 
     hl.addWidget(GBuilder().label(self.dia, ""))
     hl.addWidget(ok)
     hl.addWidget(canc)
     main_lo.addLayout(hl)
     
     self.dia.setLayout(main_lo)
Exemple #7
0
             
 def _draw_lines(self, prime_env_el, connected_env_els):        
     
     try:
         DragSelection().connected[self.selected_env]
     except:
         DragSelection().connected[self.selected_env] = []
     
     DragSelection().connected[self.selected_env].append(LineConnection(prime_env_el.move_icon, [o.move_icon for o in connected_env_els]))
Exemple #8
0
 def __init__(self, *args, **kwargs):
     QDialog.__init__(self, *args, **kwargs)
 
     self.builder = GBuilder()        
     self.setWindowIcon(QtGui.QIcon( os.getcwd() +r'/icons/tumcreatelogo2.png'))
     self.setWindowTitle("Timing Set Manager")    
     self.selected_tab_row = 0
     
     self.create_widgets()        
     
     self._load_variables()   
Exemple #9
0
    def __init__(self, views, *args, **kwargs):
        QtGui.QMainWindow.__init__(self, *args, **kwargs)
        
        ''' 1. members '''
        self.builder = GBuilder()       

        ''' 2. initialize the gui factories '''
        self.view_plugins = views
        
        ''' 3. actions '''
        self.init_actions()
        self.create_widgets()
Exemple #10
0
 def __init__(self, parent):
     dockarea.DockArea.__init__(self)
             
     self.builder = GBuilder()  
     self.widget_index = {} 
     self.widget_text = {}
     self.dock_index = {}
     
     self._external_core = CheckpointInterpreterCore()
     self._information_box_items = ['Time', 'Associated Id', 'Monitor Tag', 'Message Id', 'Message', 'Size', 'Stream Id', 'Monitor Data', 'Description']
     self._information_checked = {'Time': True, 'Associated Id': True, 'Monitor Tag': True, 'Message Id': True, 'Message': True, 'Size': True, 'Stream Id': False, 'Monitor Data': False, 'Description': True}
     self._info_widget_index = {}
     self.known = []      
     
     self.create_widgets(parent)              
Exemple #11
0
 def __init__(self, condition, request, spec, q_tab_item):
     QWidget.__init__(self)
     
     self.builder = GBuilder()
     
     self.edited_item = q_tab_item
     self.condition = condition
     self.request = request
     self.spec_node = spec
     
     self._create_widget()
     
     self._fill_widgets()
     
     self.exec()
Exemple #12
0
    def create_widgets(self, parent):

        # Layout and Label
        vbox = QtGui.QVBoxLayout()
        self.label = QtGui.QLabel()
        self.label.setText("Buffer View")

        # Plot and Curves
        view = pg.GraphicsLayoutWidget(parent)
        self.plot = view.addPlot(title="Buffer View")
        self.plot.setLabel('left', 'Buffer Memory [B]')
        self.plot.setLabel('bottom', 'Time [sec]')

        self.plot.showGrid(x=True, y=True)
        self.plot_1 = self.plot.plot(pen=(255, 0, 0),
                                     name="Red curve",
                                     fillLevel=0,
                                     fillBrush=(255, 255, 255, 30))
        self.plot_2 = self.plot.plot(pen=(0, 255, 0),
                                     name="Green curve",
                                     fillLevel=0,
                                     fillBrush=(255, 255, 255, 30))

        # Combobox
        self.ecu_selection_cb = GBuilder().combobox(
            self, [], self._ecu_selection_changed)

        # Checkbuttons
        h_lay = QHBoxLayout()
        self.transmit_cb = QCheckBox("Transmit Buffer (red)")
        self.transmit_cb.setFixedWidth(150)
        self.transmit_cb.setFixedHeight(20)
        self.transmit_cb.setChecked(True)
        self.transmit_cb.stateChanged.connect(self._ecu_selection_changed)
        self.receive_cb = QCheckBox("Receive Buffer (green)")
        self.receive_cb.setFixedWidth(150)
        self.receive_cb.setChecked(True)
        self.receive_cb.setFixedHeight(20)
        self.receive_cb.stateChanged.connect(self._ecu_selection_changed)

        # Layout
        vbox.addWidget(self.label)
        vbox.addWidget(view)
        h_lay.addWidget(self.ecu_selection_cb)
        h_lay.addWidget(self.transmit_cb)
        h_lay.addWidget(self.receive_cb)
        vbox.addLayout(h_lay)
        self.setLayout(vbox)
Exemple #13
0
 def _show_env(self, selected_env, env_map):
     
     GBuilder().update_connected(self.content_gb, self.environment_gb.pos(), self.content_gb.pos(), self.content_gb.selected_env)
     
     # Mainwindow
     for chil in self.children():
         if isinstance(chil, DragLabel):
             try:
                 a = self._get_env_elem_by_icon(env_map[selected_env], chil)   
                 
                 if a == None:
                     chil.hide()
                 else:
                     chil.show()
             except:
                 chil.hide()
Exemple #14
0
 def __init__(self, *args, **kwargs):
     QtGui.QMainWindow.__init__(self, *args, **kwargs)
     
     ''' 1. members '''
     self.builder = GBuilder()
     self.monitor = Monitor()
     self.setWindowTitle('TUMCreate - Automotive Simulator')
     self.setWindowIcon(QtGui.QIcon(os.path.join(os.path.dirname(__file__), r'../icons/tumcreatelogo2.png')))
     
     ''' 2. initialize the gui factories '''
     ViewerPluginFactory().load_classes()
     SettingsPluginFactory().load_classes()
     
     ''' 3. actions '''
     self.init_actions()
     self.create_widgets()
Exemple #15
0
 def __init__(self, parent):
     dockarea.DockArea.__init__(self)
                
     self.builder = GBuilder()  
     self._bin = {}
     
     self.widget_index = {} 
     self.widget_text = {}
     self.send_plot_text = {}
     self.rec_plot_text = {}
     self.dock_index = {}
     
     self._ecu_ids = []
     self._information_box_items = ["a"]
     self._info_widget_index = {}
     
     self._init_tag_list()
     
     self.known = []      
     
     self.create_widgets(parent)              
Exemple #16
0
    def create_widgets(self, parent):
        vbox = QtGui.QVBoxLayout()
        self.label = QtGui.QLabel()
        self.label.setText("Constellation")
        self.label.setFixedHeight(20)

        self.fc = Flowchart(terminals={'Connection': {'io': 'in'}})
        self.fc._nodes['Input'].close()
        self.fc._nodes['Output'].close()

        self.view = self.fc.widget()
        wig = self.view.chartWidget
        self.view.chartWidget.hoverDock.hide()
        self.view.chartWidget.selectedTree.hide()
        self.view.chartWidget.selDock.label.setText("Selected Comp.")

        # add selection label
        self.selection_label = self.view.chartWidget.selDescLabel
        self.selection_label.setText("")
        self.selection_label.setFixedHeight(15)

        # add information table
        self.info_table = GBuilder().table(self.view.chartWidget.selDock, 1, 2,
                                           ["Settings", "Value"])
        for r in range(self.info_table.rowCount()):
            self.info_table.setRowHeight(r, 20)
        self.info_table.horizontalHeader().hide()
        self.info_table.verticalHeader().hide()
        self.info_table.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.info_table.setSortingEnabled(True)
        #         self.view.chartWidget.selInfoLayout.addWidget(self.selection_label)
        self.view.chartWidget.selInfoLayout.addWidget(self.info_table)

        # override on selection
        self.view.chartWidget._scene.selectionChanged.connect(
            self._selection_changed)

        vbox.addWidget(self.label)
        vbox.addWidget(wig)
        self.setLayout(vbox)
Exemple #17
0
    def create_widgets(self, parent):
        
        # Main Layout
        vbox = QtGui.QVBoxLayout()     
        self.setLayout(vbox)
        
        # Label
        vl_left = QVBoxLayout()
        self.top_label = GBuilder().label(parent, "Create a new Simulation or select a existing one from the list", None, None)
        vl_left.addWidget(self.top_label)        
        hl_out = QHBoxLayout()
        vbox.addLayout(hl_out)
        
        # Buttons
        vl_right = QVBoxLayout()
        self.new_button = GBuilder().pushbutton(parent, "New", self._new_hit, os.getcwd() + r'/icons/new.png')
        vl_right.addWidget(self.new_button)   
        self.import_button = GBuilder().pushbutton(parent, "Import", self._import_hit, os.getcwd() + r'/icons/import.png')
        vl_right.addWidget(self.import_button)            
        self.save_button = GBuilder().pushbutton(parent, "Export", self._save_hit, os.getcwd() + r'/icons/save.png')
        vl_right.addWidget(self.save_button)   
        self.build_button = GBuilder().pushbutton(parent, "Build Simulation", self._build_hit, os.getcwd() + r'/icons/build.png', 35, 35)
        self.build_button.setFixedHeight(40)
        vl_right.addWidget(self.build_button)
        
        # Table
        self.sims_table = GBuilder().table(parent, 5, 2, ["A"], False)
        self.sims_table.horizontalHeader().setResizeMode(1, QHeaderView.Fixed);
        self.sims_table.horizontalHeader().setResizeMode(0, QHeaderView.Stretch);
        self.sims_table.setColumnWidth(1, 32)
#         self.check_buts = GBuilder().add_checkbuttons(self.sims_table, 0, 1)

        self.sims_table.verticalHeader().setDefaultSectionSize(25)
        self.sims_table.verticalHeader().hide()    
        self.sims_table.horizontalHeader().hide()
        self.sims_table.setFixedHeight(110)
        
        vl_left.addWidget(self.sims_table)  
             
        hl_out.addLayout(vl_left) 
        hl_out.addLayout(vl_right)
Exemple #18
0
    def create_widgets(self, parent):
        
        hbox = QHBoxLayout()
        
        # Left side
        
        # Layout and Label
        vbox_left = QtGui.QVBoxLayout()      
        vbox_right = QtGui.QVBoxLayout()    
             
        # Header
        up_hbox = QHBoxLayout()
                
        self._label = QtGui.QLabel(self)
        self._label.setText("Choose the communication partner")      
        self._label.setFixedWidth(170)  
        self._ecu_1_label = QtGui.QLabel(self)
        self._ecu_1_label.setText("   ECU 1:")    
        self._ecu_1_label.setFixedWidth(50)
        self._ecu_2_label = QtGui.QLabel(self)
        self._ecu_2_label.setText("    ECU 2:")      
        self._ecu_2_label.setFixedWidth(50)     
        self._ecu_1_cb = GBuilder().combobox(self, [], self._on_ecu_selection_changed)
        self._ecu_1_cb.addItem("<< No Selection >>")
        self._ecu_1_cb.addItem("Unknown")
        self._ecu_2_cb = GBuilder().combobox(self, [], self._on_ecu_selection_changed)
        self._ecu_2_cb.addItem("<< No Selection >>")
        self._ecu_2_cb.addItem("Unknown")
        self._ass_cb = QCheckBox("Show only associated")
        self._ass_cb.setFixedWidth(130)
        self._ass_cb.stateChanged.connect(self._on_ecu_selection_changed)
        
        up_hbox.addWidget(self._label)
        up_hbox.addWidget(self._ecu_1_label)
        up_hbox.addWidget(self._ecu_1_cb)
        up_hbox.addWidget(self._ecu_2_label)
        up_hbox.addWidget(self._ecu_2_cb)
        up_hbox.addWidget(self._ass_cb)

        # Table
        self._time_table = GBuilder().table(self, 0, 3, ["Time", "ECU", 'Event'], False)
        self._time_table.setColumnWidth(0, 100)
        self._time_table.setColumnWidth(1, 170)
        self._time_table.setSortingEnabled(True)
        self._time_table.horizontalHeader().setResizeMode(0, QHeaderView.Fixed);
        self._time_table.horizontalHeader().setResizeMode(1, QHeaderView.Fixed);
        self._time_table.horizontalHeader().setResizeMode(2, QHeaderView.Stretch);
        
        # Layout
        vbox_left.addLayout(up_hbox)
        vbox_left.addWidget(self._time_table)
        
        # Right side
        v_lay = QVBoxLayout()
        self._times_gb = GBuilder().groupbox(self, "Times") 
        self._times_gb.setFixedWidth(450)
        self._times_gb.setLayout(v_lay)
        vbox_right.addWidget(self._times_gb)
        
        self._up_info = GBuilder().label(self, self._label_up("-", "-", "-", "-", "-"))
        self._down_info = GBuilder().label(self, self._label_down("-"))
        v_lay.addWidget(self._up_info)
        v_lay.addWidget(self._down_info)

        hbox.addLayout(vbox_left)
        hbox.addLayout(vbox_right)
        self.setLayout(hbox)
Exemple #19
0
 def __init__(self, *args, **kwargs):
     QWidget.__init__(self, *args, **kwargs)
     self.builder = GBuilder()
     self.create_widgets()