Merge pull request #737 from opentx/bsongis/spare_values_in_telemetry_and_functions
Bsongis/spare values in telemetry and functions
This commit is contained in:
@@ -211,21 +211,31 @@ QString RotaryEncoderString(int index)
|
||||
|
||||
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"),
|
||||
(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("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("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("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 telemetry[] = {
|
||||
QObject::tr("Batt"), QObject::tr("Timer1"), QObject::tr("Timer2"),
|
||||
QObject::tr("SWR"), QObject::tr("RSSI Tx"), QObject::tr("RSSI Rx"), QObject::tr("Rx Batt"),
|
||||
QObject::tr("A1"), QObject::tr("A2"), QObject::tr("A3"), QObject::tr("A4"),
|
||||
QObject::tr("Alt"), QObject::tr("Rpm"), QObject::tr("Fuel"), QObject::tr("T1"), 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("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("Cels-"), 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"),
|
||||
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("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")
|
||||
};
|
||||
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"),
|
||||
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("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) {
|
||||
return QObject::tr("----");
|
||||
|
||||
@@ -162,7 +162,7 @@ enum HeliSwashTypes {
|
||||
#define BOARD_X9D_NUM_POTS 4
|
||||
#define C9X_NUM_POTS 4
|
||||
#define NUM_CAL_PPM 4
|
||||
#define NUM_PPM 8
|
||||
#define NUM_PPM(board) (IS_ARM(board) ? 16 : 8)
|
||||
#define NUM_CYC 3
|
||||
#define C9X_NUM_SWITCHES 10
|
||||
#define C9X_NUM_KEYS 6
|
||||
@@ -175,10 +175,14 @@ enum TelemetrySource {
|
||||
TELEMETRY_SOURCE_TX_BATT,
|
||||
TELEMETRY_SOURCE_TIMER1,
|
||||
TELEMETRY_SOURCE_TIMER2,
|
||||
TELEMETRY_SOURCE_SWR,
|
||||
TELEMETRY_SOURCE_RSSI_TX,
|
||||
TELEMETRY_SOURCE_RSSI_RX,
|
||||
TELEMETRY_SOURCE_RX_BATT,
|
||||
TELEMETRY_SOURCE_A1,
|
||||
TELEMETRY_SOURCE_A2,
|
||||
TELEMETRY_SOURCE_A3,
|
||||
TELEMETRY_SOURCE_A4,
|
||||
TELEMETRY_SOURCE_ALT,
|
||||
TELEMETRY_SOURCE_RPM,
|
||||
TELEMETRY_SOURCE_FUEL,
|
||||
@@ -202,6 +206,8 @@ enum TelemetrySource {
|
||||
TELEMETRY_SOURCE_DTE,
|
||||
TELEMETRY_SOURCE_A1_MIN,
|
||||
TELEMETRY_SOURCE_A2_MIN,
|
||||
TELEMETRY_SOURCE_A3_MIN,
|
||||
TELEMETRY_SOURCE_A4_MIN,
|
||||
TELEMETRY_SOURCE_ALT_MIN,
|
||||
TELEMETRY_SOURCE_ALT_MAX,
|
||||
TELEMETRY_SOURCE_RPM_MAX,
|
||||
@@ -210,14 +216,15 @@ enum TelemetrySource {
|
||||
TELEMETRY_SOURCE_SPEED_MAX,
|
||||
TELEMETRY_SOURCE_DIST_MAX,
|
||||
TELEMETRY_SOURCE_CELL_MIN,
|
||||
TELEMETRY_SOURCE_CELLS_MIN,
|
||||
TELEMETRY_SOURCE_VFAS_MIN,
|
||||
TELEMETRY_SOURCE_POWER_MAX,
|
||||
TELEMETRY_SOURCE_ACC,
|
||||
TELEMETRY_SOURCE_GPS_TIME,
|
||||
TELEMETRY_SOURCES_STATUS_COUNT,
|
||||
TELEMETRY_SOURCES_DISPLAY_COUNT = TELEMETRY_SOURCES_STATUS_COUNT-2,
|
||||
|
||||
TELEMETRY_SOURCES_COUNT = TELEMETRY_SOURCE_VERTICAL_SPEED,
|
||||
TELEMETRY_SOURCES_STATUS_COUNT = TELEMETRY_SOURCE_GPS_TIME+1,
|
||||
TELEMETRY_SOURCES_DISPLAY_COUNT = TELEMETRY_SOURCE_POWER_MAX+1,
|
||||
TELEMETRY_SOURCES_COUNT = TELEMETRY_SOURCE_DTE+1,
|
||||
TELEMETRY_SOURCE_RESERVE = -1
|
||||
};
|
||||
|
||||
#define TM_HASTELEMETRY 0x01
|
||||
@@ -662,7 +669,8 @@ enum AssignFunc {
|
||||
FuncBackgroundMusicPause,
|
||||
FuncAdjustGV1,
|
||||
FuncAdjustGVLast = FuncAdjustGV1+C9X_MAX_GVARS-1,
|
||||
FuncCount
|
||||
FuncCount,
|
||||
FuncReserve = -1
|
||||
};
|
||||
|
||||
class FuncSwData { // Function Switches data
|
||||
|
||||
@@ -268,11 +268,11 @@ t_Open9xArmMixData_v208::operator MixData ()
|
||||
else if (srcRaw <= 9+9+O9X_ARM_NUM_CSW+NUM_CYC) {
|
||||
c9x.srcRaw = RawSource(SOURCE_TYPE_CYC, srcRaw-10-9-O9X_ARM_NUM_CSW);
|
||||
}
|
||||
else if (srcRaw <= 9+9+O9X_ARM_NUM_CSW+NUM_CYC+NUM_PPM) {
|
||||
else if (srcRaw <= 9+9+O9X_ARM_NUM_CSW+NUM_CYC+8) {
|
||||
c9x.srcRaw = RawSource(SOURCE_TYPE_PPM, srcRaw-10-9-O9X_ARM_NUM_CSW-NUM_CYC);
|
||||
}
|
||||
else {
|
||||
c9x.srcRaw = RawSource(SOURCE_TYPE_CH, srcRaw-10-9-O9X_ARM_NUM_CSW-NUM_CYC-NUM_PPM);
|
||||
c9x.srcRaw = RawSource(SOURCE_TYPE_CH, srcRaw-10-9-O9X_ARM_NUM_CSW-NUM_CYC-8);
|
||||
}
|
||||
c9x.weight = weight;
|
||||
c9x.swtch = open9xArmToSwitch(swtch);
|
||||
@@ -334,11 +334,11 @@ t_Open9xArmMixData_v209::operator MixData ()
|
||||
else if (srcRaw <= 13+9+O9X_ARM_NUM_CSW+NUM_CYC) {
|
||||
c9x.srcRaw = RawSource(SOURCE_TYPE_CYC, srcRaw-14-9-O9X_ARM_NUM_CSW);
|
||||
}
|
||||
else if (srcRaw <= 13+9+O9X_ARM_NUM_CSW+NUM_CYC+NUM_PPM) {
|
||||
else if (srcRaw <= 13+9+O9X_ARM_NUM_CSW+NUM_CYC+8) {
|
||||
c9x.srcRaw = RawSource(SOURCE_TYPE_PPM, srcRaw-14-9-O9X_ARM_NUM_CSW-NUM_CYC);
|
||||
}
|
||||
else {
|
||||
c9x.srcRaw = RawSource(SOURCE_TYPE_CH, srcRaw-14-9-O9X_ARM_NUM_CSW-NUM_CYC-NUM_PPM);
|
||||
c9x.srcRaw = RawSource(SOURCE_TYPE_CH, srcRaw-14-9-O9X_ARM_NUM_CSW-NUM_CYC-8);
|
||||
}
|
||||
c9x.weight = weight;
|
||||
|
||||
@@ -400,11 +400,11 @@ t_Open9xArmMixData_v210::operator MixData ()
|
||||
else if (srcRaw <= 13+9+O9X_ARM_NUM_CSW+NUM_CYC) {
|
||||
c9x.srcRaw = RawSource(SOURCE_TYPE_CYC, srcRaw-14-9-O9X_ARM_NUM_CSW);
|
||||
}
|
||||
else if (srcRaw <= 13+9+O9X_ARM_NUM_CSW+NUM_CYC+NUM_PPM) {
|
||||
else if (srcRaw <= 13+9+O9X_ARM_NUM_CSW+NUM_CYC+8) {
|
||||
c9x.srcRaw = RawSource(SOURCE_TYPE_PPM, srcRaw-14-9-O9X_ARM_NUM_CSW-NUM_CYC);
|
||||
}
|
||||
else {
|
||||
c9x.srcRaw = RawSource(SOURCE_TYPE_CH, srcRaw-14-9-O9X_ARM_NUM_CSW-NUM_CYC-NUM_PPM);
|
||||
c9x.srcRaw = RawSource(SOURCE_TYPE_CH, srcRaw-14-9-O9X_ARM_NUM_CSW-NUM_CYC-8);
|
||||
}
|
||||
c9x.weight = weight;
|
||||
|
||||
@@ -470,11 +470,11 @@ t_Open9xArmMixData_v212::operator MixData ()
|
||||
else if (srcRaw <= 14+9+O9X_ARM_NUM_CSW+NUM_CYC) {
|
||||
c9x.srcRaw = RawSource(SOURCE_TYPE_CYC, srcRaw-15-9-O9X_ARM_NUM_CSW);
|
||||
}
|
||||
else if (srcRaw <= 14+9+O9X_ARM_NUM_CSW+NUM_CYC+NUM_PPM) {
|
||||
else if (srcRaw <= 14+9+O9X_ARM_NUM_CSW+NUM_CYC+8) {
|
||||
c9x.srcRaw = RawSource(SOURCE_TYPE_PPM, srcRaw-15-9-O9X_ARM_NUM_CSW-NUM_CYC);
|
||||
}
|
||||
else {
|
||||
c9x.srcRaw = RawSource(SOURCE_TYPE_CH, srcRaw-15-9-O9X_ARM_NUM_CSW-NUM_CYC-NUM_PPM);
|
||||
c9x.srcRaw = RawSource(SOURCE_TYPE_CH, srcRaw-15-9-O9X_ARM_NUM_CSW-NUM_CYC-8);
|
||||
}
|
||||
c9x.weight = weight;
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#define MAX_CUSTOM_FUNCTIONS(board, version) (IS_ARM(board) ? (version >= 216 ? 64 : 32) : (IS_DBLEEPROM(board, version) ? 24 : 16))
|
||||
#define MAX_CURVES(board, version) (IS_ARM(board) ? ((IS_TARANIS(board) && version >= 216) ? 32 : 16) : O9X_MAX_CURVES)
|
||||
#define MAX_GVARS(board, version) ((IS_ARM(board) && version >= 216) ? 9 : 5)
|
||||
#define NUM_PPM_INPUTS(board, version) ((IS_ARM(board) && version >= 216) ? 16 : 8)
|
||||
|
||||
#define IS_AFTER_RELEASE_21_MARCH_2013(board, version) (version >= 214 || (!IS_ARM(board) && version >= 213))
|
||||
#define IS_AFTER_RELEASE_23_MARCH_2013(board, version) (version >= 214 || (board==BOARD_STOCK && version >= 213))
|
||||
@@ -218,7 +219,7 @@ class SourcesConversionTable: public ConversionTable {
|
||||
addConversion(RawSource(SOURCE_TYPE_CYC, i), val++);
|
||||
}
|
||||
|
||||
for (int i=0; i<8; i++)
|
||||
for (int i=0; i<NUM_PPM_INPUTS(board, version); i++)
|
||||
addConversion(RawSource(SOURCE_TYPE_PPM, i), val++);
|
||||
|
||||
for (int i=0; i<MAX_CHANNELS(board, version); i++)
|
||||
@@ -232,15 +233,18 @@ class SourcesConversionTable: public ConversionTable {
|
||||
}
|
||||
}
|
||||
|
||||
if (afterrelease21March2013)
|
||||
addConversion(RawSource(SOURCE_TYPE_TELEMETRY, 0), val++);
|
||||
|
||||
for (int i=1; i<TELEMETRY_SOURCE_ACC; i++) {
|
||||
for (int i=0; i<TELEMETRY_SOURCE_ACC; i++) {
|
||||
if (version < 216) {
|
||||
if (i==TELEMETRY_SOURCE_ASPD-1 || i==TELEMETRY_SOURCE_DTE-1 || i==TELEMETRY_SOURCE_CELL_MIN-1 || i==TELEMETRY_SOURCE_VFAS_MIN-1)
|
||||
if (i==TELEMETRY_SOURCE_SWR || i==TELEMETRY_SOURCE_RX_BATT || i==TELEMETRY_SOURCE_A3 || i==TELEMETRY_SOURCE_A4 || i==TELEMETRY_SOURCE_ASPD || i==TELEMETRY_SOURCE_DTE || i==TELEMETRY_SOURCE_CELL_MIN || i==TELEMETRY_SOURCE_CELLS_MIN || i==TELEMETRY_SOURCE_VFAS_MIN)
|
||||
continue;
|
||||
}
|
||||
addConversion(RawSource(SOURCE_TYPE_TELEMETRY, i), val++);
|
||||
if (version >= 216 && IS_ARM(board)) {
|
||||
if (i==TELEMETRY_SOURCE_DTE)
|
||||
val += 5;
|
||||
if (i==TELEMETRY_SOURCE_POWER_MAX)
|
||||
val += 5;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -314,6 +318,103 @@ class SwitchField: public ConversionField< SignedField<N> > {
|
||||
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(1+TELEMETRY_SOURCE_TX_BATT, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_TIMER1, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_TIMER2, val++);
|
||||
if (IS_ARM(board) && version >= 216)
|
||||
addConversion(1+TELEMETRY_SOURCE_SWR, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_RSSI_TX, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_RSSI_RX, val++);
|
||||
if (IS_ARM(board) && version >= 216)
|
||||
addConversion(1+TELEMETRY_SOURCE_RX_BATT, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_A1, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_A2, val++);
|
||||
if (IS_ARM(board) && version >= 216) {
|
||||
addConversion(1+TELEMETRY_SOURCE_A3, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_A4, val++);
|
||||
}
|
||||
addConversion(1+TELEMETRY_SOURCE_ALT, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_RPM, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_FUEL, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_T1, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_T2, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_SPEED, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_DIST, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_GPS_ALT, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_CELL, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_CELLS_SUM, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_VFAS, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_CURRENT, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_CONSUMPTION, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_POWER, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_ACCX, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_ACCY, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_ACCZ, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_HDG, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_VERTICAL_SPEED, val++);
|
||||
if (version >= 216) {
|
||||
addConversion(1+TELEMETRY_SOURCE_ASPD, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_DTE, val++);
|
||||
}
|
||||
if (IS_ARM(board) && version >= 216) {
|
||||
for (int i=0; i<5; i++)
|
||||
addConversion(1+TELEMETRY_SOURCE_RESERVE, val++);
|
||||
}
|
||||
addConversion(1+TELEMETRY_SOURCE_A1_MIN, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_A2_MIN, val++);
|
||||
if (IS_ARM(board) && version >= 216) {
|
||||
addConversion(1+TELEMETRY_SOURCE_A3_MIN, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_A4_MIN, val++);
|
||||
}
|
||||
addConversion(1+TELEMETRY_SOURCE_ALT_MIN, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_ALT_MAX, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_RPM_MAX, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_T1_MAX, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_T2_MAX, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_SPEED_MAX, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_DIST_MAX, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_CELL_MIN, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_VFAS_MIN, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_POWER_MAX, val++);
|
||||
if (IS_ARM(board) && version >= 216) {
|
||||
for (int i=0; i<5; i++)
|
||||
addConversion(1+TELEMETRY_SOURCE_RESERVE, val++);
|
||||
}
|
||||
addConversion(1+TELEMETRY_SOURCE_ACC, val++);
|
||||
addConversion(1+TELEMETRY_SOURCE_GPS_TIME, val++);
|
||||
}
|
||||
};
|
||||
|
||||
template <int N>
|
||||
class TelemetrySourceField: public ConversionField< UnsignedField<N> > {
|
||||
public:
|
||||
TelemetrySourceField(unsigned int & source, BoardEnum board, unsigned int version):
|
||||
ConversionField< UnsignedField<N> >(source, &conversionTable, "Telemetry source"),
|
||||
conversionTable(board, version),
|
||||
source(source),
|
||||
board(board),
|
||||
version(version)
|
||||
{
|
||||
}
|
||||
|
||||
protected:
|
||||
TelemetrySourcesConversionTable conversionTable;
|
||||
unsigned int & source;
|
||||
BoardEnum board;
|
||||
unsigned int version;
|
||||
};
|
||||
|
||||
template <int N>
|
||||
class SourceField: public ConversionField< UnsignedField<N> > {
|
||||
public:
|
||||
@@ -1365,7 +1466,9 @@ class CustomFunctionsConversionTable: public ConversionTable {
|
||||
addConversion(FuncTrainerTHR, val++);
|
||||
addConversion(FuncTrainerAIL, val++);
|
||||
}
|
||||
|
||||
addConversion(FuncInstantTrim, val++);
|
||||
|
||||
if (version >= 216) {
|
||||
addConversion(FuncReset, val++);
|
||||
if (IS_ARM(board)) {
|
||||
@@ -1376,14 +1479,21 @@ class CustomFunctionsConversionTable: public ConversionTable {
|
||||
for (int i=0; i<MAX_GVARS(board, version); i++)
|
||||
addConversion(FuncAdjustGV1+i, val);
|
||||
val++;
|
||||
if (IS_ARM(board))
|
||||
if (IS_ARM(board)) {
|
||||
addConversion(FuncVolume, val++);
|
||||
addConversion(FuncReserve, val++);
|
||||
addConversion(FuncReserve, val++);
|
||||
addConversion(FuncReserve, val++);
|
||||
}
|
||||
addConversion(FuncPlaySound, val++);
|
||||
addConversion(FuncPlayPrompt, val++);
|
||||
if (version >= 213 && !IS_ARM(board))
|
||||
addConversion(FuncPlayBoth, val++);
|
||||
addConversion(FuncPlayValue, val++);
|
||||
if (IS_ARM(board)) {
|
||||
addConversion(FuncReserve, val++);
|
||||
addConversion(FuncReserve, val++);
|
||||
addConversion(FuncReserve, val++);
|
||||
addConversion(FuncBackgroundMusic, val++);
|
||||
addConversion(FuncBackgroundMusicPause, val++);
|
||||
}
|
||||
@@ -1822,15 +1932,15 @@ class FrskyScreenField: public DataField {
|
||||
version(version)
|
||||
{
|
||||
for (int i=0; i<4; i++) {
|
||||
bars.Append(new UnsignedField<8>(_screen.body.bars[i].source));
|
||||
bars.Append(new UnsignedField<8>(_screen.body.bars[i].barMin));
|
||||
bars.Append(new UnsignedField<8>(_screen.body.bars[i].barMax));
|
||||
bars.Append(new TelemetrySourceField<8>(screen.body.bars[i].source, board, version));
|
||||
bars.Append(new UnsignedField<8>(screen.body.bars[i].barMin));
|
||||
bars.Append(new UnsignedField<8>(screen.body.bars[i].barMax));
|
||||
}
|
||||
|
||||
int columns=(IS_TARANIS(board) ? 3:2);
|
||||
for (int i=0; i<4; i++) {
|
||||
for (int j=0; j<columns; j++) {
|
||||
numbers.Append(new UnsignedField<8>(_screen.body.lines[i].source[j]));
|
||||
numbers.Append(new TelemetrySourceField<8>(screen.body.lines[i].source[j], board, version));
|
||||
}
|
||||
}
|
||||
if (!IS_TARANIS(board)) {
|
||||
@@ -1842,23 +1952,6 @@ class FrskyScreenField: public DataField {
|
||||
|
||||
virtual void ExportBits(QBitArray & output)
|
||||
{
|
||||
_screen = screen;
|
||||
|
||||
bool afterrelease21March2013 = IS_AFTER_RELEASE_21_MARCH_2013(board, version);
|
||||
if (!afterrelease21March2013) {
|
||||
for (int i=0; i<4; i++) {
|
||||
if (_screen.body.bars[i].source > 0)
|
||||
_screen.body.bars[i].source--;
|
||||
}
|
||||
int columns=(IS_TARANIS(board) ? 3:2);
|
||||
for (int i=0; i<4; i++) {
|
||||
for (int j=0; j<columns;j++) {
|
||||
if (_screen.body.lines[i].source[j] > 0)
|
||||
_screen.body.lines[i].source[j]--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (screen.type == 0)
|
||||
numbers.ExportBits(output);
|
||||
else
|
||||
@@ -1867,34 +1960,14 @@ class FrskyScreenField: public DataField {
|
||||
|
||||
virtual void ImportBits(QBitArray & input)
|
||||
{
|
||||
_screen = screen;
|
||||
|
||||
bool afterrelease21March2013 = IS_AFTER_RELEASE_21_MARCH_2013(board, version);
|
||||
|
||||
// NOTA: screen.type should have been imported first!
|
||||
if (screen.type == 0) {
|
||||
numbers.ImportBits(input);
|
||||
if (!afterrelease21March2013) {
|
||||
int columns=(IS_TARANIS(board) ? 3:2);
|
||||
for (int i=0; i<4; i++) {
|
||||
for (int j=0; j<columns;j++) {
|
||||
if (_screen.body.lines[i].source[j] > 0)
|
||||
_screen.body.lines[i].source[j]++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
bars.ImportBits(input);
|
||||
if (!afterrelease21March2013) {
|
||||
for (int i=0; i<4; i++) {
|
||||
if (_screen.body.bars[i].source > 0)
|
||||
_screen.body.bars[i].source++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
screen = _screen;
|
||||
}
|
||||
|
||||
virtual unsigned int size()
|
||||
@@ -1908,7 +1981,6 @@ class FrskyScreenField: public DataField {
|
||||
|
||||
protected:
|
||||
FrSkyScreenData & screen;
|
||||
FrSkyScreenData _screen;
|
||||
BoardEnum board;
|
||||
unsigned int version;
|
||||
StructField bars;
|
||||
|
||||
@@ -102,7 +102,7 @@ void populateCustomScreenFieldCB(QComboBox *b, unsigned int value, bool last=fal
|
||||
|
||||
b->addItem(RawSource(SOURCE_TYPE_NONE, 0).toString());
|
||||
|
||||
for (unsigned int i = 0; i < (last ? TELEMETRY_SOURCES_DISPLAY_COUNT : TELEMETRY_SOURCES_STATUS_COUNT); i++) {
|
||||
for (unsigned int i = 0; i <= (last ? TELEMETRY_SOURCES_DISPLAY_COUNT : TELEMETRY_SOURCES_STATUS_COUNT); i++) {
|
||||
b->addItem(RawSource(SOURCE_TYPE_TELEMETRY, i).toString());
|
||||
if (!(i>=sizeof(telem_hub)/sizeof(int) || telem_hub[i]==0 || ((telem_hub[i]>=hubproto) && hubproto!=0))) {
|
||||
QModelIndex index = b->model()->index(i, 0);
|
||||
@@ -599,7 +599,7 @@ void populateSourceCB(QComboBox *b, const RawSource & source, const ModelData &
|
||||
if (item == source) b->setCurrentIndex(b->count()-1);
|
||||
}
|
||||
|
||||
for (int i=0; i<NUM_PPM; i++) {
|
||||
for (int i=0; i<NUM_PPM(GetEepromInterface()->getBoard()); i++) {
|
||||
item = RawSource(SOURCE_TYPE_PPM, i);
|
||||
b->addItem(item.toString(), item.toValue());
|
||||
if (item == source) b->setCurrentIndex(b->count()-1);
|
||||
|
||||
@@ -235,6 +235,33 @@ void ConvertGeneralSettings_215_to_216(EEGeneral &settings)
|
||||
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- Cels- and Vfas- added
|
||||
if (source >= TELEM_MIN_CELL)
|
||||
source += 3;
|
||||
// 5 reserve added
|
||||
if (source >= TELEM_RESERVE6)
|
||||
source += 5;
|
||||
|
||||
return source;
|
||||
}
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
int ConvertSource_215_to_216(int source, bool insertZero=false)
|
||||
{
|
||||
@@ -243,15 +270,15 @@ int ConvertSource_215_to_216(int source, bool insertZero=false)
|
||||
// Virtual Inputs and Lua Outputs added
|
||||
if (source > 0)
|
||||
source += MAX_INPUTS + MAX_SCRIPTS*MAX_SCRIPT_OUTPUTS;
|
||||
// PPM9-PPM16 added
|
||||
if (source > MIXSRC_FIRST_PPM+7)
|
||||
source += 8;
|
||||
// 4 GVARS added
|
||||
if (source > MIXSRC_GVAR1+4)
|
||||
source += 4;
|
||||
// ASpd and dTE added
|
||||
if (source >= MIXSRC_FIRST_TELEM-1+TELEM_ASPD)
|
||||
source += 2;
|
||||
// Cel- and Vfas- added
|
||||
if (source >= MIXSRC_FIRST_TELEM-1+TELEM_MIN_CELL)
|
||||
source += 2;
|
||||
// Telemetry conversions
|
||||
if (source >= MIXSRC_FIRST_TELEM)
|
||||
source = MIXSRC_FIRST_TELEM + ConvertTelemetrySource_215_to_216(source-MIXSRC_FIRST_TELEM+1) - 1;
|
||||
|
||||
return source;
|
||||
}
|
||||
@@ -273,12 +300,10 @@ int ConvertSource_215_to_216(int source, bool insertZero=false)
|
||||
// 4 GVARS added
|
||||
if (source > MIXSRC_GVAR1+4)
|
||||
source += 4;
|
||||
// ASpd and dTE added
|
||||
if (source >= MIXSRC_FIRST_TELEM-1+TELEM_ASPD)
|
||||
source += 2;
|
||||
// Cel- and Vfas- added
|
||||
if (source >= MIXSRC_FIRST_TELEM-1+TELEM_MIN_CELL)
|
||||
source += 2;
|
||||
// Telemetry conversions
|
||||
if (source >= MIXSRC_FIRST_TELEM)
|
||||
source = MIXSRC_FIRST_TELEM + ConvertTelemetrySource_215_to_216(source-MIXSRC_FIRST_TELEM+1) - 1;
|
||||
|
||||
return source;
|
||||
}
|
||||
|
||||
@@ -637,6 +662,24 @@ void ConvertModel_215_to_216(ModelData &model)
|
||||
}
|
||||
|
||||
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)
|
||||
g_model.externalModule = oldModel.externalModule;
|
||||
|
||||
@@ -1815,7 +1815,7 @@ enum FlightModesItems {
|
||||
ITEM_PHASES_LAST = ITEM_PHASES_COUNT-1
|
||||
};
|
||||
|
||||
bool isTrimModeAvailable(int16_t mode)
|
||||
bool isTrimModeAvailable(int mode)
|
||||
{
|
||||
return (mode == TRIM_MODE_NONE || (mode%2) == 0 || (mode/2) != (m_posVert-1));
|
||||
}
|
||||
@@ -2186,7 +2186,7 @@ void menuModelHeli(uint8_t event)
|
||||
uint8_t attr = (sub == i ? ((s_editMode>0) ? BLINK|INVERS : INVERS) : 0);
|
||||
switch(i) {
|
||||
case ITEM_HELI_SWASHTYPE:
|
||||
g_model.swashR.type = selectMenuItem(HELI_PARAM_OFS, y, STR_SWASHTYPE, STR_VSWASHTYPE, g_model.swashR.type, 0, SWASH_TYPE_NUM, attr, event);
|
||||
g_model.swashR.type = selectMenuItem(HELI_PARAM_OFS, y, STR_SWASHTYPE, STR_VSWASHTYPE, g_model.swashR.type, 0, SWASH_TYPE_MAX, attr, event);
|
||||
break;
|
||||
|
||||
case ITEM_HELI_COLLECTIVE:
|
||||
@@ -5754,7 +5754,7 @@ void menuModelTelemetry(uint8_t event)
|
||||
if (attr && (s_editMode>0 || p1valdiff)) {
|
||||
switch (m_posHorz) {
|
||||
case 0:
|
||||
bar.source = checkIncDecModel(event, barSource, 0, TELEM_DISPLAY_MAX);
|
||||
bar.source = CHECK_INCDEC_MODELVAR_ZERO_CHECK(event, barSource, TELEM_DISPLAY_MAX, isTelemetrySourceAvailable);
|
||||
if (checkIncDec_Ret) {
|
||||
bar.barMin = 0;
|
||||
bar.barMax = 255 - maxBarTelemValue(bar.source);
|
||||
@@ -5782,7 +5782,7 @@ void menuModelTelemetry(uint8_t event)
|
||||
#endif
|
||||
lcd_putsiAtt(pos[c], y, STR_VTELEMCHNS, value, cellAttr);
|
||||
if (cellAttr && (s_editMode>0 || p1valdiff)) {
|
||||
CHECK_INCDEC_MODELVAR_ZERO(event, value, (lineIndex==3 && c==0) ? TELEM_STATUS_MAX : TELEM_DISPLAY_MAX);
|
||||
CHECK_INCDEC_MODELVAR_ZERO_CHECK(event, value, (lineIndex==3 && c==0) ? TELEM_STATUS_MAX : TELEM_DISPLAY_MAX, isTelemetrySourceAvailable);
|
||||
}
|
||||
}
|
||||
if (attr && m_posHorz == NUM_LINE_ITEMS) {
|
||||
|
||||
+41
-9
@@ -113,7 +113,7 @@ int16_t checkIncDec(uint8_t event, int16_t val, int16_t i_min, int16_t i_max, ui
|
||||
#endif
|
||||
{
|
||||
int16_t newval = val;
|
||||
|
||||
|
||||
#if defined(DBLKEYS)
|
||||
uint8_t in = KEYS_PRESSED();
|
||||
if (EVT_KEY_MASK(event)) {
|
||||
@@ -1333,7 +1333,7 @@ void drawStatusLine()
|
||||
#endif
|
||||
|
||||
#if defined(CPUARM)
|
||||
bool isSourceAvailable(int16_t source)
|
||||
bool isSourceAvailable(int source)
|
||||
{
|
||||
#if defined(PCBTARANIS)
|
||||
if (source>=MIXSRC_FIRST_INPUT && source<=MIXSRC_LAST_INPUT) {
|
||||
@@ -1376,10 +1376,35 @@ bool isSourceAvailable(int16_t source)
|
||||
return false;
|
||||
#endif
|
||||
|
||||
if (source>=MIXSRC_FIRST_TELEM && source<=MIXSRC_LAST_TELEM)
|
||||
return isTelemetrySourceAvailable(source-MIXSRC_FIRST_TELEM+1);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool isInputSourceAvailable(int16_t 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)
|
||||
return false;
|
||||
|
||||
if (source >= TELEM_RESERVE6 && source <= TELEM_RESERVE10)
|
||||
return false;
|
||||
|
||||
if (source == TELEM_DTE)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool isInputSourceAvailable(int source)
|
||||
{
|
||||
if (source>=MIXSRC_Rud && source<=MIXSRC_MAX)
|
||||
return true;
|
||||
@@ -1391,12 +1416,12 @@ bool isInputSourceAvailable(int16_t source)
|
||||
return true;
|
||||
|
||||
if (source>=MIXSRC_FIRST_TELEM && source<=MIXSRC_LAST_TELEM)
|
||||
return true;
|
||||
return isTelemetrySourceAvailable(source-MIXSRC_FIRST_TELEM+1);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool isSwitchAvailableInLogicalSwitches(int16_t swtch)
|
||||
bool isSwitchAvailableInLogicalSwitches(int swtch)
|
||||
{
|
||||
if (swtch < 0) {
|
||||
if (swtch <= -SWSRC_ON)
|
||||
@@ -1425,7 +1450,7 @@ bool isSwitchAvailableInLogicalSwitches(int16_t swtch)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool isSwitchAvailable(int16_t swtch)
|
||||
bool isSwitchAvailable(int swtch)
|
||||
{
|
||||
if (!isSwitchAvailableInLogicalSwitches(swtch)) {
|
||||
return false;
|
||||
@@ -1439,13 +1464,12 @@ bool isSwitchAvailable(int16_t swtch)
|
||||
return true;
|
||||
}
|
||||
|
||||
// Not available yet, will be needed if we implement the Range function later...
|
||||
bool isLogicalSwitchFunctionAvailable(int16_t function)
|
||||
bool isLogicalSwitchFunctionAvailable(int function)
|
||||
{
|
||||
return function != LS_FUNC_RANGE;
|
||||
}
|
||||
|
||||
bool isAssignableFunctionAvailable(int16_t function)
|
||||
bool isAssignableFunctionAvailable(int function)
|
||||
{
|
||||
switch (function) {
|
||||
|
||||
@@ -1459,6 +1483,14 @@ bool isAssignableFunctionAvailable(int16_t function)
|
||||
return false;
|
||||
#endif
|
||||
|
||||
case FUNC_PLAY_DIFF:
|
||||
case FUNC_RESERVE1:
|
||||
case FUNC_RESERVE2:
|
||||
case FUNC_RESERVE3:
|
||||
case FUNC_RESERVE4:
|
||||
case FUNC_RESERVE5:
|
||||
return false;
|
||||
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
|
||||
+16
-7
@@ -171,7 +171,7 @@ extern int8_t s_editMode; // global editmode
|
||||
#define HIDDEN_ROW ((uint8_t)-2)
|
||||
|
||||
#if defined(CPUARM)
|
||||
typedef bool (*IsValueAvailable)(int16_t);
|
||||
typedef bool (*IsValueAvailable)(int);
|
||||
int16_t checkIncDec(uint8_t event, int16_t i_pval, int16_t i_min, int16_t i_max, uint8_t i_flags=0, IsValueAvailable isValueAvailable=NULL);
|
||||
#else
|
||||
int16_t checkIncDec(uint8_t event, int16_t i_pval, int16_t i_min, int16_t i_max, uint8_t i_flags=0);
|
||||
@@ -194,10 +194,18 @@ int8_t checkIncDecGen(uint8_t event, int8_t i_val, int8_t i_min, int8_t i_max);
|
||||
var = checkIncDecModelZero(event,var,max)
|
||||
|
||||
#if defined(CPUARM)
|
||||
bool isLogicalSwitchFunctionAvailable(int16_t function);
|
||||
bool isAssignableFunctionAvailable(int16_t function);
|
||||
bool isSwitchAvailable(int16_t swtch);
|
||||
bool isSwitchAvailableInLogicalSwitches(int16_t swtch);
|
||||
#define CHECK_INCDEC_MODELVAR_ZERO_CHECK(event, var, max, check) \
|
||||
var = checkIncDec(event, var, 0, max, EE_MODEL, check)
|
||||
#else
|
||||
#define CHECK_INCDEC_MODELVAR_ZERO_CHECK(event, var, max, check) \
|
||||
CHECK_INCDEC_MODELVAR_ZERO(event, var, max)
|
||||
#endif
|
||||
|
||||
#if defined(CPUARM)
|
||||
bool isLogicalSwitchFunctionAvailable(int function);
|
||||
bool isAssignableFunctionAvailable(int function);
|
||||
bool isSwitchAvailable(int swtch);
|
||||
bool isSwitchAvailableInLogicalSwitches(int swtch);
|
||||
#define AUTOSWITCH_ENTER_LONG() (attr && event==EVT_KEY_LONG(KEY_ENTER))
|
||||
#define CHECK_INCDEC_MODELSWITCH(event, var, min, max) \
|
||||
var = checkIncDec(event,var,min,max,EE_MODEL|INCDEC_SWITCH|NO_INCDEC_MARKS, isSwitchAvailable)
|
||||
@@ -211,8 +219,9 @@ int8_t checkIncDecGen(uint8_t event, int8_t i_val, int8_t i_min, int8_t i_max);
|
||||
#endif
|
||||
|
||||
#if defined(CPUARM)
|
||||
bool isSourceAvailable(int16_t source);
|
||||
bool isInputSourceAvailable(int16_t source);
|
||||
bool isSourceAvailable(int source);
|
||||
bool isTelemetrySourceAvailable(int source);
|
||||
bool isInputSourceAvailable(int source);
|
||||
#define CHECK_INCDEC_MODELSOURCE(event, var, min, max) \
|
||||
var = checkIncDec(event,var,min,max,EE_MODEL|INCDEC_SOURCE|NO_INCDEC_MARKS, isSourceAvailable)
|
||||
#elif defined(AUTOSOURCE)
|
||||
|
||||
@@ -1243,6 +1243,7 @@ void putsTelemetryChannel(xcoord_t x, uint8_t y, uint8_t channel, lcdint_t val,
|
||||
case TELEM_TX_VOLTAGE-1:
|
||||
case TELEM_VFAS-1:
|
||||
case TELEM_CELLS_SUM-1:
|
||||
case TELEM_MIN_CELLS_SUM-1:
|
||||
case TELEM_MIN_VFAS-1:
|
||||
putsTelemetryValue(x, y, val, UNIT_VOLTS, att|PREC1);
|
||||
break;
|
||||
@@ -1269,6 +1270,9 @@ void putsTelemetryChannel(xcoord_t x, uint8_t y, uint8_t channel, lcdint_t val,
|
||||
putsTelemetryValue(x, y, val, UNIT_RAW, att|PREC2);
|
||||
break;
|
||||
|
||||
#if defined(CPUARM)
|
||||
case TELEM_SWR-1:
|
||||
#endif
|
||||
case TELEM_RSSI_TX-1:
|
||||
case TELEM_RSSI_RX-1:
|
||||
putsTelemetryValue(x, y, val, UNIT_RAW, att);
|
||||
|
||||
+51
-6
@@ -77,6 +77,7 @@
|
||||
#define NUM_CFN 64 // number of functions assigned to switches
|
||||
#define MAX_SCRIPTS 7
|
||||
#define MAX_INPUTS 32
|
||||
#define NUM_PPM 16
|
||||
#elif defined(CPUARM)
|
||||
#define MAX_MODELS 60
|
||||
#define NUM_CHNOUT 32 // number of real output channels CH1-CH32
|
||||
@@ -85,6 +86,7 @@
|
||||
#define MAX_EXPOS 32
|
||||
#define NUM_CSW 32 // number of custom switches
|
||||
#define NUM_CFN 64 // number of functions assigned to switches
|
||||
#define NUM_PPM 16
|
||||
#elif defined(CPUM2560) || defined(CPUM2561)
|
||||
#define MAX_MODELS 30
|
||||
#define NUM_CHNOUT 16 // number of real output channels CH1-CH16
|
||||
@@ -93,6 +95,7 @@
|
||||
#define MAX_EXPOS 16
|
||||
#define NUM_CSW 15 // number of custom switches
|
||||
#define NUM_CFN 24 // number of functions assigned to switches
|
||||
#define NUM_PPM 8
|
||||
#elif defined(CPUM128)
|
||||
#define MAX_MODELS 30
|
||||
#define NUM_CHNOUT 16 // number of real output channels CH1-CH16
|
||||
@@ -101,6 +104,7 @@
|
||||
#define MAX_EXPOS 14
|
||||
#define NUM_CSW 15 // number of custom switches
|
||||
#define NUM_CFN 24 // number of functions assigned to switches
|
||||
#define NUM_PPM 8
|
||||
#else
|
||||
#define MAX_MODELS 16
|
||||
#define NUM_CHNOUT 16 // number of real output channels CH1-CH16
|
||||
@@ -109,9 +113,12 @@
|
||||
#define MAX_EXPOS 14
|
||||
#define NUM_CSW 12 // number of custom switches
|
||||
#define NUM_CFN 16 // number of functions assigned to switches
|
||||
#define NUM_PPM 8
|
||||
#endif
|
||||
|
||||
#define MAX_TIMERS 2
|
||||
#define NUM_CYC 3
|
||||
#define NUM_CAL_PPM 4
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
enum CurveType {
|
||||
@@ -755,6 +762,9 @@ enum Functions {
|
||||
FUNC_ADJUST_GVAR,
|
||||
#if defined(CPUARM)
|
||||
FUNC_VOLUME,
|
||||
FUNC_RESERVE1,
|
||||
FUNC_RESERVE2,
|
||||
FUNC_RESERVE3,
|
||||
#endif
|
||||
|
||||
// then the other functions
|
||||
@@ -766,6 +776,9 @@ enum Functions {
|
||||
#endif
|
||||
FUNC_PLAY_VALUE,
|
||||
#if defined(CPUARM)
|
||||
FUNC_PLAY_DIFF,
|
||||
FUNC_RESERVE4,
|
||||
FUNC_RESERVE5,
|
||||
FUNC_BACKGND_MUSIC,
|
||||
FUNC_BACKGND_MUSIC_PAUSE,
|
||||
#endif
|
||||
@@ -954,10 +967,20 @@ enum TelemetrySource {
|
||||
TELEM_TX_VOLTAGE,
|
||||
TELEM_TM1,
|
||||
TELEM_TM2,
|
||||
#if defined(CPUARM)
|
||||
TELEM_SWR,
|
||||
#endif
|
||||
TELEM_RSSI_TX,
|
||||
TELEM_RSSI_RX,
|
||||
#if defined(CPUARM)
|
||||
TELEM_RX_VOLTAGE,
|
||||
#endif
|
||||
TELEM_A1,
|
||||
TELEM_A2,
|
||||
#if defined(CPUARM)
|
||||
TELEM_A3,
|
||||
TELEM_A4,
|
||||
#endif
|
||||
TELEM_ALT,
|
||||
TELEM_RPM,
|
||||
TELEM_FUEL,
|
||||
@@ -979,8 +1002,19 @@ enum TelemetrySource {
|
||||
TELEM_VSPD,
|
||||
TELEM_ASPD,
|
||||
TELEM_DTE,
|
||||
#if defined(CPUARM)
|
||||
TELEM_RESERVE1,
|
||||
TELEM_RESERVE2,
|
||||
TELEM_RESERVE3,
|
||||
TELEM_RESERVE4,
|
||||
TELEM_RESERVE5,
|
||||
#endif
|
||||
TELEM_MIN_A1,
|
||||
TELEM_MIN_A2,
|
||||
#if defined(CPUARM)
|
||||
TELEM_MIN_A3,
|
||||
TELEM_MIN_A4,
|
||||
#endif
|
||||
TELEM_MIN_ALT,
|
||||
TELEM_MAX_ALT,
|
||||
TELEM_MAX_RPM,
|
||||
@@ -989,9 +1023,17 @@ enum TelemetrySource {
|
||||
TELEM_MAX_SPEED,
|
||||
TELEM_MAX_DIST,
|
||||
TELEM_MIN_CELL,
|
||||
TELEM_MIN_CELLS_SUM,
|
||||
TELEM_MIN_VFAS,
|
||||
TELEM_MAX_CURRENT,
|
||||
TELEM_MAX_POWER,
|
||||
#if defined(CPUARM)
|
||||
TELEM_RESERVE6,
|
||||
TELEM_RESERVE7,
|
||||
TELEM_RESERVE8,
|
||||
TELEM_RESERVE9,
|
||||
TELEM_RESERVE10,
|
||||
#endif
|
||||
TELEM_ACC,
|
||||
TELEM_GPS_TIME,
|
||||
TELEM_CSW_MAX = TELEM_MAX_POWER,
|
||||
@@ -1002,12 +1044,7 @@ enum TelemetrySource {
|
||||
TELEM_DISPLAY_MAX = TELEM_TM2, // because used also in PlayValue
|
||||
#endif
|
||||
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,
|
||||
#endif
|
||||
};
|
||||
|
||||
enum VarioSource {
|
||||
@@ -1126,6 +1163,14 @@ PACK(typedef struct t_MavlinkData {
|
||||
}) MavlinkData;
|
||||
#endif
|
||||
|
||||
enum SwashType {
|
||||
SWASH_TYPE_120,
|
||||
SWASH_TYPE_120X,
|
||||
SWASH_TYPE_140,
|
||||
SWASH_TYPE_90,
|
||||
SWASH_TYPE_MAX = SWASH_TYPE_90
|
||||
};
|
||||
|
||||
PACK(typedef struct t_SwashRingData { // Swash Ring data
|
||||
uint8_t invertELE:1;
|
||||
uint8_t invertAIL:1;
|
||||
@@ -1397,7 +1442,7 @@ enum MixSources {
|
||||
MIXSRC_LAST_CSW = MIXSRC_FIRST_CSW+NUM_CSW-1,
|
||||
|
||||
MIXSRC_FIRST_PPM,
|
||||
MIXSRC_LAST_PPM = MIXSRC_FIRST_PPM + 7,
|
||||
MIXSRC_LAST_PPM = MIXSRC_FIRST_PPM+NUM_PPM-1,
|
||||
|
||||
MIXSRC_FIRST_CH,
|
||||
MIXSRC_CH1 = MIXSRC_FIRST_CH,
|
||||
|
||||
+17
-7
@@ -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_TM2) return timersStates[i-MIXSRC_FIRST_TELEM+1-TELEM_TM1].val;
|
||||
#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_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;
|
||||
@@ -2001,6 +2004,9 @@ ls_telemetry_value_t minTelemValue(uint8_t channel)
|
||||
{
|
||||
switch (channel) {
|
||||
case TELEM_FUEL:
|
||||
#if defined(CPUARM)
|
||||
case TELEM_SWR:
|
||||
#endif
|
||||
case TELEM_RSSI_TX:
|
||||
case TELEM_RSSI_RX:
|
||||
return 0;
|
||||
@@ -2020,6 +2026,9 @@ ls_telemetry_value_t maxTelemValue(uint8_t channel)
|
||||
{
|
||||
switch (channel) {
|
||||
case TELEM_FUEL:
|
||||
#if defined(CPUARM)
|
||||
case TELEM_SWR:
|
||||
#endif
|
||||
case TELEM_RSSI_TX:
|
||||
case TELEM_RSSI_RX:
|
||||
return 100;
|
||||
@@ -3207,13 +3216,13 @@ PLAY_FUNCTION(playValue, uint8_t idx)
|
||||
case MIXSRC_FIRST_TELEM+TELEM_TM2-1:
|
||||
PLAY_DURATION(val);
|
||||
break;
|
||||
#if defined(FRSKY)
|
||||
case MIXSRC_FIRST_TELEM+TELEM_RSSI_TX-1:
|
||||
#if defined(PCBTARANIS)
|
||||
// On Taranis RSSI_TX is used for SWR
|
||||
#if defined(CPUARM)
|
||||
case MIXSRC_FIRST_TELEM+TELEM_SWR-1:
|
||||
PLAY_NUMBER(val, 0, 0);
|
||||
break;
|
||||
#endif
|
||||
#if defined(FRSKY)
|
||||
case MIXSRC_FIRST_TELEM+TELEM_RSSI_TX-1:
|
||||
case MIXSRC_FIRST_TELEM+TELEM_RSSI_RX-1:
|
||||
PLAY_NUMBER(val, 1+UNIT_DBM, 0);
|
||||
break;
|
||||
@@ -3244,6 +3253,7 @@ PLAY_FUNCTION(playValue, uint8_t idx)
|
||||
|
||||
case MIXSRC_FIRST_TELEM+TELEM_VFAS-1:
|
||||
case MIXSRC_FIRST_TELEM+TELEM_CELLS_SUM-1:
|
||||
case MIXSRC_FIRST_TELEM+TELEM_MIN_CELLS_SUM-1:
|
||||
case MIXSRC_FIRST_TELEM+TELEM_MIN_VFAS-1:
|
||||
PLAY_NUMBER(val, 1+UNIT_VOLTS, PREC1);
|
||||
break;
|
||||
@@ -4865,10 +4875,10 @@ void perMain()
|
||||
#endif
|
||||
}
|
||||
}
|
||||
} //endfunc void perMain()
|
||||
}
|
||||
|
||||
int16_t g_ppmIns[8];
|
||||
uint8_t ppmInState = 0; //0=unsync 1..8= wait for value i-1
|
||||
int16_t g_ppmIns[NUM_PPM];
|
||||
uint8_t ppmInState = 0; // 0=unsync 1..8= wait for value i-1
|
||||
|
||||
#if !defined(SIMU) && !defined(CPUARM)
|
||||
|
||||
|
||||
+1
-11
@@ -622,16 +622,6 @@ enum BaseCurves {
|
||||
CURVE_BASE
|
||||
};
|
||||
|
||||
#define SWASH_TYPE_120 1
|
||||
#define SWASH_TYPE_120X 2
|
||||
#define SWASH_TYPE_140 3
|
||||
#define SWASH_TYPE_90 4
|
||||
#define SWASH_TYPE_NUM 4
|
||||
|
||||
#define NUM_CYC 3
|
||||
#define NUM_CAL_PPM 4
|
||||
#define NUM_PPM 8
|
||||
|
||||
#define THRCHK_DEADBAND 16
|
||||
|
||||
#if defined(FSPLASH) || defined(XSPLASH)
|
||||
@@ -1205,7 +1195,7 @@ extern uint8_t g_beepCnt;
|
||||
extern uint8_t g_beepVal[5];
|
||||
|
||||
extern uint8_t ppmInState; //0=unsync 1..8= wait for value i-1
|
||||
extern int16_t g_ppmIns[8];
|
||||
extern int16_t g_ppmIns[NUM_PPM];
|
||||
extern int32_t chans[NUM_CHNOUT];
|
||||
extern int16_t ex_chans[NUM_CHNOUT]; // Outputs (before LIMITS) of the last perMain
|
||||
extern int16_t channelOutputs[NUM_CHNOUT];
|
||||
|
||||
@@ -700,6 +700,9 @@ void telemetryInterrupt10ms()
|
||||
voltage += frskyData.hub.cellVolts[i];
|
||||
voltage /= 5;
|
||||
frskyData.hub.cellsSum = voltage;
|
||||
if (frskyData.hub.cellsSum < frskyData.hub.minCells) {
|
||||
frskyData.hub.minCells = frskyData.hub.cellsSum;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (TELEMETRY_STREAMING()) {
|
||||
|
||||
@@ -140,6 +140,7 @@ PACK(struct FrskySerialData {
|
||||
uint16_t maxGpsSpeed;
|
||||
uint16_t maxGpsDistance;
|
||||
int16_t minCell;
|
||||
int16_t minCells;
|
||||
int16_t minVfas;
|
||||
uint16_t maxCurrent;
|
||||
uint16_t maxPower;
|
||||
@@ -187,6 +188,9 @@ PACK(struct FrskySerialData {
|
||||
struct FrskyData {
|
||||
FrskyValueWithMinMax analog[2];
|
||||
FrskyValueWithMin rssi[2];
|
||||
#if defined(CPUARM)
|
||||
FrskyValueWithMinMax swr;
|
||||
#endif
|
||||
FrskySerialData hub;
|
||||
};
|
||||
|
||||
|
||||
@@ -323,7 +323,7 @@ void processSportPacket(uint8_t *packet)
|
||||
frskyData.rssi[0].set(SPORT_DATA_U8(packet));
|
||||
}
|
||||
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) {
|
||||
// A1/A2 of DxR receivers
|
||||
@@ -577,6 +577,9 @@ void telemetryInterrupt10ms()
|
||||
voltage += frskyData.hub.cellVolts[i];
|
||||
voltage /= 10;
|
||||
frskyData.hub.cellsSum = voltage;
|
||||
if (frskyData.hub.cellsSum < frskyData.hub.minCells) {
|
||||
frskyData.hub.minCells = frskyData.hub.cellsSum;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (TELEMETRY_STREAMING()) {
|
||||
@@ -667,7 +670,7 @@ void telemetryWakeup()
|
||||
alarmsCheckTime = get_tmr10ms() + 100; /* next check in 1second */
|
||||
|
||||
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();
|
||||
s_global_warning = STR_ANTENNAPROBLEM;
|
||||
alarmsCheckTime = get_tmr10ms() + 300; /* next check in 3seconds */
|
||||
@@ -760,7 +763,7 @@ void resetTelemetry()
|
||||
frskyData.analog[0].set(120);
|
||||
frskyData.analog[1].set(240);
|
||||
frskyData.rssi[0].value = 75;
|
||||
frskyData.rssi[1].value = 30;
|
||||
frskyData.swr.value = 30;
|
||||
frskyData.hub.fuelLevel = 75;
|
||||
frskyData.hub.rpm = 12000;
|
||||
frskyData.hub.vfas = 100;
|
||||
|
||||
@@ -124,6 +124,7 @@ PACK(struct FrskySerialData {
|
||||
uint16_t maxGpsSpeed;
|
||||
uint16_t maxGpsDistance;
|
||||
int16_t minCell;
|
||||
int16_t minCells;
|
||||
int16_t minVfas;
|
||||
uint16_t maxCurrent;
|
||||
uint16_t maxPower;
|
||||
@@ -150,6 +151,7 @@ PACK(struct FrskySerialData {
|
||||
struct FrskyData {
|
||||
FrskyValueWithMinMax analog[2];
|
||||
FrskyValueWithMinMax rssi[2];
|
||||
FrskyValueWithMinMax swr;
|
||||
FrskySerialData hub;
|
||||
};
|
||||
|
||||
|
||||
@@ -271,7 +271,7 @@
|
||||
#define TR_RSSI_0 "Tx\0 "
|
||||
#define TR_RSSI_1 "Rx\0 "
|
||||
#endif
|
||||
#define TR_VTELEMCHNS "---\0""Bat\0""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""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Vfs-""Cur+""Pwr+""Acc\0""Time"
|
||||
#define TR_VTELEMCHNS "---\0""Bat\0""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""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+""Acc\0""Time"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define LEN_VUNITSSYSTEM TR("\006", "\010")
|
||||
|
||||
@@ -271,7 +271,7 @@
|
||||
#define TR_RSSI_0 "Tx\0 "
|
||||
#define TR_RSSI_1 "Rx\0 "
|
||||
#endif
|
||||
#define TR_VTELEMCHNS "---\0""Batt""Uhr1""Uhr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""H\203he""Umdr""Fuel""T1\0 ""T2\0 ""Gesc""Dist""GH\203h""Zell""Zels""Vfas""Strm""Verb""Leis""BesX""BesY""BesZ""Rich""VGes""ASpd""dTE\0""A1-\0""A2-\0""H\203h-""H\203h+""Umd+""T1+\0""T2+\0""Ges+""Dst+""Cel-""Vfs-""Str+""Pwr+""Besc""Zeit"
|
||||
#define TR_VTELEMCHNS "---\0""Batt""Uhr1""Uhr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""H\203he""Umdr""Fuel""T1\0 ""T2\0 ""Gesc""Dist""GH\203h""Zell""Zels""Vfas""Strm""Verb""Leis""BesX""BesY""BesZ""Rich""VGes""ASpd""dTE\0""A1-\0""A2-\0""H\203h-""H\203h+""Umd+""T1+\0""T2+\0""Ges+""Dst+""Cel-""Cls-""Vfs-""Str+""Pwr+""Besc""Zeit"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define LEN_VUNITSSYSTEM TR("\006", "\010")
|
||||
|
||||
@@ -234,8 +234,10 @@
|
||||
#define TR_CFN_TEST
|
||||
#endif
|
||||
|
||||
#define TR_CFN_RESERVE "[reserve]\0"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define TR_VFSWFUNC "Safety\0 ""Trainer\0 ""Inst. Trim""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0" TR_CFN_TEST
|
||||
#define TR_VFSWFUNC "Safety\0 ""Trainer\0 ""Inst. Trim""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0" TR_CFN_TEST
|
||||
#elif defined(PCBGRUVIN9X)
|
||||
#define TR_VFSWFUNC "Safety\0 ""Trainer\0 ""Inst. Trim""Reset\0 " TR_ADJUST_GVAR TR_SOUND TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0" TR_CFN_TEST
|
||||
#else
|
||||
@@ -264,14 +266,22 @@
|
||||
#define TR_FUNCSOUNDS TR("Bp1\0""Bp2\0""Bp3\0""Wrn1""Wrn2""Chee""Rata""Tick""Sirn""Ring""SciF""Robt""Chrp""Tada""Crck""Alrm", "Beep1 ""Beep2 ""Beep3 ""Warn1 ""Warn2 ""Cheep ""Ratata""Tick ""Siren ""Ring ""SciFi ""Robot ""Chirp ""Tada ""Crickt""AlmClk")
|
||||
|
||||
#define LEN_VTELEMCHNS "\004"
|
||||
#if defined(PCBTARANIS)
|
||||
#define TR_RSSI_0 "SWR\0"
|
||||
#define TR_RSSI_1 "RSSI"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#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
|
||||
#define TR_RSSI_0 "Tx\0 "
|
||||
#define TR_RSSI_1 "Rx\0 "
|
||||
#define TR_TELEM_RESERVE
|
||||
#define TR_SWR
|
||||
#define TR_RX_BATT
|
||||
#define TR_A3_A4
|
||||
#define TR_A3_A4_MIN
|
||||
#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""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Vfs-""Cur+""Pwr+""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-""Cls-""Vfs-""Cur+""Pwr+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Time"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define LEN_VUNITSSYSTEM TR("\006", "\010")
|
||||
|
||||
@@ -271,7 +271,7 @@
|
||||
#define TR_RSSI_0 "Tx\0 "
|
||||
#define TR_RSSI_1 "Rx\0 "
|
||||
#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""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Vfs-""Cur+""Pwr+""Acc\0""Hora"
|
||||
#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""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+""Acc\0""Hora"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define LEN_VUNITSSYSTEM TR("\006", "\010")
|
||||
|
||||
@@ -271,7 +271,7 @@
|
||||
#define TR_RSSI_0 "Tx\0 "
|
||||
#define TR_RSSI_1 "Rx\0 "
|
||||
#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""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Vfs-""Cel-""Vfs-""Cur+""Pwr+""Acc\0""Time"
|
||||
#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""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cel-""Cls-""Vfs-""Cur+""Pwr+""Acc\0""Time"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define LEN_VUNITSSYSTEM TR("\006", "\010")
|
||||
|
||||
@@ -271,7 +271,7 @@
|
||||
#define TR_RSSI_0 "Tx\0 "
|
||||
#define TR_RSSI_1 "Rx\0 "
|
||||
#endif
|
||||
#define TR_VTELEMCHNS "---\0""Batt""Chr1""Chr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""Alt\0""Rpm\0""Carb""T1\0 ""T2\0 ""Vit\0""Dist""AltG""Elem""Velm""Vfas""Cour""Cnsm""Puis""AccX""AccY""AccZ""Cap\0""VitV""VitA""dET\0""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Vit+""Dst+""Elm-""Vfs-""Cur+""Pui+""Acc\0""Tmps"
|
||||
#define TR_VTELEMCHNS "---\0""Batt""Chr1""Chr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""Alt\0""Rpm\0""Carb""T1\0 ""T2\0 ""Vit\0""Dist""AltG""Elem""Velm""Vfas""Cour""Cnsm""Puis""AccX""AccY""AccZ""Cap\0""VitV""VitA""dET\0""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Vit+""Dst+""Elm-""Els-""Vfs-""Cur+""Pui+""Acc\0""Tmps"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define LEN_VUNITSSYSTEM TR("\006", "\012")
|
||||
|
||||
@@ -271,7 +271,7 @@
|
||||
#define TR_RSSI_0 "Tx\0 "
|
||||
#define TR_RSSI_1 "Rx\0 "
|
||||
#endif
|
||||
#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""Alt\0""Rpm\0""Carb""T1\0 ""T2\0 ""Vel\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsm""Powr""AccX""AccY""AccZ""Dir\0""VelV""ASpd""dTE\0""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Vel+""Dst+""Cel-""Vfs-""Cur+""Pwr+""Acc\0""Time"
|
||||
#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""Alt\0""Rpm\0""Carb""T1\0 ""T2\0 ""Vel\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsm""Powr""AccX""AccY""AccZ""Dir\0""VelV""ASpd""dTE\0""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Vel+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+""Acc\0""Time"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define LEN_VUNITSSYSTEM TR("\006", "\011")
|
||||
|
||||
@@ -271,7 +271,7 @@
|
||||
#define TR_RSSI_0 "Tx\0 "
|
||||
#define TR_RSSI_1 "Rx\0 "
|
||||
#endif
|
||||
#define TR_VTELEMCHNS "---\0""Bat\0""Tmr1""Tmr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""Wys\0""Rpm\0""Pali""T1\0 ""T2\0 ""Spd\0""Dyst""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Moc\0""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0""A1-\0""A2-\0""Wys-""Wys+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Vfs-""Cur+""Moc+""Acc\0""Time"
|
||||
#define TR_VTELEMCHNS "---\0""Bat\0""Tmr1""Tmr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""Wys\0""Rpm\0""Pali""T1\0 ""T2\0 ""Spd\0""Dyst""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Moc\0""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0""A1-\0""A2-\0""Wys-""Wys+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cur+""Moc+""Acc\0""Time"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define LEN_VUNITSSYSTEM TR("\006", "\012")
|
||||
|
||||
@@ -271,7 +271,7 @@
|
||||
#define TR_RSSI_0 "Tx\0 "
|
||||
#define TR_RSSI_1 "Rx\0 "
|
||||
#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""VVel""ASpd""dTE\0""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Vel+""Dst+""Cel-""Vfs-""Cur+""Pwr+""Acc\0""Hora"
|
||||
#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""VVel""ASpd""dTE\0""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Vel+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+""Acc\0""Hora"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define LEN_VUNITSSYSTEM TR("\006", "\010")
|
||||
|
||||
Reference in New Issue
Block a user