mirror of
https://github.com/opentx/opentx.git
synced 2025-07-23 16:25:16 +03:00
More spares to allow A3/A4/RSSI_Tx/Rx_Batt in Telemetry (ARM boards)
This commit is contained in:
parent
8b90b62333
commit
c823ca69ce
12 changed files with 219 additions and 83 deletions
|
@ -211,21 +211,31 @@ QString RotaryEncoderString(int index)
|
||||||
|
|
||||||
QString RawSource::toString()
|
QString RawSource::toString()
|
||||||
{
|
{
|
||||||
static const QString trims[] = { QObject::tr("TrmR"), QObject::tr("TrmE"), QObject::tr("TrmT"), QObject::tr("TrmA")};
|
static const QString trims[] = {
|
||||||
|
QObject::tr("TrmR"), QObject::tr("TrmE"), QObject::tr("TrmT"), QObject::tr("TrmA")
|
||||||
|
};
|
||||||
|
|
||||||
static const QString telemetry[] = { QObject::tr("Batt"), QObject::tr("Timer1"), QObject::tr("Timer2"),
|
static const QString telemetry[] = {
|
||||||
(IS_TARANIS(GetEepromInterface()->getBoard()) ? QObject::tr("SWR") : QObject::tr("Tx")), (IS_TARANIS(GetEepromInterface()->getBoard()) ? QObject::tr("RSSI") : QObject::tr("Rx")), QObject::tr("A1"), QObject::tr("A2"), QObject::tr("Alt"), QObject::tr("Rpm"), QObject::tr("Fuel"), QObject::tr("T1"),
|
QObject::tr("Batt"), QObject::tr("Timer1"), QObject::tr("Timer2"),
|
||||||
QObject::tr("T2"), QObject::tr("Speed"), QObject::tr("Dist"), QObject::tr("GPS Alt"), QObject::tr("Cell"), QObject::tr("Cels"), QObject::tr("Vfas"), QObject::tr("Curr"),
|
QObject::tr("SWR"), QObject::tr("RSSI Tx"), QObject::tr("RSSI Rx"), QObject::tr("Rx Batt"),
|
||||||
QObject::tr("Cnsp"), QObject::tr("Powr"), QObject::tr("AccX"), QObject::tr("AccY"), QObject::tr("AccZ"), QObject::tr("HDG "), QObject::tr("VSpd"), QObject::tr("ASpd"), QObject::tr("dTE"),
|
QObject::tr("A1"), QObject::tr("A2"), QObject::tr("A3"), QObject::tr("A4"),
|
||||||
QObject::tr("A1-"), QObject::tr("A2-"), QObject::tr("Alt-"), QObject::tr("Alt+"), QObject::tr("Rpm+"), QObject::tr("T1+"), QObject::tr("T2+"), QObject::tr("Spd+"), QObject::tr("Dst+"), QObject::tr("Cel-"), QObject::tr("Vfs-"), QObject::tr("Cur+"), QObject::tr("Pwr+"),
|
QObject::tr("Alt"), QObject::tr("Rpm"), QObject::tr("Fuel"), QObject::tr("T1"), QObject::tr("T2"),
|
||||||
QObject::tr("ACC "), QObject::tr("Time"),
|
QObject::tr("Speed"), QObject::tr("Dist"), QObject::tr("GPS Alt"),
|
||||||
};
|
QObject::tr("Cell"), QObject::tr("Cels"), QObject::tr("Vfas"), QObject::tr("Curr"), QObject::tr("Cnsp"), QObject::tr("Powr"),
|
||||||
|
QObject::tr("AccX"), QObject::tr("AccY"), QObject::tr("AccZ"),
|
||||||
|
QObject::tr("HDG "), QObject::tr("VSpd"), QObject::tr("ASpd"), QObject::tr("dTE"),
|
||||||
|
QObject::tr("A1-"), QObject::tr("A2-"), QObject::tr("A3-"), QObject::tr("A4-"),
|
||||||
|
QObject::tr("Alt-"), QObject::tr("Alt+"), QObject::tr("Rpm+"), QObject::tr("T1+"), QObject::tr("T2+"), QObject::tr("Spd+"), QObject::tr("Dst+"),
|
||||||
|
QObject::tr("Cel-"), QObject::tr("Vfs-"), QObject::tr("Cur+"), QObject::tr("Pwr+"),
|
||||||
|
QObject::tr("ACC"), QObject::tr("Time"),
|
||||||
|
};
|
||||||
|
|
||||||
static const QString virtualSwitches[] = { QObject::tr("LS1"), QObject::tr("LS2"), QObject::tr("LS3"), QObject::tr("LS4"), QObject::tr("LS5"), QObject::tr("LS6"), QObject::tr("LS7"), QObject::tr("LS8"), QObject::tr("LS9"), QObject::tr("LSA"),
|
static const QString virtualSwitches[] = {
|
||||||
QObject::tr("LSB"), QObject::tr("LSC"), QObject::tr("LSD"), QObject::tr("LSE"), QObject::tr("LSF"), QObject::tr("LSG"), QObject::tr("LSH"), QObject::tr("LSI"), QObject::tr("LSJ"), QObject::tr("LSK"),
|
QObject::tr("LS1"), QObject::tr("LS2"), QObject::tr("LS3"), QObject::tr("LS4"), QObject::tr("LS5"), QObject::tr("LS6"), QObject::tr("LS7"), QObject::tr("LS8"), QObject::tr("LS9"), QObject::tr("LSA"),
|
||||||
QObject::tr("LSL"), QObject::tr("LSM"), QObject::tr("LSN"), QObject::tr("LSO"), QObject::tr("LSP"), QObject::tr("LSQ"), QObject::tr("LSR"), QObject::tr("LSS"), QObject::tr("LST"), QObject::tr("LSU"),
|
QObject::tr("LSB"), QObject::tr("LSC"), QObject::tr("LSD"), QObject::tr("LSE"), QObject::tr("LSF"), QObject::tr("LSG"), QObject::tr("LSH"), QObject::tr("LSI"), QObject::tr("LSJ"), QObject::tr("LSK"),
|
||||||
QObject::tr("LSV"), QObject::tr("LSW")
|
QObject::tr("LSL"), QObject::tr("LSM"), QObject::tr("LSN"), QObject::tr("LSO"), QObject::tr("LSP"), QObject::tr("LSQ"), QObject::tr("LSR"), QObject::tr("LSS"), QObject::tr("LST"), QObject::tr("LSU"),
|
||||||
};
|
QObject::tr("LSV"), QObject::tr("LSW")
|
||||||
|
};
|
||||||
|
|
||||||
if (index<0) {
|
if (index<0) {
|
||||||
return QObject::tr("----");
|
return QObject::tr("----");
|
||||||
|
|
|
@ -175,10 +175,14 @@ enum TelemetrySource {
|
||||||
TELEMETRY_SOURCE_TX_BATT,
|
TELEMETRY_SOURCE_TX_BATT,
|
||||||
TELEMETRY_SOURCE_TIMER1,
|
TELEMETRY_SOURCE_TIMER1,
|
||||||
TELEMETRY_SOURCE_TIMER2,
|
TELEMETRY_SOURCE_TIMER2,
|
||||||
|
TELEMETRY_SOURCE_SWR,
|
||||||
TELEMETRY_SOURCE_RSSI_TX,
|
TELEMETRY_SOURCE_RSSI_TX,
|
||||||
TELEMETRY_SOURCE_RSSI_RX,
|
TELEMETRY_SOURCE_RSSI_RX,
|
||||||
|
TELEMETRY_SOURCE_RX_BATT,
|
||||||
TELEMETRY_SOURCE_A1,
|
TELEMETRY_SOURCE_A1,
|
||||||
TELEMETRY_SOURCE_A2,
|
TELEMETRY_SOURCE_A2,
|
||||||
|
TELEMETRY_SOURCE_A3,
|
||||||
|
TELEMETRY_SOURCE_A4,
|
||||||
TELEMETRY_SOURCE_ALT,
|
TELEMETRY_SOURCE_ALT,
|
||||||
TELEMETRY_SOURCE_RPM,
|
TELEMETRY_SOURCE_RPM,
|
||||||
TELEMETRY_SOURCE_FUEL,
|
TELEMETRY_SOURCE_FUEL,
|
||||||
|
@ -202,6 +206,8 @@ enum TelemetrySource {
|
||||||
TELEMETRY_SOURCE_DTE,
|
TELEMETRY_SOURCE_DTE,
|
||||||
TELEMETRY_SOURCE_A1_MIN,
|
TELEMETRY_SOURCE_A1_MIN,
|
||||||
TELEMETRY_SOURCE_A2_MIN,
|
TELEMETRY_SOURCE_A2_MIN,
|
||||||
|
TELEMETRY_SOURCE_A3_MIN,
|
||||||
|
TELEMETRY_SOURCE_A4_MIN,
|
||||||
TELEMETRY_SOURCE_ALT_MIN,
|
TELEMETRY_SOURCE_ALT_MIN,
|
||||||
TELEMETRY_SOURCE_ALT_MAX,
|
TELEMETRY_SOURCE_ALT_MAX,
|
||||||
TELEMETRY_SOURCE_RPM_MAX,
|
TELEMETRY_SOURCE_RPM_MAX,
|
||||||
|
@ -217,6 +223,7 @@ enum TelemetrySource {
|
||||||
TELEMETRY_SOURCES_STATUS_COUNT = TELEMETRY_SOURCE_GPS_TIME+1,
|
TELEMETRY_SOURCES_STATUS_COUNT = TELEMETRY_SOURCE_GPS_TIME+1,
|
||||||
TELEMETRY_SOURCES_DISPLAY_COUNT = TELEMETRY_SOURCE_POWER_MAX+1,
|
TELEMETRY_SOURCES_DISPLAY_COUNT = TELEMETRY_SOURCE_POWER_MAX+1,
|
||||||
TELEMETRY_SOURCES_COUNT = TELEMETRY_SOURCE_DTE+1,
|
TELEMETRY_SOURCES_COUNT = TELEMETRY_SOURCE_DTE+1,
|
||||||
|
TELEMETRY_SOURCE_RESERVE = -1
|
||||||
};
|
};
|
||||||
|
|
||||||
#define TM_HASTELEMETRY 0x01
|
#define TM_HASTELEMETRY 0x01
|
||||||
|
|
|
@ -321,55 +321,101 @@ class SwitchField: public ConversionField< SignedField<N> > {
|
||||||
int _switch;
|
int _switch;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class TelemetrySourcesConversionTable: public ConversionTable {
|
||||||
|
|
||||||
|
public:
|
||||||
|
TelemetrySourcesConversionTable(BoardEnum board, unsigned int version)
|
||||||
|
{
|
||||||
|
int val = 0;
|
||||||
|
|
||||||
|
if (IS_AFTER_RELEASE_21_MARCH_2013(board, version)) {
|
||||||
|
addConversion(0, val++);
|
||||||
|
}
|
||||||
|
|
||||||
|
addConversion(TELEMETRY_SOURCE_TX_BATT, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_TIMER1, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_TIMER2, val++);
|
||||||
|
if (IS_ARM(board) && version >= 216)
|
||||||
|
addConversion(TELEMETRY_SOURCE_SWR, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_RSSI_TX, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_RSSI_RX, val++);
|
||||||
|
if (IS_ARM(board) && version >= 216)
|
||||||
|
addConversion(TELEMETRY_SOURCE_RX_BATT, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_A1, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_A2, val++);
|
||||||
|
if (IS_ARM(board) && version >= 216)
|
||||||
|
addConversion(TELEMETRY_SOURCE_A3, val++);
|
||||||
|
if (IS_ARM(board) && version >= 216)
|
||||||
|
addConversion(TELEMETRY_SOURCE_A4, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_ALT, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_RPM, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_FUEL, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_T1, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_T2, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_SPEED, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_DIST, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_GPS_ALT, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_CELL, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_CELLS_SUM, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_VFAS, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_CURRENT, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_CONSUMPTION, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_POWER, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_ACCX, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_ACCY, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_ACCZ, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_HDG, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_VERTICAL_SPEED, val++);
|
||||||
|
if (version >= 216) {
|
||||||
|
addConversion(TELEMETRY_SOURCE_ASPD, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_DTE, val++);
|
||||||
|
}
|
||||||
|
if (IS_ARM(board) && version >= 216) {
|
||||||
|
for (int i=0; i<5; i++)
|
||||||
|
addConversion(TELEMETRY_SOURCE_RESERVE, val++);
|
||||||
|
}
|
||||||
|
addConversion(TELEMETRY_SOURCE_A1_MIN, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_A2_MIN, val++);
|
||||||
|
if (IS_ARM(board) && version >= 216) {
|
||||||
|
addConversion(TELEMETRY_SOURCE_A3_MIN, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_A4_MIN, val++);
|
||||||
|
}
|
||||||
|
addConversion(TELEMETRY_SOURCE_ALT_MIN, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_ALT_MAX, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_RPM_MAX, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_T1_MAX, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_T2_MAX, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_SPEED_MAX, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_DIST_MAX, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_CELL_MIN, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_VFAS_MIN, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_POWER_MAX, val++);
|
||||||
|
if (IS_ARM(board) && version >= 216) {
|
||||||
|
for (int i=0; i<5; i++)
|
||||||
|
addConversion(TELEMETRY_SOURCE_RESERVE, val++);
|
||||||
|
}
|
||||||
|
addConversion(TELEMETRY_SOURCE_ACC, val++);
|
||||||
|
addConversion(TELEMETRY_SOURCE_GPS_TIME, val++);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
template <int N>
|
template <int N>
|
||||||
class TelemetrySourceField: public TransformedField {
|
class TelemetrySourceField: public ConversionField< UnsignedField<N> > {
|
||||||
public:
|
public:
|
||||||
TelemetrySourceField(unsigned int & source, BoardEnum board, unsigned int version):
|
TelemetrySourceField(unsigned int & source, BoardEnum board, unsigned int version):
|
||||||
TransformedField(internalField),
|
ConversionField< UnsignedField<N> >(source, &conversionTable, "Telemetry source"),
|
||||||
internalField(_source),
|
conversionTable(board, version),
|
||||||
source(source),
|
source(source),
|
||||||
board(board),
|
board(board),
|
||||||
version(version),
|
version(version)
|
||||||
_source(0)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void beforeExport()
|
|
||||||
{
|
|
||||||
_source = source;
|
|
||||||
|
|
||||||
if (source > 0 && !IS_AFTER_RELEASE_21_MARCH_2013(board, version))
|
|
||||||
_source--;
|
|
||||||
|
|
||||||
if (IS_ARM(board) && version >= 216) {
|
|
||||||
if (source > 1+TELEMETRY_SOURCE_DTE)
|
|
||||||
_source += 5;
|
|
||||||
if (source > 1+TELEMETRY_SOURCE_POWER_MAX)
|
|
||||||
_source += 5;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void afterImport()
|
|
||||||
{
|
|
||||||
source = _source;
|
|
||||||
|
|
||||||
if (source > 0 && !IS_AFTER_RELEASE_21_MARCH_2013(board, version))
|
|
||||||
source++;
|
|
||||||
|
|
||||||
if (IS_ARM(board) && version >= 216) {
|
|
||||||
if (source > 1+TELEMETRY_SOURCE_DTE)
|
|
||||||
source -= 5;
|
|
||||||
if (source > 1+TELEMETRY_SOURCE_POWER_MAX)
|
|
||||||
source -= 5;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
UnsignedField<N> internalField;
|
TelemetrySourcesConversionTable conversionTable;
|
||||||
unsigned int & source;
|
unsigned int & source;
|
||||||
BoardEnum board;
|
BoardEnum board;
|
||||||
unsigned int version;
|
unsigned int version;
|
||||||
unsigned int _source;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template <int N>
|
template <int N>
|
||||||
|
|
|
@ -235,6 +235,33 @@ void ConvertGeneralSettings_215_to_216(EEGeneral &settings)
|
||||||
settings.chkSum = evalChkSum();
|
settings.chkSum = evalChkSum();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ConvertTelemetrySource_215_to_216(int source)
|
||||||
|
{
|
||||||
|
// TELEM_RSSI_TX added
|
||||||
|
if (source >= TELEM_RSSI_TX)
|
||||||
|
source += 1;
|
||||||
|
// RxBatt added
|
||||||
|
if (source >= TELEM_RX_VOLTAGE)
|
||||||
|
source += 1;
|
||||||
|
// A3 and A4 added
|
||||||
|
if (source >= TELEM_A3)
|
||||||
|
source += 2;
|
||||||
|
// ASpd and dTE added + 5 reserve
|
||||||
|
if (source >= TELEM_ASPD)
|
||||||
|
source += 7;
|
||||||
|
// A3 and A4 MIN added
|
||||||
|
if (source >= TELEM_MIN_A3)
|
||||||
|
source += 2;
|
||||||
|
// Cel- and Vfas- added
|
||||||
|
if (source >= TELEM_MIN_CELL)
|
||||||
|
source += 2;
|
||||||
|
// 5 reserve added
|
||||||
|
if (source >= TELEM_RESERVE6)
|
||||||
|
source += 5;
|
||||||
|
|
||||||
|
return source;
|
||||||
|
}
|
||||||
|
|
||||||
#if defined(PCBTARANIS)
|
#if defined(PCBTARANIS)
|
||||||
int ConvertSource_215_to_216(int source, bool insertZero=false)
|
int ConvertSource_215_to_216(int source, bool insertZero=false)
|
||||||
{
|
{
|
||||||
|
@ -246,12 +273,9 @@ int ConvertSource_215_to_216(int source, bool insertZero=false)
|
||||||
// 4 GVARS added
|
// 4 GVARS added
|
||||||
if (source > MIXSRC_GVAR1+4)
|
if (source > MIXSRC_GVAR1+4)
|
||||||
source += 4;
|
source += 4;
|
||||||
// ASpd and dTE added
|
// Telemetry conversions
|
||||||
if (source >= MIXSRC_FIRST_TELEM-1+TELEM_ASPD)
|
if (source >= MIXSRC_FIRST_TELEM)
|
||||||
source += 2;
|
source = MIXSRC_FIRST_TELEM + ConvertTelemetrySource_215_to_216(source-MIXSRC_FIRST_TELEM+1) - 1;
|
||||||
// Cel- and Vfas- added
|
|
||||||
if (source >= MIXSRC_FIRST_TELEM-1+TELEM_MIN_CELL)
|
|
||||||
source += 2;
|
|
||||||
|
|
||||||
return source;
|
return source;
|
||||||
}
|
}
|
||||||
|
@ -273,12 +297,10 @@ int ConvertSource_215_to_216(int source, bool insertZero=false)
|
||||||
// 4 GVARS added
|
// 4 GVARS added
|
||||||
if (source > MIXSRC_GVAR1+4)
|
if (source > MIXSRC_GVAR1+4)
|
||||||
source += 4;
|
source += 4;
|
||||||
// ASpd and dTE added
|
// Telemetry conversions
|
||||||
if (source >= MIXSRC_FIRST_TELEM-1+TELEM_ASPD)
|
if (source >= MIXSRC_FIRST_TELEM)
|
||||||
source += 2;
|
source = MIXSRC_FIRST_TELEM + ConvertTelemetrySource_215_to_216(source-MIXSRC_FIRST_TELEM+1) - 1;
|
||||||
// Cel- and Vfas- added
|
|
||||||
if (source >= MIXSRC_FIRST_TELEM-1+TELEM_MIN_CELL)
|
|
||||||
source += 2;
|
|
||||||
return source;
|
return source;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -636,6 +658,24 @@ void ConvertModel_215_to_216(ModelData &model)
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(&g_model.frsky, &oldModel.frsky, sizeof(oldModel.frsky));
|
memcpy(&g_model.frsky, &oldModel.frsky, sizeof(oldModel.frsky));
|
||||||
|
for (int i=0; i<3; i++) {
|
||||||
|
if (g_model.frsky.screensType & (1<<i)) {
|
||||||
|
// gauges
|
||||||
|
for (int j=0; j<4; j++) {
|
||||||
|
uint8_t & source = g_model.frsky.screens[i].bars[j].source;
|
||||||
|
source = ConvertTelemetrySource_215_to_216(source);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// numbers
|
||||||
|
for (int j=0; j<4; j++) {
|
||||||
|
for (int k=0; k<NUM_LINE_ITEMS; k++) {
|
||||||
|
uint8_t & source = g_model.frsky.screens[i].lines[j].sources[k];
|
||||||
|
source = ConvertTelemetrySource_215_to_216(source);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#if defined(PCBTARANIS)
|
#if defined(PCBTARANIS)
|
||||||
g_model.externalModule = oldModel.externalModule;
|
g_model.externalModule = oldModel.externalModule;
|
||||||
|
|
|
@ -1236,6 +1236,14 @@ bool isSourceAvailable(int source)
|
||||||
|
|
||||||
bool isTelemetrySourceAvailable(int source)
|
bool isTelemetrySourceAvailable(int source)
|
||||||
{
|
{
|
||||||
|
if (source == TELEM_RX_VOLTAGE || source == TELEM_A3 || source == TELEM_A4 || source == TELEM_MIN_A3 || source == TELEM_MIN_A4)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
#if defined(PCBTARANIS)
|
||||||
|
if (source == TELEM_RSSI_TX)
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (source >= TELEM_RESERVE1 && source <= TELEM_RESERVE5)
|
if (source >= TELEM_RESERVE1 && source <= TELEM_RESERVE5)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
|
@ -1269,6 +1269,9 @@ void putsTelemetryChannel(xcoord_t x, uint8_t y, uint8_t channel, lcdint_t val,
|
||||||
putsTelemetryValue(x, y, val, UNIT_RAW, att|PREC2);
|
putsTelemetryValue(x, y, val, UNIT_RAW, att|PREC2);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#if defined(CPUARM)
|
||||||
|
case TELEM_SWR-1:
|
||||||
|
#endif
|
||||||
case TELEM_RSSI_TX-1:
|
case TELEM_RSSI_TX-1:
|
||||||
case TELEM_RSSI_RX-1:
|
case TELEM_RSSI_RX-1:
|
||||||
putsTelemetryValue(x, y, val, UNIT_RAW, att);
|
putsTelemetryValue(x, y, val, UNIT_RAW, att);
|
||||||
|
|
|
@ -937,10 +937,20 @@ enum TelemetrySource {
|
||||||
TELEM_TX_VOLTAGE,
|
TELEM_TX_VOLTAGE,
|
||||||
TELEM_TM1,
|
TELEM_TM1,
|
||||||
TELEM_TM2,
|
TELEM_TM2,
|
||||||
|
#if defined(CPUARM)
|
||||||
|
TELEM_SWR,
|
||||||
|
#endif
|
||||||
TELEM_RSSI_TX,
|
TELEM_RSSI_TX,
|
||||||
TELEM_RSSI_RX,
|
TELEM_RSSI_RX,
|
||||||
|
#if defined(CPUARM)
|
||||||
|
TELEM_RX_VOLTAGE,
|
||||||
|
#endif
|
||||||
TELEM_A1,
|
TELEM_A1,
|
||||||
TELEM_A2,
|
TELEM_A2,
|
||||||
|
#if defined(CPUARM)
|
||||||
|
TELEM_A3,
|
||||||
|
TELEM_A4,
|
||||||
|
#endif
|
||||||
TELEM_ALT,
|
TELEM_ALT,
|
||||||
TELEM_RPM,
|
TELEM_RPM,
|
||||||
TELEM_FUEL,
|
TELEM_FUEL,
|
||||||
|
@ -971,6 +981,10 @@ enum TelemetrySource {
|
||||||
#endif
|
#endif
|
||||||
TELEM_MIN_A1,
|
TELEM_MIN_A1,
|
||||||
TELEM_MIN_A2,
|
TELEM_MIN_A2,
|
||||||
|
#if defined(CPUARM)
|
||||||
|
TELEM_MIN_A3,
|
||||||
|
TELEM_MIN_A4,
|
||||||
|
#endif
|
||||||
TELEM_MIN_ALT,
|
TELEM_MIN_ALT,
|
||||||
TELEM_MAX_ALT,
|
TELEM_MAX_ALT,
|
||||||
TELEM_MAX_RPM,
|
TELEM_MAX_RPM,
|
||||||
|
@ -999,12 +1013,7 @@ enum TelemetrySource {
|
||||||
TELEM_DISPLAY_MAX = TELEM_TM2, // because used also in PlayValue
|
TELEM_DISPLAY_MAX = TELEM_TM2, // because used also in PlayValue
|
||||||
#endif
|
#endif
|
||||||
TELEM_STATUS_MAX = TELEM_GPS_TIME,
|
TELEM_STATUS_MAX = TELEM_GPS_TIME,
|
||||||
#if defined(FRSKY_SPORT)
|
|
||||||
TELEM_SWR = TELEM_RSSI_TX,
|
|
||||||
TELEM_FIRST_STREAMED_VALUE = TELEM_RSSI_RX,
|
|
||||||
#else
|
|
||||||
TELEM_FIRST_STREAMED_VALUE = TELEM_RSSI_TX,
|
TELEM_FIRST_STREAMED_VALUE = TELEM_RSSI_TX,
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum VarioSource {
|
enum VarioSource {
|
||||||
|
|
|
@ -1269,6 +1269,9 @@ getvalue_t getValue(uint8_t i)
|
||||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_TX_VOLTAGE) return g_vbat100mV;
|
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_TX_VOLTAGE) return g_vbat100mV;
|
||||||
else if (i<=MIXSRC_FIRST_TELEM-1+TELEM_TM2) return timersStates[i-MIXSRC_FIRST_TELEM+1-TELEM_TM1].val;
|
else if (i<=MIXSRC_FIRST_TELEM-1+TELEM_TM2) return timersStates[i-MIXSRC_FIRST_TELEM+1-TELEM_TM1].val;
|
||||||
#if defined(FRSKY)
|
#if defined(FRSKY)
|
||||||
|
#if defined(CPUARM)
|
||||||
|
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_SWR) return frskyData.swr.value;
|
||||||
|
#endif
|
||||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_RSSI_TX) return frskyData.rssi[1].value;
|
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_RSSI_TX) return frskyData.rssi[1].value;
|
||||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_RSSI_RX) return frskyData.rssi[0].value;
|
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_RSSI_RX) return frskyData.rssi[0].value;
|
||||||
else if (i<=MIXSRC_FIRST_TELEM-1+TELEM_A2) return frskyData.analog[i-MIXSRC_FIRST_TELEM+1-TELEM_A1].value;
|
else if (i<=MIXSRC_FIRST_TELEM-1+TELEM_A2) return frskyData.analog[i-MIXSRC_FIRST_TELEM+1-TELEM_A1].value;
|
||||||
|
@ -1981,6 +1984,9 @@ ls_telemetry_value_t minTelemValue(uint8_t channel)
|
||||||
{
|
{
|
||||||
switch (channel) {
|
switch (channel) {
|
||||||
case TELEM_FUEL:
|
case TELEM_FUEL:
|
||||||
|
#if defined(CPUARM)
|
||||||
|
case TELEM_SWR:
|
||||||
|
#endif
|
||||||
case TELEM_RSSI_TX:
|
case TELEM_RSSI_TX:
|
||||||
case TELEM_RSSI_RX:
|
case TELEM_RSSI_RX:
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -2000,6 +2006,9 @@ ls_telemetry_value_t maxTelemValue(uint8_t channel)
|
||||||
{
|
{
|
||||||
switch (channel) {
|
switch (channel) {
|
||||||
case TELEM_FUEL:
|
case TELEM_FUEL:
|
||||||
|
#if defined(CPUARM)
|
||||||
|
case TELEM_SWR:
|
||||||
|
#endif
|
||||||
case TELEM_RSSI_TX:
|
case TELEM_RSSI_TX:
|
||||||
case TELEM_RSSI_RX:
|
case TELEM_RSSI_RX:
|
||||||
return 100;
|
return 100;
|
||||||
|
@ -3171,13 +3180,13 @@ PLAY_FUNCTION(playValue, uint8_t idx)
|
||||||
case MIXSRC_FIRST_TELEM+TELEM_TM2-1:
|
case MIXSRC_FIRST_TELEM+TELEM_TM2-1:
|
||||||
PLAY_DURATION(val);
|
PLAY_DURATION(val);
|
||||||
break;
|
break;
|
||||||
#if defined(FRSKY)
|
#if defined(CPUARM)
|
||||||
case MIXSRC_FIRST_TELEM+TELEM_RSSI_TX-1:
|
case MIXSRC_FIRST_TELEM+TELEM_SWR-1:
|
||||||
#if defined(PCBTARANIS)
|
|
||||||
// On Taranis RSSI_TX is used for SWR
|
|
||||||
PLAY_NUMBER(val, 0, 0);
|
PLAY_NUMBER(val, 0, 0);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(FRSKY)
|
||||||
|
case MIXSRC_FIRST_TELEM+TELEM_RSSI_TX-1:
|
||||||
case MIXSRC_FIRST_TELEM+TELEM_RSSI_RX-1:
|
case MIXSRC_FIRST_TELEM+TELEM_RSSI_RX-1:
|
||||||
PLAY_NUMBER(val, 1+UNIT_DBM, 0);
|
PLAY_NUMBER(val, 1+UNIT_DBM, 0);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -187,6 +187,9 @@ PACK(struct FrskySerialData {
|
||||||
struct FrskyData {
|
struct FrskyData {
|
||||||
FrskyValueWithMinMax analog[2];
|
FrskyValueWithMinMax analog[2];
|
||||||
FrskyValueWithMin rssi[2];
|
FrskyValueWithMin rssi[2];
|
||||||
|
#if defined(CPUARM)
|
||||||
|
FrskyValueWithMinMax swr;
|
||||||
|
#endif
|
||||||
FrskySerialData hub;
|
FrskySerialData hub;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -323,7 +323,7 @@ void processSportPacket(uint8_t *packet)
|
||||||
frskyData.rssi[0].set(SPORT_DATA_U8(packet));
|
frskyData.rssi[0].set(SPORT_DATA_U8(packet));
|
||||||
}
|
}
|
||||||
if (appId == SWR_ID) {
|
if (appId == SWR_ID) {
|
||||||
frskyData.rssi[1].set(SPORT_DATA_U8(packet));
|
frskyData.swr.set(SPORT_DATA_U8(packet));
|
||||||
}
|
}
|
||||||
else if (appId == ADC1_ID || appId == ADC2_ID) {
|
else if (appId == ADC1_ID || appId == ADC2_ID) {
|
||||||
// A1/A2 of DxR receivers
|
// A1/A2 of DxR receivers
|
||||||
|
@ -666,7 +666,7 @@ void telemetryWakeup()
|
||||||
alarmsCheckTime = get_tmr10ms() + 100; /* next check in 1second */
|
alarmsCheckTime = get_tmr10ms() + 100; /* next check in 1second */
|
||||||
|
|
||||||
if (alarmsCheckStep == 0) {
|
if (alarmsCheckStep == 0) {
|
||||||
if ((IS_MODULE_XJT(0) || IS_MODULE_XJT(1)) && frskyData.rssi[1].value > 0x33) {
|
if ((IS_MODULE_XJT(0) || IS_MODULE_XJT(1)) && frskyData.swr.value > 0x33) {
|
||||||
AUDIO_SWR_RED();
|
AUDIO_SWR_RED();
|
||||||
s_global_warning = STR_ANTENNAPROBLEM;
|
s_global_warning = STR_ANTENNAPROBLEM;
|
||||||
alarmsCheckTime = get_tmr10ms() + 300; /* next check in 3seconds */
|
alarmsCheckTime = get_tmr10ms() + 300; /* next check in 3seconds */
|
||||||
|
@ -759,7 +759,7 @@ void resetTelemetry()
|
||||||
frskyData.analog[0].set(120);
|
frskyData.analog[0].set(120);
|
||||||
frskyData.analog[1].set(240);
|
frskyData.analog[1].set(240);
|
||||||
frskyData.rssi[0].value = 75;
|
frskyData.rssi[0].value = 75;
|
||||||
frskyData.rssi[1].value = 30;
|
frskyData.swr.value = 30;
|
||||||
frskyData.hub.fuelLevel = 75;
|
frskyData.hub.fuelLevel = 75;
|
||||||
frskyData.hub.rpm = 12000;
|
frskyData.hub.rpm = 12000;
|
||||||
frskyData.hub.vfas = 100;
|
frskyData.hub.vfas = 100;
|
||||||
|
|
|
@ -150,6 +150,7 @@ PACK(struct FrskySerialData {
|
||||||
struct FrskyData {
|
struct FrskyData {
|
||||||
FrskyValueWithMinMax analog[2];
|
FrskyValueWithMinMax analog[2];
|
||||||
FrskyValueWithMinMax rssi[2];
|
FrskyValueWithMinMax rssi[2];
|
||||||
|
FrskyValueWithMinMax swr;
|
||||||
FrskySerialData hub;
|
FrskySerialData hub;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -257,21 +257,21 @@
|
||||||
|
|
||||||
#define LEN_VTELEMCHNS "\004"
|
#define LEN_VTELEMCHNS "\004"
|
||||||
|
|
||||||
#if defined(PCBTARANIS)
|
|
||||||
#define TR_RSSI_0 "SWR\0"
|
|
||||||
#define TR_RSSI_1 "RSSI"
|
|
||||||
#else
|
|
||||||
#define TR_RSSI_0 "Tx\0 "
|
|
||||||
#define TR_RSSI_1 "Rx\0 "
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(CPUARM)
|
#if defined(CPUARM)
|
||||||
#define TR_TELEM_RESERVE "[--]"
|
#define TR_TELEM_RESERVE "[--]"
|
||||||
|
#define TR_SWR "SWR\0"
|
||||||
|
#define TR_RX_BATT "RxBt"
|
||||||
|
#define TR_A3_A4 "A3\0 ""A4\0 "
|
||||||
|
#define TR_A3_A4_MIN "A3-\0""A4-\0"
|
||||||
#else
|
#else
|
||||||
#define TR_TELEM_RESERVE
|
#define TR_TELEM_RESERVE
|
||||||
|
#define TR_SWR
|
||||||
|
#define TR_RX_BATT
|
||||||
|
#define TR_A3_A4
|
||||||
|
#define TR_A3_A4_MIN
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Vfs-""Cur+""Pwr+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Time"
|
#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_SWR "Tx\0 ""Rx\0 " TR_RX_BATT "A1\0 ""A2\0 " TR_A3_A4 "Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0" TR_A3_A4_MIN "Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Vfs-""Cur+""Pwr+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Time"
|
||||||
|
|
||||||
#if defined(CPUARM)
|
#if defined(CPUARM)
|
||||||
#define LEN_VUNITSSYSTEM TR("\006", "\010")
|
#define LEN_VUNITSSYSTEM TR("\006", "\010")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue