2015-09-14 145 views
1

我跟着this爲了創建一對串行端口。它工作正常。Qt和虛擬串行端口

現在我正在開發一個Qt應用程序(使用QtSerialPort)通過串口發送數據,而我真正想要的就是這樣一個虛擬串口鏈接。但看起來QSerialPortInfo::availablePorts()找不到/ dev/pts/...端口。

爲了在linux上製作這樣的串口鏈接,我應該嘗試哪種方法?

回答

2

由於/ dev/pts不是串行端口,SOCAT會爲/ dev/pts設備創建符號鏈接。所以,一切正確。

但是,使用SOCAT它不是一個好主意,因爲它不穩定(在我的練習中重新打開之後等等)。最好使用tty0tty項目(但不幸的是,QSerialPort :: availablePorts()並沒有枚舉它)。但這不是問題,因爲tty0tty的串行端口可以很容易地固定爲QSerialPort(需要一個小補丁)。

所以,目前沒有辦法列舉這個簡單的方法。也許在Qt 5.6中,將爲QSerialPort枚舉添加tty0tty。

作爲解決方法,您可以在/ dev目錄上使用QDir來枚舉所有符號鏈接(當然,如果您在/ dev目錄中創建此符號鏈接)。

+0

「不幸的是,QSerialPort :: availablePorts()不枚舉它太」 意味着我甚至不能使用它呢?如果明確告訴Qt有關地址,我期望能夠使用它們。我試過'cat KcFnMi

+0

「tty0tty的串行端口可以很容易地固定爲QSerialPort(需要一個小補丁)」,請您告訴我更多關於此補丁的信息嗎? – KcFnMi

1

我甚至不能使用它?

您可以使用任何自定義串行端口名稱並將其傳遞給QSerialPort。

,但沒有被貓側

您可以嘗試使用終端例子,這是qtserialport例子部分所示。

請您告訴我更多關於此補丁的信息嗎?

https://codereview.qt-project.org/#/c/125856/