4 * @author Tiina Kivilinna-Korhola
5 * @copyright (c) 2010 Speed Freak team
6 * license http://opensource.org/licenses/gpl-license.php GNU Public License
14 *@brief Constructor, connects object to GUI
15 *@param Pointer to carmainwindow, which is temporarily used during development
17 XmlWriter::XmlWriter()
25 XmlWriter::~XmlWriter()
31 *@brief Writes registration items into tags.
32 *@param netbuf a buffer where xmlstreamwriter writes to.
33 *@param usr for user name.
34 *@param psswd for password.
37 void XmlWriter::writeRegistering(QBuffer *netbuf, QString usr, QString psswd, QString email)
39 qDebug() << "_writeRegistering";
41 xmlwriter.setDevice(netbuf);
43 xmlwriter.writeStartDocument();
44 xmlwriter.writeStartElement("user");
46 xmlwriter.writeStartElement("login");
47 xmlwriter.writeCharacters(usr);
48 xmlwriter.writeEndElement();
50 xmlwriter.writeStartElement("password");
51 xmlwriter.writeCharacters(psswd);
52 xmlwriter.writeEndElement();
54 xmlwriter.writeStartElement("email");
55 xmlwriter.writeCharacters(email);
56 xmlwriter.writeEndElement();
58 xmlwriter.writeEndElement();
59 xmlwriter.writeEndDocument();
64 *@brief Writes Speed Freek results items as tags and contents into a buffer.
65 *@todo Consider looping when writing many values.
66 *@todo Replace test value to finally used variables.
68 void XmlWriter::writeResult(QBuffer *netbuf, double result)
70 qDebug() << "_writeResult";
72 xmlwriter.setDevice(netbuf);
74 xmlwriter.writeStartDocument();
75 xmlwriter.writeStartElement("result");
76 xmlwriter.writeAttribute("value", QString::number(result));
77 xmlwriter.writeEndElement();
78 xmlwriter.writeEndDocument();
83 *@brief Write track to server.
84 *@param netbuf where to write.
85 *@param counter is GPSData::roundCounter.
86 *@todo Decide suitable attributes.
88 void XmlWriter::writeGpsTrack(QBuffer *netbuf, int counter, int start, int stop, int lat, int lon, int alt, int speed, int time)
90 qDebug() << "_writeGpsTrack";
93 //ptrValue = ptrTable;
96 xmlwriter.setDevice(netbuf);
98 xmlwriter.writeStartDocument();
100 xmlwriter.writeStartElement("Route");
101 xmlwriter.writeAttribute("starttime", QDateTime::currentDateTime().toString());
102 xmlwriter.writeAttribute("endtime", QDateTime::currentDateTime().toString());
103 xmlwriter.writeAttribute("points", QDateTime::currentDateTime().toString());
104 for(int i = 0; i < counter; i++)
106 xmlwriter.writeStartElement("point");
107 xmlwriter.writeAttribute("lat", QString::number(lat));
108 xmlwriter.writeAttribute("lon", QString::number(lon));
109 xmlwriter.writeAttribute("alt", QString::number(alt));
110 xmlwriter.writeAttribute("speed", QString::number(speed));
111 xmlwriter.writeAttribute("time", QString::number(time));
112 xmlwriter.writeEndElement();
114 xmlwriter.writeEndElement();
115 xmlwriter.writeEndDocument();
120 *@brief Opens and closes a file, when xml information is written into a file,
121 *and passes file to writeXmlFile()
122 *@param usr for user name.
123 *@param psswd for password.
125 *@todo Replace hardcoced filename to finally GUI entry widget.
127 //void XmlWriter::writeXml(QString usr, QString psswd, QString email)
128 void XmlWriter::writeXml()
130 QString filename = "xmlcategoryfile.xml";
131 QFile file(filename);
132 if (!file.open(QFile::WriteOnly | QFile::Text)) {
133 qDebug() << "_xmlWrite fail";
138 //writeRegistering(&file, usr, psswd, email);
139 //writeResult(&file);
144 *@brief Writes general xml information.
145 *Calls other functions to insert login and result information.
146 *@param device: target of writing, here filename.
147 *@param usr for user name.
148 *@param psswd for password.
151 bool XmlWriter::writeXmlFile(QIODevice *device)
153 xmlwriter.setDevice(device);
154 xmlwriter.writeStartDocument();
156 xmlwriter.writeEndDocument();
163 *@brief Writes Speed Freek results items as tags and contents to earlier defined target.
164 *@todo Consider looping when writing many values.
165 *@todo Replace testing values to finally used variabls.
167 void XmlWriter::writeItems()
169 xmlwriter.writeStartElement("result");
170 xmlwriter.writeAttribute("value", QString::number(14)); //tmp testing value
171 xmlwriter.writeAttribute("unit", "seconds");
172 xmlwriter.writeAttribute("date", QDateTime::currentDateTime().toString());
173 xmlwriter.writeEndElement();