1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-03-15 07:29:15 +01:00

OP-1244 Added support for flight start adjusted time stamps in exported files.

This commit is contained in:
m_thread 2014-02-26 12:55:32 +01:00
parent c5549a287b
commit 1d237aff96
2 changed files with 25 additions and 12 deletions

View File

@ -242,13 +242,19 @@ void FlightLogManager::exportToOPL(QString fileName)
void FlightLogManager::exportToCSV(QString fileName)
{
QFile csvFile(fileName);
if (csvFile.open(QFile::ReadWrite)) {
if (csvFile.open(QFile::WriteOnly | QFile::Truncate)) {
QTextStream csvStream(&csvFile);
quint32 baseTime = 0;
quint32 currentFlight = 0;
csvStream << "Flight" << '\t' << "Flight Time" << '\t' << "Entry" << '\t' << "Data" << '\n';
foreach (ExtendedDebugLogEntry *entry , m_logEntries) {
entry->toCSV(&csvStream);
if(m_adjustExportedTimestamps && entry->getFlight() != currentFlight) {
currentFlight = entry->getFlight();
baseTime = entry->getFlightTime();
}
entry->toCSV(&csvStream, baseTime);
}
csvStream.flush();
csvFile.flush();
csvFile.close();
}
@ -257,7 +263,7 @@ void FlightLogManager::exportToCSV(QString fileName)
void FlightLogManager::exportToXML(QString fileName)
{
QFile xmlFile(fileName);
if (xmlFile.open(QFile::ReadWrite)) {
if (xmlFile.open(QFile::WriteOnly | QFile::Truncate)) {
QXmlStreamWriter xmlWriter(&xmlFile);
xmlWriter.setAutoFormatting(true);
@ -266,8 +272,15 @@ void FlightLogManager::exportToXML(QString fileName)
xmlWriter.writeStartDocument("1.0", true);
xmlWriter.writeStartElement("logs");
xmlWriter.writeComment("This file was created by the flight log export in OpenPilot GCS.");
quint32 baseTime = 0;
quint32 currentFlight = 0;
foreach (ExtendedDebugLogEntry *entry , m_logEntries) {
entry->toXML(&xmlWriter);
if(m_adjustExportedTimestamps && entry->getFlight() != currentFlight) {
currentFlight = entry->getFlight();
baseTime = entry->getFlightTime();
}
entry->toXML(&xmlWriter, baseTime);
}
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
@ -362,11 +375,11 @@ QString ExtendedDebugLogEntry::getLogString()
}
}
void ExtendedDebugLogEntry::toXML(QXmlStreamWriter *xmlWriter)
void ExtendedDebugLogEntry::toXML(QXmlStreamWriter *xmlWriter, quint32 baseTime)
{
xmlWriter->writeStartElement("entry");
xmlWriter->writeAttribute("flight", QString::number(getFlight()));
xmlWriter->writeAttribute("flighttime", QString::number(getFlightTime()));
xmlWriter->writeAttribute("flight", QString::number(getFlight() + 1));
xmlWriter->writeAttribute("flighttime", QString::number(getFlightTime() - baseTime));
xmlWriter->writeAttribute("entry", QString::number(getEntry()));
if (getType() == DebugLogEntry::TYPE_TEXT) {
xmlWriter->writeAttribute("type", "text");
@ -378,7 +391,7 @@ void ExtendedDebugLogEntry::toXML(QXmlStreamWriter *xmlWriter)
xmlWriter->writeEndElement(); //entry
}
void ExtendedDebugLogEntry::toCSV(QTextStream *csvStream)
void ExtendedDebugLogEntry::toCSV(QTextStream *csvStream, quint32 baseTime)
{
QString data;
if (getType() == DebugLogEntry::TYPE_TEXT) {
@ -386,7 +399,7 @@ void ExtendedDebugLogEntry::toCSV(QTextStream *csvStream)
} else if (getType() == DebugLogEntry::TYPE_UAVOBJECT) {
data = m_object->toString().replace("\n", "").replace("\t", "");
}
*csvStream << QString::number(getFlight()) << '\t' << QString::number(getFlightTime()) << '\t' << QString::number(getEntry()) << '\t' << data << '\n';
*csvStream << QString::number(getFlight() + 1) << '\t' << QString::number(getFlightTime() - baseTime) << '\t' << QString::number(getEntry()) << '\t' << data << '\n';
}
void ExtendedDebugLogEntry::setData(const DebugLogEntry::DataFields &data, UAVObjectManager *objectManager)

View File

@ -48,8 +48,8 @@ public:
~ExtendedDebugLogEntry();
QString getLogString();
void toXML(QXmlStreamWriter *xmlWriter);
void toCSV(QTextStream *csvStream);
void toXML(QXmlStreamWriter *xmlWriter, quint32 baseTime);
void toCSV(QTextStream *csvStream, quint32 baseTime);
UAVDataObject *uavObject()
{
return m_object;