Add GPS Parsing
This commit is contained in:
@@ -5,7 +5,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
|
|||||||
|
|
||||||
find_package( OpenCV REQUIRED )
|
find_package( OpenCV REQUIRED )
|
||||||
find_package( Ebus REQUIRED )
|
find_package( Ebus REQUIRED )
|
||||||
find_package( Qt5 COMPONENTS Widgets Network DBus Sql REQUIRED )
|
find_package( Qt5 COMPONENTS Widgets Network DBus Sql Positioning SerialPort REQUIRED )
|
||||||
|
|
||||||
set(CMAKE_AUTOMOC ON)
|
set(CMAKE_AUTOMOC ON)
|
||||||
|
|
||||||
@@ -27,6 +27,8 @@ include_directories(
|
|||||||
${Qt5Network_INCLUDE_DIRS}
|
${Qt5Network_INCLUDE_DIRS}
|
||||||
${Qt5DBus_INCLUDE_DIRS}
|
${Qt5DBus_INCLUDE_DIRS}
|
||||||
${Qt5Sql_INCLUDE_DIRS}
|
${Qt5Sql_INCLUDE_DIRS}
|
||||||
|
${Qt5Positioning_INCLUDE_DIRS}
|
||||||
|
${Qt5SerialPort_INCLUDE_DIRS}
|
||||||
)
|
)
|
||||||
|
|
||||||
add_executable( FaultFinder
|
add_executable( FaultFinder
|
||||||
@@ -47,4 +49,6 @@ target_link_libraries( FaultFinder
|
|||||||
${Qt5Network_LIBRARIES}
|
${Qt5Network_LIBRARIES}
|
||||||
${Qt5DBus_LIBRARIES}
|
${Qt5DBus_LIBRARIES}
|
||||||
${Qt5Sql_LIBRARIES}
|
${Qt5Sql_LIBRARIES}
|
||||||
|
${Qt5Positioning_LIBRARIES}
|
||||||
|
${Qt5SerialPort_LIBRARIES}
|
||||||
)
|
)
|
||||||
@@ -1,33 +1,78 @@
|
|||||||
#include "FaultManager.hpp"
|
#include "FaultManager.hpp"
|
||||||
|
|
||||||
FaultManager::FaultManager(QObject *parent) : QObject(parent)
|
FaultManager::FaultManager(QObject *parent) : QObject(parent)
|
||||||
|
{
|
||||||
|
bool res;
|
||||||
|
|
||||||
|
res = OpenDatabase();
|
||||||
|
|
||||||
|
if (!res) {
|
||||||
|
qCritical() << "Failed to open database connection.";
|
||||||
|
exit(15);
|
||||||
|
}
|
||||||
|
|
||||||
|
res = OpenSerial();
|
||||||
|
|
||||||
|
if (!res) {
|
||||||
|
qCritical() << "Failure to open GPS serial device.";
|
||||||
|
exit(16);
|
||||||
|
}
|
||||||
|
|
||||||
|
StartGPS();
|
||||||
|
}
|
||||||
|
|
||||||
|
FaultManager::~FaultManager()
|
||||||
|
{
|
||||||
|
db.close();
|
||||||
|
gps->stopUpdates();
|
||||||
|
serial->close();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool FaultManager::OpenDatabase()
|
||||||
{
|
{
|
||||||
db = QSqlDatabase::addDatabase("QMYSQL");
|
db = QSqlDatabase::addDatabase("QMYSQL");
|
||||||
db.setHostName("localhost");
|
db.setHostName("localhost");
|
||||||
db.setDatabaseName("FaultDatabase");
|
db.setDatabaseName("FaultDatabase");
|
||||||
db.setUserName("user");
|
db.setUserName("user");
|
||||||
db.setPassword("faultfinder");
|
db.setPassword("faultfinder");
|
||||||
bool success = db.open();
|
return db.open();
|
||||||
|
|
||||||
if (!success) {
|
|
||||||
qCritical() << "Failed to open database connection.";
|
|
||||||
exit(15);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
FaultManager::~FaultManager()
|
bool FaultManager::OpenSerial()
|
||||||
{
|
{
|
||||||
db.close();
|
serial = new QSerialPort();
|
||||||
|
serial->setPortName("ttyUSB0");
|
||||||
|
serial->setBaudRate(QSerialPort::Baud4800);
|
||||||
|
serial->setDataBits(QSerialPort::Data8);
|
||||||
|
serial->setParity(QSerialPort::NoParity);
|
||||||
|
serial->setStopBits(QSerialPort::OneStop);
|
||||||
|
serial->setFlowControl(QSerialPort::NoFlowControl);
|
||||||
|
return serial->open(QIODevice::ReadOnly);
|
||||||
|
}
|
||||||
|
|
||||||
|
void FaultManager::StartGPS()
|
||||||
|
{
|
||||||
|
gps = new QNmeaPositionInfoSource(QNmeaPositionInfoSource::RealTimeMode);
|
||||||
|
gps->setDevice((QIODevice *)serial);
|
||||||
|
gps->startUpdates();
|
||||||
}
|
}
|
||||||
|
|
||||||
void FaultManager::SaveImage()
|
void FaultManager::SaveImage()
|
||||||
{
|
{
|
||||||
QSqlQuery query;
|
QSqlQuery query;
|
||||||
|
|
||||||
// Get GPS Location
|
// Get GPS Location
|
||||||
|
QGeoPositionInfo position = gps->lastKnownPosition(true);
|
||||||
|
QGeoCoordinate coorinate = position.coordinate();
|
||||||
|
|
||||||
|
qInfo() << coorinate.isValid();
|
||||||
|
qInfo() << coorinate.longitude();
|
||||||
|
qInfo() << coorinate.latitude();
|
||||||
|
qInfo() << coorinate.altitude();
|
||||||
|
|
||||||
// Save Image to Filesystem
|
// Save Image to Filesystem
|
||||||
//QSaveFile
|
//QSaveFile
|
||||||
|
|
||||||
// Save to Database
|
// Save to Database
|
||||||
query.exec("INSERT");
|
//query.exec("INSERT");
|
||||||
}
|
}
|
||||||
@@ -6,6 +6,8 @@
|
|||||||
#include <QSqlDatabase>
|
#include <QSqlDatabase>
|
||||||
#include <QSqlQuery>
|
#include <QSqlQuery>
|
||||||
#include <QSaveFile>
|
#include <QSaveFile>
|
||||||
|
#include <QNmeaPositionInfoSource>
|
||||||
|
#include <QSerialPort>
|
||||||
|
|
||||||
class FaultManager: public QObject
|
class FaultManager: public QObject
|
||||||
{
|
{
|
||||||
@@ -17,8 +19,13 @@ public:
|
|||||||
void SaveImage();
|
void SaveImage();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
bool OpenDatabase();
|
||||||
|
bool OpenSerial();
|
||||||
|
void StartGPS();
|
||||||
QSqlDatabase db;
|
QSqlDatabase db;
|
||||||
|
QSerialPort *serial;
|
||||||
|
QNmeaPositionInfoSource *gps;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
Reference in New Issue
Block a user