Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@eugesh
Last active February 10, 2023 14:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eugesh/46d838b994b98cca04d314309688d005 to your computer and use it in GitHub Desktop.
Save eugesh/46d838b994b98cca04d314309688d005 to your computer and use it in GitHub Desktop.
Example for QNmeaPositionInfoSource
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#include <QtCore>
#include <QNmeaPositionInfoSource>
#include <QSerialPort>
#include <QTextEdit>
#include "clientapplication.h"
ClientApplication::ClientApplication(QWidget *parent)
: QMainWindow(parent)
{
textEdit = new QTextEdit;
setCentralWidget(textEdit);
QNmeaPositionInfoSource *source = new QNmeaPositionInfoSource(QNmeaPositionInfoSource::RealTimeMode, this);
QSerialPort *serialport = new QSerialPort(this);
serialport->setPortName("ttyACM0");
serialport->setBaudRate(9600);
serialport->setDataBits(QSerialPort::Data5);
serialport->setParity(QSerialPort::Parity::NoParity);
serialport->setStopBits(QSerialPort::StopBits::OneStop);
serialport->setFlowControl(QSerialPort::FlowControl::NoFlowControl);
serialport->open(QIODevice::ReadOnly);
source->setDevice(serialport);
source->startUpdates();
connect(source, SIGNAL(positionUpdated(QGeoPositionInfo)),
this, SLOT(positionUpdated(QGeoPositionInfo)));
source->setPreferredPositioningMethods(QGeoPositionInfoSource::SatellitePositioningMethods);
source->setUserEquivalentRangeError(5.1);
source->setUpdateInterval(1000);
source->startUpdates();
}
void ClientApplication::positionUpdated(const QGeoPositionInfo &info)
{
textEdit->append(QString("Position updated: Date/time = %1, Coordinate = %2").arg(info.timestamp().toString()).arg(info.coordinate().toString()));
}
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#ifndef CLIENTAPPLICATION_H
#define CLIENTAPPLICATION_H
#include <QMainWindow>
QT_BEGIN_NAMESPACE
class QGeoPositionInfo;
class QTextEdit;
QT_END_NAMESPACE
class ClientApplication : public QMainWindow
{
Q_OBJECT
public:
ClientApplication(QWidget *parent = 0);
private slots:
void positionUpdated(const QGeoPositionInfo &info);
private:
QTextEdit *textEdit;
};
#endif
TEMPLATE = app
TARGET = geopositionsource
QT = positioning core widgets serialport
HEADERS = clientapplication.h
SOURCES = clientapplication.cpp \
main.cpp
RESOURCES += \
logfile.qrc
INSTALLS += target
// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#include <QApplication>
#include "clientapplication.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
ClientApplication client;
client.show();
return app.exec();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment