mirror of
https://github.com/EdgeTX/edgetx.git
synced 2025-07-23 16:25:12 +03:00
[Taranis X9E] Wrong import of model settings in Companion
This commit is contained in:
parent
9cedd8364c
commit
ae4fc0888a
3 changed files with 29 additions and 11 deletions
|
@ -1550,6 +1550,7 @@ void registerEEpromInterfaces()
|
|||
eepromInterfaces.push_back(new OpenTxEepromInterface(BOARD_9XRPRO));
|
||||
eepromInterfaces.push_back(new OpenTxEepromInterface(BOARD_TARANIS));
|
||||
eepromInterfaces.push_back(new OpenTxEepromInterface(BOARD_TARANIS_PLUS));
|
||||
eepromInterfaces.push_back(new OpenTxEepromInterface(BOARD_TARANIS_X9E));
|
||||
eepromInterfaces.push_back(new Gruvin9xInterface(BOARD_STOCK));
|
||||
eepromInterfaces.push_back(new Gruvin9xInterface(BOARD_GRUVIN9X));
|
||||
eepromInterfaces.push_back(new Ersky9xInterface());
|
||||
|
|
|
@ -22,14 +22,15 @@
|
|||
#include "eepromimportexport.h"
|
||||
#include <qbytearray.h>
|
||||
|
||||
#define GVARS_VARIANT 0x0001
|
||||
#define FRSKY_VARIANT 0x0002
|
||||
#define POS3_VARIANT 0x0004
|
||||
#define MAVLINK_VARIANT 0x0008
|
||||
#define M128_VARIANT 0x8000
|
||||
#define GVARS_VARIANT 0x0001
|
||||
#define FRSKY_VARIANT 0x0002
|
||||
#define POS3_VARIANT 0x0004
|
||||
#define MAVLINK_VARIANT 0x0008
|
||||
#define M128_VARIANT 0x8000
|
||||
#define TARANIS_X9E_VARIANT 0x8000
|
||||
|
||||
#define SIMU_STOCK_VARIANTS (GVARS_VARIANT|FRSKY_VARIANT)
|
||||
#define SIMU_M128_VARIANTS (M128_VARIANT|SIMU_STOCK_VARIANTS)
|
||||
#define SIMU_STOCK_VARIANTS (GVARS_VARIANT|FRSKY_VARIANT)
|
||||
#define SIMU_M128_VARIANTS (M128_VARIANT|SIMU_STOCK_VARIANTS)
|
||||
|
||||
class OpenTxGeneralData: public TransformedField {
|
||||
public:
|
||||
|
|
|
@ -401,6 +401,9 @@ int OpenTxEepromInterface::save(uint8_t *eeprom, RadioData &radioData, uint32_t
|
|||
if (board == BOARD_M128) {
|
||||
variant |= M128_VARIANT;
|
||||
}
|
||||
else if (board == BOARD_TARANIS_X9E) {
|
||||
variant |= TARANIS_X9E_VARIANT;
|
||||
}
|
||||
|
||||
int result = saveGeneral<OpenTxGeneralData>(radioData.generalSettings, board, version, variant);
|
||||
if (!result) {
|
||||
|
@ -757,6 +760,8 @@ int OpenTxFirmware::getCapability(const Capability capability)
|
|||
return SIMU_STOCK_VARIANTS;
|
||||
else if (board == BOARD_M128)
|
||||
return SIMU_M128_VARIANTS;
|
||||
else if (board == BOARD_TARANIS_X9E)
|
||||
return TARANIS_X9E_VARIANT;
|
||||
else
|
||||
return 0;
|
||||
case MavlinkTelemetry:
|
||||
|
@ -949,7 +954,7 @@ bool OpenTxEepromInterface::checkVersion(unsigned int version)
|
|||
|
||||
bool OpenTxEepromInterface::checkVariant(unsigned int version, unsigned int variant)
|
||||
{
|
||||
if (board == BOARD_M128 && !(variant & 0x8000)) {
|
||||
if (board == BOARD_M128 && !(variant & M128_VARIANT)) {
|
||||
if (version == 212) {
|
||||
uint8_t tmp[1000];
|
||||
for (int i=1; i<31; i++) {
|
||||
|
@ -961,12 +966,23 @@ bool OpenTxEepromInterface::checkVariant(unsigned int version, unsigned int vari
|
|||
}
|
||||
}
|
||||
}
|
||||
std::cout << " error when loading M128 general settings (wrong variant)";
|
||||
std::cout << " wrong variant (" << variant << ")";
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
return true;
|
||||
else if (board == BOARD_TARANIS_X9E) {
|
||||
if (variant != TARANIS_X9E_VARIANT) {
|
||||
std::cout << " wrong variant (" << variant << ")";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (IS_TARANIS(board)) {
|
||||
if (variant != 0) {
|
||||
std::cout << " wrong variant (" << variant << ")";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OpenTxEepromInterface::loadBackup(RadioData &radioData, uint8_t *eeprom, int esize, int index)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue