X-Git-Url: http://git.maemo.org/git/?p=speedfreak;a=blobdiff_plain;f=Client%2Fxmlwriter.cpp;h=7fca219a79dd5bbc7decca0ee0280cfd87940f9b;hp=f7b02cd8652e93b9183bf3ea85ebf9736a0b9188;hb=efc4980fa8468a91aceaa1738dcb365bf59770ad;hpb=eae981fe277e602eebf11259670f3c164d825418 diff --git a/Client/xmlwriter.cpp b/Client/xmlwriter.cpp index f7b02cd..7fca219 100644 --- a/Client/xmlwriter.cpp +++ b/Client/xmlwriter.cpp @@ -1,133 +1,175 @@ -#include -#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" -/*! @brief Constructor, connects object to GUI - */ -XmlWriter::XmlWriter(Ui_MainWindow* myMainWindow) + +/** + *@brief Constructor, connects object to GUI + *@param Pointer to carmainwindow, which is temporarily used during development + */ +XmlWriter::XmlWriter() { - ui = myMainWindow; -} +} -/*! @brief Destructor +/** + *@brief Destructor */ XmlWriter::~XmlWriter() { } -/*! @brief Opens and closes a file, when xml information is written into a file, - * and passes file to writeXmlFile() - * @note Partly harcoded and commented for git. - * @todo Replace hardcoced filename and GUI elements to finally used widgets. +/** + *@brief Writes registration items into tags. + *@param netbuf a buffer where xmlstreamwriter writes to. + *@param usr for user name. + *@param psswd for password. + *@param email. */ -void XmlWriter::xmlWrite() +void XmlWriter::writeRegistering(QBuffer *netbuf, QString usr, QString psswd, QString email) { - //QString filename = ui->lineEditFile->text(); - QString filename = "xmlfile.xml"; + qDebug() << "_writeRegistering"; + + xmlwriter.setDevice(netbuf); + + xmlwriter.writeStartDocument(); + xmlwriter.writeStartElement("user"); + + xmlwriter.writeStartElement("login"); + xmlwriter.writeCharacters(usr); + xmlwriter.writeEndElement(); + + xmlwriter.writeStartElement("password"); + xmlwriter.writeCharacters(psswd); + xmlwriter.writeEndElement(); + + xmlwriter.writeStartElement("email"); + xmlwriter.writeCharacters(email); + xmlwriter.writeEndElement(); + + xmlwriter.writeEndElement(); + xmlwriter.writeEndDocument(); +} + + +/** + *@brief Writes Speed Freek results items as tags and contents into a buffer. + *@todo Consider looping when writing many values. + *@todo Replace test value to finally used variables. + */ +void XmlWriter::writeResult(QBuffer *netbuf, double result) +{ + qDebug() << "_writeResult"; + + xmlwriter.setDevice(netbuf); + + xmlwriter.writeStartDocument(); + xmlwriter.writeStartElement("result"); + xmlwriter.writeAttribute("value", QString::number(result)); + xmlwriter.writeEndElement(); + xmlwriter.writeEndDocument(); +} + + +/** + *@brief Write track to server. + *@param netbuf where to write. + *@param counter is GPSData::roundCounter. + *@todo Decide suitable attributes. + */ +void XmlWriter::writeGpsTrack(QBuffer *netbuf, int counter, int start, int stop, int lat, int lon, int alt, int speed, int time) +{ + qDebug() << "_writeGpsTrack"; + + double *ptrValue; + //ptrValue = ptrTable; + double tmp = 0; + + xmlwriter.setDevice(netbuf); + + xmlwriter.writeStartDocument(); + + 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(); + xmlwriter.writeEndDocument(); +} + + +/** + *@brief Opens and closes a file, when xml information is written into a file, + *and passes file to writeXmlFile() + *@param usr for user name. + *@param psswd for password. + *@param email. + *@todo Replace hardcoced filename to finally GUI entry widget. + */ +//void XmlWriter::writeXml(QString usr, QString psswd, QString email) +void XmlWriter::writeXml() +{ + QString filename = "xmlcategoryfile.xml"; QFile file(filename); if (!file.open(QFile::WriteOnly | QFile::Text)) { - /*QMessageBox::warning(this->ui->centralWidget, tr("QXmlStream Bookmarks"), - tr("Cannot write file %1:\n%2.") - .arg(filename) - .arg(file.errorString())); - */ qDebug() << "_xmlWrite fail"; return; } writeXmlFile(&file); + //writeRegistering(&file, usr, psswd, email); + //writeResult(&file); file.close(); } -/*! @brief Writes general xml information. - * @todo Check API connection to QBuffer, when Speed Freek network client has been written. +/** + *@brief Writes general xml information. + *Calls other functions to insert login and result information. + *@param device: target of writing, here filename. + *@param usr for user name. + *@param psswd for password. + *@param email. */ bool XmlWriter::writeXmlFile(QIODevice *device) -//bool XmlWriter::writeXmlFile(QBuffer *device) { xmlwriter.setDevice(device); xmlwriter.writeStartDocument(); - xmlwriter.writeDTD(""); - xmlwriter.writeStartElement("xml"); - xmlwriter.writeAttribute("version", "1.0"); writeItems(); xmlwriter.writeEndDocument(); return true; } -/*! @brief Writes Speed Freek application specific items as tags and contents. - * @brief Results of speed/ direction/ acceleration into QMap are calculated elsewhere - * @todo Consider looping of writing QMap values. - * @todo Replace hardcoced names to finally used GUI elements. + +/** + *@brief Writes Speed Freek results items as tags and contents to earlier defined target. + *@todo Consider looping when writing many values. + *@todo Replace testing values to finally used variabls. */ void XmlWriter::writeItems() { - //xmlwriter.writeCharacters(ui->lineEditPlace->text()); - //Temporarily: - xmlwriter.writeStartElement("place"); - xmlwriter.writeCharacters("rallirata"); - xmlwriter.writeEndElement(); - - xmlwriter.writeStartElement("date"); - xmlwriter.writeCharacters(QDate::currentDate().toString()); - xmlwriter.writeEndElement(); - - xmlwriter.writeStartElement("time"); - xmlwriter.writeCharacters(QTime::currentTime().toString()); - xmlwriter.writeEndElement(); - - /* Or combined: - xmlwriter.writeStartElement("datetime"); - xmlwriter.writeCharacters(QDateTime::currentDateTime().toString()); - xmlwriter.writeEndElement(); */ - xmlwriter.writeStartElement("result"); - xmlwriter.writeStartElement("speed"); - xmlwriter.writeAttribute("value", QString::number(resultmap.value("speed"))); - xmlwriter.writeAttribute("unit", "m/s"); - xmlwriter.writeEndElement(); - xmlwriter.writeStartElement("distance"); - xmlwriter.writeAttribute("value", QString::number(resultmap.value("distance"))); - xmlwriter.writeAttribute("unit", "m"); + xmlwriter.writeAttribute("value", QString::number(14)); //tmp testing value + xmlwriter.writeAttribute("unit", "seconds"); + xmlwriter.writeAttribute("date", QDateTime::currentDateTime().toString()); xmlwriter.writeEndElement(); - xmlwriter.writeStartElement("acceleration"); - xmlwriter.writeAttribute("value", QString::number(resultmap.value("acceleration"))); - xmlwriter.writeAttribute("unit", "m/s2"); - xmlwriter.writeEndElement(); - xmlwriter.writeEndElement(); //result - //or: - //xmlwriter.writeTextElement("speed", QString::number(resultmap.value("speed")) + " m/s"); - //xmlwriter.writeTextElement("distance", QString::number(resultmap.value("distance")) + " m"); - //xmlwriter.writeTextElement("acceleration", QString::number(resultmap.value("acceleration")) + " m/s2"); -} - -/*! @brief Initializes QMap by zeroing values for a new measurement. - */ -void XmlWriter::initResultmap() -{ - resultmap["acceleration"] = 0; - resultmap["speed"] = 0; - resultmap["distance"] = 0; } -/*! @brief A temp function during development, used until real QMap available. - */ -void XmlWriter::fillResultmap() -{ - resultmap["acceleration"] = 9; - resultmap["speed"] = 48; - resultmap["distance"] = 600; -}