Проблемы открытия портов 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. Но все же я не знаю, почему, если определенная часть моей программы использует последовательный порт, другая не может сделать это без открытия порта для себя (что невозможно, так как к последовательному порту может подключаться только одна "вещь") в одно время).