Martin Delille
Martin Delille

Reputation: 11810

Opening a virtual serial port created by SOCAT with Qt

I'm developping a Qt5 application on MacOS.

I would like to test my application serial port communication.

I'd like to use socat but I'm unable to open the port created with socat: QSerialPortInfo::availablePorts() lists only the /dev/cu-XXXXXX ports...

Upvotes: 7

Views: 7807

Answers (3)

Luis Lourenço
Luis Lourenço

Reputation: 37

Maybe it's just a permission issue. Make sure the user running your application has permition to access the virtual port.

Upvotes: 0

photex
photex

Reputation: 141

You might be having troubles because of the symlink.

You could try something like this:

QFileInfo file_info("/dev/mytty");
QSerialPort* serial = nullptr;
if (file_info.isSymLink()) {
  serial = new QSerialPort(file_info.symLinkTarget());
} else {
  serial = new QSerialPort(file_info.path());
}
serial->open(QIODevice::ReadWrite);

You could also construct a QSerialPortInfo class with those paths instead of creating a port directly.

Upvotes: 1

yegorich
yegorich

Reputation: 4849

Socat port creation example:

socat  pty,link=/dev/mytty,raw  tcp:192.168.254.254:2001&

After this you get your pseudo port /dev/mytty

Now you can reference this port via QSerialPort

serial = new QSerialPort("/dev/mytty");

Upvotes: 3

Related Questions