Ejemplo n.º 1
0
    def __init__(self, *args):
        PluginBase.__init__(self, BrickletRS232, *args)

        self.setupUi(self)

        # 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_error_callback = self.firmware_version >= (2, 0, 1)

        self.text.setReadOnly(True)

        self.rs232 = self.device

        self.read_callback_was_enabled = None

        self.qtcb_read.connect(self.cb_read)
        self.rs232.register_callback(self.rs232.CALLBACK_READ,
                                     self.qtcb_read.emit)

        if self.has_error_callback:
            self.label_no_error_support.hide()
            self.qtcb_error.connect(self.cb_error)
            self.rs232.register_callback(self.rs232.CALLBACK_ERROR,
                                         self.qtcb_error.emit)
        else:
            self.widget_errors.hide()

        self.input_combobox.addItem("")
        self.input_combobox.lineEdit().setMaxLength(58)
        self.input_combobox.lineEdit().returnPressed.connect(self.input_changed)

        self.line_ending_lineedit.setValidator(HexValidator())
        self.line_ending_combobox.currentIndexChanged.connect(self.line_ending_changed)
        self.line_ending_lineedit.editingFinished.connect(self.line_ending_changed)

        self.baudrate_combobox.currentIndexChanged.connect(self.configuration_changed)
        self.parity_combobox.currentIndexChanged.connect(self.configuration_changed)
        self.stopbits_spinbox.valueChanged.connect(self.configuration_changed)
        self.wordlength_spinbox.valueChanged.connect(self.configuration_changed)
        self.flowcontrol_combobox.currentIndexChanged.connect(self.configuration_changed)
        self.text_type_combobox.currentIndexChanged.connect(self.text_type_changed)

        self.hextext = QHexeditWidget(self.text.font())
        self.hextext.hide()
        self.layout().insertWidget(2, self.hextext)

        self.button_clear_text.clicked.connect(lambda: self.text.setPlainText(""))
        self.button_clear_text.clicked.connect(self.hextext.clear)

        self.save_button.clicked.connect(self.save_clicked)

        self.error_overrun = 0
        self.error_parity = 0
        self.error_framing = 0

        self.last_char = ''
Ejemplo n.º 2
0
Archivo: can.py Proyecto: fk0815/brickv
    def __init__(self, *args):
        PluginBase.__init__(self, BrickletCAN, *args)

        self.setupUi(self)

        self.can = self.device

        self.qtcb_frame_read.connect(self.cb_frame_read)
        self.can.register_callback(self.can.CALLBACK_FRAME_READ,
                                   self.qtcb_frame_read.emit)

        self.last_filename = os.path.join(get_home_path(),
                                          'can_bricklet_history.log')

        self.filter_mask = 0
        self.filter1 = 0
        self.filter2 = 0

        self.frame_read_callback_was_enabled = None

        self.tree_frames.header().resizeSection(0, 150)
        self.tree_frames.header().resizeSection(1, 135)
        self.tree_frames.header().resizeSection(2, 135)
        self.tree_frames.header().resizeSection(3, 300)
        self.tree_frames.header().resizeSection(4, 100)

        self.edit_data.setValidator(HexValidator(max_bytes=8))

        self.combo_frame_type.currentIndexChanged.connect(
            self.frame_type_changed)
        self.combo_baud_rate.currentIndexChanged.connect(
            self.configuration_changed)
        self.combo_transceiver_mode.currentIndexChanged.connect(
            self.configuration_changed)
        self.spin_write_timeout.valueChanged.connect(
            self.configuration_changed)

        self.combo_filter_mode.currentIndexChanged.connect(
            self.filter_mode_changed)
        self.spin_filter_mask_extended.valueChanged.connect(
            self.mask_or_filter_changed)
        self.spin_filter_mask_standard.valueChanged.connect(
            self.mask_or_filter_changed)
        self.spin_filter_mask_data1.valueChanged.connect(
            self.mask_or_filter_changed)
        self.spin_filter_mask_data2.valueChanged.connect(
            self.mask_or_filter_changed)
        self.spin_filter1_extended.valueChanged.connect(
            self.mask_or_filter_changed)
        self.spin_filter1_standard.valueChanged.connect(
            self.mask_or_filter_changed)
        self.spin_filter1_data1.valueChanged.connect(
            self.mask_or_filter_changed)
        self.spin_filter1_data2.valueChanged.connect(
            self.mask_or_filter_changed)
        self.spin_filter2_extended.valueChanged.connect(
            self.mask_or_filter_changed)
        self.spin_filter2_standard.valueChanged.connect(
            self.mask_or_filter_changed)
        self.spin_filter2_data1.valueChanged.connect(
            self.mask_or_filter_changed)
        self.spin_filter2_data2.valueChanged.connect(
            self.mask_or_filter_changed)

        self.button_write_frame.clicked.connect(self.write_frame)
        self.button_clear_history.clicked.connect(self.tree_frames.clear)
        self.button_save_history.clicked.connect(self.save_history)
        self.button_save_configuration.clicked.connect(self.save_configuration)
        self.button_save_read_filter.clicked.connect(self.save_read_filter)

        self.error_log_timer = QTimer(self)
        self.error_log_timer.timeout.connect(self.update_error_log)
        self.error_log_timer.setInterval(1000)

        self.frame_type_changed()
        self.filter_mode_changed()
Ejemplo n.º 3
0
    def __init__(self, *args):
        COMCUPluginBase.__init__(self, BrickletRS232V2, *args)

        self.setupUi(self)

        self.text.setReadOnly(True)

        self.rs232 = self.device

        self.read_callback_was_enabled = None

        self.qtcb_read.connect(self.cb_read)
        self.rs232.register_callback(self.rs232.CALLBACK_READ,
                                     self.qtcb_read.emit)

        self.qtcb_error_count.connect(self.cb_error_count)
        self.rs232.register_callback(self.rs232.CALLBACK_ERROR_COUNT,
                                     self.qtcb_error_count.emit)

        self.input_combobox.addItem("")
        self.input_combobox.lineEdit().setMaxLength(65533)
        self.input_combobox.lineEdit().returnPressed.connect(
            self.input_changed)

        self.line_ending_lineedit.setValidator(HexValidator())
        self.line_ending_combobox.currentIndexChanged.connect(
            self.line_ending_changed)
        self.line_ending_lineedit.editingFinished.connect(
            self.line_ending_changed)

        self.baudrate_spinbox.valueChanged.connect(self.configuration_changed)
        self.parity_combobox.currentIndexChanged.connect(
            self.configuration_changed)
        self.stopbits_spinbox.valueChanged.connect(self.configuration_changed)
        self.wordlength_spinbox.valueChanged.connect(
            self.configuration_changed)
        self.flowcontrol_combobox.currentIndexChanged.connect(
            self.configuration_changed)
        self.text_type_combobox.currentIndexChanged.connect(
            self.text_type_changed)

        self.hextext = QHexeditWidget(self.text.font())
        self.hextext.hide()
        self.layout().insertWidget(2, self.hextext)

        self.button_clear_text.clicked.connect(
            lambda: self.text.setPlainText(""))
        self.button_clear_text.clicked.connect(self.hextext.clear)

        self.save_button.clicked.connect(self.save_clicked)

        self.error_stream_oos = 0

        self.last_char = ''

        if self.baudrate_spinbox.value() > BAUDRATE_MAX_RS232:
            self.label_note_baud.show()
        else:
            self.label_note_baud.hide()

        if self.flowcontrol_combobox.currentIndex() == CBOX_IDX_FC_HW:
            self.label_note_fc_hw.show()
        else:
            self.label_note_fc_hw.hide()
Ejemplo n.º 4
0
    def __init__(self, *args):
        COMCUPluginBase.__init__(self, BrickletCANV2, *args)

        self.setupUi(self)

        self.can = self.device

        self.qtcb_frame_read.connect(self.cb_frame_read)
        self.can.register_callback(self.can.CALLBACK_FRAME_READ,
                                   self.qtcb_frame_read.emit)

        self.last_filename = os.path.join(get_home_path(),
                                          'can_bricklet_v2_history.log')

        self.frame_read_callback_was_enabled = False

        self.tree_frames.header().resizeSection(0, 150)
        self.tree_frames.header().resizeSection(1, 170)
        self.tree_frames.header().resizeSection(2, 300)
        self.tree_frames.header().resizeSection(3, 100)

        self.edit_data.setValidator(HexValidator(max_bytes=8))

        self.combo_frame_type.currentIndexChanged.connect(
            self.frame_type_changed)
        self.spin_baud_rate.valueChanged.connect(
            self.transceiver_configuration_changed)
        self.spin_sample_point.valueChanged.connect(
            self.transceiver_configuration_changed)
        self.combo_transceiver_mode.currentIndexChanged.connect(
            self.transceiver_configuration_changed)

        self.spin_write_buffer_size.valueChanged.connect(
            self.queue_configuration_changed)
        self.spin_write_buffer_timeout.valueChanged.connect(
            self.queue_configuration_changed)
        self.spin_write_backlog_size.valueChanged.connect(
            self.queue_configuration_changed)
        self.edit_read_buffer_sizes.textEdited.connect(
            self.queue_configuration_changed)
        self.spin_read_backlog_size.valueChanged.connect(
            self.queue_configuration_changed)

        for i in range(32):
            self.combo_filter_buffer.addItem(str(i))

        self.combo_filter_buffer.currentIndexChanged.connect(
            self.read_filter_buffer_changed)
        self.combo_filter_mode.currentIndexChanged.connect(
            self.read_filter_mode_changed)
        self.spin_filter_mask.valueChanged.connect(
            self.read_filter_configuration_changed)
        self.spin_filter_identifier.valueChanged.connect(
            self.read_filter_configuration_changed)

        self.button_write_frame.clicked.connect(self.write_frame)
        self.button_clear_history.clicked.connect(self.tree_frames.clear)
        self.button_save_history.clicked.connect(self.save_history)
        self.button_save_transceiver_configuration.clicked.connect(
            self.save_transceiver_configuration)
        self.button_reset_transceiver_configuration.clicked.connect(
            self.reset_transceiver_configuration)
        self.button_save_queue_configuration.clicked.connect(
            self.save_queue_configuration)
        self.button_reset_queue_configuration.clicked.connect(
            self.reset_queue_configuration)
        self.button_save_read_filter_configuration.clicked.connect(
            self.save_read_filter_configuration)
        self.button_reset_read_filter_configuration.clicked.connect(
            self.reset_read_filter_configuration)

        self.error_log_timer = QTimer(self)
        self.error_log_timer.timeout.connect(self.update_error_log)
        self.error_log_timer.setInterval(1000)

        self.frame_type_changed()
        self.read_filter_buffer_changed()
        self.read_filter_mode_changed()
        self.read_filter_configuration_changed()

        self.com_led_off_action = QAction('Off', self)
        self.com_led_off_action.triggered.connect(
            lambda: self.can.set_communication_led_config(
                BrickletCANV2.COMMUNICATION_LED_CONFIG_OFF))
        self.com_led_on_action = QAction('On', self)
        self.com_led_on_action.triggered.connect(
            lambda: self.can.set_communication_led_config(
                BrickletCANV2.COMMUNICATION_LED_CONFIG_ON))
        self.com_led_show_heartbeat_action = QAction('Show Heartbeat', self)
        self.com_led_show_heartbeat_action.triggered.connect(
            lambda: self.can.set_communication_led_config(
                BrickletCANV2.COMMUNICATION_LED_CONFIG_SHOW_HEARTBEAT))
        self.com_led_show_communication_action = QAction('Show Com', self)
        self.com_led_show_communication_action.triggered.connect(
            lambda: self.can.set_communication_led_config(
                BrickletCANV2.COMMUNICATION_LED_CONFIG_SHOW_COMMUNICATION))

        self.extra_configs += [(1, 'Com LED:', [
            self.com_led_off_action, self.com_led_on_action,
            self.com_led_show_heartbeat_action,
            self.com_led_show_communication_action
        ])]

        self.error_led_off_action = QAction('Off', self)
        self.error_led_off_action.triggered.connect(
            lambda: self.can.set_error_led_config(BrickletCANV2.
                                                  ERROR_LED_CONFIG_OFF))
        self.error_led_on_action = QAction('On', self)
        self.error_led_on_action.triggered.connect(
            lambda: self.can.set_error_led_config(BrickletCANV2.
                                                  ERROR_LED_CONFIG_ON))
        self.error_led_show_heartbeat_action = QAction('Show Heartbeat', self)
        self.error_led_show_heartbeat_action.triggered.connect(
            lambda: self.can.set_error_led_config(
                BrickletCANV2.ERROR_LED_CONFIG_SHOW_HEARTBEAT))
        self.error_led_show_transceiver_state_action = QAction(
            'Show Transceiver State', self)
        self.error_led_show_transceiver_state_action.triggered.connect(
            lambda: self.can.set_error_led_config(
                BrickletCANV2.ERROR_LED_CONFIG_SHOW_TRANSCEIVER_STATE))
        self.error_led_show_error_action = QAction('Show Error', self)
        self.error_led_show_error_action.triggered.connect(
            lambda: self.can.set_error_led_config(BrickletCANV2.
                                                  ERROR_LED_CONFIG_SHOW_ERROR))

        self.extra_configs += [(1, 'Error LED:', [
            self.error_led_off_action, self.error_led_on_action,
            self.error_led_show_heartbeat_action,
            self.error_led_show_transceiver_state_action,
            self.error_led_show_error_action
        ])]