Save and reload telemetry values in companion telemetry simulator (#1954)

* Users will be able to save and reload telemetry values in companion telemetry simulator. Also, default values set for all sensor values.

* Added file.flush()

* Edited file i/o as per elecpower suggestion
Signed-off-by: dale wheeler <dale@wheeler.net>
This commit is contained in:
dwheeld
2022-06-15 06:17:31 +02:00
committed by GitHub
parent f6988c0870
commit 940d69f456
3 changed files with 1106 additions and 764 deletions
+234
View File
@@ -28,6 +28,8 @@
#include <QRegularExpression>
#include <stdint.h>
#include <QMessageBox> //
TelemetrySimulator::TelemetrySimulator(QWidget * parent, SimulatorInterface * simulator):
QWidget(parent),
ui(new Ui::TelemetrySimulator),
@@ -1089,3 +1091,235 @@ void TelemetrySimulator::LogPlaybackController::setUiDataValues()
}
}
}
void TelemetrySimulator::on_saveTelemetryvalues_clicked()
{
QString fldr = g.backupDir().trimmed();
if (fldr.isEmpty())
fldr = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
QString idFileNameAndPath = QFileDialog::getSaveFileName(this, tr("Save Telemetry"), fldr % "/telemetry.txt", tr(".txt Files (*.txt)"));
if (idFileNameAndPath.isEmpty())
return;
QFile file(idFileNameAndPath);
if (!file.open(QIODevice::WriteOnly)){
QMessageBox::critical(this, CPN_STR_APP_NAME, tr("Unable to open file for writing.\n%1").arg(file.errorString()));
return;
}
QTextStream out(&file);
out<< ui -> rxbt -> text();
out<<"\r\n";
out<< ui -> Rssi -> text();
out<<"\r\n";
out<< ui -> Swr -> text();
out<<"\r\n";
out << ui -> A1 -> text();
out<<"\r\n";
out<< ui -> A2 -> text();
out<<"\r\n";
out<< ui -> A3 -> text();
out<<"\r\n";
out << ui -> A4 -> text();
out<<"\r\n";
out << ui -> T1 -> text();
out<<"\r\n";
out << ui -> T2 -> text();
out<<"\r\n";
out << ui -> rpm -> text();
out<<"\r\n";
out << ui -> fuel -> text();
out<<"\r\n";
out << ui -> fuel_qty -> text();
out<<"\r\n";
out << ui -> vspeed -> text();
out<<"\r\n";
out << ui -> valt -> text();
out<<"\r\n";
out << ui -> vfas -> text();
out<<"\r\n";
out << ui -> curr -> text();
out<<"\r\n";
out << ui -> cell1 -> text();
out<<"\r\n";
out << ui -> cell2 -> text();
out<<"\r\n";
out << ui -> cell3 -> text();
out<<"\r\n";
out << ui -> cell4 -> text();
out<<"\r\n";
out << ui -> cell5 -> text();
out<<"\r\n";
out << ui -> cell6 -> text();
out<<"\r\n";
out << ui -> aspeed -> text();
out<<"\r\n";
out << ui -> gps_alt -> text();
out<<"\r\n";
out << ui -> gps_speed -> text();
out<<"\r\n";
out << ui -> gps_course -> text();
out<<"\r\n";
out << ui -> gps_time -> text();
out<<"\r\n";
out << ui -> gps_latlon -> text();
out<<"\r\n";
out << ui -> accx -> text();
out<<"\r\n";
out << ui -> accy -> text();
out<<"\r\n";
out << ui -> accz -> text();
out<<"\r\n";
file.flush();
file.close();
}
void TelemetrySimulator::on_loadTelemetryvalues_clicked()
{
QString fldr = g.backupDir().trimmed();
if (fldr.isEmpty())
fldr = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
QString idFileNameAndPath = QFileDialog::getOpenFileName(this, tr("Open Telemetry File"), fldr % "/telemetry.txt", tr(".txt Files (*.txt)"));
if (idFileNameAndPath.isEmpty())
return;
QFile file(idFileNameAndPath);
if (!file.open(QIODevice::ReadOnly)){
QMessageBox::critical(this, CPN_STR_APP_NAME, tr("Unable to open file for reading.\n%1").arg(file.errorString()));
return;
}
QTextStream in(&file);
QString n = in.readLine();
double ns = n.toDouble();
ui -> rxbt -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> Rssi -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> Swr -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> A1 -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> A2 -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> A3 -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> A4 -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> T1 -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> T2 -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> rpm -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> fuel -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> fuel_qty -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> vspeed -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> valt -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> vfas -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> curr -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> cell1 -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> cell2 -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> cell3 -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> cell4 -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> cell5 -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> cell6 -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> aspeed -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> gps_alt -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> gps_speed -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> gps_course -> setValue(ns);
n = in.readLine();
ui -> gps_time -> setText(n);
n = in.readLine();
ui -> gps_latlon -> setText(n);
n = in.readLine();
ns = n.toDouble();
ui -> accx -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> accy -> setValue(ns);
n = in.readLine();
ns = n.toDouble();
ui -> accz -> setValue(ns);
file.close();
}
+3
View File
@@ -207,6 +207,9 @@ class TelemetrySimulator : public QWidget
uint32_t encodeLatLon(double latLon, bool isLat);
uint32_t encodeDateTime(uint8_t yearOrHour, uint8_t monthOrMinute, uint8_t dayOrSecond, bool isDate);
}; // GPSEmulator
private slots:
void on_saveTelemetryvalues_clicked();
void on_loadTelemetryvalues_clicked();
}; // TelemetrySimulator
#endif // _TELEMETRYSIMU_H_
File diff suppressed because it is too large Load Diff