X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=Client%2Fxmlwriter.cpp;h=26eed66bb7c756a8e400e943c14588ab5809306d;hb=92119e4b7587534a8de1e117b1fea4c016f3fcd7;hp=22dc8d18d47bacaf1ca90d0914121b4340056223;hpb=d1703a2e6197257c128add5efc03610074421598;p=speedfreak diff --git a/Client/xmlwriter.cpp b/Client/xmlwriter.cpp index 22dc8d1..26eed66 100644 --- a/Client/xmlwriter.cpp +++ b/Client/xmlwriter.cpp @@ -1,13 +1,11 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +/* + * Xml writer + * + * @author Tiina Kivilinna-Korhola + * @copyright (c) 2010 Speed Freak team + * license http://opensource.org/licenses/gpl-license.php GNU Public License + */ + #include "xmlwriter.h" @@ -18,7 +16,7 @@ */ XmlWriter::XmlWriter() { - + tmpvalue = 110; } /** @@ -28,6 +26,7 @@ XmlWriter::~XmlWriter() { } + /** *@brief Writes registration items into tags. *@param netbuf a buffer where xmlstreamwriter writes to. @@ -36,8 +35,9 @@ XmlWriter::~XmlWriter() *@param email. */ void XmlWriter::writeRegistering(QBuffer *netbuf, QString usr, QString psswd, QString email) -//void XmlWriter::writeRegistering(QIODevice *netbuf, QString usr, QString psswd, QString email) { + qDebug() << "_writeRegistering"; + xmlwriter.setDevice(netbuf); xmlwriter.writeStartDocument(); @@ -66,16 +66,82 @@ void XmlWriter::writeRegistering(QBuffer *netbuf, QString usr, QString psswd, QS *@todo Replace test value to finally used variables. */ void XmlWriter::writeResult(QBuffer *netbuf) -//void XmlWriter::writeResult(QIODevice *netbuf) { + qDebug() << "_writeResult"; + xmlwriter.setDevice(netbuf); xmlwriter.writeStartDocument(); xmlwriter.writeStartElement("result"); - xmlwriter.writeAttribute("value", QString::number(14)); - xmlwriter.writeAttribute("unit", "seconds"); - xmlwriter.writeAttribute("date", QDateTime::currentDateTime().toString()); + tmpvalue++; + qDebug() << tmpvalue; + xmlwriter.writeAttribute("value", QString::number(tmpvalue)); + xmlwriter.writeEndElement(); + xmlwriter.writeEndDocument(); +} + + +/** + *@brief Write track to server. + *@param ptrTable points to GPSData::gpsDataArray[100][4]. + *@param counter is GPSData::roundCounter. + *@todo Decide suitable attributes. + */ +void XmlWriter::writeGpsTrack(QBuffer *netbuf, double *ptrTable, int counter) +{ + qDebug() << "_writeGpsTrack"; + + double *ptrValue; + ptrValue = ptrTable; + double tmp = 0; + + xmlwriter.setDevice(netbuf); + + xmlwriter.writeStartDocument(); + + xmlwriter.writeStartElement("gpx"); + xmlwriter.writeAttribute("someattribute", "abc"); + xmlwriter.writeAttribute("otherattribute", "cde"); + + 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.writeStartElement("trk"); + xmlwriter.writeStartElement("name"); + xmlwriter.writeCharacters("Example Track"); xmlwriter.writeEndElement(); + xmlwriter.writeStartElement("trkseg"); + for(int i = 0; i < counter; i++) + { + xmlwriter.writeStartElement("trkpt"); + tmp = *ptrValue; + ptrValue++; + xmlwriter.writeAttribute("lat", QString::number(tmp)); //gpspoints[i][0] + tmp = *ptrValue; + ptrValue++; + xmlwriter.writeAttribute("lon", QString::number(tmp)); //gpspoints[i][1] + xmlwriter.writeStartElement("ele"); + tmp = *ptrValue; + ptrValue++; + xmlwriter.writeCharacters(QString::number(tmp)); //gpspoints[i][2] + xmlwriter.writeEndElement(); + xmlwriter.writeStartElement("speed"); + tmp = *ptrValue; + ptrValue++; + xmlwriter.writeCharacters(QString::number(tmp)); //gpspoints[i][3] + xmlwriter.writeEndElement(); + xmlwriter.writeEndElement(); //trkpt + } + xmlwriter.writeEndElement(); //trkseg + xmlwriter.writeEndElement(); //trk + xmlwriter.writeEndElement(); //gpx xmlwriter.writeEndDocument(); } @@ -88,9 +154,10 @@ void XmlWriter::writeResult(QBuffer *netbuf) *@param email. *@todo Replace hardcoced filename to finally GUI entry widget. */ -void XmlWriter::writeXml(QString usr, QString psswd, QString email) +//void XmlWriter::writeXml(QString usr, QString psswd, QString email) +void XmlWriter::writeXml() { - QString filename = "xmlfile.xml"; + QString filename = "xmlcategoryfile.xml"; QFile file(filename); if (!file.open(QFile::WriteOnly | QFile::Text)) { qDebug() << "_xmlWrite fail"; @@ -115,7 +182,8 @@ bool XmlWriter::writeXmlFile(QIODevice *device) { xmlwriter.setDevice(device); xmlwriter.writeStartDocument(); - writeItems(); + //writeItems(); + serverWritesXml(); xmlwriter.writeEndDocument(); return true; @@ -140,23 +208,22 @@ void XmlWriter::writeItems() /** *@brief A temp function during development, used to create a "serverfile". */ -void XmlWriter::serverWritesTop() +void XmlWriter::serverWritesXml() { - int i = 0; - int n = 5; + //Write categories + xmlwriter.writeStartElement("categories"); - /* Server sends to client */ - 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(); - } + 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(); }