을 여는 경우 프로그램 중지 (무한 루프?)의 원인이된다. 불행히도 나는 QSerialPort가 리눅스에서 제대로 구현되지 않았다는 느낌을 가지고있다. 다른 방법 (파이썬)과는 대조적으로 나는 때때로! 내가 전화하려고 할 때 프로그램의 중지 : 나는 http://qt-project.org/wiki/QtSerialPort에서 예제를 사용하고QSerialPort 내가 직렬 장치에 쓰고 싶은 장치
serial.open(QIODevice::ReadWrite)
(아래 참조). QSerialPortInfo가 제대로 작동하여 장치를 열기 전에 장치를 검색 할 수 있습니다. 문제는 모든 Qt 5. * 시리즈에서 나타났습니다. 현재 OpenSuse 저장소에서 5.3 베타 버전을 사용 중입니다. 다른 도구 또는 방법은 장치가 작동하고 있음을 증명합니다 (Windows 또는 Python).
// Example use QSerialPortInfo
foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) {
qDebug() << "Name : " << info.portName();
qDebug() << "Description : " << info.description();
qDebug() << "Manufacturer: " << info.manufacturer();
// Example use QSerialPort
QSerialPort serial;
serial.setPort(info);
if (serial.open(QIODevice::ReadWrite)) // Hang of the program
serial.close();
}
근무 파이썬 스크립트 :
com_port = 4
baud_rate = '9600'
pySerial = serial.Serial(com_port, baud_rate)
편집 : 나는 디버거를 테스트했다. 적어도 리눅스에서는 Qt 5의 문제로 보입니다. 장치 잠금 장치와 연결된 것처럼 보입니다.
당신은 QSerialDevice 무엇을 의미합니까 ... 직렬 포트를 열 수 있어야한다? 그런 수업은 없습니다! 예배당이 당신을 위해 일합니까? – lpapp
예제는 여러 Qt 버전이있는 내 시스템 (OpenSuse)에서만 작동합니다. PySerial은 항상 작동합니다 (windows, linux). 실제로 그것이 저만의 것인지, 아니면 그것이 단지 Qt 문제인지 궁금합니다. 그러나 QSerialPort로 매달리지 않으면 모든 것이 원활합니다. – dgrat
어떤 예를 들어 말씀하십니까? 커맨드 라인 독자와 작가를 시도해 보셨습니까? 어떤 Qt 버전을 사용하고 있습니까?아마도 당신은 구식 QtSerialPort를 사용하고 있습니까? 너 어디서 났니? 정확히 어떤 유형의 시리얼 포트를 사용하고 있습니까? – lpapp