diff --git a/companion/src/CMakeLists.txt b/companion/src/CMakeLists.txt
index 016d962a6..f33f430ad 100644
--- a/companion/src/CMakeLists.txt
+++ b/companion/src/CMakeLists.txt
@@ -24,8 +24,6 @@ set(COMPANION_OSX_APP_BUNDLE_NAME "OpenTX Companion ${VERSION_MAJOR}.${VERSION_M
# On OS X we copy dfu-util to the application bundle. This the path from which we copy
# the binary (default homebrew path)
set(DFU_UTIL_PATH "/usr/local/bin/dfu-util")
-set(AVRDUDE_PATH "/usr/local/bin/avrdude")
-set(AVRDUDE_CONF "/usr/local/etc/avrdude.conf")
option(ALLOW_NIGHTLY_BUILDS "Allow nightly builds download / update") # Disabled by default
if(ALLOW_NIGHTLY_BUILDS)
@@ -239,7 +237,6 @@ set(companion_SRCS
flasheepromdialog.cpp
printdialog.cpp
modelprinter.cpp
- fusesdialog.cpp
logsdialog.cpp
downloaddialog.cpp
splashlibrarydialog.cpp
@@ -259,7 +256,6 @@ set(companion_MOC_HDRS
burnconfigdialog.h
comparedialog.h
printdialog.h
- fusesdialog.h
logsdialog.h
creditsdialog.h
releasenotesdialog.h
@@ -291,7 +287,6 @@ set(companion_MOC_HDRS
set(companion_UIS
mdichild.ui
comparedialog.ui
- fusesdialog.ui
logsdialog.ui
apppreferencesdialog.ui
fwpreferencesdialog.ui
@@ -407,7 +402,7 @@ elseif(WIN32)
install(TARGETS ${SIMULATOR_NAME} DESTINATION ${INSTALL_DESTINATION})
install(FILES ${simulator_plugins} DESTINATION "${INSTALL_DESTINATION}")
# supporting utilities
- set(INSTALL_TEMP_FILES avrdude.exe avrdude.conf dfu-util.exe libusb0.dll libusb-1.0.dll license.txt)
+ set(INSTALL_TEMP_FILES dfu-util.exe libusb0.dll libusb-1.0.dll license.txt)
foreach(tmpfile ${INSTALL_TEMP_FILES})
install(FILES "${COMPANION_SRC_DIRECTORY}/../targets/windows/${tmpfile}" DESTINATION ${INSTALL_DESTINATION})
endforeach()
@@ -554,14 +549,11 @@ IF(APPLE)
set(${COMPANION_SOURCES} ${COMPANION_SOURCES} ${PROJECT_SOURCE_DIR}/images/${MACOSX_BUNDLE_ICON_FILE})
install(FILES ${MAC_ICON_FILE} DESTINATION ${companion_res_dir} COMPONENT Runtime)
- # Copy dfu-util and avrdude, resolve symlink first
+ # Copy dfu-util, resolve symlink first
get_filename_component(DFU_UTIL_ABSOLUTE_PATH ${DFU_UTIL_PATH} REALPATH)
- get_filename_component(AVRDUDE_ABSOLUTE_PATH ${AVRDUDE_PATH} REALPATH)
- get_filename_component(AVRDUDECONF_ABSOLUTE_PATH ${AVRDUDE_CONF} REALPATH)
- install(PROGRAMS ${DFU_UTIL_ABSOLUTE_PATH} ${AVRDUDE_ABSOLUTE_PATH} DESTINATION ${companion_res_dir} COMPONENT Runtime)
- install(FILES ${AVRDUDECONF_ABSOLUTE_PATH} DESTINATION ${companion_res_dir} COMPONENT Runtime)
+ install(PROGRAMS ${DFU_UTIL_ABSOLUTE_PATH} DESTINATION ${companion_res_dir} COMPONENT Runtime)
- set(bundle_tools_path "\${CMAKE_INSTALL_PREFIX}/${companion_res_dir}/dfu-util;\${CMAKE_INSTALL_PREFIX}/${companion_res_dir}/avrdude")
+ set(bundle_tools_path "\${CMAKE_INSTALL_PREFIX}/${companion_res_dir}/dfu-util;")
# Include depencies (adding frameworks, fixing the embbeded libraries)
diff --git a/companion/src/burnconfigdialog.cpp b/companion/src/burnconfigdialog.cpp
index 0fe22be03..43a60c7ea 100644
--- a/companion/src/burnconfigdialog.cpp
+++ b/companion/src/burnconfigdialog.cpp
@@ -36,61 +36,23 @@ burnConfigDialog::burnConfigDialog(QWidget *parent) :
{
ui->setupUi(this);
setWindowIcon(CompanionIcon("configure.png"));
- ui->avrdude_programmer->model()->sort(0);
getSettings();
- populateProgrammers();
Board::Type board = getCurrentBoard();
if (IS_STM32(board)) {
setWindowTitle(tr("DFU-UTIL Configuration"));
- ui->avrArgs->hide();
- ui->avrdude_location->hide();
- ui->avrdude_port->hide();
- ui->avrdude_programmer->hide();
- ui->label_av1->hide();
- ui->label_av2->hide();
- ui->label_av4->hide();
- ui->label_av5->hide();
- ui->pushButton->hide();
- ui->pushButton_3->hide();
- ui->pushButton_4->hide();
ui->label_sb1->hide();
ui->label_sb3->hide();
ui->samba_location->hide();
ui->samba_port->hide();
ui->sb_browse->hide();
}
- else if (IS_SKY9X(board)) {
- setWindowTitle(tr("SAM-BA Configuration"));
- ui->avrArgs->hide();
- ui->avrdude_location->hide();
- ui->avrdude_port->hide();
- ui->avrdude_programmer->hide();
- ui->label_av1->hide();
- ui->label_av2->hide();
- ui->label_av4->hide();
- ui->label_av5->hide();
- ui->pushButton->hide();
- ui->pushButton_3->hide();
- ui->pushButton_4->hide();
- ui->label_dfu1->hide();
- ui->dfu_location->hide();
- ui->dfu_browse->hide();
- }
else {
- setWindowTitle(tr("AVRDUDE Configuration"));
- ui->label_sb1->hide();
- ui->label_sb3->hide();
- ui->samba_location->hide();
- ui->samba_port->hide();
- ui->sb_browse->hide();
+ setWindowTitle(tr("SAM-BA Configuration"));
ui->label_dfu1->hide();
- ui->label_dfu2->hide();
ui->dfu_location->hide();
ui->dfu_browse->hide();
}
- ui->label_av3->hide();
- ui->avrdude_mcu->hide();
ui->label_sb2->hide();
ui->arm_mcu->hide();
ui->label_dfu2->hide();
@@ -105,46 +67,26 @@ burnConfigDialog::~burnConfigDialog()
delete ui;
}
-QStringList burnConfigDialog::getAvrdudeArgs()
-{
- QStringList args = avrArgs;
- if (!avrPort.isEmpty())
- args << "-P" << avrPort;
-
-#if defined(__APPLE__)
- args << "-C" << QFileInfo(QApplication::applicationDirPath() + "/../Resources/avrdude.conf").absoluteFilePath();
-#endif
- return args;
-}
void burnConfigDialog::getSettings()
{
- avrLoc = g.avrdudeLocation();
sambaLoc = g.sambaLocation();
dfuLoc = g.dfuLocation();
#if defined WIN32 || !defined __GNUC__
- if ( avrLoc.isEmpty())
- avrLoc = QFileInfo("avrdude.exe").absoluteFilePath();
if ( sambaLoc.isEmpty())
sambaLoc = QFileInfo("sam-ba.exe").absoluteFilePath();
if ( dfuLoc.isEmpty())
dfuLoc = QFileInfo("dfu-util.exe").absoluteFilePath();
#elif defined __APPLE__
- if ( avrLoc.isEmpty())
- avrLoc = QFileInfo(QApplication::applicationDirPath() + "/../Resources/avrdude").absoluteFilePath();
if ( sambaLoc.isEmpty())
sambaLoc = "/usr/local/bin/sam-ba";
if ( dfuLoc.isEmpty())
dfuLoc = QFileInfo(QApplication::applicationDirPath() + "/../Resources/dfu-util").absoluteFilePath();
#elif defined __FreeBSD__
- if (avrLoc.isEmpty())
- avrLoc = "/usr/local/bin/avrdude";
if (dfuLoc.isEmpty())
dfuLoc = "/usr/local/bin/dfu-util";
#else
- if ( avrLoc.isEmpty())
- avrLoc = "/usr/bin/avrdude";
if ( sambaLoc.isEmpty())
sambaLoc = "/usr/bin/sam-ba";
if ( dfuLoc.isEmpty())
@@ -152,45 +94,22 @@ void burnConfigDialog::getSettings()
#endif
dfuArgs = g.dfuArguments().split(" ", QString::SkipEmptyParts);
- avrArgs = g.avrArguments().split(" ", QString::SkipEmptyParts);
- avrProgrammer = g.programmer();
- avrPort = g.avrPort();
- avrMCU = g.mcu();
armMCU = g.armMcu();
sambaPort = g.sambaPort();
- ui->avrdude_location->setText(getAVRDUDE());
- ui->avrArgs->setText(avrArgs.join(" "));
-
ui->samba_location->setText(getSAMBA());
ui->samba_port->setText(getSambaPort());
ui->dfu_location->setText(getDFU());
ui->dfuArgs->setText(getDFUArgs().join(" "));
- int idx1 = ui->avrdude_programmer->findText(getProgrammer());
- int idx2 = ui->avrdude_port->findText(getPort());
- int idx3 = ui->avrdude_mcu->findText(getMCU());
int idx4 = ui->arm_mcu->findText(getArmMCU());
- if(idx1>=0) ui->avrdude_programmer->setCurrentIndex(idx1);
- if(idx2>=0) ui->avrdude_port->setCurrentIndex(idx2);
- if(idx3>=0) ui->avrdude_mcu->setCurrentIndex(idx3);
if(idx4>=0) ui->arm_mcu->setCurrentIndex(idx4);
QFile file;
- if (file.exists(avrLoc)) {
- ui->pushButton_3->setEnabled(true);
- } else {
- ui->pushButton_3->setDisabled(true);
- }
}
void burnConfigDialog::putSettings()
{
- g.avrdudeLocation( avrLoc );
- g.programmer( avrProgrammer);
- g.mcu( avrMCU );
- g.avrPort( avrPort );
- g.avrArguments( avrArgs.join(" ") );
g.sambaLocation( sambaLoc );
g.sambaPort( sambaPort );
g.armMcu( armMCU );
@@ -198,73 +117,6 @@ void burnConfigDialog::putSettings()
g.dfuArguments( dfuArgs.join(" ") );
}
-void burnConfigDialog::populateProgrammers()
-{
- QString fileName = QFileInfo(avrLoc).canonicalPath() + "/avrdude.conf"; //for windows
- if(!QFileInfo(fileName).exists()) fileName = "/etc/avrdude.conf"; //for linux
- if(!QFileInfo(fileName).exists()) fileName = "/etc/avrdude/avrdude.conf"; //for linux
- if(!QFileInfo(fileName).exists()) return; // not found avrdude.conf - returning
-
- QFile file(fileName);
-
- if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) return;
-
- QStringList items;
- QString line = "";
- QString prevline = "";
- QTextStream in(&file);
- while (!in.atEnd())
- {
- prevline = line;
- line = in.readLine();
-
- if(prevline.left(10).toLower()=="programmer")
- items << line.section('"',1,1);
- }
- file.close();
-
- items.sort();
-
- QString avrProgrammer_temp = avrProgrammer;
- ui->avrdude_programmer->clear();
- ui->avrdude_programmer->addItems(items);
- int idx1 = ui->avrdude_programmer->findText(avrProgrammer_temp);
- if(idx1>=0) ui->avrdude_programmer->setCurrentIndex(idx1);
-}
-
-void burnConfigDialog::on_avrdude_programmer_currentIndexChanged(QString )
-{
- avrProgrammer = ui->avrdude_programmer->currentText();
-}
-
-void burnConfigDialog::on_avrdude_mcu_currentIndexChanged(QString )
-{
- avrMCU = ui->avrdude_mcu->currentText();
-}
-
-void burnConfigDialog::on_avrdude_location_editingFinished()
-{
- avrLoc = ui->avrdude_location->text();
- if (avrLoc.isEmpty()) {
- ui->pushButton_3->setDisabled(true);
- } else {
- QFile file;
- if (file.exists(avrLoc)) {
- ui->pushButton_3->setEnabled(true);
- }
- }
-}
-
-void burnConfigDialog::on_avrArgs_editingFinished()
-{
- avrArgs = ui->avrArgs->text().split(" ", QString::SkipEmptyParts);
-}
-
-void burnConfigDialog::on_avrdude_port_currentIndexChanged(QString )
-{
- avrPort = ui->avrdude_port->currentText();
-}
-
void burnConfigDialog::on_samba_location_editingFinished()
{
sambaLoc = ui->samba_location->text();
@@ -280,17 +132,6 @@ void burnConfigDialog::on_arm_mcu_currentIndexChanged(QString )
armMCU = ui->arm_mcu->currentText();
}
-void burnConfigDialog::on_pushButton_clicked()
-{
- QString fileName = QFileDialog::getOpenFileName(this, tr("Select Location"),ui->avrdude_location->text());
-
- if(!fileName.isEmpty())
- {
- ui->avrdude_location->setText(fileName);
- avrLoc = fileName;
- }
-}
-
void burnConfigDialog::on_sb_browse_clicked()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("Select Location"),ui->samba_location->text());
@@ -322,27 +163,6 @@ void burnConfigDialog::on_dfuArgs_editingFinished()
dfuArgs = ui->dfuArgs->text().split(" ", QString::SkipEmptyParts);
}
-void burnConfigDialog::listAvrdudeProgrammers()
-{
- ProgressDialog progressDialog(this, tr("List available programmers"), CompanionIcon("list.png"), true);
- FlashProcess flashProcess(ui->avrdude_location->text(), QStringList() << "-c?", progressDialog.progress());
- flashProcess.run();
-}
-
-// TODO choose better name when no merge in progress....
-void burnConfigDialog::on_pushButton_3_clicked()
-{
- listAvrdudeProgrammers();
-}
-
-// TODO choose better name when no merge in progress....
-void burnConfigDialog::on_pushButton_4_clicked()
-{
- ProgressDialog progressDialog(this, tr("Avrdude help"), CompanionIcon("configure.png"), true);
- FlashProcess flashProcess(ui->avrdude_location->text(), QStringList() << "-?", progressDialog.progress());
- flashProcess.run();
-}
-
void burnConfigDialog::on_advCtrChkB_toggled(bool checked)
{
Board::Type board = getCurrentBoard();
@@ -351,31 +171,20 @@ void burnConfigDialog::on_advCtrChkB_toggled(bool checked)
ui->label_dfu2->show();
ui->dfuArgs->show();
}
- else if (IS_SKY9X(board)) {
+ else {
ui->label_sb2->show();
ui->arm_mcu->show();
}
- else {
- ui->label_av3->show();
- ui->avrdude_mcu->show();
- QMessageBox::warning(this, CPN_STR_APP_NAME,
- tr("WARNING!
Normally CPU type is automatically selected according to the chosen firmware.
If you change the CPU type the resulting eeprom could be inconsistent."),
- QMessageBox::Ok);
- }
}
else {
if (IS_STM32(board)) {
ui->label_dfu2->hide();
ui->dfuArgs->hide();
}
- else if (IS_SKY9X(board)) {
+ else {
ui->label_sb2->hide();
ui->arm_mcu->hide();
}
- else {
- ui->label_av3->hide();
- ui->avrdude_mcu->hide();
- }
}
QTimer::singleShot(0, this, SLOT(shrink()));
}
diff --git a/companion/src/burnconfigdialog.h b/companion/src/burnconfigdialog.h
index 5cf7bb375..06810bbd2 100644
--- a/companion/src/burnconfigdialog.h
+++ b/companion/src/burnconfigdialog.h
@@ -39,45 +39,25 @@ public:
burnConfigDialog(QWidget *parent = 0);
~burnConfigDialog();
- QString getAVRDUDE() {return avrLoc;}
QString getSAMBA() {return sambaLoc;}
QString getDFU() {return dfuLoc;}
- QStringList getAvrdudeArgs();
QStringList getDFUArgs() {return dfuArgs;}
- QString getProgrammer() {return avrProgrammer;}
- QString getMCU() {return avrMCU;}
QString getArmMCU() {return armMCU;}
- QString getPort() {return avrPort;}
QString getSambaPort() {return sambaPort;}
- void listAvrdudeProgrammers();
-
private:
Ui::burnConfigDialog *ui;
void populateProgrammers();
- QString avrLoc;
QString sambaLoc;
QString dfuLoc;
- QStringList avrArgs;
- QString avrProgrammer;
- QString avrMCU;
QString armMCU;
- QString avrPort;
QString sambaPort;
QStringList dfuArgs;
private slots:
void shrink();
- void on_avrArgs_editingFinished();
- void on_pushButton_4_clicked();
- void on_pushButton_3_clicked();
- void on_pushButton_clicked();
- void on_avrdude_location_editingFinished();
- void on_avrdude_programmer_currentIndexChanged(QString );
- void on_avrdude_mcu_currentIndexChanged(QString );
- void on_avrdude_port_currentIndexChanged(QString );
void on_samba_location_editingFinished();
void on_samba_port_editingFinished();
void on_arm_mcu_currentIndexChanged(QString );
diff --git a/companion/src/burnconfigdialog.ui b/companion/src/burnconfigdialog.ui
index 36d343884..e52aaf797 100644
--- a/companion/src/burnconfigdialog.ui
+++ b/companion/src/burnconfigdialog.ui
@@ -45,615 +45,7 @@
-
-
-
-
-
- Location of sam-ba executable
-
-
- The location of the AVRDUDE executable.
-
-
- dfu-util
-
-
-
- -
-
-
- DFU-Util Location
-
-
-
- -
-
-
- Location of AVRDUDE executable
-
-
- The location of the AVRDUDE executable.
-
-
-
-
-
-
- -
-
-
- Use this button to browse and look for the AVRDUDE executable file.
-
-
- Browse...
-
-
-
- -
-
-
- Programmer
-
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
-
-
-
- -
-
-
- Programmer used for communicating with the controller.
-Please consult the programmer's documentation and the AVRDUDE documentation to select the appropriate programmer.
-
-
- QComboBox::InsertAlphabetically
-
-
-
-
- c2n232i
-
-
- -
-
- dasa3
-
-
- -
-
- dasa
-
-
- -
-
- siprog
-
-
- -
-
- ponyser
-
-
- -
-
- 89isp
-
-
- -
-
- frank-stk200
-
-
- -
-
- blaster
-
-
- -
-
- ere-isp-avr
-
-
- -
-
- atisp
-
-
- -
-
- dapa
-
-
- -
-
- xil
-
-
- -
-
- futurlec
-
-
- -
-
- abcmini
-
-
- -
-
- picoweb
-
-
- -
-
- sp12
-
-
- -
-
- alf
-
-
- -
-
- bascom
-
-
- -
-
- dt006
-
-
- -
-
- pony-stk200
-
-
- -
-
- stk200
-
-
- -
-
- bsd
-
-
- -
-
- pavr
-
-
- -
-
- dragon_pdi
-
-
- -
-
- dragon_dw
-
-
- -
-
- dragon_hvsp
-
-
- -
-
- dragon_pp
-
-
- -
-
- dragon_isp
-
-
- -
-
- dragon_jtag
-
-
- -
-
- jtag2pdi
-
-
- -
-
- jtag2avr32
-
-
- -
-
- jtagmkII_avr32
-
-
- -
-
- jtag2dw
-
-
- -
-
- jtag2isp
-
-
- -
-
- jtag2
-
-
- -
-
- jtag2fast
-
-
- -
-
- jtag2slow
-
-
- -
-
- jtagmkII
-
-
- -
-
- jtag1slow
-
-
- -
-
- jtag1
-
-
- -
-
- jtagmkI
-
-
- -
-
- avr911
-
-
- -
-
- avr109
-
-
- -
-
- butterfly
-
-
- -
-
- usbtiny
-
-
- -
-
- usbasp
-
-
- -
-
- avr910
-
-
- -
-
- stk600hvsp
-
-
- -
-
- stk600pp
-
-
- -
-
- stk600
-
-
- -
-
- stk500hvsp
-
-
- -
-
- stk500pp
-
-
- -
-
- stk500v2
-
-
- -
-
- mib510
-
-
- -
-
- stk500v1
-
-
- -
-
- stk500
-
-
- -
-
- buspirate
-
-
- -
-
- avrisp2
-
-
- -
-
- avrispmkII
-
-
- -
-
- avrispv2
-
-
- -
-
- avrisp
-
-
- -
-
- arduino
-
-
-
-
- -
-
-
- List all available programmers.
-
-
- List Available
-
-
-
- -
-
-
- Extra arguments that will be passed to AVRDUDE on every call
-
-
- Extra arguments used in AVRDUDE.
-This can be used for providing extra information to AVRDUDE.
-
-Please only use this if you know what you are doing. There are no error checks and you could cripple your controller.
-
-
-
-
-
-
- -
-
-
- Extra Arguments
-
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
-
-
-
- -
-
-
- Show AVRDUDE help
-
-
- Show Help
-
-
-
- -
-
-
- Communication port to the programmer.
-
-
-
-
-
-
-
-
- -
-
- usb
-
-
- -
-
- com1
-
-
- -
-
- com2
-
-
- -
-
- com3
-
-
- -
-
- com4
-
-
- -
-
- com5
-
-
- -
-
- com6
-
-
- -
-
- com7
-
-
- -
-
- com8
-
-
- -
-
- com9
-
-
- -
-
- com10
-
-
- -
-
- com11
-
-
- -
-
- com12
-
-
- -
-
- com13
-
-
- -
-
- com14
-
-
- -
-
- com15
-
-
- -
-
- lpt1
-
-
- -
-
- lpt2
-
-
- -
-
- lpt3
-
-
- -
-
- lpt4
-
-
- -
-
- avrdoper
-
-
- -
-
- /dev/ttyUSB0
-
-
- -
-
- /dev/ttyUSB1
-
-
-
-
- -
-
-
- Port
-
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
-
-
-
- -
-
-
- AVRDUDE Location
-
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
-
-
-
- -
-
-
- MCU
-
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
-
-
-
- -
-
-
- CPU of your TX
-
-
- CPU present on your 9x radio
-Should be m64 for stock radios
-m2560 for v4.1 boards
-
-
- QComboBox::InsertAlphabetically
-
-
-
-
- m64
-
-
- -
-
- m128
-
-
- -
-
- m2560
-
-
-
-
- -
+
-
CPU of your TX
@@ -678,7 +70,27 @@ m2560 for v4.1 boards
- -
+
-
+
+
+ Location of sam-ba executable
+
+
+ The location of the AVRDUDE executable.
+
+
+ dfu-util
+
+
+
+ -
+
+
+ DFU-Util Location
+
+
+
+ -
SAM-BA Location
@@ -688,7 +100,7 @@ m2560 for v4.1 boards
- -
+
-
Location of sam-ba executable
@@ -701,7 +113,7 @@ m2560 for v4.1 boards
- -
+
-
ARM MCU
@@ -711,7 +123,7 @@ m2560 for v4.1 boards
- -
+
-
Port
@@ -721,7 +133,7 @@ m2560 for v4.1 boards
- -
+
-
sam-ba serial port
@@ -734,14 +146,14 @@ m2560 for v4.1 boards
- -
+
-
Alternate device
- -
+
-
Extra arguments that will be passed to AVRDUDE on every call
@@ -757,7 +169,7 @@ Please only use this if you know what you are doing. There are no error checks
- -
+
-
Use this button to browse and look for the AVRDUDE executable file.
@@ -767,7 +179,7 @@ Please only use this if you know what you are doing. There are no error checks
- -
+
-
Use this button to browse and look for the AVRDUDE executable file.
@@ -777,14 +189,14 @@ Please only use this if you know what you are doing. There are no error checks
- -
+
-
- -
+
-
Use advanced controls
@@ -809,14 +221,6 @@ Please only use this if you know what you are doing. There are no error checks
- avrdude_location
- pushButton
- avrdude_programmer
- pushButton_3
- avrdude_mcu
- avrdude_port
- avrArgs
- pushButton_4
samba_location
sb_browse
arm_mcu
diff --git a/companion/src/firmwares/CMakeLists.txt b/companion/src/firmwares/CMakeLists.txt
index 48e6394bc..1b99964fa 100644
--- a/companion/src/firmwares/CMakeLists.txt
+++ b/companion/src/firmwares/CMakeLists.txt
@@ -19,8 +19,6 @@ set(firmwares_SRCS
sensordata.cpp
telem_data.cpp
afhds3.cpp
- er9x/er9xeeprom.cpp
- er9x/er9xinterface.cpp
ersky9x/ersky9xeeprom.cpp
ersky9x/ersky9xinterface.cpp
opentx/opentxeeprom.cpp
diff --git a/companion/src/firmwares/boards.cpp b/companion/src/firmwares/boards.cpp
index cfadf5936..a189e16c8 100644
--- a/companion/src/firmwares/boards.cpp
+++ b/companion/src/firmwares/boards.cpp
@@ -25,18 +25,13 @@
// Update: These are now all only used within this class.
// External access is only via getEEpromSize() and getFlashSize()
-#define EESIZE_STOCK 2048
-#define EESIZE_M128 4096
-#define EESIZE_GRUVIN9X 4096
#define EESIZE_TARANIS (32*1024)
#define EESIZE_SKY9X (128*4096)
#define EESIZE_9XRPRO (128*4096)
#define EESIZE_MAX EESIZE_9XRPRO
// getFlashSize() (and these macros) is only used by radiointerface::getDfuArgs (perhaps can find a better way?)
-#define FSIZE_STOCK (64*1024)
-#define FSIZE_M128 (128*1024)
-#define FSIZE_GRUVIN9X (256*1024)
+
#define FSIZE_TARANIS (512*1024)
#define FSIZE_SKY9X (256*1024)
#define FSIZE_9XRPRO (512*1024)
@@ -82,12 +77,6 @@ uint32_t Boards::getFourCC(Type board)
case BOARD_AR9X:
case BOARD_9XRPRO:
return 0x3278746F;
- case BOARD_MEGA2560:
- case BOARD_GRUVIN9X:
- return 0x3178746F;
- case BOARD_9X_M64:
- case BOARD_9X_M128:
- return 0;
case BOARD_JUMPER_T12:
return 0x3D78746F;
case BOARD_JUMPER_T16:
@@ -104,13 +93,6 @@ uint32_t Boards::getFourCC(Type board)
int Boards::getEEpromSize(Board::Type board)
{
switch (board) {
- case BOARD_9X_M64:
- return EESIZE_STOCK;
- case BOARD_9X_M128:
- return EESIZE_M128;
- case BOARD_MEGA2560:
- case BOARD_GRUVIN9X:
- return EESIZE_GRUVIN9X;
case BOARD_SKY9X:
return EESIZE_SKY9X;
case BOARD_9XRPRO:
@@ -144,13 +126,6 @@ int Boards::getEEpromSize(Board::Type board)
int Boards::getFlashSize(Type board)
{
switch (board) {
- case BOARD_9X_M64:
- return FSIZE_STOCK;
- case BOARD_9X_M128:
- return FSIZE_M128;
- case BOARD_MEGA2560:
- case BOARD_GRUVIN9X:
- return FSIZE_GRUVIN9X;
case BOARD_SKY9X:
return FSIZE_SKY9X;
case BOARD_9XRPRO:
@@ -412,7 +387,7 @@ QString Boards::getAnalogInputName(Board::Type board, int index)
index -= getCapability(board, Board::Sticks);
- if (IS_9X(board) || IS_2560(board) || IS_SKY9X(board)) {
+ if (IS_SKY9X(board)) {
const QString pots[] = {
"P1",
"P2",
@@ -496,14 +471,6 @@ bool Boards::isBoardCompatible(Type board1, Type board2)
QString Boards::getBoardName(Board::Type board)
{
switch (board) {
- case BOARD_9X_M64:
- return "9X";
- case BOARD_9X_M128:
- return "9X128";
- case BOARD_GRUVIN9X:
- return "Gruvin9x";
- case BOARD_MEGA2560:
- return "MEGA2560";
case BOARD_TARANIS_X7:
return "Taranis X7/X7S";
case BOARD_TARANIS_X7_ACCESS:
diff --git a/companion/src/firmwares/boards.h b/companion/src/firmwares/boards.h
index e4149a298..937703eda 100644
--- a/companion/src/firmwares/boards.h
+++ b/companion/src/firmwares/boards.h
@@ -32,10 +32,6 @@ namespace Board {
enum Type
{
BOARD_UNKNOWN = -1,
- BOARD_9X_M64 = 0,
- BOARD_9X_M128,
- BOARD_MEGA2560,
- BOARD_GRUVIN9X,
BOARD_SKY9X,
BOARD_9XRPRO,
BOARD_AR9X,
@@ -191,26 +187,6 @@ class Boards
// temporary aliases for transition period, use Boards class instead.
#define getBoardCapability(b__, c__) Boards::getCapability(b__, c__)
-inline bool IS_9X(Board::Type board)
-{
- return board == Board::BOARD_9X_M64 || board == Board::BOARD_9X_M128;
-}
-
-inline bool IS_STOCK(Board::Type board)
-{
- return board == Board::BOARD_9X_M64;
-}
-
-inline bool IS_M128(Board::Type board)
-{
- return board == Board::BOARD_9X_M128;
-}
-
-inline bool IS_2560(Board::Type board)
-{
- return board == Board::BOARD_GRUVIN9X || board == Board::BOARD_MEGA2560;
-}
-
inline bool IS_SKY9X(Board::Type board)
{
return board == Board::BOARD_SKY9X || board == Board::BOARD_9XRPRO || board == Board::BOARD_AR9X;
diff --git a/companion/src/firmwares/customfunctiondata.cpp b/companion/src/firmwares/customfunctiondata.cpp
index 9313ace5a..3248f1fa4 100644
--- a/companion/src/firmwares/customfunctiondata.cpp
+++ b/companion/src/firmwares/customfunctiondata.cpp
@@ -112,13 +112,10 @@ void CustomFunctionData::populateResetParams(const ModelData * model, QComboBox
{
int val = 0;
Firmware * firmware = Firmware::getCurrentVariant();
- Board::Type board = firmware->getBoard();
b->addItem(tr("Timer1"), val++);
b->addItem(tr("Timer2"), val++);
- if (IS_ARM(board)) {
- b->addItem( tr("Timer3"), val++);
- }
+ b->addItem( tr("Timer3"), val++);
b->addItem(tr("Flight"), val++);
b->addItem(tr("Telemetry"), val++);
int reCount = firmware->getCapability(RotaryEncoders);
@@ -132,7 +129,7 @@ void CustomFunctionData::populateResetParams(const ModelData * model, QComboBox
if ((int)value < b->count()) {
b->setCurrentIndex(value);
}
- if (model && IS_ARM(board)) {
+ if (model) {
for (unsigned i=0; isensorData[i].isAvailable()) {
RawSource item = RawSource(SOURCE_TYPE_TELEMETRY, 3*i);
@@ -210,14 +207,8 @@ QString CustomFunctionData::paramToString(const ModelData * model) const
case FUNC_ADJUST_GVAR_INCDEC:
float val;
QString unit;
- if (IS_ARM(getCurrentBoard())) {
- val = param * model->gvarData[func - FuncAdjustGV1].multiplierGet();
- unit = model->gvarData[func - FuncAdjustGV1].unitToString();
- }
- else {
- val = param;
- unit = "";
- }
+ val = param * model->gvarData[func - FuncAdjustGV1].multiplierGet();
+ unit = model->gvarData[func - FuncAdjustGV1].unitToString();
return QString("Increment: %1%2").arg(val).arg(unit);
}
}
@@ -233,7 +224,7 @@ QString CustomFunctionData::repeatToString() const
return "";
}
else {
- unsigned int step = IS_ARM(getCurrentBoard()) ? 1 : 10;
+ unsigned int step = 1;
return tr("repeat(%1s)").arg(step*repeatParam);
}
}
diff --git a/companion/src/firmwares/eeprominterface.cpp b/companion/src/firmwares/eeprominterface.cpp
index d4121a8a4..90272d0ad 100644
--- a/companion/src/firmwares/eeprominterface.cpp
+++ b/companion/src/firmwares/eeprominterface.cpp
@@ -75,10 +75,7 @@ void EEPROMInterface::showEepromErrors(QWidget *parent, const QString &title, co
if (errors.test(UNSUPPORTED_NEWER_VERSION)) { errorsList << tr("- Eeprom is from a newer version of OpenTX"); }
if (errors.test(NOT_OPENTX)) { errorsList << tr("- Eeprom is not from OpenTX"); }
- if (errors.test(NOT_TH9X)) { errorsList << tr("- Eeprom is not from Th9X"); }
- if (errors.test(NOT_GRUVIN9X)) { errorsList << tr("- Eeprom is not from Gruvin9X"); }
if (errors.test(NOT_ERSKY9X)) { errorsList << tr("- Eeprom is not from ErSky9X"); }
- if (errors.test(NOT_ER9X)) { errorsList << tr("- Eeprom is not from Er9X"); }
if (errors.test(WRONG_SIZE)) { errorsList << tr("- Eeprom size is invalid"); }
if (errors.test(WRONG_FILE_SYSTEM)) { errorsList << tr("- Eeprom file system is invalid"); }
if (errors.test(UNKNOWN_BOARD)) { errorsList << tr("- Eeprom is from a unknown board"); }
diff --git a/companion/src/firmwares/eeprominterface.h b/companion/src/firmwares/eeprominterface.h
index c2bf0dafa..b3680b4ba 100644
--- a/companion/src/firmwares/eeprominterface.h
+++ b/companion/src/firmwares/eeprominterface.h
@@ -235,10 +235,7 @@ enum EepromLoadErrors {
WRONG_SIZE,
WRONG_FILE_SYSTEM,
NOT_OPENTX,
- NOT_TH9X,
- NOT_GRUVIN9X,
NOT_ERSKY9X,
- NOT_ER9X,
UNKNOWN_BOARD,
WRONG_BOARD,
BACKUP_NOT_SUPPORTED,
diff --git a/companion/src/firmwares/generalsettings.cpp b/companion/src/firmwares/generalsettings.cpp
index 9c38391c7..f307dbf26 100644
--- a/companion/src/firmwares/generalsettings.cpp
+++ b/companion/src/firmwares/generalsettings.cpp
@@ -110,9 +110,7 @@ GeneralSettings::GeneralSettings()
backlightOffBright = 20;
}
- if (IS_ARM(board)) {
- speakerVolume = 12;
- }
+ speakerVolume = 12;
if (IS_JUMPER_T16(board))
strcpy(bluetoothName, "t16");
diff --git a/companion/src/firmwares/modeldata.cpp b/companion/src/firmwares/modeldata.cpp
index 3386ba41d..3add6de8b 100644
--- a/companion/src/firmwares/modeldata.cpp
+++ b/companion/src/firmwares/modeldata.cpp
@@ -207,36 +207,25 @@ bool ModelData::isEmpty() const
void ModelData::setDefaultInputs(const GeneralSettings & settings)
{
- Board::Type board = getCurrentBoard();
- if (IS_ARM(board)) {
- for (int i = 0; i < CPN_MAX_STICKS; i++) {
- ExpoData * expo = &expoData[i];
- expo->chn = i;
- expo->mode = INPUT_MODE_BOTH;
- expo->srcRaw = settings.getDefaultSource(i);
- expo->weight = 100;
- strncpy(inputNames[i], Helpers::removeAccents(expo->srcRaw.toString(this)).toLatin1().constData(), sizeof(inputNames[i]) - 1);
- }
+ for (int i = 0; i < CPN_MAX_STICKS; i++) {
+ ExpoData * expo = &expoData[i];
+ expo->chn = i;
+ expo->mode = INPUT_MODE_BOTH;
+ expo->srcRaw = settings.getDefaultSource(i);
+ expo->weight = 100;
+ strncpy(inputNames[i], Helpers::removeAccents(expo->srcRaw.toString(this)).toLatin1().constData(), sizeof(inputNames[i]) - 1);
}
}
void ModelData::setDefaultMixes(const GeneralSettings & settings)
{
- Board::Type board = getCurrentBoard();
- if (IS_ARM(board)) {
- setDefaultInputs(settings);
- }
+ setDefaultInputs(settings);
for (int i = 0; i < CPN_MAX_STICKS; i++) {
MixData * mix = &mixData[i];
mix->destCh = i + 1;
mix->weight = 100;
- if (IS_ARM(board)) {
- mix->srcRaw = RawSource(SOURCE_TYPE_VIRTUAL_INPUT, i);
- }
- else {
- mix->srcRaw = RawSource(SOURCE_TYPE_STICK, i);
- }
+ mix->srcRaw = RawSource(SOURCE_TYPE_VIRTUAL_INPUT, i);
}
}
diff --git a/companion/src/firmwares/modeldata.h b/companion/src/firmwares/modeldata.h
index 93e98588e..df5c6d33d 100644
--- a/companion/src/firmwares/modeldata.h
+++ b/companion/src/firmwares/modeldata.h
@@ -41,13 +41,10 @@ class RadioDataConversionState;
class RSSIAlarmData {
public:
RSSIAlarmData() { clear(); }
- unsigned int level[2]; // AVR Only
int warning;
int critical;
bool disabled;
void clear() {
- this->level[0] = 2;
- this->level[1] = 3;
this->warning = 45;
this->critical = 42;
this->disabled = false;
diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp
index 119bbe396..8b0e8643d 100644
--- a/companion/src/firmwares/opentx/opentxeeprom.cpp
+++ b/companion/src/firmwares/opentx/opentxeeprom.cpp
@@ -721,13 +721,7 @@ class FlightModeField: public TransformedField {
trim = 501 + phase.trimRef[i] - (phase.trimRef[i] > index ? 1 : 0);
else
trim = std::max(-500, std::min(500, phase.trim[i]));
- if (board == BOARD_9X_M64 || (board == BOARD_9X_M128 && version >= 215)) {
- trimBase[i] = trim >> 2;
- trimExt[i] = (trim & 0x03);
- }
- else {
- trimBase[i] = trim;
- }
+ trimBase[i] = trim;
}
}
}
@@ -751,11 +745,7 @@ class FlightModeField: public TransformedField {
phase.trim[i] = 0;
}
else {
- int trim;
- if (board == BOARD_9X_M64 || (board == BOARD_9X_M128 && version >= 215))
- trim = ((trimBase[i]) << 2) + (trimExt[i] & 0x03);
- else
- trim = trimBase[i];
+ int trim = trimBase[i];
if (trim > 500) {
phase.trimRef[i] = trim - 501;
if (phase.trimRef[i] >= index)
diff --git a/companion/src/firmwares/opentx/opentxeeprom.h b/companion/src/firmwares/opentx/opentxeeprom.h
index ced4dccb6..29d5b0b93 100644
--- a/companion/src/firmwares/opentx/opentxeeprom.h
+++ b/companion/src/firmwares/opentx/opentxeeprom.h
@@ -37,9 +37,6 @@
#define TARANIS_X9LITES_VARIANT 0x0801
#define JUMPER_T12_VARIANT 0x4001
-#define SIMU_STOCK_VARIANTS (GVARS_VARIANT|FRSKY_VARIANT)
-#define SIMU_M128_VARIANTS (M128_VARIANT|SIMU_STOCK_VARIANTS)
-
class OpenTxGeneralData: public TransformedField {
public:
OpenTxGeneralData(GeneralSettings & generalData, Board::Type board, unsigned int version, unsigned int variant=0);
diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp
index c405f9699..f329d98bb 100644
--- a/companion/src/firmwares/opentx/opentxinterface.cpp
+++ b/companion/src/firmwares/opentx/opentxinterface.cpp
@@ -58,14 +58,6 @@ OpenTxEepromInterface::~OpenTxEepromInterface()
const char * OpenTxEepromInterface::getName()
{
switch (board) {
- case BOARD_9X_M64:
- return "OpenTX for 9X board";
- case BOARD_9X_M128:
- return "OpenTX for M128 / 9X board";
- case BOARD_MEGA2560:
- return "OpenTX for MEGA2560 board";
- case BOARD_GRUVIN9X:
- return "OpenTX for Gruvin9x board / 9X";
case BOARD_JUMPER_T12:
return "OpenTX for Jumper T12";
case BOARD_JUMPER_T16:
@@ -280,16 +272,7 @@ unsigned long OpenTxEepromInterface::load(RadioData &radioData, const uint8_t *
uint8_t OpenTxEepromInterface::getLastDataVersion(Board::Type board)
{
- switch (board) {
- case BOARD_9X_M64:
- return 216;
- case BOARD_GRUVIN9X:
- case BOARD_MEGA2560:
- case BOARD_9X_M128:
- return 217;
- default:
- return 219;
- }
+ return 219;
}
void OpenTxEepromInterface::showErrors(const QString & title, const QStringList & errors)
@@ -325,10 +308,7 @@ int OpenTxEepromInterface::save(uint8_t * eeprom, const RadioData & radioData, u
efile->EeFsCreate(eeprom, size, board, version);
- if (board == BOARD_9X_M128) {
- variant |= M128_VARIANT;
- }
- else if (IS_TARANIS_X9E(board)) {
+ if (IS_TARANIS_X9E(board)) {
variant |= TARANIS_X9E_VARIANT;
}
else if (IS_TARANIS_X9LITES(board)) {
@@ -445,43 +425,26 @@ int OpenTxFirmware::getCapability(::Capability capability)
case Models:
if (IS_FAMILY_HORUS_OR_T16(board))
return 0;
- else if (IS_ARM(board))
+ else
return 60;
- else if (board == BOARD_9X_M128)
- return 30;
- else if (IS_2560(board))
- return 30;
- else
- return 16;
case Imperial:
- if (IS_ARM(board))
- return 0;
- else
- return id.contains("imperial") ? 1 : 0;
+ return 0;
case ModelImage:
return (board == BOARD_TARANIS_X9D || IS_TARANIS_PLUS(board) || board == BOARD_TARANIS_X9DP_2019 || IS_FAMILY_HORUS_OR_T16(board));
case HasBeeper:
- return (!IS_ARM(board));
+ return false;
case HasPxxCountry:
return 1;
case HasGeneralUnits:
- if (IS_ARM(board))
- return 1;
- else
- return 0;
+ return true;
case HasNegAndSwitches:
- return IS_ARM(board);
+ return true;
case PPMExtCtrl:
return 1;
case PPMFrameLength:
return 40;
case FlightModes:
- if (IS_ARM(board))
- return 9;
- else if (IS_2560(board))
- return 6;
- else
- return 5;
+ return 9;
case FlightModesHaveFades:
return 1;
case Heli:
@@ -493,7 +456,7 @@ int OpenTxFirmware::getCapability(::Capability capability)
if (IS_HORUS_OR_TARANIS(board))
return id.contains("nogvars") ? 0 : 9;
else if (id.contains("gvars"))
- return IS_ARM(board) ? 9 : 5;
+ return 9;
else
return 0;
case ModelName:
@@ -501,66 +464,48 @@ int OpenTxFirmware::getCapability(::Capability capability)
case FlightModesName:
return (IS_HORUS_OR_TARANIS(board) ? 10 : 6);
case GvarsName:
- return (IS_9X(board) ? 0 : 3);
+ return 3;
case GvarsInCS:
case HasFAIMode:
return 1;
case GvarsAreNamed:
case GvarsFlightModes:
- return ((IS_ARM(board) || IS_2560(board)) ? 1 : 0);
+ return 1;
case Mixes:
- return (IS_ARM(board) ? 64 : 32);
+ return 64;
case OffsetWeight:
- return (IS_ARM(board) ? 500 : 245);
+ return 500;
case Timers:
- return (IS_ARM(board) ? 3 : 2);
+ return 3;
case TimersName:
if (HAS_LARGE_LCD(board))
return 8;
- else if (IS_ARM(board))
+ else
return 3;
- else
- return 0;
case PermTimers:
- return (IS_2560(board) || IS_ARM(board));
+ return true;
case CustomFunctions:
- if (IS_ARM(board))
- return 64;
- else if (IS_2560(board) || board == BOARD_9X_M128)
- return 24;
- else
- return 16;
+ return 64;
case SafetyChannelCustomFunction:
return id.contains("nooverridech") ? 0 : 1;
case LogicalSwitches:
- if (IS_ARM(board))
- return 64;
- else
- return 12;
+ return 64;
case CustomAndSwitches:
- if (IS_ARM(board))
- return getCapability(LogicalSwitches);
- else
- return 15/*4bits*/- 9/*sw positions*/;
+ return getCapability(LogicalSwitches);
case LogicalSwitchesExt:
- return (IS_ARM(board) ? true : false);
+ return true;
case RotaryEncoders:
- if (board == BOARD_GRUVIN9X)
- return 2;
- else if (IS_SKY9X(board))
- return 1;
- else
return 0;
case Outputs:
- return (IS_ARM(board) ? 32 : 16);
+ return 32;
case NumCurvePoints:
- return (IS_ARM(board) ? 512 : 104);
+ return 512;
case VoicesAsNumbers:
- return (IS_ARM(board) ? 0 : 1);
+ return 0;
case VoicesMaxLength:
- return (IS_ARM(board) ? (IS_TARANIS_X9(board) ? 8 : 6) : 0);
+ return (IS_TARANIS_X9(board) ? 8 : 6);
case MultiLangVoice:
- return (IS_ARM(board) ? 1 : 0);
+ return 1;
case SoundPitch:
return 1;
case Haptic:
@@ -571,7 +516,7 @@ int OpenTxFirmware::getCapability(::Capability capability)
else
return 0;
case MaxVolume:
- return (IS_ARM(board) ? 23 : 7);
+ return 23;
case MaxContrast:
if (IS_TARANIS_SMALL(board) || IS_JUMPER_T12(board))
return 30;
@@ -583,7 +528,7 @@ int OpenTxFirmware::getCapability(::Capability capability)
else
return 10;
case HasSoundMixer:
- return (IS_ARM(board) ? 1 : 0);
+ return 1;
case ExtraInputs:
return 1;
case TrimsRange:
@@ -593,29 +538,26 @@ int OpenTxFirmware::getCapability(::Capability capability)
case Simulation:
return 1;
case NumCurves:
- return (HAS_LARGE_LCD(board) ? 32 : (IS_ARM(board) ? 16 : 8));
+ return (HAS_LARGE_LCD(board) ? 32 : 16);
case HasMixerNames:
- return (IS_ARM(board) ? (IS_TARANIS_X9(board) ? 8 : 6) : false);
+ return (IS_TARANIS_X9(board) ? 8 : 6);
case HasExpoNames:
- return (IS_ARM(board) ? (IS_TARANIS_X9(board) ? 8 : 6) : false);
+ return (IS_TARANIS_X9(board) ? 8 : 6);
case HasNoExpo:
return (IS_HORUS_OR_TARANIS(board) ? false : true);
case ChannelsName:
- return (IS_ARM(board) ? (HAS_LARGE_LCD(board) ? 6 : 4) : 0);
+ return (HAS_LARGE_LCD(board) ? 6 : 4);
case HasCvNames:
- return (IS_ARM(board) ? 1 : 0);
+ return 1;
case Telemetry:
- if (IS_2560(board) || IS_ARM(board) || id.contains("frsky") || id.contains("telemetrez"))
- return TM_HASTELEMETRY | TM_HASOFFSET | TM_HASWSHH;
- else
- return 0;
+ return 1;
case TelemetryBars:
return 1;
case TelemetryCustomScreens:
if (IS_FAMILY_HORUS_OR_T16(board))
return 0;
else
- return IS_ARM(board) ? 4 : 2;
+ return 4;
case TelemetryCustomScreensBars:
return (getCapability(TelemetryCustomScreens) ? 4 : 0);
case TelemetryCustomScreensLines:
@@ -627,7 +569,7 @@ int OpenTxFirmware::getCapability(::Capability capability)
case TelemetryUnits:
return 0;
case TelemetryMaxMultiplier:
- return (IS_ARM(board) ? 32 : 8);
+ return 32;
case PPMCenter:
return (IS_HORUS_OR_TARANIS(board) ? 500 : (id.contains("ppmca") ? 125 : 0));
case PPMUnitMicroseconds:
@@ -639,11 +581,11 @@ int OpenTxFirmware::getCapability(::Capability capability)
case HasVario:
return 1;
case HasVarioSink:
- return ((IS_2560(board) || IS_ARM(board)) ? true : false);
+ return true;
case HasFailsafe:
- return (IS_ARM(board) ? 32 : 0);
+ return 32;
case NumModules:
- return (IS_ARM(board) ? 2 : 1);
+ return 2;
case NumFirstUsableModule:
return (IS_JUMPER_T12(board) ? 1 : 0);
case HasModuleR9MFlex:
@@ -651,23 +593,23 @@ int OpenTxFirmware::getCapability(::Capability capability)
case HasModuleR9MMini:
return IS_TARANIS_XLITE(board) && !id.contains("stdr9m");
case HasPPMStart:
- return (IS_ARM(board) ? true : false);
+ return true;
case HastxCurrentCalibration:
return (IS_SKY9X(board) ? true : false);
case HasVolume:
- return (IS_ARM(board) ? true : false);
+ return true;
case HasBrightness:
- return (IS_ARM(board) ? true : false);
+ return true;
case PerModelTimers:
return 1;
case SlowScale:
- return (IS_ARM(board) ? 10 : 2);
+ return 10;
case SlowRange:
- return (IS_ARM(board) ? 250 : 15);
+ return 250;
case CSFunc:
return 18;
case HasSDLogs:
- return ((IS_2560(board) || IS_ARM(board)) ? true : false);
+ return true;
case LcdWidth:
if (IS_FAMILY_HORUS_OR_T16(board))
return 480;
@@ -694,19 +636,19 @@ int OpenTxFirmware::getCapability(::Capability capability)
case GetThrSwitch:
return (IS_HORUS_OR_TARANIS(board) ? SWITCH_SF1 : SWITCH_THR);
case HasDisplayText:
- return IS_ARM(board) ? 1 : 0;
+ return 1;
case HasTopLcd:
return IS_TARANIS_X9E(board) ? 1 : 0;
case GlobalFunctions:
- return IS_ARM(board) ? 64 : 0;
+ return 64;
case VirtualInputs:
- return IS_ARM(board) ? 32 : 0;
+ return 32;
case InputsLength:
return HAS_LARGE_LCD(board) ? 4 : 3;
case TrainerInputs:
- return IS_ARM(board) ? 16 : 8;
+ return 16;
case RtcTime:
- return IS_ARM(board) || IS_2560(board) ? 1 : 0;
+ return 1;
case LuaScripts:
return IS_HORUS_OR_TARANIS(board) && id.contains("lua") ? 7 : 0;
case LuaInputsPerScript:
@@ -715,17 +657,13 @@ int OpenTxFirmware::getCapability(::Capability capability)
return IS_HORUS_OR_TARANIS(board) ? 6 : 0;
case LimitsPer1000:
case EnhancedCurves:
- return IS_ARM(board);
+ return 1;
case HasFasOffset:
- return (IS_STOCK(board) ? false : true);
+ return true;
case HasMahPersistent:
- return (IS_ARM(board) ? true : false);
+ return true;
case SimulatorVariant:
- if (board == BOARD_9X_M64)
- return SIMU_STOCK_VARIANTS;
- else if (board == BOARD_9X_M128)
- return SIMU_M128_VARIANTS;
- else if (IS_TARANIS_X9E(board))
+ if (IS_TARANIS_X9E(board))
return TARANIS_X9E_VARIANT;
else if (IS_TARANIS_X9LITES(board))
return TARANIS_X9LITES_VARIANT;
@@ -744,7 +682,7 @@ int OpenTxFirmware::getCapability(::Capability capability)
case MavlinkTelemetry:
return id.contains("mavlink") ? 1 : 0;
case SportTelemetry:
- return IS_ARM(board) ? 1 : 0;
+ return 1;
case HasInputDiff:
case HasMixerExpo:
return (IS_HORUS_OR_TARANIS(board) ? true : false);
@@ -777,10 +715,8 @@ QTime OpenTxFirmware::getMaxTimerStart()
{
if (IS_HORUS_OR_TARANIS(board))
return QTime(23, 59, 59);
- else if (IS_ARM(board))
- return QTime(8, 59, 59);
else
- return QTime(0, 59, 59);
+ return QTime(8, 59, 59);
}
bool OpenTxFirmware::isAvailable(PulsesProtocol proto, int port)
@@ -947,14 +883,9 @@ EepromLoadErrors OpenTxEepromInterface::checkVersion(unsigned int version)
// M128 revert because too much RAM used!
case 216:
// A lot of things (first github release)
- if (IS_2560(board) || IS_M128(board)) {
- return OLD_VERSION;
- }
case 217:
// 3 logical switches removed on M128 / gruvin9x boards
- if (IS_ARM(board)) {
return OLD_VERSION;
- }
case 218:
// ACCESS
// switches add for X7/X10/X12S
@@ -974,21 +905,7 @@ EepromLoadErrors OpenTxEepromInterface::checkVersion(unsigned int version)
bool OpenTxEepromInterface::checkVariant(unsigned int version, unsigned int variant)
{
bool variantError = false;
- if (board == BOARD_9X_M128 && !(variant & M128_VARIANT)) {
- if (version == 212) {
- uint8_t tmp[1000];
- for (int i = 1; i < 31; i++) {
- efile->openRd(i);
- int sz = efile->readRlc2(tmp, sizeof(tmp));
- if (sz == 849) {
- qWarning() << " warning: M128 variant not set (but model size seems ok)";
- return true;
- }
- }
- }
- variantError = true;
- }
- else if (IS_TARANIS_X9E(board)) {
+ if (IS_TARANIS_X9E(board)) {
if (variant != TARANIS_X9E_VARIANT) {
variantError = true;
}
@@ -1080,9 +997,6 @@ unsigned long OpenTxEepromInterface::loadBackup(RadioData &radioData, const uint
case 0x32:
backupBoard = BOARD_SKY9X;
break;
- case 0x31:
- backupBoard = BOARD_GRUVIN9X;
- break;
default:
dbg << " unknown board";
errors.set(UNKNOWN_BOARD);
@@ -1379,14 +1293,6 @@ void registerOpenTxFirmwares()
addOpenTxArm9xOptions(firmware);
registerOpenTxFirmware(firmware);
- // These are kept only for import purposes, marked as deprecated to hide from UI.
- registerOpenTxFirmware(new OpenTxFirmware("opentx-9xr", Firmware::tr("Turnigy 9XR"), BOARD_9X_M64), true);
- registerOpenTxFirmware(new OpenTxFirmware("opentx-9xr128", Firmware::tr("Turnigy 9XR with m128 chip"), BOARD_9X_M128), true);
- registerOpenTxFirmware(new OpenTxFirmware("opentx-9x", Firmware::tr("9X with stock board"), BOARD_9X_M64), true);
- registerOpenTxFirmware(new OpenTxFirmware("opentx-9x128", Firmware::tr("9X with stock board and m128 chip"), BOARD_9X_M128), true);
- registerOpenTxFirmware(new OpenTxFirmware("opentx-gruvin9x", Firmware::tr("9X with Gruvin9x board"), BOARD_GRUVIN9X), true);
- registerOpenTxFirmware(new OpenTxFirmware("opentx-mega2560", Firmware::tr("DIY MEGA2560 radio"), BOARD_MEGA2560), true);
-
Firmware::setDefaultVariant(Firmware::getFirmwareForId("opentx-x9d+"));
Firmware::setCurrentVariant(Firmware::getDefaultVariant());
}
diff --git a/companion/src/firmwares/rawsource.cpp b/companion/src/firmwares/rawsource.cpp
index 401eb9781..1cb5bcfbb 100644
--- a/companion/src/firmwares/rawsource.cpp
+++ b/companion/src/firmwares/rawsource.cpp
@@ -32,10 +32,7 @@
float RawSourceRange::getValue(int value)
{
- if (IS_ARM(getCurrentBoard()))
- return float(value) * step;
- else
- return min + float(value) * step;
+ return float(value) * step;
}
@@ -48,11 +45,10 @@ RawSourceRange RawSource::getRange(const ModelData * model, const GeneralSetting
RawSourceRange result;
Firmware * firmware = Firmware::getCurrentVariant();
- Board::Type board = firmware->getBoard();
switch (type) {
case SOURCE_TYPE_TELEMETRY:
- if (IS_ARM(board)) {
+ {
div_t qr = div(index, 3);
const SensorData & sensor = model->sensorData[qr.quot];
if (sensor.prec == 2)
@@ -65,192 +61,8 @@ RawSourceRange RawSource::getRange(const ModelData * model, const GeneralSetting
result.max = +30000 * result.step;
result.decimals = sensor.prec;
result.unit = sensor.unitString();
+ break;
}
- else {
- result.offset = -DBL_MAX;
-
- switch (index) {
- case TELEMETRY_SOURCE_TX_BATT:
- result.step = 0.1;
- result.decimals = 1;
- result.max = 25.5;
- result.unit = tr("V");
- break;
- case TELEMETRY_SOURCE_TX_TIME:
- result.step = 60;
- result.max = 24 * 60 * result.step - 60; // 23:59:00 with 1-minute resolution
- result.unit = tr("s");
- break;
- case TELEMETRY_SOURCE_TIMER1:
- case TELEMETRY_SOURCE_TIMER2:
- case TELEMETRY_SOURCE_TIMER3:
- result.step = 5;
- result.max = 255 * result.step;
- result.unit = tr("s");
- break;
- case TELEMETRY_SOURCE_RSSI_TX:
- case TELEMETRY_SOURCE_RSSI_RX:
- result.max = 100;
- result.offset = 128;
- break;
- case TELEMETRY_SOURCE_A1_MIN:
- case TELEMETRY_SOURCE_A2_MIN:
- case TELEMETRY_SOURCE_A3_MIN:
- case TELEMETRY_SOURCE_A4_MIN:
- if (model) result = model->frsky.channels[index-TELEMETRY_SOURCE_A1_MIN].getRange();
- break;
- case TELEMETRY_SOURCE_A1:
- case TELEMETRY_SOURCE_A2:
- case TELEMETRY_SOURCE_A3:
- case TELEMETRY_SOURCE_A4:
- if (model) result = model->frsky.channels[index-TELEMETRY_SOURCE_A1].getRange();
- break;
- case TELEMETRY_SOURCE_ALT:
- case TELEMETRY_SOURCE_ALT_MIN:
- case TELEMETRY_SOURCE_ALT_MAX:
- case TELEMETRY_SOURCE_GPS_ALT:
- result.step = 8;
- result.min = -500;
- result.max = 1540;
- if (firmware->getCapability(Imperial) || settings.imperial) {
- result.step = (result.step * 105) / 32;
- result.min = (result.min * 105) / 32;
- result.max = (result.max * 105) / 32;
- result.unit = tr("ft");
- }
- else {
- result.unit = tr("m");
- }
- break;
- case TELEMETRY_SOURCE_T1:
- case TELEMETRY_SOURCE_T1_MAX:
- case TELEMETRY_SOURCE_T2:
- case TELEMETRY_SOURCE_T2_MAX:
- result.min = -30;
- result.max = 225;
- result.unit = tr("°C");
- break;
- case TELEMETRY_SOURCE_HDG:
- result.step = 2;
- result.max = 360;
- result.offset = 256;
- result.unit = tr("°");
- break;
- case TELEMETRY_SOURCE_RPM:
- case TELEMETRY_SOURCE_RPM_MAX:
- result.step = 50;
- result.max = 12750;
- break;
- case TELEMETRY_SOURCE_FUEL:
- result.max = 100;
- result.unit = tr("%");
- break;
- case TELEMETRY_SOURCE_ASPEED:
- case TELEMETRY_SOURCE_ASPEED_MAX:
- result.decimals = 1;
- result.step = 2.0;
- result.max = (2*255);
- if (firmware->getCapability(Imperial) || settings.imperial) {
- result.step *= 1.150779;
- result.max *= 1.150779;
- result.unit = tr("mph");
- }
- else {
- result.step *= 1.852;
- result.max *= 1.852;
- result.unit = tr("km/h");
- }
- break;
- case TELEMETRY_SOURCE_SPEED:
- case TELEMETRY_SOURCE_SPEED_MAX:
- result.step = 2;
- result.max = (2*255);
- if (firmware->getCapability(Imperial) || settings.imperial) {
- result.step *= 1.150779;
- result.max *= 1.150779;
- result.unit = tr("mph");
- }
- else {
- result.step *= 1.852;
- result.max *= 1.852;
- result.unit = tr("km/h");
- }
- break;
- case TELEMETRY_SOURCE_VERTICAL_SPEED:
- result.step = 0.1;
- result.min = -12.5;
- result.max = 13.0;
- result.decimals = 1;
- result.unit = tr("m/s");
- break;
- case TELEMETRY_SOURCE_DTE:
- result.max = 30000;
- break;
- case TELEMETRY_SOURCE_DIST:
- case TELEMETRY_SOURCE_DIST_MAX:
- result.step = 8;
- result.max = 2040;
- result.unit = tr("m");
- break;
- case TELEMETRY_SOURCE_CELL:
- case TELEMETRY_SOURCE_CELL_MIN:
- result.step = 0.02;
- result.max = 5.1;
- result.decimals = 2;
- result.unit = tr("V");
- break;
- case TELEMETRY_SOURCE_CELLS_SUM:
- case TELEMETRY_SOURCE_CELLS_MIN:
- case TELEMETRY_SOURCE_VFAS:
- case TELEMETRY_SOURCE_VFAS_MIN:
- result.step = 0.1;
- result.max = 25.5;
- result.decimals = 1;
- result.unit = tr("V");
- break;
- case TELEMETRY_SOURCE_CURRENT:
- case TELEMETRY_SOURCE_CURRENT_MAX:
- result.step = 0.5;
- result.max = 127.5;
- result.decimals = 1;
- result.unit = tr("A");
- break;
- case TELEMETRY_SOURCE_CONSUMPTION:
- result.step = 100;
- result.max = 25500;
- result.unit = tr("mAh");
- break;
- case TELEMETRY_SOURCE_POWER:
- case TELEMETRY_SOURCE_POWER_MAX:
- result.step = 5;
- result.max = 1275;
- result.unit = tr("W");
- break;
- case TELEMETRY_SOURCE_ACCX:
- case TELEMETRY_SOURCE_ACCY:
- case TELEMETRY_SOURCE_ACCZ:
- result.step = 0.01;
- result.decimals = 2;
- result.max = 2.55;
- result.min = 0;
- result.unit = tr("g");
- break;
- default:
- result.max = 125;
- break;
- }
-
- if (result.offset == -DBL_MAX) {
- result.offset = result.max - (127*result.step);
- }
-
- if (flags & (RANGE_DELTA_FUNCTION | RANGE_ABS_FUNCTION)) {
- result.offset = 0;
- result.min = result.step * -127;
- result.max = result.step * 127;
- }
- }
- break;
case SOURCE_TYPE_LUA_OUTPUT:
result.max = 30000;
@@ -414,7 +226,7 @@ QString RawSource::toString(const ModelData * model, const GeneralSettings * con
return CHECK_IN_ARRAY(special, index);
case SOURCE_TYPE_TELEMETRY:
- if (IS_ARM(board)) {
+ {
div_t qr = div(index, 3);
if (model)
result = model->sensorData[qr.quot].nameToString(qr.quot);
@@ -424,9 +236,6 @@ QString RawSource::toString(const ModelData * model, const GeneralSettings * con
result += (qr.rem == 1 ? "-" : "+");
return result;
}
- else {
- return CHECK_IN_ARRAY(telemetry, index);
- }
case SOURCE_TYPE_GVAR:
if (model)
@@ -486,13 +295,7 @@ bool RawSource::isSlider(int * sliderIndex, Board::Type board) const
bool RawSource::isTimeBased(Board::Type board) const
{
- if (board == Board::BOARD_UNKNOWN)
- board = getCurrentBoard();
-
- if (IS_ARM(board))
- return (type == SOURCE_TYPE_SPECIAL && index > 0);
- else
- return (type==SOURCE_TYPE_TELEMETRY && (index==TELEMETRY_SOURCE_TX_TIME || index==TELEMETRY_SOURCE_TIMER1 || index==TELEMETRY_SOURCE_TIMER2 || index==TELEMETRY_SOURCE_TIMER3));
+ return (type == SOURCE_TYPE_SPECIAL && index > 0);
}
bool RawSource::isAvailable(const ModelData * const model, const GeneralSettings * const gs, Board::Type board) const
@@ -516,20 +319,9 @@ bool RawSource::isAvailable(const ModelData * const model, const GeneralSettings
return false;
if (type == SOURCE_TYPE_TELEMETRY) {
- if (IS_ARM(board) && !model->sensorData[div(index, 3).quot].isAvailable()) {
+ if (!model->sensorData[div(index, 3).quot].isAvailable()) {
return false;
}
- else if (!IS_ARM(board)) {
- Firmware * fw = getCurrentFirmware();
- if (type == (int)TELEMETRY_SOURCE_TX_TIME && !fw->getCapability(RtcTime))
- return false;
-
- if (type == (int)TELEMETRY_SOURCE_RAS && !fw->getCapability(SportTelemetry))
- return false;
-
- if (type == (int)TELEMETRY_SOURCE_TIMER3 && fw->getCapability(Timers) < 3)
- return false;
- }
}
}
diff --git a/companion/src/firmwares/rawsource.h b/companion/src/firmwares/rawsource.h
index f59ab70f5..b3220dbd3 100644
--- a/companion/src/firmwares/rawsource.h
+++ b/companion/src/firmwares/rawsource.h
@@ -159,10 +159,6 @@ enum TelemetrySource {
TELEMETRY_SOURCE_RESERVE = -1
};
-#define TM_HASTELEMETRY 0x01
-#define TM_HASOFFSET 0x02
-#define TM_HASWSHH 0x04
-
enum RawSourceType {
SOURCE_TYPE_NONE,
SOURCE_TYPE_VIRTUAL_INPUT,
diff --git a/companion/src/firmwares/telem_data.cpp b/companion/src/firmwares/telem_data.cpp
index af31f3b38..99743c7e2 100644
--- a/companion/src/firmwares/telem_data.cpp
+++ b/companion/src/firmwares/telem_data.cpp
@@ -48,9 +48,6 @@ RawSourceRange FrSkyChannelData::getRange() const
void FrSkyScreenData::clear()
{
memset(reinterpret_cast(this), 0, sizeof(FrSkyScreenData));
- if (!IS_ARM(getCurrentBoard())) {
- type = TELEMETRY_SCREEN_NUMBERS;
- }
}
void FrSkyData::clear()
diff --git a/companion/src/generaledit/generaledit.cpp b/companion/src/generaledit/generaledit.cpp
index 7b424ec02..34d090e65 100644
--- a/companion/src/generaledit/generaledit.cpp
+++ b/companion/src/generaledit/generaledit.cpp
@@ -56,9 +56,7 @@ GeneralEdit::GeneralEdit(QWidget * parent, RadioData & radioData, Firmware * fir
}
addTab(new GeneralSetupPanel(this, generalSettings, firmware), tr("Setup"));
- if (IS_ARM(firmware->getBoard())) {
- addTab(new CustomFunctionsPanel(this, NULL, generalSettings, firmware), tr("Global Functions"));
- }
+ addTab(new CustomFunctionsPanel(this, NULL, generalSettings, firmware), tr("Global Functions"));
addTab(new TrainerPanel(this, generalSettings, firmware), tr("Trainer"));
addTab(new HardwarePanel(this, generalSettings, firmware), tr("Hardware"));
addTab(new CalibrationPanel(this, generalSettings, firmware), tr("Calibration"));
diff --git a/companion/src/generaledit/generalsetup.cpp b/companion/src/generaledit/generalsetup.cpp
index 1f74e2734..773e66734 100644
--- a/companion/src/generaledit/generalsetup.cpp
+++ b/companion/src/generaledit/generalsetup.cpp
@@ -234,12 +234,7 @@ ui(new Ui::GeneralSetup)
ui->memwarnChkB->setChecked(!generalSettings.disableMemoryWarning); // Default is zero=checked
ui->alarmwarnChkB->setChecked(!generalSettings.disableAlarmWarning); // Default is zero=checked
- if (IS_ARM(firmware->getBoard())) {
- ui->rssiPowerOffWarnChkB->setChecked(!generalSettings.disableRssiPoweroffAlarm); // Default is zero=checked
- }
- else {
- ui->rssiPowerOffWarnChkB->hide();
- }
+ ui->rssiPowerOffWarnChkB->setChecked(!generalSettings.disableRssiPoweroffAlarm); // Default is zero=checked
if (IS_FAMILY_HORUS_OR_T16(firmware->getBoard())) {
ui->splashScreenChkB->hide();
@@ -302,13 +297,7 @@ ui(new Ui::GeneralSetup)
ui->backlightColor2_label->hide();
}
- if (IS_ARM(firmware->getBoard())) {
- ui->switchesDelay->setValue(10*(generalSettings.switchesDelay+15));
- }
- else {
- ui->switchesDelay->hide();
- ui->switchesDelayLabel->hide();
- }
+ ui->switchesDelay->setValue(10*(generalSettings.switchesDelay+15));
ui->blAlarm_ChkB->setChecked(generalSettings.flashBeep);
if (!firmware->getCapability(HasBatMeterRange)) {
diff --git a/companion/src/mainwindow.cpp b/companion/src/mainwindow.cpp
index af1aa72f0..50574ecd5 100644
--- a/companion/src/mainwindow.cpp
+++ b/companion/src/mainwindow.cpp
@@ -26,7 +26,6 @@
#include "apppreferencesdialog.h"
#include "fwpreferencesdialog.h"
#include "firmwareinterface.h"
-#include "fusesdialog.h"
#include "downloaddialog.h"
#include "printdialog.h"
#include "version.h"
@@ -939,10 +938,8 @@ void MainWindow::readEeprom()
QString tempFile;
if (IS_FAMILY_HORUS_OR_T16(board))
tempFile = generateProcessUniqueTempFileName("temp.otx");
- else if (IS_ARM(board))
- tempFile = generateProcessUniqueTempFileName("temp.bin");
else
- tempFile = generateProcessUniqueTempFileName("temp.hex");
+ tempFile = generateProcessUniqueTempFileName("temp.bin");
qDebug() << "MainWindow::readEeprom(): using temp file: " << tempFile;
@@ -1029,14 +1026,6 @@ void MainWindow::burnConfig()
void MainWindow::burnList()
{
burnConfigDialog bcd(this);
- bcd.listAvrdudeProgrammers();
-}
-
-void MainWindow::burnFuses()
-{
- FusesDialog *fd = new FusesDialog(this);
- fd->exec();
- delete fd;
}
void MainWindow::compare()
@@ -1232,8 +1221,6 @@ void MainWindow::retranslateUi(bool showMsg)
trAct(changelogAct, tr("Release notes..."), tr("Show release notes"));
trAct(compareAct, tr("Compare Models..."), tr("Compare models"));
trAct(editSplashAct, tr("Edit Radio Splash Image..."), tr("Edit the splash image of your Radio"));
- trAct(burnListAct, tr("List programmers..."), tr("List available programmers"));
- trAct(burnFusesAct, tr("Fuses..."), tr("Show fuses dialog"));
trAct(readFlashAct, tr("Read Firmware from Radio"), tr("Read firmware from Radio"));
trAct(writeFlashAct, tr("Write Firmware to Radio"), tr("Write firmware to Radio"));
trAct(sdsyncAct, tr("Synchronize SD"), tr("SD card synchronization"));
@@ -1295,7 +1282,6 @@ void MainWindow::createActions()
editSplashAct = addAct("paintbrush.png", SLOT(customizeSplash()));
burnListAct = addAct("list.png", SLOT(burnList()));
- burnFusesAct = addAct("fuses.png", SLOT(burnFuses()));
readFlashAct = addAct("read_flash.png", SLOT(readFlash()));
writeFlashAct = addAct("write_flash.png", SLOT(writeFlash()));
writeEepromAct = addAct("write_eeprom.png", SLOT(writeEeprom()));
@@ -1400,10 +1386,6 @@ void MainWindow::createMenus()
burnMenu->addAction(readFlashAct);
burnMenu->addSeparator();
burnMenu->addSeparator();
- if (!IS_ARM(getCurrentBoard())) {
- burnMenu->addAction(burnFusesAct);
- burnMenu->addAction(burnListAct);
- }
windowMenu = menuBar()->addMenu("");
windowMenu->addAction(actTabbedWindows);
diff --git a/companion/src/mainwindow.h b/companion/src/mainwindow.h
index 9369dacac..0be249f04 100644
--- a/companion/src/mainwindow.h
+++ b/companion/src/mainwindow.h
@@ -111,7 +111,6 @@ class MainWindow : public QMainWindow
void readBackup();
void burnConfig();
void burnList();
- void burnFuses();
void contributors();
void sdsync();
void changelog();
@@ -210,7 +209,6 @@ class MainWindow : public QMainWindow
QAction *readEepromAct;
QAction *burnConfigAct;
QAction *burnListAct;
- QAction *burnFusesAct;
QAction *writeFlashAct;
QAction *readFlashAct;
QAction *writeBUToRadioAct;
diff --git a/companion/src/modeledit/CMakeLists.txt b/companion/src/modeledit/CMakeLists.txt
index 300fb27cc..31e727081 100644
--- a/companion/src/modeledit/CMakeLists.txt
+++ b/companion/src/modeledit/CMakeLists.txt
@@ -42,7 +42,6 @@ set(modeledit_UIS
setup_timer.ui
setup_module.ui
flightmode.ui
- telemetry_analog.ui
telemetry_customscreen.ui
telemetry_sensor.ui
)
diff --git a/companion/src/modeledit/channels.cpp b/companion/src/modeledit/channels.cpp
index 450f785fd..0cde45109 100644
--- a/companion/src/modeledit/channels.cpp
+++ b/companion/src/modeledit/channels.cpp
@@ -45,7 +45,7 @@ LimitsGroup::LimitsGroup(Firmware * firmware, TableLayout * tableLayout, int row
spinbox->setSuffix("%");
}
- if (IS_ARM(board) || deflt == 0 /*it's the offset*/) {
+ if (deflt == 0 /*it's the offset*/) {
spinbox->setDecimals(1);
}
else {
diff --git a/companion/src/modeledit/customfunctions.cpp b/companion/src/modeledit/customfunctions.cpp
index 34f05a707..6b8456eb2 100644
--- a/companion/src/modeledit/customfunctions.cpp
+++ b/companion/src/modeledit/customfunctions.cpp
@@ -29,7 +29,7 @@ RepeatComboBox::RepeatComboBox(QWidget *parent, int & repeatParam):
QComboBox(parent),
repeatParam(repeatParam)
{
- unsigned int step = IS_ARM(getCurrentBoard()) ? 1 : 10;
+ unsigned int step = 1;
int value = repeatParam/step;
setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Fixed);
@@ -58,7 +58,7 @@ void RepeatComboBox::onIndexChanged(int index)
void RepeatComboBox::update()
{
- unsigned int step = IS_ARM(getCurrentBoard()) ? 1 : 10;
+ unsigned int step = 1;
int value = repeatParam/step;
if (step == 1) {
value++;
@@ -422,29 +422,20 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified)
if (cfn.adjustMode == FUNC_ADJUST_GVAR_CONSTANT || cfn.adjustMode == FUNC_ADJUST_GVAR_INCDEC) {
if (modified)
cfn.param = fswtchParam[i]->value() * model->gvarData[gvidx].multiplierSet();
- if (IS_ARM(getCurrentBoard())) {
- fswtchParam[i]->setDecimals(model->gvarData[gvidx].prec);
- fswtchParam[i]->setSingleStep(model->gvarData[gvidx].multiplierGet());
- fswtchParam[i]->setSuffix(model->gvarData[gvidx].unitToString());
- if (cfn.adjustMode==FUNC_ADJUST_GVAR_INCDEC) {
- double rng = abs(model->gvarData[gvidx].getMax() - model->gvarData[gvidx].getMin());
- rng *= model->gvarData[gvidx].multiplierGet();
- fswtchParam[i]->setMinimum(-rng);
- fswtchParam[i]->setMaximum(rng);
- }
- else {
- fswtchParam[i]->setMinimum(model->gvarData[gvidx].getMinPrec());
- fswtchParam[i]->setMaximum(model->gvarData[gvidx].getMaxPrec());
- }
- fswtchParam[i]->setValue(cfn.param * model->gvarData[gvidx].multiplierGet());
+ fswtchParam[i]->setDecimals(model->gvarData[gvidx].prec);
+ fswtchParam[i]->setSingleStep(model->gvarData[gvidx].multiplierGet());
+ fswtchParam[i]->setSuffix(model->gvarData[gvidx].unitToString());
+ if (cfn.adjustMode==FUNC_ADJUST_GVAR_INCDEC) {
+ double rng = abs(model->gvarData[gvidx].getMax() - model->gvarData[gvidx].getMin());
+ rng *= model->gvarData[gvidx].multiplierGet();
+ fswtchParam[i]->setMinimum(-rng);
+ fswtchParam[i]->setMaximum(rng);
}
else {
- fswtchParam[i]->setDecimals(0);
- fswtchParam[i]->setSingleStep(1);
- fswtchParam[i]->setMinimum(-125);
- fswtchParam[i]->setMaximum(125);
- fswtchParam[i]->setValue(cfn.param);
+ fswtchParam[i]->setMinimum(model->gvarData[gvidx].getMinPrec());
+ fswtchParam[i]->setMaximum(model->gvarData[gvidx].getMaxPrec());
}
+ fswtchParam[i]->setValue(cfn.param * model->gvarData[gvidx].multiplierGet());
widgetsMask |= CUSTOM_FUNCTION_NUMERIC_PARAM;
}
else {
@@ -679,7 +670,6 @@ void CustomFunctionsPanel::populateFuncCB(QComboBox *b, unsigned int value)
((i==FuncPlayHaptic) && !firmware->getCapability(Haptic)) ||
((i==FuncPlayBoth) && !firmware->getCapability(HasBeeper)) ||
((i==FuncLogs) && !firmware->getCapability(HasSDLogs)) ||
- ((i==FuncSetTimer1 || i==FuncSetTimer2) && !IS_ARM(firmware->getBoard())) ||
((i==FuncSetTimer3) && firmware->getCapability(Timers) < 3) ||
((i==FuncScreenshot) && !IS_HORUS_OR_TARANIS(firmware->getBoard())) ||
((i>=FuncRangeCheckInternalModule && i<=FuncBindExternalModule) && (!model || !firmware->getCapability(DangerousFunctions))) ||
diff --git a/companion/src/modeledit/expodialog.cpp b/companion/src/modeledit/expodialog.cpp
index 0745f5c84..95aaeca66 100644
--- a/companion/src/modeledit/expodialog.cpp
+++ b/companion/src/modeledit/expodialog.cpp
@@ -46,18 +46,8 @@ ExpoDialog::ExpoDialog(QWidget *parent, ModelData & model, ExpoData *expoData, G
setWindowTitle(tr("Edit %1").arg(RawSource(srcType, ed->chn).toString(&model, &generalSettings)));
QRegExp rx(CHAR_FOR_NAMES_REGEX);
- if (IS_ARM(getCurrentBoard())) {
- gvWeightGroup = new GVarGroup(ui->weightGV, ui->weightSB, ui->weightCB, ed->weight, model, 100, -100, 100);
- gvOffsetGroup = new GVarGroup(ui->offsetGV, ui->offsetSB, ui->offsetCB, ed->offset, model, 0, -100, 100);
- }
- else {
- gvWeightGroup = new GVarGroup(ui->weightGV, ui->weightSB, ui->weightCB, ed->weight, model, 100, 0, 100);
- gvOffsetGroup = NULL;
- ui->offsetLabel->hide();
- ui->offsetGV->hide();
- ui->offsetSB->hide();
- ui->offsetCB->hide();
- }
+ gvWeightGroup = new GVarGroup(ui->weightGV, ui->weightSB, ui->weightCB, ed->weight, model, 100, -100, 100);
+ gvOffsetGroup = new GVarGroup(ui->offsetGV, ui->offsetSB, ui->offsetCB, ed->offset, model, 0, -100, 100);
curveGroup = new CurveGroup(ui->curveTypeCB, ui->curveGVarCB, ui->curveValueCB, ui->curveValueSB, ed->curve, model,
firmware->getCapability(HasInputDiff) ? 0 : (HIDE_DIFF | HIDE_NEGATIVE_CURVES));
diff --git a/companion/src/modeledit/logicalswitches.cpp b/companion/src/modeledit/logicalswitches.cpp
index 13e20b8f6..63a2ae22f 100644
--- a/companion/src/modeledit/logicalswitches.cpp
+++ b/companion/src/modeledit/logicalswitches.cpp
@@ -479,10 +479,6 @@ void LogicalSwitchesPanel::populateFunctionCB(QComboBox *b)
int func = order[i];
if (func == LS_FN_NEQUAL || func == LS_FN_EGREATER || func == LS_FN_ELESS)
continue;
- if (!IS_ARM(firmware->getBoard())) {
- if (func == LS_FN_VEQUAL || func == LS_FN_EDGE)
- continue;
- }
b->addItem(LogicalSwitchData(func).funcToString(), func);
}
b->setMaxVisibleItems(10);
@@ -490,27 +486,7 @@ void LogicalSwitchesPanel::populateFunctionCB(QComboBox *b)
void LogicalSwitchesPanel::populateAndSwitchCB(QComboBox *b)
{
- if (IS_ARM(firmware->getBoard())) {
- b->setModel(rawSwitchItemModel);
- }
- else {
- RawSwitch item;
-
- b->clear();
-
- item = RawSwitch(SWITCH_TYPE_NONE);
- b->addItem(item.toString(), item.toValue());
-
- for (int i=1; i <= Boards::getCapability(firmware->getBoard(), Board::SwitchPositions); i++) {
- item = RawSwitch(SWITCH_TYPE_SWITCH, i);
- b->addItem(item.toString(), item.toValue());
- }
-
- for (int i=1; i<=6; i++) {
- item = RawSwitch(SWITCH_TYPE_VIRTUAL, i);
- b->addItem(item.toString(), item.toValue());
- }
- }
+ b->setModel(rawSwitchItemModel);
b->setVisible(true);
}
diff --git a/companion/src/modeledit/modeledit.cpp b/companion/src/modeledit/modeledit.cpp
index 59fb408c4..af3166c7f 100644
--- a/companion/src/modeledit/modeledit.cpp
+++ b/companion/src/modeledit/modeledit.cpp
@@ -65,7 +65,7 @@ ModelEdit::ModelEdit(QWidget * parent, RadioData & radioData, int modelId, Firmw
s1.report("LS");
addTab(new CustomFunctionsPanel(this, &radioData.models[modelId], radioData.generalSettings, firmware), tr("Special Functions"));
s1.report("CF");
- if (firmware->getCapability(Telemetry) & TM_HASTELEMETRY)
+ if (firmware->getCapability(Telemetry))
addTab(new TelemetryPanel(this, radioData.models[modelId], radioData.generalSettings, firmware), tr("Telemetry"));
onTabIndexChanged(ui->tabWidget->currentIndex()); // make sure to trigger update on default tab panel
diff --git a/companion/src/modeledit/setup.cpp b/companion/src/modeledit/setup.cpp
index b1fb9af72..3fc74a3e7 100644
--- a/companion/src/modeledit/setup.cpp
+++ b/companion/src/modeledit/setup.cpp
@@ -36,7 +36,6 @@ TimerPanel::TimerPanel(QWidget *parent, ModelData & model, TimerData & timer, Ge
timer(timer),
ui(new Ui::Timer)
{
- Board::Type board = firmware->getBoard();
ui->setupUi(this);
@@ -65,10 +64,8 @@ TimerPanel::TimerPanel(QWidget *parent, ModelData & model, TimerData & timer, Ge
ui->countdownBeep->setField(timer.countdownBeep, this);
ui->countdownBeep->addItem(tr("Silent"), TimerData::COUNTDOWN_SILENT);
ui->countdownBeep->addItem(tr("Beeps"), TimerData::COUNTDOWN_BEEPS);
- if (IS_ARM(board) || IS_2560(board)) {
- ui->countdownBeep->addItem(tr("Voice"), TimerData::COUNTDOWN_VOICE);
- ui->countdownBeep->addItem(tr("Haptic"), TimerData::COUNTDOWN_HAPTIC);
- }
+ ui->countdownBeep->addItem(tr("Voice"), TimerData::COUNTDOWN_VOICE);
+ ui->countdownBeep->addItem(tr("Haptic"), TimerData::COUNTDOWN_HAPTIC);
ui->value->setMaximumTime(firmware->getMaxTimerStart());
@@ -1205,13 +1202,7 @@ SetupPanel::SetupPanel(QWidget * parent, ModelData & model, GeneralSettings & ge
ui->potWarningMode->hide();
}
- if (IS_ARM(board)) {
- ui->trimsDisplay->setField(model.trimsDisplay, this);
- }
- else {
- ui->labelTrimsDisplay->hide();
- ui->trimsDisplay->hide();
- }
+ ui->trimsDisplay->setField(model.trimsDisplay, this);
for (int i = firmware->getCapability(NumFirstUsableModule); i < firmware->getCapability(NumModules); i++) {
modules[i] = new ModulePanel(this, model, model.moduleData[i], generalSettings, firmware, i);
diff --git a/companion/src/modeledit/telemetry.cpp b/companion/src/modeledit/telemetry.cpp
index 83565c03e..99915eae5 100644
--- a/companion/src/modeledit/telemetry.cpp
+++ b/companion/src/modeledit/telemetry.cpp
@@ -20,7 +20,6 @@
#include "telemetry.h"
#include "ui_telemetry.h"
-#include "ui_telemetry_analog.h"
#include "ui_telemetry_customscreen.h"
#include "ui_telemetry_sensor.h"
#include "helpers.h"
@@ -29,291 +28,6 @@
#include
-TelemetryAnalog::TelemetryAnalog(QWidget *parent, FrSkyChannelData & analog, ModelData & model, GeneralSettings & generalSettings, Firmware * firmware):
- ModelPanel(parent, model, generalSettings, firmware),
- ui(new Ui::TelemetryAnalog),
- analog(analog),
- lock(false)
-{
- ui->setupUi(this);
-
- float ratio = analog.getRatio();
-
- if (analog.type==0 || analog.type==1 || analog.type==2) {
- ui->RatioSB->setDecimals(1);
- ui->RatioSB->setMaximum(25.5*firmware->getCapability(TelemetryMaxMultiplier));
- }
- else {
- ui->RatioSB->setDecimals(0);
- ui->RatioSB->setMaximum(255*firmware->getCapability(TelemetryMaxMultiplier));
- }
- ui->RatioSB->setValue(ratio);
-
- update();
-
- ui->UnitCB->setCurrentIndex(analog.type);
- ui->alarm1LevelCB->setCurrentIndex(analog.alarms[0].level);
- ui->alarm1GreaterCB->setCurrentIndex(analog.alarms[0].greater);
- ui->alarm2LevelCB->setCurrentIndex(analog.alarms[1].level);
- ui->alarm2GreaterCB->setCurrentIndex(analog.alarms[1].greater);
-
- if (!(firmware->getCapability(Telemetry) & TM_HASOFFSET)) {
- ui->CalibSB->hide();
- ui->CalibLabel->hide();
- }
- else {
- ui->label_Max->setText(tr("Range"));
- }
-
- disableMouseScrolling();
-}
-
-void TelemetryAnalog::update()
-{
- float ratio = analog.getRatio();
- float step = ratio / 255;
- float mini = (ratio * analog.offset) / 255;
- float maxi = mini + ratio;
-
- ui->alarm1ValueSB->setDecimals(2);
- ui->alarm1ValueSB->setSingleStep(step);
- ui->alarm1ValueSB->setMinimum(mini);
- ui->alarm1ValueSB->setMaximum(maxi);
- ui->alarm1ValueSB->setValue(mini + step*analog.alarms[0].value);
-
- ui->alarm2ValueSB->setDecimals(2);
- ui->alarm2ValueSB->setSingleStep(step);
- ui->alarm2ValueSB->setMinimum(mini);
- ui->alarm2ValueSB->setMaximum(maxi);
- ui->alarm2ValueSB->setValue(mini + step*analog.alarms[1].value);
-
- ui->CalibSB->setDecimals(2);
- ui->CalibSB->setMaximum(step*127);
- ui->CalibSB->setMinimum(-step*128);
- ui->CalibSB->setSingleStep(step);
- ui->CalibSB->setValue(mini);
-}
-
-static int findmult(float value, float base)
-{
- int vvalue = value*10;
- int vbase = base*10;
- vvalue--;
-
- int mult = 0;
- for (int i=8; i>=0; i--) {
- if (vvalue/vbase >= (1<RatioSB->setDecimals(1);
- ui->RatioSB->setMaximum(25.5*firmware->getCapability(TelemetryMaxMultiplier));
- break;
- default:
- ui->RatioSB->setDecimals(0);
- ui->RatioSB->setMaximum(255*firmware->getCapability(TelemetryMaxMultiplier));
- break;
- }
- ui->RatioSB->setValue(ratio);
- update();
- emit modified();
-}
-
-void TelemetryAnalog::on_RatioSB_valueChanged()
-{
- if (!lock) {
- if (analog.type==0 || analog.type==1 || analog.type==2) {
- analog.multiplier = findmult(ui->RatioSB->value(), 25.5);
- float singlestep =(1<RatioSB->setSingleStep(singlestep);
- ui->RatioSB->setValue(round(ui->RatioSB->value()/singlestep)*singlestep);
- lock=false;
- }
- else {
- analog.multiplier = findmult(ui->RatioSB->value(), 255);
- float singlestep = (1<RatioSB->setSingleStep(singlestep);
- ui->RatioSB->setValue(round(ui->RatioSB->value()/singlestep)*singlestep);
- lock = false;
- }
- emit modified();
- }
-}
-
-void TelemetryAnalog::on_RatioSB_editingFinished()
-{
- if (!lock) {
- float ratio, calib, alarm1value,alarm2value;
-
- if (analog.type==0 || analog.type==1 || analog.type==2) {
- analog.multiplier = findmult(ui->RatioSB->value(), 25.5);
- ui->CalibSB->setSingleStep((1<alarm1ValueSB->setSingleStep((1<alarm2ValueSB->setSingleStep((1<RatioSB->value()*10))/(1 <RatioSB->value(), 255);
- ui->CalibSB->setSingleStep(1<alarm1ValueSB->setSingleStep(1<alarm2ValueSB->setSingleStep(1<RatioSB->value()/(1 << analog.multiplier));
- }
- ui->CalibSB->setMaximum((ui->RatioSB->value()*127)/255);
- ui->CalibSB->setMinimum((ui->RatioSB->value()*-128)/255);
- ui->alarm1ValueSB->setMaximum(ui->RatioSB->value());
- ui->alarm2ValueSB->setMaximum(ui->RatioSB->value());
- repaint();
- ratio=analog.ratio * (1 << analog.multiplier);
- calib=ui->CalibSB->value();
- alarm1value=ui->alarm1ValueSB->value();
- alarm2value=ui->alarm2ValueSB->value();
- if (analog.type==0) {
- calib*=10;
- alarm1value*=10;
- alarm2value*=10;
- }
- if (calib>0) {
- if (calib>((ratio*127)/255)) {
- analog.offset=127;
- }
- else {
- analog.offset=round(calib*255/ratio);
- }
- }
- if (calib<0) {
- if (calib<((ratio*-128)/255)) {
- analog.offset=-128;
- }
- else {
- analog.offset=round(calib*255/ratio);
- }
- }
- analog.alarms[0].value=round((alarm1value*255-analog.offset*(analog.ratio<CalibSB->value()/ratio));
- calib=ratio*analog.offset/255.0;
- alarm1value=ui->alarm1ValueSB->value();
- alarm2value=ui->alarm2ValueSB->value();
- if (alarm1value(ratio+calib)) {
- alarm1value=ratio+calib;
- }
- if (alarm2value(ratio+calib)) {
- alarm2value=ratio+calib;
- }
- analog.alarms[0].value=round(((alarm1value-calib)*255)/ratio);
- analog.alarms[1].value=round(((alarm2value-calib)*255)/ratio);
- }
- else {
- analog.offset=0;
- analog.alarms[0].value=0;
- analog.alarms[1].value=0;
- }
- update();
- emit modified();
-}
-
-void TelemetryAnalog::on_alarm1LevelCB_currentIndexChanged(int index)
-{
- analog.alarms[0].level = index;
- emit modified();
-}
-
-
-void TelemetryAnalog::on_alarm1GreaterCB_currentIndexChanged(int index)
-{
- analog.alarms[0].greater = index;
- emit modified();
-}
-
-void TelemetryAnalog::on_alarm1ValueSB_editingFinished()
-{
- float ratio = analog.getRatio();
- float calib, alarm1value;
-
- calib=analog.offset;
- alarm1value=ui->alarm1ValueSB->value();
-
- if (alarm1value<((calib*ratio)/255)) {
- analog.alarms[0].value=0;
- }
- else if (alarm1value>(ratio+(calib*ratio)/255)) {
- analog.alarms[0].value=255;
- }
- else {
- analog.alarms[0].value = round((alarm1value-((calib*ratio)/255))/ratio*255);
- }
- update();
- emit modified();
-}
-
-void TelemetryAnalog::on_alarm2LevelCB_currentIndexChanged(int index)
-{
- analog.alarms[1].level = index;
- emit modified();
-}
-
-void TelemetryAnalog::on_alarm2GreaterCB_currentIndexChanged(int index)
-{
- analog.alarms[1].greater = index;
- emit modified();
-}
-
-void TelemetryAnalog::on_alarm2ValueSB_editingFinished()
-{
- float calib, alarm2value;
- float ratio = analog.getRatio();
- calib = analog.offset;
- alarm2value = ui->alarm2ValueSB->value();
- if (alarm2value<((calib*ratio)/255)) {
- analog.alarms[1].value=0;
- }
- else if (alarm2value>(ratio+(calib*ratio)/255)) {
- analog.alarms[1].value=255;
- }
- else {
- analog.alarms[1].value = round((alarm2value-((calib*ratio)/255))/ratio*255);
- }
- update();
- emit modified();
-}
-
-TelemetryAnalog::~TelemetryAnalog()
-{
- delete ui;
-}
/******************************************************/
@@ -377,8 +91,7 @@ TelemetryCustomScreen::TelemetryCustomScreen(QWidget *parent, ModelData & model,
disableMouseScrolling();
lock = true;
- if (IS_ARM(firmware->getBoard()))
- ui->screenType->addItem(tr("None"), TELEMETRY_SCREEN_NONE);
+ ui->screenType->addItem(tr("None"), TELEMETRY_SCREEN_NONE);
ui->screenType->addItem(tr("Numbers"), TELEMETRY_SCREEN_NUMBERS);
ui->screenType->addItem(tr("Bars"), TELEMETRY_SCREEN_BARS);
if (IS_TARANIS(firmware->getBoard()))
@@ -439,14 +152,8 @@ void TelemetryCustomScreen::updateBar(int line)
if (source.type != SOURCE_TYPE_NONE) {
RawSourceRange range = source.getRange(model, generalSettings);
- if (!IS_ARM(getCurrentBoard())) {
- int max = round((range.max - range.min) / range.step);
- if (int(255-screen.body.bars[line].barMax) > max) {
- screen.body.bars[line].barMax = 255 - max;
- }
- }
float minVal = range.getValue(screen.body.bars[line].barMin);
- float maxVal = IS_ARM(getCurrentBoard()) ? screen.body.bars[line].barMax : 255 - screen.body.bars[line].barMax;
+ float maxVal = screen.body.bars[line].barMax;
maxVal = range.getValue(maxVal);
if (source.isTimeBased()) {
@@ -552,10 +259,7 @@ void TelemetryCustomScreen::barMinChanged(double value)
{
if (!lock) {
int line = sender()->property("index").toInt();
- if (IS_ARM(getCurrentBoard()))
- screen.body.bars[line].barMin = round(value / minSB[line]->singleStep());
- else
- screen.body.bars[line].barMin = round((value-minSB[line]->minimum()) / minSB[line]->singleStep());
+ screen.body.bars[line].barMin = round(value / minSB[line]->singleStep());
// TODO set min (maxSB)
emit modified();
}
@@ -565,10 +269,7 @@ void TelemetryCustomScreen::barMaxChanged(double value)
{
if (!lock) {
int line = sender()->property("index").toInt();
- if (IS_ARM(getCurrentBoard()))
- screen.body.bars[line].barMax = round((value) / maxSB[line]->singleStep());
- else
- screen.body.bars[line].barMax = 255 - round((value-minSB[line]->minimum()) / maxSB[line]->singleStep());
+ screen.body.bars[line].barMax = round((value) / maxSB[line]->singleStep());
// TODO set max (minSB)
emit modified();
}
@@ -583,10 +284,7 @@ void TelemetryCustomScreen::barTimeChanged()
if (!te)
return;
- if (IS_ARM(getCurrentBoard()))
- valRef = round(te->timeInSeconds() / te->singleStep());
- else
- valRef = round((te->timeInSeconds() - te->minimumTime()) / te->singleStep());
+ valRef = round(te->timeInSeconds() / te->singleStep());
emit modified();
}
@@ -946,29 +644,17 @@ TelemetryPanel::TelemetryPanel(QWidget *parent, ModelData & model, GeneralSettin
model.frsky.usrProto = 1;
}
- if (IS_ARM(firmware->getBoard())) {
- ui->varioSource->setField(model.frsky.varioSource, this);
- ui->varioCenterSilent->setField(model.frsky.varioCenterSilent, this);
- ui->A1GB->hide();
- ui->A2GB->hide();
- for (unsigned i= 0; i < CPN_MAX_SENSORS; ++i) {
- TelemetrySensorPanel * panel = new TelemetrySensorPanel(this, model.sensorData[i], i, model, generalSettings, firmware);
- ui->sensorsLayout->addWidget(panel);
- sensorPanels[i] = panel;
- connect(panel, SIGNAL(dataModified()), this, SLOT(update()));
- connect(panel, SIGNAL(modified()), this, SLOT(onModified()));
- connect(panel, SIGNAL(clearAllSensors()), this, SLOT(on_clearAllSensors()));
- }
- }
- else {
- ui->sensorsGB->hide();
- ui->altimetryGB->hide();
- analogs[0] = new TelemetryAnalog(this, model.frsky.channels[0], model, generalSettings, firmware);
- ui->A1Layout->addWidget(analogs[0]);
- connect(analogs[0], SIGNAL(modified()), this, SLOT(onAnalogModified()));
- analogs[1] = new TelemetryAnalog(this, model.frsky.channels[1], model, generalSettings, firmware);
- ui->A2Layout->addWidget(analogs[1]);
- connect(analogs[1], SIGNAL(modified()), this, SLOT(onModified()));
+ ui->varioSource->setField(model.frsky.varioSource, this);
+ ui->varioCenterSilent->setField(model.frsky.varioCenterSilent, this);
+ ui->A1GB->hide();
+ ui->A2GB->hide();
+ for (unsigned i= 0; i < CPN_MAX_SENSORS; ++i) {
+ TelemetrySensorPanel * panel = new TelemetrySensorPanel(this, model.sensorData[i], i, model, generalSettings, firmware);
+ ui->sensorsLayout->addWidget(panel);
+ sensorPanels[i] = panel;
+ connect(panel, SIGNAL(dataModified()), this, SLOT(update()));
+ connect(panel, SIGNAL(modified()), this, SLOT(onModified()));
+ connect(panel, SIGNAL(clearAllSensors()), this, SLOT(on_clearAllSensors()));
}
if (IS_TARANIS_X9(firmware->getBoard())) {
@@ -1017,10 +703,8 @@ void TelemetryPanel::update()
populateTelemetrySourcesComboBox(ui->varioSource, model, false);
}
- if (IS_ARM(firmware->getBoard())) {
- for (unsigned i=0; iupdate();
- }
+ for (unsigned i=0; iupdate();
}
emit updated();
@@ -1032,52 +716,29 @@ void TelemetryPanel::setup()
lock = true;
- if (IS_ARM(firmware->getBoard())) {
- ui->telemetryProtocol->addItem(tr("FrSky S.PORT"), 0);
- ui->telemetryProtocol->addItem(tr("FrSky D"), 1);
- if (IS_9XRPRO(firmware->getBoard()) ||
- (IS_TARANIS(firmware->getBoard()) && generalSettings.auxSerialMode == 2)) {
- ui->telemetryProtocol->addItem(tr("FrSky D (cable)"), 2);
- }
- ui->telemetryProtocol->setCurrentIndex(model->telemetryProtocol);
- ui->ignoreSensorIds->setField(model->frsky.ignoreSensorIds, this);
- ui->disableTelemetryAlarms->setField(model->rssiAlarms.disabled);
- }
- else {
- ui->telemetryProtocolLabel->hide();
- ui->telemetryProtocol->hide();
- ui->ignoreSensorIds->hide();
- ui->disableTelemetryAlarms->hide();
+ ui->telemetryProtocol->addItem(tr("FrSky S.PORT"), 0);
+ ui->telemetryProtocol->addItem(tr("FrSky D"), 1);
+ if (IS_9XRPRO(firmware->getBoard()) ||
+ (IS_TARANIS(firmware->getBoard()) && generalSettings.auxSerialMode == 2)) {
+ ui->telemetryProtocol->addItem(tr("FrSky D (cable)"), 2);
}
+ ui->telemetryProtocol->setCurrentIndex(model->telemetryProtocol);
+ ui->ignoreSensorIds->setField(model->frsky.ignoreSensorIds, this);
+ ui->disableTelemetryAlarms->setField(model->rssiAlarms.disabled);
ui->rssiAlarmWarningSB->setValue(model->rssiAlarms.warning);
ui->rssiAlarmCriticalSB->setValue(model->rssiAlarms.critical);
- if (!IS_ARM(firmware->getBoard())) {
- ui->rssiSourceLabel->hide();
- ui->rssiSourceCB->hide();
- ui->rssiAlarmWarningCB->setCurrentIndex(model->rssiAlarms.level[0]);
- ui->rssiAlarmCriticalCB->setCurrentIndex(model->rssiAlarms.level[1]);
- }
- else {
- ui->rssiSourceLabel->show();
- ui->rssiSourceLabel->setText(tr("Source"));
- ui->rssiSourceCB->setField(model->rssiSource, this);
- ui->rssiSourceCB->show();
- populateTelemetrySourcesComboBox(ui->rssiSourceCB, model, false);
- ui->rssiAlarmWarningCB->hide();
- ui->rssiAlarmCriticalCB->hide();
- ui->rssiAlarmWarningLabel->setText(tr("Low Alarm"));
- ui->rssiAlarmCriticalLabel->setText(tr("Critical Alarm"));
- }
+ ui->rssiSourceLabel->show();
+ ui->rssiSourceLabel->setText(tr("Source"));
+ ui->rssiSourceCB->setField(model->rssiSource, this);
+ ui->rssiSourceCB->show();
+ populateTelemetrySourcesComboBox(ui->rssiSourceCB, model, false);
- /*if (IS_ARM(firmware->getBoard())) {
- for (int i=0; i, model, generalSettings, firmware);
- ui->sensorsLayout->addWidget(panel);
- sensorPanels[i] = panel;
- }
- }*/
+ ui->rssiAlarmWarningCB->hide();
+ ui->rssiAlarmCriticalCB->hide();
+ ui->rssiAlarmWarningLabel->setText(tr("Low Alarm"));
+ ui->rssiAlarmCriticalLabel->setText(tr("Critical Alarm"));
int varioCap = firmware->getCapability(HasVario);
if (!varioCap) {
@@ -1109,7 +770,7 @@ void TelemetryPanel::setup()
ui->altimetryGB->setVisible(firmware->getCapability(HasVario)),
ui->frskyProtoCB->setDisabled(firmware->getCapability(NoTelemetryProtocol));
- if (firmware->getCapability(Telemetry) & TM_HASWSHH) {
+ if (firmware->getCapability(Telemetry)) {
ui->frskyProtoCB->addItem(tr("Winged Shadow How High"));
}
else {
@@ -1117,38 +778,6 @@ void TelemetryPanel::setup()
}
ui->variousGB->hide();
- if (!IS_ARM(firmware->getBoard())) {
- if (!(firmware->getCapability(HasFasOffset)) && !(firmware_id.contains("fasoffset"))) {
- ui->fasOffset_label->hide();
- ui->fasOffset_DSB->hide();
- }
- else {
- ui->fasOffset_DSB->setValue(model->frsky.fasOffset/10.0);
- ui->variousGB->show();
- }
-
- if (!(firmware->getCapability(HasMahPersistent))) {
- ui->mahCount_label->hide();
- ui->mahCount_SB->hide();
- ui->mahCount_ChkB->hide();
- }
- else {
- if (model->frsky.mAhPersistent) {
- ui->mahCount_ChkB->setChecked(true);
- ui->mahCount_SB->setValue(model->frsky.storedMah);
- }
- else {
- ui->mahCount_SB->setDisabled(true);
- }
- ui->variousGB->show();
- }
-
- ui->frskyProtoCB->setCurrentIndex(model->frsky.usrProto);
- ui->bladesCount->setValue(model->frsky.blades);
- populateVarioSource();
- populateVoltsSource();
- populateCurrentSource();
- }
lock = false;
}
@@ -1170,10 +799,8 @@ void TelemetryPanel::populateVoltsSource()
cb->setField(model->frsky.voltsSource, this);
cb->addItem(tr("A1"), TELEMETRY_VOLTS_SOURCE_A1);
cb->addItem(tr("A2"), TELEMETRY_VOLTS_SOURCE_A2);
- if (IS_ARM(firmware->getBoard())) {
- cb->addItem(tr("A3"), TELEMETRY_VOLTS_SOURCE_A3);
- cb->addItem(tr("A4"), TELEMETRY_VOLTS_SOURCE_A4);
- }
+ cb->addItem(tr("A3"), TELEMETRY_VOLTS_SOURCE_A3);
+ cb->addItem(tr("A4"), TELEMETRY_VOLTS_SOURCE_A4);
cb->addItem(tr("FAS"), TELEMETRY_VOLTS_SOURCE_FAS);
cb->addItem(tr("Cells"), TELEMETRY_VOLTS_SOURCE_CELLS);
}
@@ -1185,10 +812,8 @@ void TelemetryPanel::populateCurrentSource()
cb->addItem(tr("---"), TELEMETRY_CURRENT_SOURCE_NONE);
cb->addItem(tr("A1"), TELEMETRY_CURRENT_SOURCE_A1);
cb->addItem(tr("A2"), TELEMETRY_CURRENT_SOURCE_A2);
- if (IS_ARM(firmware->getBoard())) {
- cb->addItem(tr("A3"), TELEMETRY_CURRENT_SOURCE_A3);
- cb->addItem(tr("A4"), TELEMETRY_CURRENT_SOURCE_A4);
- }
+ cb->addItem(tr("A3"), TELEMETRY_CURRENT_SOURCE_A3);
+ cb->addItem(tr("A4"), TELEMETRY_CURRENT_SOURCE_A4);
cb->addItem(tr("FAS"), TELEMETRY_CURRENT_SOURCE_FAS);
}
@@ -1223,18 +848,6 @@ void TelemetryPanel::on_frskyProtoCB_currentIndexChanged(int index)
}
}
-void TelemetryPanel::on_rssiAlarmWarningCB_currentIndexChanged(int index)
-{
- model->rssiAlarms.level[0] = index;
- emit modified();
-}
-
-void TelemetryPanel::on_rssiAlarmCriticalCB_currentIndexChanged(int index)
-{
- model->rssiAlarms.level[1] = index;
- emit modified();
-}
-
void TelemetryPanel::on_rssiAlarmWarningSB_editingFinished()
{
model->rssiAlarms.warning= ui->rssiAlarmWarningSB->value();
diff --git a/companion/src/modeledit/telemetry.h b/companion/src/modeledit/telemetry.h
index 39f3a42ad..28dc7643c 100644
--- a/companion/src/modeledit/telemetry.h
+++ b/companion/src/modeledit/telemetry.h
@@ -31,45 +31,11 @@ class RawSourceFilterItemModel;
class TimerEdit;
namespace Ui {
- class TelemetryAnalog;
class TelemetryCustomScreen;
class TelemetrySensor;
class Telemetry;
}
-class TelemetryAnalog: public ModelPanel
-{
- Q_OBJECT
-
- friend class TelemetryPanel;
-
- public:
- TelemetryAnalog(QWidget *parent, FrSkyChannelData & analog, ModelData & model, GeneralSettings & generalSettings, Firmware * firmware);
- virtual ~TelemetryAnalog();
-
- signals:
- void modified();
-
- private slots:
- void on_UnitCB_currentIndexChanged(int index);
- void on_RatioSB_editingFinished();
- void on_RatioSB_valueChanged();
- void on_CalibSB_editingFinished();
- void on_alarm1LevelCB_currentIndexChanged(int index);
- void on_alarm1GreaterCB_currentIndexChanged(int index);
- void on_alarm1ValueSB_editingFinished();
- void on_alarm2LevelCB_currentIndexChanged(int index);
- void on_alarm2GreaterCB_currentIndexChanged(int index);
- void on_alarm2ValueSB_editingFinished();
-
- private:
- Ui::TelemetryAnalog *ui;
- FrSkyChannelData & analog;
- bool lock;
-
- void update();
-};
-
class TelemetryCustomScreen: public ModelPanel
{
Q_OBJECT
@@ -155,8 +121,6 @@ class TelemetryPanel : public ModelPanel
void onModified();
void on_frskyProtoCB_currentIndexChanged(int index);
void on_bladesCount_editingFinished();
- void on_rssiAlarmWarningCB_currentIndexChanged(int index);
- void on_rssiAlarmCriticalCB_currentIndexChanged(int index);
void on_rssiAlarmWarningSB_editingFinished();
void on_rssiAlarmCriticalSB_editingFinished();
void on_varioLimitMin_DSB_editingFinished();
@@ -170,7 +134,6 @@ class TelemetryPanel : public ModelPanel
private:
Ui::Telemetry *ui;
- TelemetryAnalog * analogs[4];
TelemetryCustomScreen * telemetryCustomScreens[4];
TelemetrySensorPanel * sensorPanels[CPN_MAX_SENSORS];
diff --git a/companion/src/modelprinter.cpp b/companion/src/modelprinter.cpp
index 1d1881a75..bd56876c6 100644
--- a/companion/src/modelprinter.cpp
+++ b/companion/src/modelprinter.cpp
@@ -973,8 +973,7 @@ QString ModelPrinter::printSettingsTrim()
{
QStringList str;
str << printLabelValue(tr("Step"), printTrimIncrementMode());
- if (IS_ARM(firmware->getBoard()))
- str << printLabelValue(tr("Display"), printTrimsDisplayMode());
+ str << printLabelValue(tr("Display"), printTrimsDisplayMode());
str << printLabelValue(tr("Extended"), printBoolean(model.extendedTrims, BOOLEAN_YESNO));
return str.join(" ");
}
diff --git a/companion/src/multimodelprinter.cpp b/companion/src/multimodelprinter.cpp
index f9d039d69..9d57e1f62 100644
--- a/companion/src/multimodelprinter.cpp
+++ b/companion/src/multimodelprinter.cpp
@@ -292,7 +292,7 @@ QString MultiModelPrinter::print(QTextDocument * document)
if (firmware->getCapability(GlobalFunctions))
str.append(printGlobalFunctions());
str.append(printSpecialFunctions());
- if (firmware->getCapability(Telemetry) & TM_HASTELEMETRY) {
+ if (firmware->getCapability(Telemetry)) {
str.append(printTelemetry());
str.append(printSensors());
if (firmware->getCapability(TelemetryCustomScreens)) {
@@ -751,32 +751,19 @@ QString MultiModelPrinter::printTelemetry()
MultiColumns columns(modelPrinterMap.size());
columns.appendSectionTableStart();
- // Analogs on non ARM boards
- if (!IS_ARM(firmware->getBoard())) {
- columns.appendRowHeader(QStringList() << tr("Analogs") << tr("Unit") << tr("Scale") << tr("Offset"));
- for (int i=0; i<2; i++) {
- columns.appendRowStart(QString("A%1").arg(i+1), 20);
- COMPARECELLWIDTH(FrSkyChannelData::unitString(model->frsky.channels[i].type), 20);
- COMPARECELLWIDTH(QString::number((model->frsky.channels[i].ratio / (model->frsky.channels[i].type==0 ? 10.0 : 1)), 10, (model->frsky.channels[i].type==0 ? 1 : 0)), 20);
- COMPARECELLWIDTH(QString::number((model->frsky.channels[i].offset*(model->frsky.channels[i].ratio / (model->frsky.channels[i].type==0 ?10.0 : 1)))/255, 10, (model->frsky.channels[i].type==0 ? 1 : 0)), 40);
- columns.appendRowEnd();
- }
- }
- else {
- // Protocol
- columns.appendRowStart(tr("Protocol"), 20);
- COMPARECELL(modelPrinter->printTelemetryProtocol(model->telemetryProtocol));
- columns.appendRowEnd();
- }
+ // Protocol
+ columns.appendRowStart(tr("Protocol"), 20);
+ COMPARECELL(modelPrinter->printTelemetryProtocol(model->telemetryProtocol));
+ columns.appendRowEnd();
// RSSI alarms
{
columns.appendRowStart(tr("RSSI Alarms"), 20);
columns.appendCellStart(80);
- COMPARESTRING("", (IS_ARM(getCurrentBoard()) ? tr("Low") : FrSkyAlarmData::alarmLevelName(model->rssiAlarms.level[0])), false);
+ COMPARESTRING("", tr("Low"), false);
columns.append(": ");
COMPARESTRING("", QString("< %1").arg(QString::number(model->rssiAlarms.warning, 10)), true);
- COMPARESTRING("", (IS_ARM(getCurrentBoard()) ? tr("Critical") : FrSkyAlarmData::alarmLevelName(model->rssiAlarms.level[1])), false);
+ COMPARESTRING("", tr("Critical"), false);
columns.append(": ");
COMPARESTRING("", QString("< %1").arg(QString::number(model->rssiAlarms.critical, 10)), true);
COMPARESTRING(tr("Telemetry audio"), modelPrinter->printRssiAlarmsDisabled(model->rssiAlarms.disabled), false);
@@ -818,39 +805,9 @@ QString MultiModelPrinter::printTelemetry()
columns.appendRowEnd();
}
- if (IS_ARM(firmware->getBoard())) {
- ROWLABELCOMPARECELL("Multi sensors", 0, modelPrinter->printIgnoreSensorIds(!model->frsky.ignoreSensorIds), 0);
- }
+ ROWLABELCOMPARECELL("Multi sensors", 0, modelPrinter->printIgnoreSensorIds(!model->frsky.ignoreSensorIds), 0);
// Various
- if (!IS_ARM(firmware->getBoard())) {
- columns.appendRowHeader(QStringList() << tr("Various"));
- if (!firmware->getCapability(NoTelemetryProtocol)) {
- columns.appendRowStart("", 20);
- LABELCOMPARECELL(tr("Serial protocol"), modelPrinter->printTelemetrySource(model->frsky.voltsSource), 80);
- columns.appendRowEnd();
- }
- columns.appendRowStart("", 20);
- columns.appendCellStart(80);
- QString firmware_id = g.profile[g.id()].fwType();
- if (firmware->getCapability(HasFasOffset) && firmware_id.contains("fasoffset")) {
- COMPARESTRING(tr("FAS offset"), QString("%1 A").arg(model->frsky.fasOffset/10.0), true);
- }
- if (firmware->getCapability(HasMahPersistent)) {
- COMPARESTRING(tr("mAh count"), QString("%1 mAh").arg(model->frsky.storedMah), true);
- COMPARESTRING(tr("Persistent mAh"), modelPrinter->printMahPersistent(model->frsky.mAhPersistent), false);
- }
- columns.appendRowEnd();
- columns.appendRowStart("", 20);
- columns.appendCellStart(80);
- COMPARESTRING(tr("Volts source"), modelPrinter->printVoltsSource(model->frsky.voltsSource), true);
- COMPARESTRING(tr("Current source"), modelPrinter->printCurrentSource(model->frsky.currentSource), false);
- columns.appendCellEnd();
- columns.appendRowEnd();
- columns.appendRowStart("", 20);
- LABELCOMPARECELL(tr("Blades"), model->frsky.blades, 80);
- columns.appendRowEnd();
- }
columns.appendTableEnd();
str.append(columns.print());
return str;
diff --git a/companion/src/radiointerface.cpp b/companion/src/radiointerface.cpp
index fbc03186f..0ad24fe6c 100644
--- a/companion/src/radiointerface.cpp
+++ b/companion/src/radiointerface.cpp
@@ -36,43 +36,8 @@ QString getRadioInterfaceCmd()
if (IS_STM32(board)) {
return bcd.getDFU();
}
- else if (IS_SKY9X(board)) {
+ else
return bcd.getSAMBA();
- }
- else {
- return bcd.getAVRDUDE();
- }
-}
-
-QStringList getAvrdudeArgs(const QString & cmd, const QString & filename)
-{
- QStringList args;
- burnConfigDialog bcd;
- QString programmer = bcd.getProgrammer();
- QString mcu = bcd.getMCU();
- Board::Type board = getCurrentBoard();
-
- args << "-c" << programmer << "-p";
- if (IS_2560(board))
- args << "m2560";
- else if (board == Board::BOARD_9X_M128)
- args << "m128";
- else
- args << mcu;
-
- args << bcd.getAvrdudeArgs();
-
- QString fullcmd = cmd + filename;
- if (QFileInfo(filename).suffix().toUpper() == "HEX")
- fullcmd += ":i";
- else if (QFileInfo(filename).suffix().toUpper()=="BIN")
- fullcmd += ":r";
- else
- fullcmd += ":a";
-
- args << "-U" << fullcmd;
-
- return args;
}
QStringList getDfuArgs(const QString & cmd, const QString & filename)
@@ -119,11 +84,8 @@ QStringList getReadEEpromCmd(const QString & filename)
if (IS_STM32(eepromInterface->getBoard())) {
// impossible
}
- else if (IS_SKY9X(eepromInterface->getBoard())) {
- result = getSambaArgs(QString("SERIALFLASH::Init 0\n") + "receive_file {SerialFlash AT25} \"" + filename + "\" 0x0 0x80000 0\n");
- }
else {
- result = getAvrdudeArgs("eeprom:r:", filename);
+ result = getSambaArgs(QString("SERIALFLASH::Init 0\n") + "receive_file {SerialFlash AT25} \"" + filename + "\" 0x0 0x80000 0\n");
}
return result;
}
@@ -135,11 +97,8 @@ QStringList getWriteEEpromCmd(const QString & filename)
// impossible
return QStringList();
}
- else if (IS_SKY9X(board)) {
- return getSambaArgs(QString("SERIALFLASH::Init 0\n") + "send_file {SerialFlash AT25} \"" + filename + "\" 0x0 0\n");
- }
else {
- return getAvrdudeArgs("eeprom:w:", filename);
+ return getSambaArgs(QString("SERIALFLASH::Init 0\n") + "send_file {SerialFlash AT25} \"" + filename + "\" 0x0 0\n");
}
}
@@ -152,11 +111,8 @@ QStringList getWriteFirmwareArgs(const QString & filename)
else if (board == Board::BOARD_SKY9X) {
return getSambaArgs(QString("send_file {Flash} \"") + filename + "\" 0x400000 0\n" + "FLASH::ScriptGPNMV 2\n");
}
- else if (board == Board::BOARD_9XRPRO || board == Board::BOARD_AR9X) {
- return getSambaArgs(QString("send_file {Flash} \"") + filename + "\" 0x400000 0\n" + "FLASH::ScriptGPNMV 2\n");
- }
else {
- return getAvrdudeArgs("flash:w:", filename);
+ return getSambaArgs(QString("send_file {Flash} \"") + filename + "\" 0x400000 0\n" + "FLASH::ScriptGPNMV 2\n");
}
}
@@ -169,87 +125,8 @@ QStringList getReadFirmwareArgs(const QString & filename)
else if (board == Board::BOARD_SKY9X) {
return getSambaArgs(QString("receive_file {Flash} \"") + filename + "\" 0x400000 0x40000 0\n");
}
- else if (board == Board::BOARD_9XRPRO) {
- return getSambaArgs(QString("receive_file {Flash} \"") + filename + "\" 0x400000 0x80000 0\n");
- }
else {
- return getAvrdudeArgs("flash:r:", filename);
- }
-}
-
-void readAvrdudeFuses(ProgressWidget * progress)
-{
- burnConfigDialog bcd;
- QStringList args;
- args << "-c" << bcd.getProgrammer() << "-p" << bcd.getMCU() << bcd.getAvrdudeArgs() << "-U" << "lfuse:r:-:i" << "-U" << "hfuse:r:-:i" << "-U" << "efuse:r:-:i";
- FlashProcess flashProcess(bcd.getAVRDUDE(), args, progress);
- flashProcess.run();
-}
-
-void resetAvrdudeFuses(bool eepromProtect, ProgressWidget * progress)
-{
- //fuses
- //avrdude -c usbasp -p m64 -U lfuse:w:<0x0E>:m
- //avrdude -c usbasp -p m64 -U hfuse:w:<0x89>:m 0x81 for eeprom protection
- //avrdude -c usbasp -p m64 -U efuse:w:<0xFF>:m
-
- burnConfigDialog bcd;
- QMessageBox::StandardButton ret = QMessageBox::No;
- ret = QMessageBox::warning(NULL, CPN_STR_APP_NAME,
- QCoreApplication::translate("RadioInterface",
- "WARNING!" \
- "
This will reset the fuses of %1 to the factory settings.
"
- "Writing fuses can mess up your radio.
Do this only if you are sure they are wrong!
"
- "Are you sure you want to continue?").arg(bcd.getMCU()),
- QMessageBox::Yes | QMessageBox::No);
- if (ret == QMessageBox::Yes) {
- QStringList args = bcd.getAvrdudeArgs();
- QStringList str;
- if (bcd.getMCU() == "m2560") {
- args << "-B8";
- QString erStr = eepromProtect ? "hfuse:w:0x51:m" : "hfuse:w:0x59:m";
- str << "-U" << "lfuse:w:0xD7:m" << "-U" << erStr << "-U" << "efuse:w:0xFC:m";
- //use hfuse = 0x81 to prevent eeprom being erased with every flashing
- }
- else {
- QString lfuses;
- QString tempFile = generateProcessUniqueTempFileName("ftemp.bin");
- QStringList argread;
- argread << "-c" << bcd.getProgrammer() << "-p" << bcd.getMCU() << args <<"-U" << "lfuse:r:"+tempFile+":r";
- FlashProcess flashProcess(bcd.getAVRDUDE(), argread, progress);
- flashProcess.run();
- QFile file(tempFile);
- if (file.exists() && file.size()==1) {
- file.open(QIODevice::ReadOnly);
- char bin_flash[1];
- file.read(bin_flash, 1);
- if (bin_flash[0]==0x0E) {
- lfuses = "lfuse:w:0x0E:m";
- }
- else {
- lfuses = "lfuse:w:0x3F:m";
- }
- file.close();
- qunlink(tempFile);
- }
- else {
- lfuses = "lfuse:w:0x3F:m";
- }
-
- QString erStr = eepromProtect ? "hfuse:w:0xC1:m" : "hfuse:w:0xC9:m";
- str << "-U" << lfuses << "-U" << erStr << "-U" << "efuse:w:0xFF:m";
- //use hfuse = 0x81 to prevent eeprom being erased with every flashing
- }
-
- QStringList arguments;
- if (bcd.getMCU() == "m2560") {
- arguments << "-c" << bcd.getProgrammer() << "-p" << bcd.getMCU() << args << "-u" << str;
- }
- else {
- arguments << "-c" << bcd.getProgrammer() << "-p" << bcd.getMCU() << args << "-B" << "100" << "-u" << str;
- }
- FlashProcess flashProcess(bcd.getAVRDUDE(), arguments, progress);
- flashProcess.run();
+ return getSambaArgs(QString("receive_file {Flash} \"") + filename + "\" 0x400000 0x80000 0\n");
}
}
@@ -264,13 +141,11 @@ bool readFirmware(const QString & filename, ProgressWidget * progress)
return false;
}
- if (IS_ARM(getCurrentBoard())) {
- QString path = findMassstoragePath("FIRMWARE.BIN");
- if (!path.isEmpty()) {
- qDebug() << "readFirmware: reading" << path << "into" << filename;
- CopyProcess copyProcess(path, filename, progress);
- result = copyProcess.run();
- }
+ QString path = findMassstoragePath("FIRMWARE.BIN");
+ if (!path.isEmpty()) {
+ qDebug() << "readFirmware: reading" << path << "into" << filename;
+ CopyProcess copyProcess(path, filename, progress);
+ result = copyProcess.run();
}
if (!result) {
@@ -288,13 +163,11 @@ bool readFirmware(const QString & filename, ProgressWidget * progress)
bool writeFirmware(const QString & filename, ProgressWidget * progress)
{
- if (IS_ARM(getCurrentBoard())) {
- QString path = findMassstoragePath("FIRMWARE.BIN");
- if (!path.isEmpty()) {
- qDebug() << "writeFirmware: writing" << path << "from" << filename;
- CopyProcess copyProcess(filename, path, progress);
- return copyProcess.run();
- }
+ QString path = findMassstoragePath("FIRMWARE.BIN");
+ if (!path.isEmpty()) {
+ qDebug() << "writeFirmware: writing" << path << "from" << filename;
+ CopyProcess copyProcess(filename, path, progress);
+ return copyProcess.run();
}
qDebug() << "writeFirmware: writing" << filename << "with" << getRadioInterfaceCmd() << getWriteFirmwareArgs(filename);
@@ -339,26 +212,25 @@ bool readEeprom(const QString & filename, ProgressWidget * progress)
}
}
else {
- if (IS_ARM(board)) {
- QString path = findMassstoragePath("EEPROM.BIN");
- if (path.isEmpty()) {
- // On previous OpenTX we called the EEPROM file "TARANIS.BIN" :(
- path = findMassstoragePath("TARANIS.BIN");
- }
- if (path.isEmpty()) {
- // Mike's bootloader calls the EEPROM file "ERSKY9X.BIN" :(
- path = findMassstoragePath("ERSKY9X.BIN");
- }
- if (path.isEmpty()) {
- RadioNotFoundDialog dialog(progress);
- dialog.exec();
- return false;
- }
- CopyProcess copyProcess(path, filename, progress);
- if (!copyProcess.run()) {
- return false;
- }
+ QString path = findMassstoragePath("EEPROM.BIN");
+ if (path.isEmpty()) {
+ // On previous OpenTX we called the EEPROM file "TARANIS.BIN" :(
+ path = findMassstoragePath("TARANIS.BIN");
}
+ if (path.isEmpty()) {
+ // Mike's bootloader calls the EEPROM file "ERSKY9X.BIN" :(
+ path = findMassstoragePath("ERSKY9X.BIN");
+ }
+ if (path.isEmpty()) {
+ RadioNotFoundDialog dialog(progress);
+ dialog.exec();
+ return false;
+ }
+ CopyProcess copyProcess(path, filename, progress);
+ if (!copyProcess.run()) {
+ return false;
+ }
+
if (!IS_STM32(board)) {
FlashProcess flashProcess(getRadioInterfaceCmd(), getReadEEpromCmd(filename), progress);
@@ -375,20 +247,18 @@ bool writeEeprom(const QString & filename, ProgressWidget * progress)
{
Board::Type board = getCurrentBoard();
- if (IS_ARM(board)) {
- QString path = findMassstoragePath("EEPROM.BIN");
- if (path.isEmpty()) {
- // On previous OpenTX we called the EEPROM file "TARANIS.BIN" :(
- path = findMassstoragePath("TARANIS.BIN");
- }
- if (path.isEmpty()) {
- // Mike's bootloader calls the EEPROM file "ERSKY9X.BIN" :(
- path = findMassstoragePath("ERSKY9X.BIN");
- }
- if (!path.isEmpty()) {
- CopyProcess copyProcess(filename, path, progress);
- return copyProcess.run();
- }
+ QString path = findMassstoragePath("EEPROM.BIN");
+ if (path.isEmpty()) {
+ // On previous OpenTX we called the EEPROM file "TARANIS.BIN" :(
+ path = findMassstoragePath("TARANIS.BIN");
+ }
+ if (path.isEmpty()) {
+ // Mike's bootloader calls the EEPROM file "ERSKY9X.BIN" :(
+ path = findMassstoragePath("ERSKY9X.BIN");
+ }
+ if (!path.isEmpty()) {
+ CopyProcess copyProcess(filename, path, progress);
+ return copyProcess.run();
}
if (!IS_TARANIS(board)) {
@@ -396,10 +266,8 @@ bool writeEeprom(const QString & filename, ProgressWidget * progress)
return flashProcess.run();
}
- if (IS_ARM(board)) {
- RadioNotFoundDialog dialog(progress);
- dialog.exec();
- }
+ RadioNotFoundDialog dialog(progress);
+ dialog.exec();
return false;
}
diff --git a/companion/src/radiointerface.h b/companion/src/radiointerface.h
index f896d96c5..37053fac5 100644
--- a/companion/src/radiointerface.h
+++ b/companion/src/radiointerface.h
@@ -30,13 +30,9 @@ QString getRadioInterfaceCmd();
QString findMassstoragePath(const QString &filename, bool onlyPath = false);
-QStringList getAvrdudeArgs(const QString &cmd, const QString &filename);
QStringList getSambaArgs(const QString &tcl);
QStringList getDfuArgs(const QString &cmd, const QString &filename);
-void readAvrdudeFuses(ProgressWidget *progress);
-void resetAvrdudeFuses(bool eepromProtect, ProgressWidget *progress);
-
QStringList getReadEEpromCmd(const QString &filename);
QStringList getWriteEEpromCmd(const QString &filename);
QStringList getReadFirmwareArgs(const QString &filename);
diff --git a/companion/src/storage/rlefile.cpp b/companion/src/storage/rlefile.cpp
index fe297339f..4d38adac9 100644
--- a/companion/src/storage/rlefile.cpp
+++ b/companion/src/storage/rlefile.cpp
@@ -64,7 +64,7 @@ void RleFile::EeFsCreate(uint8_t *eeprom, int size, Board::Type board, unsigned
}
}
}
- else if (IS_TARANIS(board)) {
+ else {
eeFsArm = (EeFsArm *)eeprom;
eeFsVersion = 5;
eeFsSize = 8+4*62;
@@ -84,36 +84,6 @@ void RleFile::EeFsCreate(uint8_t *eeprom, int size, Board::Type board, unsigned
eeFsArm->freeList = eeFsFirstBlock;
// EeFsFlush();
}
- else {
- eeFs = (EeFs *)eeprom;
- eeFsVersion = (IS_2560(board) || board==Board::BOARD_9X_M128) ? 5 : 4;
- eeFsBlockSize = 16;
- eeFsLinkSize = 1;
-
- if (eeFsVersion == 5) {
- eeFsSize = 4+3*36;
- eeFsFirstBlock = 1;
- eeFsBlocksOffset = 112 - 16;
- eeFsBlocksMax = 1 + (4096-112)/16;
- }
- else {
- eeFsSize = 4+3*20;
- eeFsFirstBlock = 4;
- eeFsBlocksOffset = 0;
- eeFsBlocksMax = 2048/16;
- }
-
- memset(eeprom, 0, size);
- eeFs->version = eeFsVersion;
- eeFs->mySize = eeFsSize;
- eeFs->freeList = 0;
- eeFs->bs = eeFsBlockSize;
- for (unsigned int i=eeFsFirstBlock; ifreeList = eeFsFirstBlock;
- // EeFsFlush();
- }
}
PACK(struct EepromFileHeader
@@ -146,7 +116,7 @@ bool RleFile::EeFsOpen(uint8_t *eeprom, int size, Board::Type board)
searchFat();
return 1;
}
- else if (IS_TARANIS(board)) {
+ else {
eeFsArm = (EeFsArm *)eeprom;
eeFsVersion = eeFsArm->version;
eeFsSize = 8+4*62;
@@ -157,29 +127,6 @@ bool RleFile::EeFsOpen(uint8_t *eeprom, int size, Board::Type board)
eeFsBlocksMax = 1 + (Boards::getEEpromSize(board)-eeFsSize) / eeFsBlockSize;
return eeFsArm->mySize == eeFsSize;
}
- else {
- eeFs = (EeFs *)eeprom;
- eeFsVersion = eeFs->version;
- eeFsBlockSize = 16;
- eeFsLinkSize = 1;
- if (eeFsVersion == 5) {
- eeFsSize = 4+3*36;
- eeFsFirstBlock = 1;
- eeFsBlocksOffset = 112 - 16;
- eeFsBlocksMax = 1 + (4096-112)/16;
- }
- else if (eeFsVersion == 4) {
- eeFsSize = 4+3*20;
- eeFsFirstBlock = 4;
- eeFsBlocksOffset = 0;
- eeFsBlocksMax = 2048/16;
- }
- else {
- return 0;
- }
-
- return eeFs->mySize == eeFsSize;
- }
}
void RleFile::eeprom_read_block (void *pointer_ram, unsigned int pointer_eeprom, size_t size)
@@ -206,25 +153,16 @@ void RleFile::EeFsWrite(unsigned int blk, unsigned int ofs, uint8_t val)
unsigned int RleFile::EeFsGetLink(unsigned int blk)
{
- if (IS_ARM(board)) {
- int16_t ret;
- eeprom_read_block((uint8_t *)&ret, blk*eeFsBlockSize+eeFsBlocksOffset, eeFsLinkSize);
- return ret;
- }
- else {
- return EeFsRead(blk, 0);
- }
+ int16_t ret;
+ eeprom_read_block((uint8_t *)&ret, blk*eeFsBlockSize+eeFsBlocksOffset, eeFsLinkSize);
+ return ret;
}
void RleFile::EeFsSetLink(unsigned int blk, unsigned int val)
{
- if (IS_ARM(board)) {
- int16_t s_link = val;
- eeprom_write_block((uint8_t *)&s_link, (blk*eeFsBlockSize)+eeFsBlocksOffset, eeFsLinkSize);
- }
- else {
- EeFsWrite(blk, 0, val);
- }
+ int16_t s_link = val;
+ eeprom_write_block((uint8_t *)&s_link, (blk*eeFsBlockSize)+eeFsBlocksOffset, eeFsLinkSize);
+
}
uint8_t RleFile::EeFsGetDat(unsigned int blk, unsigned int ofs)
@@ -244,10 +182,7 @@ unsigned int RleFile::EeFsGetFree()
unsigned int ret = 0;
unsigned int i;
- if (IS_ARM(board))
- i = eeFsArm->freeList;
- else
- i = eeFs->freeList;
+ i = eeFsArm->freeList;
while (i) {
ret += eeFsBlockSize-eeFsLinkSize;
@@ -266,14 +201,8 @@ void RleFile::EeFsFree(unsigned int blk)
unsigned int i = blk;
while (EeFsGetLink(i)) i = EeFsGetLink(i);
- if (IS_ARM(board)) {
- EeFsSetLink(i, eeFsArm->freeList);
- eeFsArm->freeList = blk; //chain in front
- }
- else {
- EeFsSetLink(i, eeFs->freeList);
- eeFs->freeList = blk; //chain in front
- }
+ EeFsSetLink(i, eeFsArm->freeList);
+ eeFsArm->freeList = blk; //chain in front
}
/*
@@ -283,12 +212,9 @@ unsigned int RleFile::EeFsAlloc()
{
if (IS_FAMILY_HORUS_OR_T16(board))
return 0;
- unsigned int ret = (IS_ARM(board) ? eeFsArm->freeList : eeFs->freeList);
+ unsigned int ret = eeFsArm->freeList;
if (ret) {
- if (IS_ARM(board))
- eeFsArm->freeList = EeFsGetLink(ret);
- else
- eeFs->freeList = EeFsGetLink(ret);
+ eeFsArm->freeList = EeFsGetLink(ret);
EeFsSetLink(ret, 0);
}
return ret;
@@ -299,7 +225,7 @@ unsigned int RleFile::size(unsigned int id)
if (IS_FAMILY_HORUS_OR_T16(board))
return 0;
else
- return IS_ARM(board) ? eeFsArm->files[id].size : eeFs->files[id].size;
+ return eeFsArm->files[id].size;
}
unsigned int RleFile::openRd(unsigned int i_fileId)
@@ -327,15 +253,12 @@ unsigned int RleFile::openRd(unsigned int i_fileId)
else {
m_fileId = i_fileId;
m_pos = 0;
- m_currBlk = (IS_ARM(board) ? eeFsArm->files[m_fileId].startBlk : eeFs->files[m_fileId].startBlk);
+ m_currBlk = eeFsArm->files[m_fileId].startBlk;
m_ofs = 0;
m_zeroes = 0;
m_bRlc = 0;
m_err = ERR_NONE; //error reasons
- if (IS_ARM(board))
- return eeFsArm->files[m_fileId].typ;
- else
- return eeFs->files[m_fileId].typ;
+ return eeFsArm->files[m_fileId].typ;
}
}
@@ -344,14 +267,14 @@ unsigned int RleFile::read(uint8_t *buf, unsigned int i_len)
if (IS_FAMILY_HORUS_OR_T16(board))
return 0;
- unsigned int len = IS_ARM(board) ? eeFsArm->files[m_fileId].size : eeFs->files[m_fileId].size;
+ unsigned int len = eeFsArm->files[m_fileId].size;
len -= m_pos;
if (i_len > len) i_len = len;
len = i_len;
while(len) {
if (!m_currBlk) break;
*buf++ = EeFsGetDat(m_currBlk, m_ofs++);
- if (m_ofs >= (eeFsBlockSize-(IS_ARM(board)? 2 : 1))) {
+ if (m_ofs >= (eeFsBlockSize - 2)) {
m_ofs = 0;
m_currBlk = EeFsGetLink(m_currBlk);
}
@@ -492,10 +415,7 @@ unsigned int RleFile::write(const uint8_t *buf, unsigned int i_len)
unsigned int len = i_len;
if (!m_currBlk && m_pos==0)
{
- if (IS_ARM(board))
- eeFsArm->files[m_fileId].startBlk = m_currBlk = EeFsAlloc();
- else
- eeFs->files[m_fileId].startBlk = m_currBlk = EeFsAlloc();
+ eeFsArm->files[m_fileId].startBlk = m_currBlk = EeFsAlloc();
}
while (len)
{
@@ -527,23 +447,15 @@ unsigned int RleFile::write(const uint8_t *buf, unsigned int i_len)
void RleFile::create(unsigned int i_fileId, unsigned int typ)
{
openRd(i_fileId); //internal use
- if (IS_ARM(board)) {
- eeFsArm->files[i_fileId].typ = typ;
- eeFsArm->files[i_fileId].size = 0;
- }
- else {
- eeFs->files[i_fileId].typ = typ;
- eeFs->files[i_fileId].size = 0;
- }
+ eeFsArm->files[i_fileId].typ = typ;
+ eeFsArm->files[i_fileId].size = 0;
+
}
void RleFile::closeTrunc()
{
unsigned int fri=0;
- if (IS_ARM(board))
- eeFsArm->files[m_fileId].size = m_pos;
- else
- eeFs->files[m_fileId].size = m_pos;
+ eeFsArm->files[m_fileId].size = m_pos;
if (m_currBlk && ( fri = EeFsGetLink(m_currBlk))) EeFsSetLink(m_currBlk, 0);
if(fri) EeFsFree( fri ); //chain in
}
diff --git a/companion/src/wizarddata.cpp b/companion/src/wizarddata.cpp
index f544ee4b0..25adaee24 100644
--- a/companion/src/wizarddata.cpp
+++ b/companion/src/wizarddata.cpp
@@ -61,27 +61,28 @@ void WizMix::maxMixSwitch(char *name, MixData &mix, int channel, int sw, int wei
void WizMix::addMix(ModelData &model, Input input, int weight, int channel, int & mixIndex)
{
if (input != NO_INPUT) {
- bool isHorusOrTaranis = IS_ARM(getCurrentBoard());
if (input >= RUDDER_INPUT && input <= AILERONS_INPUT) {
MixData & mix = model.mixData[mixIndex++];
mix.destCh = channel+1;
- if (isHorusOrTaranis){
+ if (IS_SKY9X(getCurrentBoard())) {
+ mix.srcRaw = RawSource(SOURCE_TYPE_STICK, input-1);
+ }
+ else {
int channel = settings.getDefaultChannel(input-1);
mix.srcRaw = RawSource(SOURCE_TYPE_VIRTUAL_INPUT, channel);
}
- else
- mix.srcRaw = RawSource(SOURCE_TYPE_STICK, input-1);
+
mix.weight = weight;
}
else if (input==FLAPS_INPUT){
// There ought to be some kind of constants for switches somewhere...
- maxMixSwitch((char *)"Flaps Up", model.mixData[mixIndex++], channel+1, isHorusOrTaranis ? SWITCH_SA0 :-SWITCH_ELE , weight); //Taranis-Horus SA-UP, 9X ELE-UP
- maxMixSwitch((char *)"Flaps Dn", model.mixData[mixIndex++], channel+1, isHorusOrTaranis ? SWITCH_SA2 : SWITCH_ELE , -weight); //Taranis-Horus SA-DOWN, 9X ELE-DOWN
+ maxMixSwitch((char *)"Flaps Up", model.mixData[mixIndex++], channel+1, IS_SKY9X(getCurrentBoard()) ? -SWITCH_ELE : SWITCH_SA0, weight); //Taranis-Horus SA-UP, 9X ELE-UP
+ maxMixSwitch((char *)"Flaps Dn", model.mixData[mixIndex++], channel+1, IS_SKY9X(getCurrentBoard()) ? SWITCH_ELE : SWITCH_SA2, -weight); //Taranis-Horus SA-DOWN, 9X ELE-DOWN
}
else if (input==AIRBRAKES_INPUT){
- maxMixSwitch((char *)"AirbkOff", model.mixData[mixIndex++], channel+1, isHorusOrTaranis ? SWITCH_SE0 :-SWITCH_RUD , -weight); //Taranis-Horus SE-UP, 9X RUD-UP
- maxMixSwitch((char *)"AirbkOn", model.mixData[mixIndex++], channel+1, isHorusOrTaranis ? SWITCH_SE2 : SWITCH_RUD , weight); //Tatanis-Horus SE-DOWN, 9X RUD-DOWN
+ maxMixSwitch((char *)"AirbkOff", model.mixData[mixIndex++], channel+1, IS_SKY9X(getCurrentBoard()) ? -SWITCH_RUD : SWITCH_SE0, -weight); //Taranis-Horus SE-UP, 9X RUD-UP
+ maxMixSwitch((char *)"AirbkOn", model.mixData[mixIndex++], channel+1, IS_SKY9X(getCurrentBoard()) ? SWITCH_RUD : SWITCH_SE2, weight); //Tatanis-Horus SE-DOWN, 9X RUD-DOWN
}
}
}
@@ -120,7 +121,7 @@ WizMix::operator ModelData()
mix.srcRaw = SOURCE_TYPE_MAX;
mix.weight = -100;
mix.swtch.type = SWITCH_TYPE_SWITCH;
- mix.swtch.index = IS_ARM(getCurrentBoard()) ? SWITCH_SF0 : SWITCH_THR;
+ mix.swtch.index = IS_SKY9X(getCurrentBoard()) ? SWITCH_THR : SWITCH_SF0;
mix.mltpx = MLTPX_REP;
memset(mix.name, 0, sizeof(mix.name));
strncpy(mix.name, "Cut", MIXDATA_NAME_LEN);
diff --git a/launchpad/common/rules b/launchpad/common/rules
index cf96b0fda..2ee5a0a6c 100755
--- a/launchpad/common/rules
+++ b/launchpad/common/rules
@@ -15,9 +15,6 @@ STM32_OPTIONS = -DLUA=YES
build:
mkdir $(BUILDDIR);
- cd $(BUILDDIR); cmake $(COMMON_OPTIONS) -DPCB=9X ../ ; make libsimulator
- cd $(BUILDDIR); cmake $(COMMON_OPTIONS) -DPCB=GRUVIN9X ../ ; make libsimulator
- cd $(BUILDDIR); cmake $(COMMON_OPTIONS) -DPCB=MEGA2560 ../ ; make libsimulator
cd $(BUILDDIR); cmake $(COMMON_OPTIONS) -DPCB=SKY9X ../ ; make libsimulator
cd $(BUILDDIR); cmake $(COMMON_OPTIONS) -DPCB=9XRPRO ../ ; make libsimulator
diff --git a/radio/src/io/frsky_firmware_update.cpp b/radio/src/io/frsky_firmware_update.cpp
index 2d9a62d5e..eb1ab0df4 100644
--- a/radio/src/io/frsky_firmware_update.cpp
+++ b/radio/src/io/frsky_firmware_update.cpp
@@ -160,7 +160,7 @@ const uint8_t * FrskyDeviceFirmwareUpdate::readFullDuplexFrame(ModuleFifo & fifo
const uint8_t * FrskyDeviceFirmwareUpdate::readHalfDuplexFrame(uint32_t timeout)
{
- for (int i=timeout; i>=0; i--) {
+ for (int i = timeout; i >= 0; i--) {
uint8_t byte ;
while (telemetryGetByte(&byte)) {
if (pushFrskyTelemetryData(byte)) {
diff --git a/radio/src/targets/simu/opentxsimulator.cpp b/radio/src/targets/simu/opentxsimulator.cpp
index edc435c12..f7e4f80e9 100644
--- a/radio/src/targets/simu/opentxsimulator.cpp
+++ b/radio/src/targets/simu/opentxsimulator.cpp
@@ -613,10 +613,8 @@ class OpenTxSimulatorFactory: public SimulatorFactory
return Board::BOARD_TARANIS_X9LITES;
#elif defined(PCBX9LITE)
return Board::BOARD_TARANIS_X9LITE;
-#elif defined(PCBTARANIS)
- return Board::BOARD_TARANIS_X9D;
#else
- return Board::BOARD_9X_M64;
+ return Board::BOARD_TARANIS_X9D;
#endif
}
};