Проблемы открытия портов Python, PySerial, PyQt

Я пишу приложение, которое позволит мне подключиться к моему устройству через выбранный последовательный порт (используя RS485). И все работает отлично, кроме одной вещи. Когда нажимается кнопка, мое приложение вызывает функцию и открывает соединение, но затем, как только эта функция делает все, что предполагается для соединения с портом, немедленно закрывается. Поэтому, когда я хочу использовать это соединение позже, я получаю сообщение об ошибке "серийный номер не определен".

def open_connection(self):
    cur_item = self.comboBox.currentText()
    if (cur_item) is not None:
        fullname = self.full_port_name(str(cur_item))
        try:                                                                     
            ser = serial.Serial(
            port=fullname, 
            baudrate=115200, 
            parity=serial.PARITY_NONE,
            stopbits=serial.STOPBITS_ONE,
            bytesize=serial.EIGHTBITS,
            timeout=None)                                                

        except SerialException, e:
            QMessageBox.critical(self, 'Failure',
                'Failed to open %s:\n%s' % (cur_item, e))

Я хочу, чтобы мое соединение было открыто, так как кнопка закрывается, когда я закрываю программу, чтобы я мог тем временем использовать lineEdit (запускает другую функцию после нажатия клавиши enter) для отправки некоторых команд на устройство. Ребята, вы можете мне помочь?

РЕДАКТИРОВАТЬ: Хорошо, я решил это с помощью QThreads. Но все же я не знаю, почему, если определенная часть моей программы использует последовательный порт, другая не может сделать это без открытия порта для себя (что невозможно, так как к последовательному порту может подключаться только одна "вещь") в одно время).

0 ответов

Другие вопросы по тегам