diff --git a/companion/src/CMakeLists.txt b/companion/src/CMakeLists.txt index e0fdb94d8..2d3c2d8a7 100644 --- a/companion/src/CMakeLists.txt +++ b/companion/src/CMakeLists.txt @@ -372,19 +372,19 @@ IF( WIN32 ) "C:/Programs/NSIS" ) - ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_BINARY_DIR}/companionInstall.exe + ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_BINARY_DIR}/companion-windows.exe COMMAND "${NSIS_EXE}" ARGS companion.nsi DEPENDS companion simulator opentx-simulators ${PROJECT_BINARY_DIR}/companion.nsi COMMENT "Companion Windows NSIS Installer") - ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_BINARY_DIR}/simulatorInstall.exe + ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_BINARY_DIR}/simulator-install.exe COMMAND "${NSIS_EXE}" ARGS simulator.nsi DEPENDS simulator opentx-simulators ${PROJECT_BINARY_DIR}/simulator.nsi COMMENT "Simulator Windows NSIS Installer") ADD_CUSTOM_TARGET( installer - DEPENDS ${PROJECT_BINARY_DIR}/companionInstall.exe - DEPENDS ${PROJECT_BINARY_DIR}/simulatorInstall.exe + DEPENDS ${PROJECT_BINARY_DIR}/companion-windows.exe + DEPENDS ${PROJECT_BINARY_DIR}/simulator-windows.exe SOURCES ${PROJECT_BINARY_DIR}/companion.nsi SOURCES ${PROJECT_BINARY_DIR}/simulator.nsi ) diff --git a/companion/src/eeprominterface.cpp b/companion/src/eeprominterface.cpp index 2a5b8dc5e..3758c24c3 100644 --- a/companion/src/eeprominterface.cpp +++ b/companion/src/eeprominterface.cpp @@ -132,7 +132,7 @@ QString SensorData::unitString() const return QObject::tr("mAh"); case UNIT_WATTS: return QObject::tr("W"); - case UNIT_DBM: + case UNIT_DB: return QObject::tr("dB"); case UNIT_RPMS: return QObject::tr("rpms"); diff --git a/companion/src/eeprominterface.h b/companion/src/eeprominterface.h index f5d3dff35..9b6d6c898 100644 --- a/companion/src/eeprominterface.h +++ b/companion/src/eeprominterface.h @@ -913,7 +913,7 @@ class SensorData { UNIT_PERCENT, UNIT_MAH, UNIT_WATTS, - UNIT_DBM, + UNIT_DB, UNIT_RPMS, UNIT_G, UNIT_DEGREE, @@ -1312,6 +1312,7 @@ enum Capability { LCDWidth, GetThrSwitch, HasDisplayText, + GlobalFunctions, VirtualInputs, TrainerInputs, RtcTime, diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index 90769bd92..99b6136a0 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -604,10 +604,8 @@ int OpenTxFirmware::getCapability(const Capability capability) else return 9; case CustomFunctions: - if (IS_TARANIS(board)) + if (IS_ARM(board)) return 64; - else if (IS_ARM(board)) - return 60; else if (IS_2560(board) || board==BOARD_M128) return 24; else @@ -731,6 +729,8 @@ int OpenTxFirmware::getCapability(const Capability capability) return (IS_TARANIS(board) ? SWITCH_SF1 : SWITCH_THR) ; case HasDisplayText: return IS_ARM(board) ? 1 : 0; + case GlobalFunctions: + return IS_ARM(board) ? 64 : 0; case VirtualInputs: return IS_TARANIS(board) ? 32 : 0; case TrainerInputs: diff --git a/companion/src/logsdialog.cpp b/companion/src/logsdialog.cpp index 67e3e561d..aa0449976 100644 --- a/companion/src/logsdialog.cpp +++ b/companion/src/logsdialog.cpp @@ -8,14 +8,14 @@ #include #endif -logsDialog::logsDialog(QWidget *parent) : - QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint), - ui(new Ui::logsDialog) +LogsDialog::LogsDialog(QWidget *parent) : + QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint), + ui(new Ui::LogsDialog) { csvlog.clear(); ui->setupUi(this); - this->setWindowIcon(CompanionIcon("logs.png")); + setWindowIcon(CompanionIcon("logs.png")); plotLock=false; @@ -36,26 +36,20 @@ logsDialog::logsDialog(QWidget *parent) : // create and prepare a plot title layout element QCPPlotTitle *title = new QCPPlotTitle(ui->customPlot); title->setText(tr("Telemetry logs")); - // title->setFont(QFont("sans", 12, QFont::Bold)); + // add it to the main plot layout ui->customPlot->plotLayout()->insertRow(0); ui->customPlot->plotLayout()->addElement(0, 0, title); - ui->customPlot->setNoAntialiasingOnDrag(true); - - ui->customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | - QCP::iSelectAxes | QCP::iSelectLegend | QCP::iSelectPlottables); + ui->customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectAxes | QCP::iSelectLegend | QCP::iSelectPlottables); axisRect = ui->customPlot->axisRect(); axisRect->axis(QCPAxis::atBottom)->setLabel(tr("Time (hh:mm:ss)")); axisRect->axis(QCPAxis::atBottom)->setTickLabelType(QCPAxis::ltDateTime); axisRect->axis(QCPAxis::atBottom)->setDateTimeFormat("hh:mm:ss"); QDateTime now = QDateTime::currentDateTime(); - axisRect->axis(QCPAxis::atBottom)->setRange(now.addSecs(-60*60*2).toTime_t(), - now.toTime_t()); - + axisRect->axis(QCPAxis::atBottom)->setRange(now.addSecs(-60*60*2).toTime_t(), now.toTime_t()); axisRect->axis(QCPAxis::atLeft)->setTickLabels(false); - axisRect->addAxis(QCPAxis::atLeft); axisRect->addAxis(QCPAxis::atRight); axisRect->axis(QCPAxis::atLeft, 1)->setVisible(false); @@ -76,8 +70,8 @@ logsDialog::logsDialog(QWidget *parent) : ui->customPlot->setAutoAddPlottableToLegend(false); - QString Path=g.gePath(); - if (Path.isEmpty() || !QFile(Path).exists()) { + QString path = g.gePath(); + if (path.isEmpty() || !QFile(path).exists()) { ui->mapsButton->hide(); } @@ -99,57 +93,52 @@ logsDialog::logsDialog(QWidget *parent) : connect(ui->Reset_PB, SIGNAL(clicked()), this, SLOT(plotLogs())); } -logsDialog::~logsDialog() +LogsDialog::~LogsDialog() { delete ui; } -void logsDialog::titleDoubleClick(QMouseEvent *evt, QCPPlotTitle *title) +void LogsDialog::titleDoubleClick(QMouseEvent *evt, QCPPlotTitle *title) { // Set the plot title by double clicking on it - bool ok; - QString newTitle = QInputDialog::getText(this, tr("Plot Title Change"), - tr("New plot title:"), QLineEdit::Normal, title->text(), &ok); - if (ok) - { + QString newTitle = QInputDialog::getText(this, tr("Plot Title Change"), tr("New plot title:"), QLineEdit::Normal, title->text(), &ok); + if (ok) { title->setText(newTitle); ui->customPlot->replot(); } } -void logsDialog::axisLabelDoubleClick(QCPAxis *axis, QCPAxis::SelectablePart part) +void LogsDialog::axisLabelDoubleClick(QCPAxis *axis, QCPAxis::SelectablePart part) { // Set an axis label by double clicking on it - if (part == QCPAxis::spAxisLabel) // only react when the actual axis label is clicked, not tick label or axis backbone - { + if (part == QCPAxis::spAxisLabel) { + // only react when the actual axis label is clicked, not tick label or axis backbone bool ok; QString newLabel = QInputDialog::getText(this, tr("Axis Label Change"), tr("New axis label:"), QLineEdit::Normal, axis->label(), &ok); - if (ok) - { + if (ok) { axis->setLabel(newLabel); ui->customPlot->replot(); } } } -void logsDialog::legendDoubleClick(QCPLegend *legend, QCPAbstractLegendItem *item) +void LogsDialog::legendDoubleClick(QCPLegend *legend, QCPAbstractLegendItem *item) { // Rename a graph by double clicking on its legend item - if (item) // only react if item was clicked (user could have clicked on border padding of legend where there is no item, then item is 0) - { + if (item) { + // only react if item was clicked (user could have clicked on border padding of legend where there is no item, then item is 0) QCPPlottableLegendItem *plItem = qobject_cast(item); bool ok; QString newName = QInputDialog::getText(this, tr("Graph Name Change"), tr("New graph name:"), QLineEdit::Normal, plItem->plottable()->name(), &ok); - if (ok) - { + if (ok) { plItem->plottable()->setName(newName); ui->customPlot->replot(); } } } -void logsDialog::selectionChanged() +void LogsDialog::selectionChanged() { /* normally, axis base line, axis tick labels and axis labels are selectable separately, but we want @@ -208,20 +197,18 @@ void logsDialog::selectionChanged() } // synchronize selection of graphs with selection of corresponding legend items: - for (int i=0; icustomPlot->graphCount(); ++i) - { + for (int i=0; icustomPlot->graphCount(); ++i) { QCPGraph *graph = ui->customPlot->graph(i); QCPPlottableLegendItem *item = ui->customPlot->legend->itemWithPlottable(graph); if (item == NULL) item = rightLegend->itemWithPlottable(graph); - if (item->selected() || graph->selected()) - { + if (item->selected() || graph->selected()) { item->setSelected(true); graph->setSelected(true); } } } -QList logsDialog::filterGePoints(const QList & input) +QList LogsDialog::filterGePoints(const QList & input) { QList result; @@ -260,7 +247,7 @@ QList logsDialog::filterGePoints(const QList & input) // glitch filter if ( glitchFilter.isGlitch(flatitude, flongitude) ) { - qDebug() << "filterGePoints(): GPS glitch detected at" << i << flatitude << flongitude; + // qDebug() << "filterGePoints(): GPS glitch detected at" << i << flatitude << flongitude; continue; } @@ -275,11 +262,11 @@ QList logsDialog::filterGePoints(const QList & input) } } - qDebug() << "filterGePoints(): filtered from" << input.count() << "to " << result.count() << "points"; + // qDebug() << "filterGePoints(): filtered from" << input.count() << "to " << result.count() << "points"; return result; } -void logsDialog::exportToGoogleEarth() +void LogsDialog::exportToGoogleEarth() { // filter data points QList dataPoints = filterGePoints(csvlog); @@ -289,25 +276,26 @@ void logsDialog::exportToGoogleEarth() int latcol=0, longcol=0, altcol=0, speedcol=0; QSet nondataCols; for (int i=1; i" << longitude << " " << latitude << " " << dataPoints.at(i).at(altcol).toFloat() << " \n" ; + outputStream << "\t\t\t\t\t" << longitude << " " << latitude << " " << altitude << " \n" ; } // additional data for data points outputStream << "\t\t\t\t\t\n\t\t\t\t\t\t\n"; - // gps speed data points - outputStream << "\t\t\t\t\t\t\t\n"; - for (int i=1; i"<< dataPoints.at(i).at(speedcol) <<"\n"; + if (speedcol) { + // gps speed data points + outputStream << "\t\t\t\t\t\t\t\n"; + for (int i=1; i"<< dataPoints.at(i).at(speedcol) <<"\n"; + } + outputStream << "\t\t\t\t\t\t\t\n"; } - outputStream << "\t\t\t\t\t\t\t\n"; // add values for additional fields for (int i=0; istart(gePath, parameters); } -void logsDialog::on_mapsButton_clicked() +void LogsDialog::on_mapsButton_clicked() { ui->FieldsTW->setDisabled(true); ui->logTable->setDisabled(true); @@ -431,7 +422,7 @@ void logsDialog::on_mapsButton_clicked() ui->logTable->setDisabled(false); } -void logsDialog::mousePress() +void LogsDialog::mousePress() { // if an axis is selected, only allow the direction of that axis to be dragged // if no axis is selected, both directions may be dragged @@ -444,7 +435,7 @@ void logsDialog::mousePress() axisRect->setRangeDrag(Qt::Horizontal | Qt::Vertical); } -void logsDialog::mouseWheel() +void LogsDialog::mouseWheel() { // if an axis is selected, only allow the direction of that axis to be zoomed // if no axis is selected, both directions may be zoomed @@ -462,7 +453,7 @@ void logsDialog::mouseWheel() } } -void logsDialog::removeAllGraphs() +void LogsDialog::removeAllGraphs() { ui->customPlot->clearGraphs(); ui->customPlot->legend->setVisible(false); @@ -480,12 +471,11 @@ void logsDialog::removeAllGraphs() ui->customPlot->replot(); } -void logsDialog::on_fileOpen_BT_clicked() +void LogsDialog::on_fileOpen_BT_clicked() { - QString fileName = QFileDialog::getOpenFileName(this,tr("Select your log file"), g.logDir()); + QString fileName = QFileDialog::getOpenFileName(this, tr("Select your log file"), g.logDir()); if (!fileName.isEmpty()) { - - g.logDir( fileName ); + g.logDir(fileName); ui->FileName_LE->setText(fileName); if (cvsFileParse()) { ui->FieldsTW->clear(); @@ -525,15 +515,16 @@ void logsDialog::on_fileOpen_BT_clicked() } } -bool logsDialog::cvsFileParse() +bool LogsDialog::cvsFileParse() { QFile file(ui->FileName_LE->text()); int errors=0; int lines=-1; - if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { //reading HEX TEXT file + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { // reading HEX TEXT file return false; - } else { + } + else { csvlog.clear(); logFilename.clear(); QTextStream inputStream(&file); @@ -541,7 +532,8 @@ bool logsDialog::cvsFileParse() if (buffer.startsWith("Date,Time")) { file.reset(); - } else { + } + else { return false; } @@ -554,29 +546,30 @@ bool logsDialog::cvsFileParse() } if (columns.count()==numfields) { csvlog.append(columns); - } else { + } + else { errors++; } lines++; } - logFilename=QFileInfo(file.fileName()).baseName(); + logFilename = QFileInfo(file.fileName()).baseName(); } file.close(); - if (errors>1) { + if (errors > 1) { QMessageBox::warning(this, "Companion", tr("The selected logfile contains %1 invalid lines out of %2 total lines").arg(errors).arg(lines)); } - int n=csvlog.count(); - if (n==1) { + int n = csvlog.count(); + if (n == 1) { csvlog.clear(); return false; } plotLock = true; setFlightSessions(); - plotLock=false; + plotLock = false; return true; } @@ -586,7 +579,7 @@ struct FlightSession { QDateTime end; }; -QDateTime logsDialog::getRecordTimeStamp(int index) +QDateTime LogsDialog::getRecordTimeStamp(int index) { QString tstamp = csvlog.at(index).at(0) + " " + csvlog.at(index).at(1); if (csvlog.at(index).at(1).contains(".")) @@ -594,7 +587,7 @@ QDateTime logsDialog::getRecordTimeStamp(int index) return QDateTime::fromString(tstamp, "yyyy-MM-dd HH:mm:ss"); } -QString logsDialog::generateDuration(const QDateTime & start, const QDateTime & end) +QString LogsDialog::generateDuration(const QDateTime & start, const QDateTime & end) { int secs = start.secsTo(end); QString durationString; @@ -606,11 +599,11 @@ QString logsDialog::generateDuration(const QDateTime & start, const QDateTime & return durationString; } -void logsDialog::setFlightSessions() +void LogsDialog::setFlightSessions() { ui->sessions_CB->clear(); - int n=csvlog.count(); + int n = csvlog.count(); // qDebug() << "records" << n; // find session breaks @@ -646,7 +639,7 @@ void logsDialog::setFlightSessions() } } -void logsDialog::on_sessions_CB_currentIndexChanged(int index) +void LogsDialog::on_sessions_CB_currentIndexChanged(int index) { if (plotLock) return; plotLock = true; @@ -674,7 +667,7 @@ void logsDialog::on_sessions_CB_currentIndexChanged(int index) plotLogs(); } -void logsDialog::plotLogs() +void LogsDialog::plotLogs() { if (plotLock) return; @@ -920,7 +913,7 @@ void logsDialog::plotLogs() ui->customPlot->replot(); } -void logsDialog::yAxisChangeRanges(QCPRange range) +void LogsDialog::yAxisChangeRanges(QCPRange range) { if (axisRect->axis(QCPAxis::atRight)->visible()) { double lowerChange = (range.lower - yAxesRanges[firstLeft].min) * diff --git a/companion/src/logsdialog.h b/companion/src/logsdialog.h index 5e5fe5f84..14bd270ba 100644 --- a/companion/src/logsdialog.h +++ b/companion/src/logsdialog.h @@ -1,5 +1,5 @@ -#ifndef LOGSDIALOG_H -#define LOGSDIALOG_H +#ifndef _LOGSDIALOG_H_ +#define _LOGSDIALOG_H_ #include #include @@ -37,16 +37,16 @@ struct plotsCollection { }; namespace Ui { - class logsDialog; + class LogsDialog; } -class logsDialog : public QDialog +class LogsDialog : public QDialog { Q_OBJECT public: - explicit logsDialog(QWidget *parent = 0); - ~logsDialog(); + explicit LogsDialog(QWidget *parent = 0); + ~LogsDialog(); private slots: void titleDoubleClick(QMouseEvent *evt, QCPPlotTitle *title); @@ -64,7 +64,7 @@ private slots: private: QList csvlog; - Ui::logsDialog *ui; + Ui::LogsDialog *ui; QCPAxisRect *axisRect; QCPLegend *rightLegend; bool plotLock; @@ -85,4 +85,4 @@ private: }; -#endif // LOGSDIALOG_H +#endif // _LOGSDIALOG_H_ diff --git a/companion/src/logsdialog.ui b/companion/src/logsdialog.ui index 43148d70c..5ed955c87 100644 --- a/companion/src/logsdialog.ui +++ b/companion/src/logsdialog.ui @@ -1,7 +1,7 @@ - logsDialog - + LogsDialog + 0 diff --git a/companion/src/mainwindow.cpp b/companion/src/mainwindow.cpp index 9dc878acd..dc5411778 100644 --- a/companion/src/mainwindow.cpp +++ b/companion/src/mainwindow.cpp @@ -873,7 +873,7 @@ void MainWindow::compare() void MainWindow::logFile() { - logsDialog *fd = new logsDialog(this); + LogsDialog *fd = new LogsDialog(this); fd->setWindowFlags(Qt::Window); //to show minimize an maximize buttons fd->setAttribute(Qt::WA_DeleteOnClose, true); fd->show(); diff --git a/companion/src/modeledit/customfunctions.cpp b/companion/src/modeledit/customfunctions.cpp index c2b8f0430..5442f2e6b 100644 --- a/companion/src/modeledit/customfunctions.cpp +++ b/companion/src/modeledit/customfunctions.cpp @@ -61,7 +61,7 @@ CustomFunctionsPanel::CustomFunctionsPanel(QWidget * parent, ModelData * model, addEmptyLabel(gridLayout, 5 ); lock = true; - int num_fsw = firmware->getCapability(CustomFunctions); + int num_fsw = model ? firmware->getCapability(CustomFunctions) : firmware->getCapability(GlobalFunctions); if (!firmware->getCapability(VoicesAsNumbers)) { tracksSet = getFilesSet(getSoundsPath(generalSettings), QStringList() << "*.wav" << "*.WAV", firmware->getCapability(VoicesMaxLength)); @@ -514,7 +514,8 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified) void CustomFunctionsPanel::update() { lock = true; - for (int i=0; igetCapability(CustomFunctions); i++) { + int num_fsw = model ? firmware->getCapability(CustomFunctions) : firmware->getCapability(GlobalFunctions); + for (int i=0; igetCapability(HasDisplayText)) { ui->displayText->hide(); } + + if (!firmware->getCapability(GlobalFunctions)) { + ui->gfEnabled->hide(); + } // Beep Center checkboxes prevFocus = ui->trimsDisplay; @@ -774,6 +778,7 @@ void SetupPanel::update() ui->extendedLimits->setChecked(model->extendedLimits); ui->extendedTrims->setChecked(model->extendedTrims); ui->displayText->setChecked(model->displayChecklist); + ui->gfEnabled->setChecked(!model->noGlobalFunctions); updateBeepCenter(); updateStartupSwitches(); @@ -915,6 +920,12 @@ void SetupPanel::on_displayText_toggled(bool checked) emit modified(); } +void SetupPanel::on_gfEnabled_toggled(bool checked) +{ + model->noGlobalFunctions = !checked; + emit modified(); +} + void SetupPanel::on_throttleTrim_toggled(bool checked) { model->thrTrim = checked; diff --git a/companion/src/modeledit/setup.h b/companion/src/modeledit/setup.h index 3e4b1926b..2f732be1a 100644 --- a/companion/src/modeledit/setup.h +++ b/companion/src/modeledit/setup.h @@ -101,6 +101,7 @@ class SetupPanel : public ModelPanel void on_throttleWarning_toggled(bool checked); void on_throttleReverse_toggled(bool checked); void on_displayText_toggled(bool checked); + void on_gfEnabled_toggled(bool checked); void on_image_currentIndexChanged(int index); void on_trimIncrement_currentIndexChanged(int index); void onBeepCenterToggled(bool checked); diff --git a/companion/src/modeledit/setup.ui b/companion/src/modeledit/setup.ui index 28f5469f3..825579534 100644 --- a/companion/src/modeledit/setup.ui +++ b/companion/src/modeledit/setup.ui @@ -215,6 +215,13 @@ If this is checked the throttle will be reversed. Idle will be forward, trim wi + + + + Global Functions + + + diff --git a/companion/src/simulation/simulatorinterface.cpp b/companion/src/simulation/simulatorinterface.cpp index b8adff31d..afcb52ef9 100644 --- a/companion/src/simulation/simulatorinterface.cpp +++ b/companion/src/simulation/simulatorinterface.cpp @@ -33,7 +33,9 @@ void registerSimulators() bool simulatorsFound = false; QDir dir("."); QStringList filters; -#if (!defined __GNUC__) || (defined __CYGWIN__) +#if defined(__APPLE__) + filters << "*-simulator.dylib"; +#elif (!defined __GNUC__) || (defined __CYGWIN__) filters << "*-simulator.dll"; #else filters << "*-simulator.so"; diff --git a/companion/targets/windows/companion-msys.nsi.in b/companion/targets/windows/companion-msys.nsi.in index dbb9ad683..6d0975dc7 100644 --- a/companion/targets/windows/companion-msys.nsi.in +++ b/companion/targets/windows/companion-msys.nsi.in @@ -13,7 +13,7 @@ ;Name and file Name "OpenTX companion" - OutFile "companionInstall_v@C9X_VERSION@.exe" + OutFile "companion-windows-v@C9X_VERSION@.exe" ;Default installation folder InstallDir "$PROGRAMFILES\OpenTX companion" @@ -141,7 +141,7 @@ SectionEnd ;Language strings LangString DESC_SecDummy ${LANG_ENGLISH} "Models and settings editor for OpenTX" - LangString DESC_SecDummy ${LANG_FRENCH} "Editeur de réglages et modèles pour OpenTX" + LangString DESC_SecDummy ${LANG_FRENCH} "Editeur de r�glages et mod�les pour OpenTX" ;Assign language strings to sections !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN diff --git a/companion/targets/windows/companion-vs.nsi.in b/companion/targets/windows/companion-vs.nsi.in index 00e732d42..698a3e617 100644 --- a/companion/targets/windows/companion-vs.nsi.in +++ b/companion/targets/windows/companion-vs.nsi.in @@ -13,7 +13,7 @@ ;Name and file Name "OpenTX Companion 2.1" - OutFile "companionInstall_@C9X_VERSION@.exe" + OutFile "companion-windows-@C9X_VERSION@.exe" ;Default installation folder InstallDir "$PROGRAMFILES\OpenTX\Companion 2.1" diff --git a/companion/targets/windows/simulator-vs.nsi.in b/companion/targets/windows/simulator-vs.nsi.in index aae31c2f1..7111ecd83 100755 --- a/companion/targets/windows/simulator-vs.nsi.in +++ b/companion/targets/windows/simulator-vs.nsi.in @@ -12,7 +12,7 @@ ;Name and file Name "OpenTX Simulator" - OutFile "simulatorInstall_@C9X_VERSION@.exe" + OutFile "simulator-windows-@C9X_VERSION@.exe" ;Default installation folder InstallDir "$PROGRAMFILES\OpenTX" diff --git a/radio/src/functions.cpp b/radio/src/functions.cpp index 197f4c9b2..47923651d 100644 --- a/radio/src/functions.cpp +++ b/radio/src/functions.cpp @@ -119,7 +119,7 @@ PLAY_FUNCTION(playValue, source_t idx) #if defined(FRSKY) case MIXSRC_FIRST_TELEM+TELEM_RSSI_TX-1: case MIXSRC_FIRST_TELEM+TELEM_RSSI_RX-1: - PLAY_NUMBER(val, 1+UNIT_DBM, 0); + PLAY_NUMBER(val, 1+UNIT_DB, 0); break; case MIXSRC_FIRST_TELEM+TELEM_MIN_A1-1: case MIXSRC_FIRST_TELEM+TELEM_MIN_A2-1: diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index 99e1c6980..267d9f96b 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -1164,7 +1164,7 @@ enum TelemetryUnit { UNIT_PERCENT, UNIT_MAH, UNIT_WATTS, - UNIT_DBM, + UNIT_DB, UNIT_RPMS, UNIT_G, UNIT_DEGREE, @@ -1205,7 +1205,7 @@ enum TelemetryUnit { UNIT_A1A2_MAX = UNIT_MILLIAMPS, UNIT_MAH, UNIT_WATTS, - UNIT_DBM, + UNIT_DB, UNIT_FEET, UNIT_KTS, UNIT_HOURS, diff --git a/radio/src/targets/simu/simpgmspace.cpp b/radio/src/targets/simu/simpgmspace.cpp index 1a49f9d0f..ec972ab12 100644 --- a/radio/src/targets/simu/simpgmspace.cpp +++ b/radio/src/targets/simu/simpgmspace.cpp @@ -760,7 +760,11 @@ char *findTrueFileName(const char *path) for (;;) { struct simu::dirent * res = simu::readdir(dir); if (res == 0) break; +#if defined(__APPLE__) + if ((res->d_type == DT_REG) || (res->d_type == DT_LNK)) { +#else if ((res->d_type == simu::DT_REG) || (res->d_type == simu::DT_LNK)) { +#endif // TRACE("comparing with: %s", res->d_name); if (!strcasecmp(fileName.c_str(), res->d_name)) { strcpy(result, dirName.c_str()); diff --git a/radio/src/telemetry/frsky_sport.cpp b/radio/src/telemetry/frsky_sport.cpp index cc05c7d01..87fa07eb3 100644 --- a/radio/src/telemetry/frsky_sport.cpp +++ b/radio/src/telemetry/frsky_sport.cpp @@ -57,7 +57,7 @@ struct FrSkySportSensor { }; const FrSkySportSensor sportSensors[] = { - { RSSI_ID, RSSI_ID, ZSTR_RSSI, UNIT_RAW, 0 }, + { RSSI_ID, RSSI_ID, ZSTR_RSSI, UNIT_DB, 0 }, { SWR_ID, SWR_ID, ZSTR_SWR, UNIT_RAW, 0 }, { ADC1_ID, ADC1_ID, ZSTR_A1, UNIT_VOLTS, 1 }, { ADC2_ID, ADC2_ID, ZSTR_A2, UNIT_VOLTS, 1 }, diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 24518edb5..4defb7775 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -381,7 +381,7 @@ #define LEN_VUNITSSYSTEM TR("\006", "\010") #define TR_VUNITSSYSTEM TR("Metr.\0""Imper.", "Metrické""Imperial") #define LEN_VTELEMUNIT "\003" - #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0 ""ml\0""fOz" + #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dB\0""rpm""g\0 ""@\0 ""ml\0""fOz" #else #if defined(IMPERIAL_UNITS) #define LENGTH_UNIT LENGTH_UNIT_IMP @@ -424,11 +424,11 @@ #endif #if defined(CPUARM) -#define LEN_VTELEMSCREENTYPE "\010" -#define TR_VTELEMSCREENTYPE "Hodnota ""Ukazatel""Skript\0" + #define LEN_VTELEMSCREENTYPE "\010" + #define TR_VTELEMSCREENTYPE "Nic\0 ""Hodnota ""Ukazatel""Skript\0" #else -#define LEN_VTELEMSCREENTYPE "\010" -#define TR_VTELEMSCREENTYPE "Hodnota ""Ukazatel" + #define LEN_VTELEMSCREENTYPE "\010" + #define TR_VTELEMSCREENTYPE "Hodnota ""Ukazatel" #endif #define LEN_GPSFORMAT "\004" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index fb79587c2..5758b128b 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -388,7 +388,7 @@ #define LEN_VUNITSSYSTEM TR("\006", "\012") #define TR_VUNITSSYSTEM TR("Metrik""Imper.", "Metrisch\0 ""Imperial\0 ") #define LEN_VTELEMUNIT "\003" - #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0 ""ml\0""fOz" + #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dB\0""rpm""g\0 ""@\0 ""ml\0""fOz" #else #if defined(IMPERIAL_UNITS) #define LENGTH_UNIT LENGTH_UNIT_IMP diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index efcea1c8b..4fd0bfc76 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -383,7 +383,7 @@ #define LEN_VUNITSSYSTEM TR("\006", "\010") #define TR_VUNITSSYSTEM TR("Metric""Imper.", "Metric\0 ""Imperial") #define LEN_VTELEMUNIT "\003" - #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0 ""ml\0""fOz" + #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dB\0""rpm""g\0 ""@\0 ""ml\0""fOz" #else #if defined(IMPERIAL_UNITS) #define LENGTH_UNIT LENGTH_UNIT_IMP diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 532ef07da..21fc6d51e 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -379,7 +379,7 @@ #define LEN_VUNITSSYSTEM TR("\006", "\010") #define TR_VUNITSSYSTEM TR("Metric""Imper.", "Metric\0 ""Imperial") #define LEN_VTELEMUNIT "\003" - #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0 ""ml\0""fOz" + #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dB\0""rpm""g\0 ""@\0 ""ml\0""fOz" #else #if defined(IMPERIAL_UNITS) #define LENGTH_UNIT LENGTH_UNIT_IMP diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 184cf02b4..ce396da9f 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -379,7 +379,7 @@ #define LEN_VUNITSSYSTEM TR("\006", "\010") #define TR_VUNITSSYSTEM TR("Metric""Imper.", "Metric\0 ""Imperial") #define LEN_VTELEMUNIT "\003" - #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0 ""ml\0""fOz" + #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dB\0""rpm""g\0 ""@\0 ""ml\0""fOz" #else #if defined(IMPERIAL_UNITS) #define LENGTH_UNIT LENGTH_UNIT_IMP diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 19f72b85a..6298affae 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -383,7 +383,7 @@ #define LEN_VUNITSSYSTEM TR("\006", "\012") #define TR_VUNITSSYSTEM TR("Métr.\0""Impér.", "Métriques\0""Impériales") #define LEN_VTELEMUNIT "\003" - #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0 ""ml\0""fOz" + #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dB\0""rpm""g\0 ""@\0 ""ml\0""fOz" #else #if defined(IMPERIAL_UNITS) #define LENGTH_UNIT LENGTH_UNIT_IMP diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index c0fd997e8..2a939afd5 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -379,7 +379,7 @@ #define LEN_VUNITSSYSTEM TR("\006", "\011") #define TR_VUNITSSYSTEM TR("Metric""Imper.", "Metriche\0""Imperiali") #define LEN_VTELEMUNIT "\003" - #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0 ""ml\0""fOz" + #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dB\0""rpm""g\0 ""@\0 ""ml\0""fOz" #else #if defined(IMPERIAL_UNITS) #define LENGTH_UNIT LENGTH_UNIT_IMP diff --git a/radio/src/translations/nl.h.txt b/radio/src/translations/nl.h.txt index d95396ffb..bfa4b4d8e 100755 --- a/radio/src/translations/nl.h.txt +++ b/radio/src/translations/nl.h.txt @@ -392,7 +392,7 @@ #define LEN_VUNITSSYSTEM TR("\006", "\010") #define TR_VUNITSSYSTEM TR("Metrs.""Engels", "Metrisch\0 ""Engels\0 ") #define LEN_VTELEMUNIT "\003" - #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0 ""ml\0""fOz" + #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dB\0""rpm""g\0 ""@\0 ""ml\0""fOz" #else #if defined(IMPERIAL_UNITS) #define LENGTH_UNIT LENGTH_UNIT_IMP diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 7e33f1fec..f25770672 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -387,7 +387,7 @@ #define LEN_VUNITSSYSTEM TR("\006", "\010") /*8 decimal*/ #define TR_VUNITSSYSTEM TR("Metr. ""Imper.", "Metryczn""Imperial") #define LEN_VTELEMUNIT "\003" - #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0 ""ml\0""fOz" + #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dB\0""rpm""g\0 ""@\0 ""ml\0""fOz" #else #if defined(IMPERIAL_UNITS) #define LENGTH_UNIT LENGTH_UNIT_IMP diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 7e465eac7..379d3ac89 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -379,7 +379,7 @@ #define LEN_VUNITSSYSTEM TR("\006", "\010") #define TR_VUNITSSYSTEM TR("Metric""Imper.", "Metric\0 ""Imperial") #define LEN_VTELEMUNIT "\003" - #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0 ""ml\0""fOz" + #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dB\0""rpm""g\0 ""@\0 ""ml\0""fOz" #else #if defined(IMPERIAL_UNITS) #define LENGTH_UNIT LENGTH_UNIT_IMP diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 2ab5fd821..b03f3736c 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -379,7 +379,7 @@ #define LEN_VUNITSSYSTEM TR("\006", "\010") #define TR_VUNITSSYSTEM TR("Metri.""Imper.", "Metriska""Imperial") #define LEN_VTELEMUNIT "\003" - #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dBm""rpm""g\0 ""@\0 ""ml\0""fOz" + #define TR_VTELEMUNIT "-\0 ""V\0 ""A\0 ""mA\0""kts""m/s""f/s""kmh""mph""m\0 ""ft\0""@C\0""@F\0""%\0 ""mAh""W\0 ""dB\0""rpm""g\0 ""@\0 ""ml\0""fOz" #else #if defined(IMPERIAL_UNITS) #define LENGTH_UNIT LENGTH_UNIT_IMP diff --git a/radio/src/translations/tts_cz.cpp b/radio/src/translations/tts_cz.cpp index 18c094a60..e27e4cc7e 100644 --- a/radio/src/translations/tts_cz.cpp +++ b/radio/src/translations/tts_cz.cpp @@ -48,7 +48,7 @@ enum CzechPrompts { CZ_PROMPT_MILLIAMPS = CZ_PROMPT_UNITS_BASE+(UNIT_MILLIAMPS*4), CZ_PROMPT_MAH = CZ_PROMPT_UNITS_BASE+(UNIT_MAH*4), CZ_PROMPT_WATTS = CZ_PROMPT_UNITS_BASE+(UNIT_WATTS*4), - CZ_PROMPT_DB = CZ_PROMPT_UNITS_BASE+(UNIT_DBM*4), + CZ_PROMPT_DB = CZ_PROMPT_UNITS_BASE+(UNIT_DB*4), CZ_PROMPT_FEET = CZ_PROMPT_UNITS_BASE+(UNIT_FEET*4), CZ_PROMPT_KTS = CZ_PROMPT_UNITS_BASE+(UNIT_KTS*4), CZ_PROMPT_HOURS = CZ_PROMPT_UNITS_BASE+(UNIT_HOURS*4), diff --git a/radio/src/translations/tts_hu.cpp b/radio/src/translations/tts_hu.cpp index 4c743fa27..9761ed663 100644 --- a/radio/src/translations/tts_hu.cpp +++ b/radio/src/translations/tts_hu.cpp @@ -57,7 +57,7 @@ enum HungarianPrompts { HU_PROMPT_MILLIAMPS = HU_PROMPT_UNITS_BASE+(UNIT_MILLIAMPS*2), HU_PROMPT_MAH = HU_PROMPT_UNITS_BASE+(UNIT_MAH*2), HU_PROMPT_WATTS = HU_PROMPT_UNITS_BASE+(UNIT_WATTS*2), - HU_PROMPT_DB = HU_PROMPT_UNITS_BASE+(UNIT_DBM*2), + HU_PROMPT_DB = HU_PROMPT_UNITS_BASE+(UNIT_DB*2), HU_PROMPT_FEET = HU_PROMPT_UNITS_BASE+(UNIT_FEET*2), HU_PROMPT_MPH = HU_PROMPT_UNITS_BASE+(UNIT_KTS*2), HU_PROMPT_HOURS = HU_PROMPT_UNITS_BASE+(UNIT_HOURS*2), diff --git a/radio/src/translations/tts_pl.cpp b/radio/src/translations/tts_pl.cpp index 43712dba5..b605552fa 100644 --- a/radio/src/translations/tts_pl.cpp +++ b/radio/src/translations/tts_pl.cpp @@ -50,7 +50,7 @@ enum PolishPrompts { PL_PROMPT_MILLIAMPS = PL_PROMPT_UNITS_BASE+(UNIT_MILLIAMPS*4), PL_PROMPT_MAH = PL_PROMPT_UNITS_BASE+(UNIT_MAH*4), PL_PROMPT_WATTS = PL_PROMPT_UNITS_BASE+(UNIT_WATTS*4), - PL_PROMPT_DB = PL_PROMPT_UNITS_BASE+(UNIT_DBM*4), + PL_PROMPT_DB = PL_PROMPT_UNITS_BASE+(UNIT_DB*4), PL_PROMPT_FEET = PL_PROMPT_UNITS_BASE+(UNIT_FEET*4), PL_PROMPT_KTS = PL_PROMPT_UNITS_BASE+(UNIT_KTS*4), PL_PROMPT_HOURS = PL_PROMPT_UNITS_BASE+(UNIT_HOURS*4), diff --git a/radio/src/translations/tts_se.cpp b/radio/src/translations/tts_se.cpp index e817f4267..8d238720d 100644 --- a/radio/src/translations/tts_se.cpp +++ b/radio/src/translations/tts_se.cpp @@ -58,7 +58,7 @@ enum SwedishPrompts { SE_PROMPT_MILLIAMPS = SE_PROMPT_UNITS_BASE+(UNIT_MILLIAMPS*2), SE_PROMPT_MAH = SE_PROMPT_UNITS_BASE+(UNIT_MAH*2), SE_PROMPT_WATTS = SE_PROMPT_UNITS_BASE+(UNIT_WATTS*2), - SE_PROMPT_DB = SE_PROMPT_UNITS_BASE+(UNIT_DBM*2), + SE_PROMPT_DB = SE_PROMPT_UNITS_BASE+(UNIT_DB*2), SE_PROMPT_FEET = SE_PROMPT_UNITS_BASE+(UNIT_FEET*2), SE_PROMPT_KTS = SE_PROMPT_UNITS_BASE+(UNIT_KTS*2), SE_PROMPT_HOURS = SE_PROMPT_UNITS_BASE+(UNIT_HOURS*2), diff --git a/radio/src/translations/tts_sk.cpp b/radio/src/translations/tts_sk.cpp index 83732a94b..056454769 100644 --- a/radio/src/translations/tts_sk.cpp +++ b/radio/src/translations/tts_sk.cpp @@ -63,7 +63,7 @@ enum SlovakPrompts { SK_PROMPT_MILLIAMPS = SK_PROMPT_UNITS_BASE+(UNIT_MILLIAMPS*4), SK_PROMPT_MAH = SK_PROMPT_UNITS_BASE+(UNIT_MAH*4), SK_PROMPT_WATTS = SK_PROMPT_UNITS_BASE+(UNIT_WATTS*4), - SK_PROMPT_DB = SK_PROMPT_UNITS_BASE+(UNIT_DBM*4), + SK_PROMPT_DB = SK_PROMPT_UNITS_BASE+(UNIT_DB*4), SK_PROMPT_FEET = SK_PROMPT_UNITS_BASE+(UNIT_FEET*4), SK_PROMPT_KTS = SK_PROMPT_UNITS_BASE+(UNIT_KTS*4), SK_PROMPT_HOURS = SK_PROMPT_UNITS_BASE+(UNIT_HOURS*4),