diff --git a/companion/src/companion9x.qrc b/companion/src/companion9x.qrc index 2000e4e15..8a8409172 100644 --- a/companion/src/companion9x.qrc +++ b/companion/src/companion9x.qrc @@ -65,6 +65,8 @@ images/fuses.png images/list.png images/maps.png + images/track.png + images/track0.png images/play.png images/stop.png images/read_eeprom_file.png diff --git a/companion/src/images/track.png b/companion/src/images/track.png new file mode 100644 index 000000000..32414b49a Binary files /dev/null and b/companion/src/images/track.png differ diff --git a/companion/src/images/track0.png b/companion/src/images/track0.png new file mode 100644 index 000000000..cc6578aab Binary files /dev/null and b/companion/src/images/track0.png differ diff --git a/companion/src/logsdialog.cpp b/companion/src/logsdialog.cpp index 5ad0327dd..12213536b 100644 --- a/companion/src/logsdialog.cpp +++ b/companion/src/logsdialog.cpp @@ -1,11 +1,6 @@ #include "logsdialog.h" #include "ui_logsdialog.h" #include "qcustomplot.h" -#if defined WIN32 || !defined __GNUC__ -#include -#else -#include -#endif logsDialog::logsDialog(QWidget *parent) : QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint), @@ -178,7 +173,7 @@ void logsDialog::selectionChanged() void logsDialog::on_mapsButton_clicked() { int n = csvlog.count(); // number of points in graph if (n==0) return; - int latcol=0, longcol=0, altcol=0, coursecol=0, speedcol=0; + int latcol=0, longcol=0, altcol=0, coursecol=0, speedcol=0, rssicol=0; int itemSelected=0.; bool rangeSelected=false; QSettings settings("companion9x", "companion9x"); @@ -203,6 +198,9 @@ void logsDialog::on_mapsButton_clicked() { if (csvlog.at(0).at(i).contains("Course")) { coursecol=i; } + if (csvlog.at(0).at(i).contains("RSSI")) { + rssicol=i; + } } if (longcol==0 || latcol==0 || altcol==0) { return; @@ -216,9 +214,16 @@ void logsDialog::on_mapsButton_clicked() { if (itemSelected==0) { itemSelected=n-1; } - QString geFilename = QDir::tempPath() + "/flight.kml"; + + QString geFilename = QDir::tempPath() + "/track0.png"; if (QFile::exists(geFilename)) { - unlink(geFilename.toAscii()); + QFile::remove(geFilename); + } + QFile::copy(":/images/track0.png", geFilename); + + geFilename = QDir::tempPath() + "/flight.kml"; + if (QFile::exists(geFilename)) { + QFile::remove(geFilename); } QFile geFile(geFilename); if (!geFile.open(QIODevice::WriteOnly | QIODevice::Text)) { @@ -228,17 +233,62 @@ void logsDialog::on_mapsButton_clicked() { .arg(geFile.errorString())); return; } - + QString latitude,longitude; + double flatitude, flongitude,temp; QTextStream outputStream(&geFile); - outputStream << "\n\n"; - outputStream << "\n\tflight.kml\n\tMy Flight\n\t\t\n"; - outputStream << "\t\t\t1\n\t\t\trelativeToGround\n\t\t\t\n\t\t\t\t"; + outputStream << "\n\n"; + outputStream << "\t\n\t\tMy Flight\n"; + outputStream << "\t\t\n"; + outputStream << "\t\t\n"; + outputStream << "\t\t\n\t\t\t\n\t\t\t\tnormal\n\t\t\t\t#multiTrack_n\n\t\t\t\n\t\t\t\n\t\t\t\thighlight\n\t\t\t\t#multiTrack_h\n\t\t\t\n\t\t\n"; + outputStream << "\t\t\n"; + outputStream << "\t\t\n"; + outputStream << "\t\t\t\n\t\t\t\tGPS Speed\n\t\t\t\n"; + outputStream << "\t\t\t\n\t\t\t\tRSSI\n\t\t\t\n"; + outputStream << "\t\t\n"; + outputStream << "\t\t\n\t\t\tFlight\n\t\t\t\n\t\t\t\tMy Flight\n\t\t\t\t#multiTrack\n\t\t\t\t\n"; for (int i=1; ilogTable->item(i-1,1)->isSelected() &&rangeSelected) || !rangeSelected) { - outputStream << csvlog.at(i).at(longcol) << "," << csvlog.at(i).at(latcol) << "," << csvlog.at(i).at(altcol) << " " ; + QString tstamp=csvlog.at(i).at(0)+QString("T")+csvlog.at(i).at(1); + outputStream << "\t\t\t\t\t"<< tstamp <<"\n"; } } - outputStream << "\n\t\t\t\n\t\t\n\t\n\n\n"; + + for (int i=1; ilogTable->item(i-1,1)->isSelected() &&rangeSelected) || !rangeSelected) { + latitude=csvlog.at(i).at(latcol).trimmed(); + longitude=csvlog.at(i).at(longcol).trimmed(); + temp=int(latitude.left(latitude.length()-1).toDouble()/100); + flatitude=temp+(latitude.left(latitude.length()-1).toDouble()-temp*100)/60.0; + temp=int(longitude.left(longitude.length()-1).toDouble()/100); + flongitude=temp+(longitude.left(longitude.length()-1).toDouble()-temp*100)/60.0; + if (latitude.right(1)!="N") { + flatitude*=-1; + } + if (longitude.right(1)!="E") { + flongitude*=-1; + } + latitude.sprintf("%3.8f", flatitude); + longitude.sprintf("%3.8f", flongitude); + outputStream << "\t\t\t\t\t" << longitude << " " << latitude << " " << csvlog.at(i).at(altcol) << "\n" ; + } + } + outputStream << "\t\t\t\t\t\n\t\t\t\t\t\t\n"; + outputStream << "\t\t\t\t\t\t\t\n"; + for (int i=1; ilogTable->item(i-1,1)->isSelected() &&rangeSelected) || !rangeSelected) { + outputStream << "\t\t\t\t\t\t\t\t"<< csvlog.at(i).at(speedcol) <<"\n"; + } + } + outputStream << "\t\t\t\t\t\t\t\n"; + outputStream << "\t\t\t\t\t\t\t\n"; + for (int i=1; ilogTable->item(i-1,1)->isSelected() &&rangeSelected) || !rangeSelected) { + outputStream << "\t\t\t\t\t\t\t\t"<< csvlog.at(i).at(rssicol) <<"\n"; + } + } + outputStream << "\t\t\t\t\t\t\t\n"; + outputStream << "\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n"; geFile.close(); QStringList parameters;