diff --git a/FaultManager.cpp b/FaultManager.cpp index dc155d1..7e571f0 100644 --- a/FaultManager.cpp +++ b/FaultManager.cpp @@ -57,7 +57,7 @@ void FaultManager::StartGPS() gps->startUpdates(); } -void FaultManager::SaveImage() +void FaultManager::SaveImage(QByteArray *imageBuffer) { QSqlQuery query; @@ -65,14 +65,17 @@ void FaultManager::SaveImage() 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 - //QSaveFile + query.prepare("INSERT INTO Faults (latitude, longitude, altitude, image) " + "VALUES (:latitude, :longitude, :altitude, :image)"); + if (coorinate.isValid()) + { + // This probably wont work without proper converstions + query.bindValue(":latitude", coorinate.latitude()); + query.bindValue(":longitude", coorinate.longitude()); + query.bindValue(":altitude", coorinate.altitude()); + } + query.bindValue(":image", *imageBuffer); // Save to Database - //query.exec("INSERT"); + query.exec(); } \ No newline at end of file diff --git a/FaultManager.hpp b/FaultManager.hpp index 94b505d..0b1317f 100644 --- a/FaultManager.hpp +++ b/FaultManager.hpp @@ -16,7 +16,7 @@ class FaultManager: public QObject public: FaultManager(QObject *parent); virtual ~FaultManager(); - void SaveImage(); + void SaveImage(QByteArray *imageBuffer); private: bool OpenDatabase(); diff --git a/ImageManager.cpp b/ImageManager.cpp index d1c3a34..ebdacee 100644 --- a/ImageManager.cpp +++ b/ImageManager.cpp @@ -76,8 +76,14 @@ void ImageManager::ProcessImage(int width, int height, uint8_t *imgPointer) if (area > fault_area) { - drawContours(viewfinder, contours, i, Scalar(ZERO, BITS8, ZERO), 2); - ((FaultFinder*)(parent()))->fault_mgr->SaveImage(); + // Fault Detected, Draw on Screen and Save to Database + drawContours(viewfinder, contours, i, Scalar(ZERO, BITS8, ZERO), 2); + + std::vector imageBuffer; + imencode("pgm", frame, imageBuffer); + QByteArray* imageBytes = new QByteArray(reinterpret_cast(imageBuffer.data()), imageBuffer.size()); + + ((FaultFinder*)(parent()))->fault_mgr->SaveImage(imageBytes); } }