X-Git-Url: http://git.maemo.org/git/?p=speedfreak;a=blobdiff_plain;f=Client%2Fxmlwriter.cpp;h=7fca219a79dd5bbc7decca0ee0280cfd87940f9b;hp=51eeb465cd0100ac8002452a110ca06284c73b09;hb=1e6de127ae8f82b42b9745732877eb94a940efbf;hpb=c68f0fbb1f1163e51079e6829aa640ddbc81ac15 diff --git a/Client/xmlwriter.cpp b/Client/xmlwriter.cpp index 51eeb46..7fca219 100644 --- a/Client/xmlwriter.cpp +++ b/Client/xmlwriter.cpp @@ -16,8 +16,7 @@ */ XmlWriter::XmlWriter() { - tmpvalue = 110; - trackInd = 0; + } /** @@ -66,7 +65,7 @@ void XmlWriter::writeRegistering(QBuffer *netbuf, QString usr, QString psswd, QS *@todo Consider looping when writing many values. *@todo Replace test value to finally used variables. */ -void XmlWriter::writeResult(QBuffer *netbuf) +void XmlWriter::writeResult(QBuffer *netbuf, double result) { qDebug() << "_writeResult"; @@ -74,9 +73,7 @@ void XmlWriter::writeResult(QBuffer *netbuf) xmlwriter.writeStartDocument(); xmlwriter.writeStartElement("result"); - tmpvalue++; - qDebug() << tmpvalue; - xmlwriter.writeAttribute("value", QString::number(tmpvalue)); + xmlwriter.writeAttribute("value", QString::number(result)); xmlwriter.writeEndElement(); xmlwriter.writeEndDocument(); } @@ -84,58 +81,38 @@ void XmlWriter::writeResult(QBuffer *netbuf) /** *@brief Write track to server. - *@param Starting index of gps results table. - *@param Ending index of gps results table. - *@todo Connect to real values. - *@todo Decide suitable parameters. + *@param netbuf where to write. + *@param counter is GPSData::roundCounter. + *@todo Decide suitable attributes. */ -void XmlWriter::writeGpsTrack(int startInd, int stopInd) +void XmlWriter::writeGpsTrack(QBuffer *netbuf, int counter, int start, int stop, int lat, int lon, int alt, int speed, int time) { qDebug() << "_writeGpsTrack"; - analyzeGpsData(); - int i = 0; + double *ptrValue; + //ptrValue = ptrTable; + double tmp = 0; - xmlwriter.writeStartElement("gpx"); - xmlwriter.writeAttribute("someattribute", "abc"); - xmlwriter.writeAttribute("otherattribute", "cde"); + xmlwriter.setDevice(netbuf); - xmlwriter.writeStartElement("metadata"); - xmlwriter.writeStartElement("link"); - xmlwriter.writeAttribute("href", "http://api.speedfreak-app.com/api/track"); - xmlwriter.writeCharacters("Speed Freak"); - xmlwriter.writeEndElement(); - xmlwriter.writeStartElement("time"); - xmlwriter.writeCharacters(QDateTime::currentDateTime().toString()); - xmlwriter.writeEndElement(); - xmlwriter.writeEndElement(); //metadata + xmlwriter.writeStartDocument(); - xmlwriter.writeStartElement("trk"); - xmlwriter.writeStartElement("name"); - xmlwriter.writeCharacters("Example Track"); - xmlwriter.writeEndElement(); - xmlwriter.writeStartElement("trkseg"); - for(i = startInd; i < (stopInd - startInd); i++) { - xmlwriter.writeStartElement("trkpt"); - xmlwriter.writeAttribute("lat", QString::number(trackTable[i].latitude)); - xmlwriter.writeAttribute("lon", QString::number(trackTable[i].longitude)); - xmlwriter.writeStartElement("ele"); - xmlwriter.writeCharacters(QString::number(trackTable[i].altitude)); - xmlwriter.writeEndElement(); - xmlwriter.writeStartElement("time"); - xmlwriter.writeCharacters(QString::number(trackTable[i].time)); - xmlwriter.writeEndElement(); - xmlwriter.writeStartElement("speed"); - xmlwriter.writeCharacters(QString::number(trackTable[i].speed)); - xmlwriter.writeEndElement(); - xmlwriter.writeStartElement("track"); - xmlwriter.writeCharacters(QString::number(trackTable[i].track)); + xmlwriter.writeStartElement("Route"); + xmlwriter.writeAttribute("starttime", QDateTime::currentDateTime().toString()); + xmlwriter.writeAttribute("endtime", QDateTime::currentDateTime().toString()); + xmlwriter.writeAttribute("points", QDateTime::currentDateTime().toString()); + for(int i = 0; i < counter; i++) + { + xmlwriter.writeStartElement("point"); + xmlwriter.writeAttribute("lat", QString::number(lat)); + xmlwriter.writeAttribute("lon", QString::number(lon)); + xmlwriter.writeAttribute("alt", QString::number(alt)); + xmlwriter.writeAttribute("speed", QString::number(speed)); + xmlwriter.writeAttribute("time", QString::number(time)); xmlwriter.writeEndElement(); - xmlwriter.writeEndElement(); //trkpt } - xmlwriter.writeEndElement(); //trkseg - xmlwriter.writeEndElement(); //trk - xmlwriter.writeEndElement(); //gpx + xmlwriter.writeEndElement(); + xmlwriter.writeEndDocument(); } @@ -175,9 +152,7 @@ bool XmlWriter::writeXmlFile(QIODevice *device) { xmlwriter.setDevice(device); xmlwriter.writeStartDocument(); - //writeItems(); - //serverWritesXml(); - writeGpsTrack(0, 16); + writeItems(); xmlwriter.writeEndDocument(); return true; @@ -198,130 +173,3 @@ void XmlWriter::writeItems() xmlwriter.writeEndElement(); } - -/** - *@brief A temp function during development, used to create a "serverfile". - */ -void XmlWriter::serverWritesXml() -{ - /* Server sends to client */ - /* - int i = 0; - int n = 5; - - //Write top 10 Results - xmlwriter.writeStartElement("results"); - xmlwriter.writeAttribute("category", "acceleration-0-40"); - xmlwriter.writeAttribute("unit", "seconds"); - xmlwriter.writeAttribute("description", "Acceleration from 0 to 100 km/h"); - - for (i = 0; i < n; i++) { - xmlwriter.writeStartElement("result"); - xmlwriter.writeAttribute("position", QString::number(i)); - xmlwriter.writeAttribute("user", "test123"); - xmlwriter.writeAttribute("date", QDateTime::currentDateTime().toString()); - xmlwriter.writeAttribute("value", QString::number(i+i+1)); - xmlwriter.writeEndElement(); - } - */ - //Write categories - xmlwriter.writeStartElement("categories"); - - xmlwriter.writeStartElement("category"); - xmlwriter.writeCharacters("acceleration-0-10"); - xmlwriter.writeEndElement(); - - xmlwriter.writeStartElement("category"); - xmlwriter.writeCharacters("acceleration-0-40"); - xmlwriter.writeEndElement(); - - xmlwriter.writeStartElement("category"); - xmlwriter.writeCharacters("acceleration-0-100"); - xmlwriter.writeEndElement(); - - xmlwriter.writeEndElement(); -} - - -/** - *@brief A temp function during development, used to create data for drawing route and for server. - */ -void XmlWriter::analyzeGpsData() -{ - qDebug() << "_analyzeGpsData"; - - double startTime; - int tableSize = 0; - - qDebug() << "sizeof(analyzeTable)" << sizeof(analyzeTable); - tableSize = 16; - - for(int i = 1; i < tableSize; i++) - { - //example of one feature whose consequent values are compared and saved if they differentiate too much - if(analyzeTable[i].speed < (analyzeTable[i-1].speed - 1) || - analyzeTable[i].speed > (analyzeTable[i-1].speed + 1) ) - { - trackTable[trackInd] = analyzeTable[i]; - trackInd++; - qDebug() << "trackTable[trackInd].speed" << trackTable[trackInd].speed; - } - } -} - -void XmlWriter::initPointTable(gpsPoint *table, int count, double add1, int add2, int add3) -{ - qDebug() << "_initPointTable"; - - int i = 1; - int j = 0; - - table[0].latitude = 67.00; - table[0].longitude = 27.50; - table[0].altitude = 7.00; - table[0].speed = 0; - table[0].time = 0; - - for(j = 0; j < count; j++) - { - table[i].latitude = table[i-1].latitude + add1; - //table[i].longitude = table[i-1].longitude + add1; - table[i].altitude = table[i-1].altitude + add1; - table[i].speed = table[i-1].speed + add2; - table[i].track = table[i-1].track + 1; - table[i].time = table[i-1].time + add3; - i++; - } - for(j = 0; j < count; j++) - { - //table[i].latitude = table[i-1].latitude + add1; - table[i].longitude = table[i-1].longitude + add1; - table[i].altitude = table[i-1].altitude -add1; - table[i].speed = table[i-1].speed + add2; - table[i].track = table[i-1].track + 1; - table[i].time = table[i-1].time + add3; - i++; - } - for(j = 0; j < count; j++) - { - table[i].latitude = table[i-1].latitude - add1; - //table[i].longitude = table[i-1].longitude + add1; - table[i].altitude = table[i-1].altitude + add1; - table[i].speed = table[i-1].speed - add2; - table[i].track = table[i-1].track - 1; - table[i].time = table[i-1].time + add3; - i++; - } - for(j = 0; j < count; j++) - { - //table[i].latitude = table[i-1].latitude + add1; - table[i].longitude = table[i-1].longitude - add1; - table[i].altitude = table[i-1].altitude - add1; - table[i].speed = table[i-1].speed - add2; - table[i].track = table[i-1].track - 1; - table[i].time = table[i-1].time + add3; - i++; - } -} - -