Проблема PyQT5 с чтением из порта с помощью QtSerialPort

В настоящее время я пытаюсь связаться с устройством, которое отправляет поток данных по COM. У меня странная проблема с QtSerialPort, которую я пока не знаю, как решить. Описание проблемы: Когда я перезагружаю устройство и перезапускаю свое приложение, в приложении я могу открыть соответствующий порт без каких-либо ошибок. Однако я не получаю никаких данных с устройства. Я пытаюсь прочитать данные с COM-порта с сигналом readyRead. Теперь, когда я открываю порт с помощью другой программы B, которая использует серийный номер Python, я могу успешно читать с устройства после перезапуска. Теперь, после успешного чтения с устройства с помощью программы B, я также могу успешно прочитать с устройства с помощью QT-программы A, но только если я не перезагружаю устройство. Следующий код содержит изолированный порт с QtSerial, который воспроизводит указанную выше проблему.

      import sys
from PyQt5 import QtSerialPort
from PyQt5.QtCore import *
from PyQt5.QtSerialPort import *
from PyQt5.QtWidgets import QApplication, QMainWindow

class QtSerialTest(QMainWindow):
    def __init__(self, parent=None) -> None:
        super().__init__()

        self.port_com_port = QtSerialPort.QSerialPort()
        self.port_com_port.setPortName("COM4")
        self.port_com_port.setBaudRate(QSerialPort.BaudRate.Baud115200)
        self.port_com_port.setParity(QSerialPort.Parity.NoParity)
        self.port_com_port.setDataBits(QSerialPort.DataBits.Data8)
        self.port_com_port.setStopBits(QSerialPort.StopBits.OneStop)

        self.port_com_port.open(QIODevice.ReadWrite)
        self.port_com_port.readyRead.connect(self.readFromSerial)

    def readFromSerial(self):
        print(self.port_com_port.readAll())


if __name__ == '__main__':
    app = QApplication(sys.argv)
    test = QtSerialTest()
    app.exec()

Могу подтвердить, что после перезагрузки функция "readFromSerial" ни разу не вызывается, хотя устройство отправляет.

РЕДАКТИРОВАТЬ: забыл упомянуть: я сравнил настройки порта из программы A и B, они равны

0 ответов

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