Exemplo n.º 1
0
    def __init__(self, *args):
        super().__init__(BrickletRotaryPoti, *args)

        self.rp = self.device

        self.cbe_position = CallbackEmulator(self.rp.get_position, None,
                                             self.cb_position,
                                             self.increase_error_count)

        self.position_knob = KnobWidget(self)
        self.position_knob.setFocusPolicy(Qt.NoFocus)
        self.position_knob.set_total_angle(300)
        self.position_knob.set_range(-150, 150)
        self.position_knob.set_scale(30, 3)
        self.position_knob.set_knob_radius(25)

        self.current_position = CurveValueWrapper()

        plots = [('Position', Qt.red, self.current_position, str)]
        self.plot_widget = PlotWidget('Position',
                                      plots,
                                      update_interval=0.025,
                                      y_resolution=1.0)

        layout = QHBoxLayout(self)
        layout.addWidget(self.plot_widget)
        layout.addWidget(self.position_knob)
Exemplo n.º 2
0
    def __init__(self, *args):
        PluginBase.__init__(self, BrickletRotaryPoti, *args)

        self.rp = self.device

        self.cbe_position = CallbackEmulator(self.rp.get_position,
                                             self.cb_position,
                                             self.increase_error_count)

        self.position_knob = KnobWidget(self)
        self.position_knob.setFocusPolicy(Qt.NoFocus)
        self.position_knob.set_total_angle(300)
        self.position_knob.set_range(-150, 150)
        self.position_knob.set_scale(30, 3)
        self.position_knob.set_knob_radius(25)

        self.current_position = None

        plots = [('Position', Qt.red, lambda: self.current_position, str)]
        self.plot_widget = PlotWidget('Position',
                                      plots,
                                      curve_motion_granularity=40,
                                      update_interval=0.025)

        layout = QHBoxLayout(self)
        layout.addWidget(self.plot_widget)
        layout.addWidget(self.position_knob)
Exemplo n.º 3
0
    def __init__(self, *args):
        PluginBase.__init__(self, BrickletRotaryEncoder, *args)

        self.re = self.device

        self.cbe_count = CallbackEmulator(
            functools.partial(self.re.get_count, False), self.cb_count,
            self.increase_error_count)

        self.qtcb_pressed.connect(self.cb_pressed)
        self.re.register_callback(self.re.CALLBACK_PRESSED,
                                  self.qtcb_pressed.emit)

        self.qtcb_released.connect(self.cb_released)
        self.re.register_callback(self.re.CALLBACK_RELEASED,
                                  self.qtcb_released.emit)

        self.count_label = CountLabel('Count: 0')
        self.reset_button = QPushButton('Reset Count')
        self.reset_button.clicked.connect(self.reset_clicked)

        self.encoder_knob = KnobWidget(self)
        self.encoder_knob.setFocusPolicy(Qt.NoFocus)
        self.encoder_knob.set_total_angle(360)
        self.encoder_knob.set_range(0, 24)
        self.encoder_knob.set_scale(2, 2)
        self.encoder_knob.set_scale_text_visible(False)
        self.encoder_knob.set_scale_arc_visible(False)
        self.encoder_knob.set_knob_radius(25)
        self.encoder_knob.set_value(0)

        self.current_value = None

        plot_list = [['', Qt.red, self.get_current_value]]
        self.plot_widget = PlotWidget('Count', plot_list)

        layout_h1 = QHBoxLayout()
        layout_h1.addStretch()
        layout_h1.addWidget(self.count_label)
        layout_h1.addStretch()

        layout_h2 = QHBoxLayout()
        layout_h2.addStretch()
        layout_h2.addWidget(self.encoder_knob)
        layout_h2.addStretch()

        layout_h3 = QHBoxLayout()
        layout_h3.addStretch()
        layout_h3.addWidget(self.reset_button)
        layout_h3.addStretch()

        layout = QVBoxLayout(self)
        layout.addLayout(layout_h1)
        layout.addLayout(layout_h2)
        layout.addLayout(layout_h3)
        layout.addWidget(self.plot_widget)
Exemplo n.º 4
0
    def __init__(self, *args):
        super().__init__(BrickletRotaryEncoder, *args)

        self.re = self.device

        # the firmware version of a EEPROM Bricklet can (under common circumstances)
        # not change during the lifetime of an EEPROM Bricklet plugin. therefore,
        # it's okay to make final decisions based on it here
        self.has_fixed_is_pressed = self.firmware_version >= (
            2, 0, 2)  # is_pressed return value was inverted before

        self.cbe_count = CallbackEmulator(self, self.get_count, False,
                                          self.cb_count,
                                          self.increase_error_count)

        self.qtcb_pressed.connect(self.cb_pressed)
        self.re.register_callback(self.re.CALLBACK_PRESSED,
                                  self.qtcb_pressed.emit)

        self.qtcb_released.connect(self.cb_released)
        self.re.register_callback(self.re.CALLBACK_RELEASED,
                                  self.qtcb_released.emit)

        self.reset_button = QPushButton('Reset Count')
        self.reset_button.clicked.connect(self.reset_clicked)

        self.encoder_knob = KnobWidget(self)
        self.encoder_knob.setFocusPolicy(Qt.NoFocus)
        self.encoder_knob.set_total_angle(360)
        self.encoder_knob.set_range(0, 24)
        self.encoder_knob.set_scale(2, 2)
        self.encoder_knob.set_scale_text_visible(False)
        self.encoder_knob.set_scale_arc_visible(False)
        self.encoder_knob.set_knob_radius(25)
        self.encoder_knob.set_value(0)

        self.current_count = CurveValueWrapper()

        plots = [('Count', Qt.red, self.current_count, str)]
        self.plot_widget = PlotWidget('Count',
                                      plots,
                                      update_interval=0.025,
                                      y_resolution=1.0)

        vlayout = QVBoxLayout()
        vlayout.addStretch()
        vlayout.addWidget(self.encoder_knob)
        vlayout.addWidget(self.reset_button)
        vlayout.addStretch()

        layout = QHBoxLayout(self)
        layout.addWidget(self.plot_widget)
        layout.addLayout(vlayout)
Exemplo n.º 5
0
    def __init__(self, *args):
        COMCUPluginBase.__init__(self, BrickletRotaryEncoderV2, *args)

        self.re = self.device

        self.cbe_count = CallbackEmulator(
            functools.partial(self.re.get_count, False), self.cb_count,
            self.increase_error_count)

        self.qtcb_pressed.connect(self.cb_pressed)
        self.re.register_callback(self.re.CALLBACK_PRESSED,
                                  self.qtcb_pressed.emit)

        self.qtcb_released.connect(self.cb_released)
        self.re.register_callback(self.re.CALLBACK_RELEASED,
                                  self.qtcb_released.emit)

        self.reset_button = QPushButton('Reset Count')
        self.reset_button.clicked.connect(self.reset_clicked)

        self.encoder_knob = KnobWidget(self)
        self.encoder_knob.setFocusPolicy(Qt.NoFocus)
        self.encoder_knob.set_total_angle(360)
        self.encoder_knob.set_range(0, 24)
        self.encoder_knob.set_scale(2, 2)
        self.encoder_knob.set_scale_text_visible(False)
        self.encoder_knob.set_scale_arc_visible(False)
        self.encoder_knob.set_knob_radius(25)
        self.encoder_knob.set_value(0)

        self.current_count = None

        plots = [('Count', Qt.red, lambda: self.current_count, str)]
        self.plot_widget = PlotWidget('Count',
                                      plots,
                                      curve_motion_granularity=40,
                                      update_interval=0.025)

        vlayout = QVBoxLayout()
        vlayout.addStretch()
        vlayout.addWidget(self.encoder_knob)
        vlayout.addWidget(self.reset_button)
        vlayout.addStretch()

        layout = QHBoxLayout(self)
        layout.addWidget(self.plot_widget)
        layout.addLayout(vlayout)
Exemplo n.º 6
0
    def __init__(self, *args):
        super().__init__(BrickletRotaryEncoderV2, *args)

        self.re = self.device

        self.cbe_count = CallbackEmulator(self, self.get_count, False,
                                          self.cb_count,
                                          self.increase_error_count)

        self.qtcb_pressed.connect(self.cb_pressed)
        self.re.register_callback(self.re.CALLBACK_PRESSED,
                                  self.qtcb_pressed.emit)

        self.qtcb_released.connect(self.cb_released)
        self.re.register_callback(self.re.CALLBACK_RELEASED,
                                  self.qtcb_released.emit)

        self.reset_button = QPushButton('Reset Count')
        self.reset_button.clicked.connect(self.reset_clicked)

        self.encoder_knob = KnobWidget(self)
        self.encoder_knob.setFocusPolicy(Qt.NoFocus)
        self.encoder_knob.set_total_angle(360)
        self.encoder_knob.set_range(0, 24)
        self.encoder_knob.set_scale(2, 2)
        self.encoder_knob.set_scale_text_visible(False)
        self.encoder_knob.set_scale_arc_visible(False)
        self.encoder_knob.set_knob_radius(25)
        self.encoder_knob.set_value(0)

        self.current_count = CurveValueWrapper()

        plots = [('Count', Qt.red, self.current_count, str)]
        self.plot_widget = PlotWidget('Count',
                                      plots,
                                      update_interval=0.025,
                                      y_resolution=1.0)

        vlayout = QVBoxLayout()
        vlayout.addStretch()
        vlayout.addWidget(self.encoder_knob)
        vlayout.addWidget(self.reset_button)
        vlayout.addStretch()

        layout = QHBoxLayout(self)
        layout.addWidget(self.plot_widget)
        layout.addLayout(vlayout)
Exemplo n.º 7
0
    def __init__(self, *args):
        QWidget.__init__(self, *args)

        self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum)

        layout = QVBoxLayout(self)
        layout.setContentsMargins(0, 0, 0, 0)

        self.knob = KnobWidget()
        self.knob.setFocusPolicy(Qt.NoFocus)
        self.knob.set_total_angle(280)
        self.knob.set_range(0, 0x7FFF)
        self.knob.set_scale(5000, 2)
        self.knob.set_scale_arc_visible(False)
        self.knob.set_knob_radius(60)
        self.knob.set_knob_style(KnobWidget.STYLE_NEEDLE)
        self.knob.set_value(0)
        self.knob.set_title_text('Standstill')
        self.knob.set_dynamic_resize_enabled(True)

        layout.addWidget(self.knob)