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)
70 qDebug() << "_writeResult";
72 xmlwriter.setDevice(netbuf);
74 xmlwriter.writeStartDocument();
75 xmlwriter.writeStartElement("result");
78 xmlwriter.writeAttribute("value", QString::number(tmpvalue));
79 xmlwriter.writeEndElement();
80 xmlwriter.writeEndDocument();
85 *@brief Write track to server.
86 *@param ptrTable points to GPSData::gpsDataArray[100][4].
87 *@param counter is GPSData::roundCounter.
88 *@todo Decide suitable attributes.
90 void XmlWriter::writeGpsTrack(QBuffer *netbuf, double *ptrTable, int counter)
92 qDebug() << "_writeGpsTrack";
98 xmlwriter.setDevice(netbuf);
100 xmlwriter.writeStartDocument();
102 xmlwriter.writeStartElement("gpx");
103 xmlwriter.writeAttribute("someattribute", "abc");
104 xmlwriter.writeAttribute("otherattribute", "cde");
106 xmlwriter.writeStartElement("metadata");
107 xmlwriter.writeStartElement("link");
108 xmlwriter.writeAttribute("href", "http://api.speedfreak-app.com/api/track");
109 xmlwriter.writeCharacters("Speed Freak");
110 xmlwriter.writeEndElement();
111 xmlwriter.writeStartElement("time");
112 xmlwriter.writeCharacters(QDateTime::currentDateTime().toString());
113 xmlwriter.writeEndElement();
114 xmlwriter.writeEndElement(); //metadata
116 xmlwriter.writeStartElement("trk");
117 xmlwriter.writeStartElement("name");
118 xmlwriter.writeCharacters("Example Track");
119 xmlwriter.writeEndElement();
120 xmlwriter.writeStartElement("trkseg");
121 for(int i = 0; i < counter; i++)
123 xmlwriter.writeStartElement("trkpt");
126 xmlwriter.writeAttribute("lat", QString::number(tmp)); //gpspoints[i][0]
129 xmlwriter.writeAttribute("lon", QString::number(tmp)); //gpspoints[i][1]
130 xmlwriter.writeStartElement("ele");
133 xmlwriter.writeCharacters(QString::number(tmp)); //gpspoints[i][2]
134 xmlwriter.writeEndElement();
135 xmlwriter.writeStartElement("speed");
138 xmlwriter.writeCharacters(QString::number(tmp)); //gpspoints[i][3]
139 xmlwriter.writeEndElement();
140 xmlwriter.writeEndElement(); //trkpt
142 xmlwriter.writeEndElement(); //trkseg
143 xmlwriter.writeEndElement(); //trk
144 xmlwriter.writeEndElement(); //gpx
145 xmlwriter.writeEndDocument();
150 *@brief Opens and closes a file, when xml information is written into a file,
151 *and passes file to writeXmlFile()
152 *@param usr for user name.
153 *@param psswd for password.
155 *@todo Replace hardcoced filename to finally GUI entry widget.
157 //void XmlWriter::writeXml(QString usr, QString psswd, QString email)
158 void XmlWriter::writeXml()
160 QString filename = "xmlcategoryfile.xml";
161 QFile file(filename);
162 if (!file.open(QFile::WriteOnly | QFile::Text)) {
163 qDebug() << "_xmlWrite fail";
168 //writeRegistering(&file, usr, psswd, email);
169 //writeResult(&file);
174 *@brief Writes general xml information.
175 *Calls other functions to insert login and result information.
176 *@param device: target of writing, here filename.
177 *@param usr for user name.
178 *@param psswd for password.
181 bool XmlWriter::writeXmlFile(QIODevice *device)
183 xmlwriter.setDevice(device);
184 xmlwriter.writeStartDocument();
187 xmlwriter.writeEndDocument();
194 *@brief Writes Speed Freek results items as tags and contents to earlier defined target.
195 *@todo Consider looping when writing many values.
196 *@todo Replace testing values to finally used variabls.
198 void XmlWriter::writeItems()
200 xmlwriter.writeStartElement("result");
201 xmlwriter.writeAttribute("value", QString::number(14)); //tmp testing value
202 xmlwriter.writeAttribute("unit", "seconds");
203 xmlwriter.writeAttribute("date", QDateTime::currentDateTime().toString());
204 xmlwriter.writeEndElement();
209 *@brief A temp function during development, used to create a "serverfile".
211 void XmlWriter::serverWritesXml()
214 xmlwriter.writeStartElement("categories");
216 xmlwriter.writeStartElement("category");
217 xmlwriter.writeCharacters("acceleration-0-10");
218 xmlwriter.writeEndElement();
220 xmlwriter.writeStartElement("category");
221 xmlwriter.writeCharacters("acceleration-0-40");
222 xmlwriter.writeEndElement();
224 xmlwriter.writeStartElement("category");
225 xmlwriter.writeCharacters("acceleration-0-100");
226 xmlwriter.writeEndElement();
228 xmlwriter.writeEndElement();