25#include "moc_qgsgpsdconnection.cpp"
27using namespace Qt::StringLiterals;
33 QTcpSocket *socket = qobject_cast< QTcpSocket * >(
mSource.get() );
35 QObject::connect( socket, &QTcpSocket::connected,
this, &QgsGpsdConnection::connected );
36 QObject::connect( socket, &QTcpSocket::errorOccurred,
this, &QgsGpsdConnection::errorOccurred );
37 socket->connectToHost( host, port );
40void QgsGpsdConnection::connected()
43 QTcpSocket *socket = qobject_cast< QTcpSocket * >(
mSource.get() );
44 socket->write( u
"?WATCH={\"enable\":true,\"nmea\":true,\"raw\":true%1};"_s.arg( mDevice.isEmpty() ? mDevice : u
",\"device\":%1"_s.arg( mDevice ) ).toUtf8() );
47void QgsGpsdConnection::errorOccurred( QAbstractSocket::SocketError socketError )
50 QTcpSocket *socket = qobject_cast< QTcpSocket * >(
mSource.get() );
51 QgsDebugError( u
"error: %1 %2"_s.arg( socketError ).arg( socket->errorString() ) );
53 Q_UNUSED( socketError )
std::unique_ptr< QIODevice > mSource
Data source (e.g. serial device, socket, file,...).
QgsGpsdConnection(const QString &host, qint16 port, const QString &device)
QgsNmeaConnection(QIODevice *device)
Constructs a QgsNmeaConnection with given device.
#define QgsDebugMsgLevel(str, level)
#define QgsDebugError(str)