Example #1
0
    def __init__(self,
                 parent: QtWidgets.QScrollArea,
                 max_msg_num=1000,
                 label='Console output'):
        infor_pane_size = (int(config.WINDOW_WIDTH / 3), config.WINDOW_HEIGHT)
        information_container = init_container(parent=parent,
                                               label_position="center",
                                               style="background-color: " +
                                               config.container_color + ";",
                                               size=infor_pane_size)
        # information_block = init_container(parent=information_container,
        #                                    style="background-color: " + config.subcontainer_color + ";")

        self.formLayout = QFormLayout()
        groupBox = QGroupBox(label)

        groupBox.setLayout(self.formLayout)
        self.timestamp_list = []
        self.comboList = []

        scroll = QtWidgets.QScrollArea()
        scroll.setWidgetResizable(True)
        scroll.setWidget(groupBox)  # set groupBox to be in the scroll
        scroll.setFocusPolicy(QtCore.Qt.NoFocus)
        scroll.ensureWidgetVisible(groupBox)
        scroll.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)

        information_container.addWidget(scroll)

        self.max_msg_num = max_msg_num  # TODO remove older messages
Example #2
0
    def __init__(self, Xe4Thru_worker: workers.Xe4ThruWorker, *args, **kwargs):
        super().__init__()

        self.Xe4Thru_worker = Xe4Thru_worker
        self.Xe4Thru_worker.signal_data.connect(
            self.control_process_xethru_data)

        self.main_page = QtWidgets.QVBoxLayout(self)
        self.setLayout(self.main_page)
        self.graph_container1 = init_container(
            parent=self.main_page,
            vertical=True,
            label="RF Frame and Baseband Frame",
            label_bold=True,
            label_position="lefttop")

        self.graph_container2 = init_container(parent=self.main_page,
                                               vertical=True,
                                               label="Clutter Removed frame",
                                               label_bold=True,
                                               label_position="lefttop")

        self.graph_container3 = init_container(parent=self.main_page,
                                               vertical=True,
                                               label="BASEBAND HISTORY",
                                               label_bold=True,
                                               label_position="lefttop")

        # plots
        self.rf_curve, self.baseband_curve = self.init_xethrux4_runtime_view(
            parent=self.graph_container1, label="Clutter frame")
        self.clutter_free_rf_curve, self.clutter_free_baseband_curve = self.init_xethrux4_runtime_view(
            parent=self.graph_container2, label="Clutter free frame")

        self.xethrux4_ir_spectrogram_display = QGraphicsPixmapItem()
        self.xethrux4_runtime_view = self.init_spec_view(
            parent=self.graph_container3,
            label="XeThruX4",
            graph=self.xethrux4_ir_spectrogram_display)
Example #3
0
    def __init__(self, *args, **kwargs):
        super().__init__()

        self.main_page = QtWidgets.QVBoxLayout(self)
        self.setLayout(self.main_page)
        self.graph_container1 = init_container(parent=self.main_page,
                                               vertical=True,
                                               label="BASEBAND AMPLITUDE",
                                               label_bold=True,
                                               label_position="lefttop")

        self.graph_container2 = init_container(parent=self.main_page,
                                               vertical=True,
                                               label="BASEBAND PHASE",
                                               label_bold=True,
                                               label_position="lefttop")

        self.graph_container3 = init_container(parent=self.main_page,
                                               vertical=True,
                                               label="BASEBAND HISTORY",
                                               label_bold=True,
                                               label_position="lefttop")

        self.show()
Example #4
0
def init_detection_text_block(parent, bold=False, font=14):
    vl = init_container(parent, style="background-color: white;")
    # a vertical layout
    lb_write = QLabel()
    lb_write.setAlignment(QtCore.Qt.AlignCenter)
    lb_write.setStyleSheet("font: 32px;")
    lb_write.setText("You wrote")
    vl.addWidget(lb_write)

    lb_char_written = QLabel()
    lb_char_written.setAlignment(QtCore.Qt.AlignCenter)
    lb_char_written.setStyleSheet("font: bold 56px;")
    lb_char_written.setText('... nothing')
    vl.addWidget(lb_char_written)

    return lb_char_written
Example #5
0
def init_countdown_block(parent, label=None, bold=False, font=14):
    vl = init_container(parent, style="background-color: white;")
    # a vertical layout
    ql = QLabel()
    if label:
        if bold:
            ql.setStyleSheet("font: bold " + str(font) + "px;")
        elif not bold:
            ql.setStyleSheet("font: " + str(font) + "px;")

        # always in the center
        ql.setAlignment(QtCore.Qt.AlignCenter)

        ql.setText(label)
        vl.addWidget(ql)

    return vl, ql
Example #6
0
def init_slider_bar_box(parent, label=None, vertical=False, label_bold=False, min_value=1,max_value=5):
    line_container = init_container(parent=parent, vertical=vertical)

    if label:
        ql = QLabel()
        if label_bold:
            ql.setStyleSheet("font: bold 14px;")
        else:
            ql.setStyleSheet("font: 14px;")

        ql.setText(label)
        line_container.addWidget(ql)

    # slider with interval
    slider_view = LabeledSlider(minimum=min_value, maximum=max_value)
    slider_view.setFocusPolicy(Qt.StrongFocus)

    line_container.addWidget(slider_view)

    return line_container, slider_view
Example #7
0
    def __init__(self):
        super().__init__()
        self.main_page = QHBoxLayout(self)

        self.operation_block = init_container(parent=self.main_page,
                                              vertical=False)
        # Initialize tab screen
        tabs = QTabWidget()
        tab1 = Recording()
        tab2 = Train()
        tab3 = Detection()

        tabs.addTab(tab1, config.operation_recording_label)
        tabs.addTab(tab2, config.operation_training_label)
        tabs.addTab(tab3, config.operation_detection_label)

        # Add tabs to main_widget
        self.operation_block.addWidget(tabs)
        self.setLayout(self.main_page)

        self.show()
Example #8
0
def init_smooth_slider(parent, slider_min, slider_max, slider_tick_interval, label=None, vertical=False, label_bold=False, onChange_func=None):
    line_container = init_container(parent=parent, vertical=vertical)
    if label:
        ql = QLabel()
        if label_bold:
            ql.setStyleSheet("font: bold 14px;")
        else:
            ql.setStyleSheet("font: 14px;")

        ql.setText(label)
        line_container.addWidget(ql)

    sl = QSlider(Qt.Horizontal)
    sl.setMinimum(slider_min)
    sl.setMaximum(slider_max)
    sl.setTickPosition(QSlider.TicksBelow)
    sl.setTickInterval(slider_tick_interval)
    if onChange_func is not None:
        sl.valueChanged.connect(onChange_func)
    line_container.addWidget(sl)

    return sl
Example #9
0
def init_instruction_text_block(parent, bold=False, font=14):
    vl = init_container(parent, style="background-color: white;")
    # a vertical layout
    lb_write = QLabel()
    lb_write.setAlignment(QtCore.Qt.AlignCenter)
    lb_write.setStyleSheet("font: 32px;")
    lb_write.setText("Write")
    vl.addWidget(lb_write)

    lb_char_to_write = QLabel()
    lb_char_to_write.setAlignment(QtCore.Qt.AlignCenter)
    lb_char_to_write.setStyleSheet("font: bold 56px;")
    lb_char_to_write.setText('...')
    vl.addWidget(lb_char_to_write)

    lb_char_next = QLabel()
    lb_char_next.setAlignment(QtCore.Qt.AlignCenter)
    lb_char_next.setStyleSheet("font: italic 24px;")
    lb_char_next.setText(config.instruction_next_text + '...')
    vl.addWidget(lb_char_next)

    return lb_char_to_write, lb_char_next
Example #10
0
    def __init__(self, record_signal, mmw_signal, *args, **kwargs):
        super().__init__()
        self.main_page = QHBoxLayout(self)

        self.operation_block = init_container(parent=self.main_page,
                                              vertical=False)

        # Initialize tab screen
        tabs = QTabWidget()
        self.tab_recording = IdpRecording(record_signal)
        self.tab_training = IdpTrain()
        self.tab_detection = IdpDetection(mmw_signal)

        tabs.addTab(self.tab_recording, config.operation_recording_label)
        tabs.addTab(self.tab_training, config.operation_training_label)
        tabs.addTab(self.tab_detection, config.operation_detection_label)

        # Add tabs to main_widget
        self.operation_block.addWidget(tabs)

        self.setLayout(self.main_page)
        self.show()
Example #11
0
def init_preparation_block(parent, text):
    vl = init_container(parent, style="background-color: white;")
    # a vertical layout
    ql1 = QLabel()
    ql1.setStyleSheet("font: 18px;")
    ql1.setAlignment(QtCore.Qt.AlignCenter)
    ql1.setText("You will be writing:
 ")

    ql2 = QLabel()
    ql2.setStyleSheet("font: 14px;")
    ql2.setAlignment(QtCore.Qt.AlignCenter)

    ql2.setText(text)

    ql3 = QLabel()
    ql3.setStyleSheet("font: 18px;")
    ql3.setAlignment(QtCore.Qt.AlignCenter)
    ql3.setText("Press Enter To Continue")

    vl.addWidget(ql1)
    vl.addWidget(ql2)
    vl.addWidget(ql3)

    return vl
Example #12
0
    def __init__(self):
        super().__init__()

        # default range
        self.range_min = 0
        self.range_max = 0.4

        # for checking only one freq box
        self._toggle = None
        self.state = ['idle']  # see the docstring of self.update_state for details

        self.background = QVBoxLayout(self)
        self.setLayout(self.background)

        self.main_page = init_container(parent=self.background, vertical=True,
                                        style="background-color:" + config.container_color + ";")
        #       - device (combo box)
        self.device = init_combo_box(parent=self.main_page,
                                     label="Device",
                                     item_list=["X4M300", "X4M200", "X4M03"])
        self.device.activated[str].connect(self.device_onChanged)
        #       - port (input box)
        self.XeThruX4_port_block, self.XeThruX4_port_textbox = init_inputBox(parent=self.main_page,
                                                                               label="Port (device_name): ",
                                                                               label_bold=True,
                                                                               default_input="Default: COM8")

        self.freq_block = init_container(parent=self.main_page,
                                                  label="Frequency Band",
                                                  vertical=False)
        #       - frequency band (check box)
        self.low_freq_checkbox = init_checkBox(parent=self.freq_block,
                                               label="Low (7.290 GHz)",
                                               function=self.low_freq_action)
        self.high_freq_checkbox = init_checkBox(parent=self.freq_block,
                                                label="High (8.748 GHz)",
                                                function=self.high_freq_action)

        #       - range (input boxes)
        self.range_container = init_container(parent=self.main_page,
                                              label="Range (m) [0.5 ~ 3]",
                                              label_bold=True,
                                              vertical=False)

        self.min_range_block, self.min_range_textbox = init_inputBox(parent=self.range_container,
                                                                               label="Min:",
                                                                               label_bold=False,
                                                                               default_input="0")
        self.min_range_textbox.textChanged.connect(self.check_range)
        self.max_range_block, self.max_range_textbox = init_inputBox(parent=self.range_container,
                                                                               label="Max:",
                                                                               label_bold=False,
                                                                               default_input="0.4")
        self.max_range_textbox.textChanged.connect(self.check_range)

        #       - fps ( bar)
        self.fps_block, self.fps_slider_view = init_slider_bar_box(self.main_page,
                                                                   label="FPS",
                                                                   vertical=True,
                                                                   label_bold=True,
                                                                   min_value=10,
                                                                   max_value=25)
        self.fps_slider_view.setValue(23)

        #       - check box
        self.baseband_block = init_container(parent=self.main_page,
                                             label="Baseband",
                                             vertical=True)
        self.baseband_checkbox = init_checkBox(parent=self.baseband_block,
                                               function=self.baseband_checkbox_function)
        #       - two buttons

        self.buttons_block = init_container(self.main_page, vertical=False)
        self.start_stop__btn = init_button(parent=self.buttons_block,
                                           label="Start/stop sensor",
                                           function=self.start_stop_btn_action)
        self.reset_btn = init_button(parent=self.buttons_block,
                                     label="Reset to default",
                                     function=self.reset_btn_action)
        self.show()