4 * @author Tiina Kivilinna-Korhola
5 * @author Toni Jussila <toni.jussila@fudeco.com>
6 * @copyright (c) 2010 Speed Freak team
7 * license http://opensource.org/licenses/gpl-license.php GNU Public License
10 #include "xmlwriter.h"
13 *@brief Constructor, connects object to GUI
14 *@param Pointer to carmainwindow, which is temporarily used during development
16 XmlWriter::XmlWriter()
24 XmlWriter::~XmlWriter()
30 *@brief Writes registration items into tags.
31 *@param netbuf a buffer where xmlstreamwriter writes to.
32 *@param usr for user name.
33 *@param psswd for password.
36 void XmlWriter::writeRegistering(QBuffer *netbuf, QString usr, QString psswd, QString email)
38 qDebug() << "_writeRegistering";
40 xmlwriter.setDevice(netbuf);
42 xmlwriter.writeStartDocument();
43 xmlwriter.writeStartElement("user");
45 xmlwriter.writeStartElement("login");
46 xmlwriter.writeCharacters(usr);
47 xmlwriter.writeEndElement();
49 xmlwriter.writeStartElement("password");
50 xmlwriter.writeCharacters(psswd);
51 xmlwriter.writeEndElement();
53 xmlwriter.writeStartElement("email");
54 xmlwriter.writeCharacters(email);
55 xmlwriter.writeEndElement();
57 xmlwriter.writeEndElement();
58 xmlwriter.writeEndDocument();
62 *@brief Writes Speed Freek results items as tags and contents into a buffer.
63 *@todo Consider looping when writing many values.
64 *@todo Replace test value to finally used variables.
66 void XmlWriter::writeResult(QBuffer *netbuf, double result)
68 qDebug() << "_writeResult";
70 xmlwriter.setDevice(netbuf);
72 xmlwriter.writeStartDocument();
73 xmlwriter.writeStartElement("result");
74 xmlwriter.writeAttribute("value", QString::number(result));
75 xmlwriter.writeEndElement();
76 xmlwriter.writeEndDocument();
80 *@brief Write track to server.
81 *@param netbuf where to write.
82 *@param counter is GPSData::roundCounter.
83 *@todo Decide suitable attributes.
85 void XmlWriter::writeGpsTrack(QBuffer *netbuf, int counter, int start, int stop, int lat, int lon, int alt, int speed, int time)
87 qDebug() << "_writeGpsTrack";
90 //ptrValue = ptrTable;
93 xmlwriter.setDevice(netbuf);
95 xmlwriter.writeStartDocument();
97 xmlwriter.writeStartElement("Route");
98 xmlwriter.writeAttribute("starttime", QDateTime::currentDateTime().toString());
99 xmlwriter.writeAttribute("endtime", QDateTime::currentDateTime().toString());
100 xmlwriter.writeAttribute("points", QDateTime::currentDateTime().toString());
101 for(int i = 0; i < counter; i++)
103 xmlwriter.writeStartElement("point");
104 xmlwriter.writeAttribute("lat", QString::number(lat));
105 xmlwriter.writeAttribute("lon", QString::number(lon));
106 xmlwriter.writeAttribute("alt", QString::number(alt));
107 xmlwriter.writeAttribute("speed", QString::number(speed));
108 xmlwriter.writeAttribute("time", QString::number(time));
109 xmlwriter.writeEndElement();
111 xmlwriter.writeEndElement();
112 xmlwriter.writeEndDocument();
116 *@brief Opens and closes a file, when xml information is written into a file,
117 *and passes file to writeXmlFile()
118 *@param usr for user name.
119 *@param psswd for password.
121 *@todo Replace hardcoced filename to finally GUI entry widget.
123 //void XmlWriter::writeXml(QString usr, QString psswd, QString email)
124 void XmlWriter::writeXml()
126 QString filename = "xmlcategoryfile.xml";
127 QFile file(filename);
128 if (!file.open(QFile::WriteOnly | QFile::Text)) {
129 qDebug() << "_xmlWrite fail";
134 //writeRegistering(&file, usr, psswd, email);
135 //writeResult(&file);
140 *@brief Writes general xml information.
141 *Calls other functions to insert login and result information.
142 *@param device: target of writing, here filename.
143 *@param usr for user name.
144 *@param psswd for password.
147 bool XmlWriter::writeXmlFile(QIODevice *device)
149 xmlwriter.setDevice(device);
150 xmlwriter.writeStartDocument();
152 xmlwriter.writeEndDocument();
158 *@brief Writes Speed Freek results items as tags and contents to earlier defined target.
159 *@todo Consider looping when writing many values.
160 *@todo Replace testing values to finally used variabls.
162 void XmlWriter::writeItems()
164 xmlwriter.writeStartElement("result");
165 xmlwriter.writeAttribute("value", QString::number(14)); //tmp testing value
166 xmlwriter.writeAttribute("unit", "seconds");
167 xmlwriter.writeAttribute("date", QDateTime::currentDateTime().toString());
168 xmlwriter.writeEndElement();
173 * @param QIODevice device: target of writing, here filename.
174 * @param QString user name
175 * @param QString manufacturer
176 * @param QString type
177 * @param QString model
178 * @param QString description
179 * @param QString picture: filename.
181 void XmlWriter::writeProfileXmlFile(QIODevice *device, QString userName, QString manufacturer,
182 QString type, QString model, QString description, QString picture)
184 QString pictureStatus;
186 pictureStatus = "yes";
188 pictureStatus = "no";
191 <?xml version="1.0" encoding="UTF-8"?>
192 <profile login="test827" picture="yes">
193 <manufacturer>toyota</manufacturer>
196 <description>Fuel efficient, GPS system, only one owner</description>
199 xmlwriter.setDevice(device);
200 xmlwriter.writeStartDocument();
201 xmlwriter.writeStartElement("profile");
202 xmlwriter.writeAttribute("login", userName);
203 xmlwriter.writeAttribute("picture", pictureStatus);
204 xmlwriter.writeStartElement("manufacturer");
205 xmlwriter.writeCharacters(manufacturer);
206 xmlwriter.writeEndElement();
207 xmlwriter.writeStartElement("type");
208 xmlwriter.writeCharacters(type);
209 xmlwriter.writeEndElement();
210 xmlwriter.writeStartElement("model");
211 xmlwriter.writeCharacters(model);
212 xmlwriter.writeEndElement();
213 xmlwriter.writeStartElement("description");
214 xmlwriter.writeCharacters(description);
215 xmlwriter.writeEndElement();
216 xmlwriter.writeStartElement("picture");
217 xmlwriter.writeCharacters(picture);
218 xmlwriter.writeEndElement();
219 xmlwriter.writeEndElement();
220 xmlwriter.writeEndDocument();
225 * @param QIODevice device: target of writing, here netbuf.
226 * @param QString user name
227 * @param QString manufacturer
228 * @param QString type
229 * @param QString model
230 * @param QString description
231 * @param QString picture: filename.
233 void XmlWriter::writeProfileXmlFile(QBuffer *netbuf, QString userName, QString manufacturer,
234 QString type, QString model, QString description, QString picture)
236 QString pictureStatus;
238 pictureStatus = "yes";
240 pictureStatus = "no";
243 <?xml version="1.0" encoding="UTF-8"?>
244 <profile login="test827" picture="yes">
245 <manufacturer>toyota</manufacturer>
248 <description>Fuel efficient, GPS system, only one owner</description>
251 xmlwriter.setDevice(netbuf);
252 xmlwriter.writeStartDocument();
253 xmlwriter.writeStartElement("profile");
254 xmlwriter.writeAttribute("login", userName);
255 xmlwriter.writeAttribute("picture", pictureStatus);
256 xmlwriter.writeStartElement("manufacturer");
257 xmlwriter.writeCharacters(manufacturer);
258 xmlwriter.writeEndElement();
259 xmlwriter.writeStartElement("type");
260 xmlwriter.writeCharacters(type);
261 xmlwriter.writeEndElement();
262 xmlwriter.writeStartElement("model");
263 xmlwriter.writeCharacters(model);
264 xmlwriter.writeEndElement();
265 xmlwriter.writeStartElement("description");
266 xmlwriter.writeCharacters(description);
267 xmlwriter.writeEndElement();
268 xmlwriter.writeStartElement("picture");
269 xmlwriter.writeCharacters(picture);
270 xmlwriter.writeEndElement();
271 xmlwriter.writeEndElement();
272 xmlwriter.writeEndDocument();