1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-19 22:35:12 +03:00

Compilation fixes

This commit is contained in:
Bertrand Songis 2019-04-16 20:39:50 +02:00
parent 84e24a4189
commit c7bd0d3ea1
17 changed files with 119 additions and 136 deletions

View file

@ -91,7 +91,7 @@ enum CurveType {
#define LEN_MODEL_NAME 15 #define LEN_MODEL_NAME 15
#define LEN_TIMER_NAME 8 #define LEN_TIMER_NAME 8
#define LEN_FLIGHT_MODE_NAME 10 #define LEN_FLIGHT_MODE_NAME 10
#define LEN_BITMAP_NAME 10 // TODO next EEPROM change: we need 14 here as we have to store the file extension #define LEN_BITMAP_NAME 14
#define LEN_EXPOMIX_NAME 6 #define LEN_EXPOMIX_NAME 6
#define LEN_CHANNEL_NAME 6 #define LEN_CHANNEL_NAME 6
#define LEN_INPUT_NAME 4 #define LEN_INPUT_NAME 4
@ -104,7 +104,7 @@ enum CurveType {
#define LEN_TIMER_NAME 8 #define LEN_TIMER_NAME 8
#define LEN_FLIGHT_MODE_NAME 10 #define LEN_FLIGHT_MODE_NAME 10
#define LEN_BITMAP_NAME 10 #define LEN_BITMAP_NAME 10
#define LEN_EXPOMIX_NAME 8 // TODO next EEPROM change: 6 seem enough #define LEN_EXPOMIX_NAME 6
#define LEN_CHANNEL_NAME 6 #define LEN_CHANNEL_NAME 6
#define LEN_INPUT_NAME 4 #define LEN_INPUT_NAME 4
#define LEN_CURVE_NAME 3 #define LEN_CURVE_NAME 3
@ -327,7 +327,7 @@ enum TelemetryScreenType {
#endif #endif
}; };
#define MAX_TELEMETRY_SCREENS 4 #define MAX_TELEMETRY_SCREENS 4
#define TELEMETRY_SCREEN_TYPE(screenIndex) TelemetryScreenType((g_model.frsky.screensType >> (2*(screenIndex))) & 0x03) #define TELEMETRY_SCREEN_TYPE(screenIndex) TelemetryScreenType((g_model.screensType >> (2*(screenIndex))) & 0x03)
#define IS_BARS_SCREEN(screenIndex) (TELEMETRY_SCREEN_TYPE(screenIndex) == TELEMETRY_SCREEN_TYPE_GAUGES) #define IS_BARS_SCREEN(screenIndex) (TELEMETRY_SCREEN_TYPE(screenIndex) == TELEMETRY_SCREEN_TYPE_GAUGES)
#define FAILSAFE_CHANNEL_HOLD 2000 #define FAILSAFE_CHANNEL_HOLD 2000

View file

@ -304,7 +304,7 @@ PACK(struct TelemetryScriptData {
}); });
#endif #endif
union FrSkyScreenData { union TelemetryScreenData {
FrSkyBarData bars[4]; FrSkyBarData bars[4];
FrSkyLineData lines[4]; FrSkyLineData lines[4];
#if defined(PCBTARANIS) #if defined(PCBTARANIS)
@ -313,32 +313,14 @@ union FrSkyScreenData {
}; };
#endif #endif
#if defined(COLORLCD) PACK(struct VarioData {
PACK(struct FrSkyTelemetryData { // TODO EEPROM change, rename to VarioData uint8_t source:7;
uint8_t varioSource:7; uint8_t centerSilent:1;
uint8_t varioCenterSilent:1; int8_t centerMax;
int8_t varioCenterMax; int8_t centerMin;
int8_t varioCenterMin; int8_t min;
int8_t varioMin; int8_t max;
int8_t varioMax;
uint8_t rssiSource;
}); });
#else
// TODO remove this also on Taranis
PACK(struct FrSkyTelemetryData {
uint8_t voltsSource;
uint8_t altitudeSource;
uint8_t screensType; // 2bits per screen (None/Gauges/Numbers/Script)
FrSkyScreenData screens[MAX_TELEMETRY_SCREENS]; // TODO EEPROM change should not be here anymore
uint8_t varioSource:7;
uint8_t varioCenterSilent:1;
int8_t varioCenterMax;
int8_t varioCenterMin;
int8_t varioMin;
int8_t varioMax;
uint8_t rssiSource;
});
#endif
/* /*
* Telemetry Sensor structure * Telemetry Sensor structure
@ -561,12 +543,11 @@ PACK(struct CustomScreenData {
NOBACKUP(CustomScreenData screenData[MAX_CUSTOM_SCREENS]); \ NOBACKUP(CustomScreenData screenData[MAX_CUSTOM_SCREENS]); \
NOBACKUP(Topbar::PersistentData topbarData); \ NOBACKUP(Topbar::PersistentData topbarData); \
NOBACKUP(uint8_t view); NOBACKUP(uint8_t view);
#elif defined(PCBTARANIS)
#define CUSTOM_SCREENS_DATA \
NOBACKUP(uint8_t view);
#else #else
#define CUSTOM_SCREENS_DATA #define CUSTOM_SCREENS_DATA \
// TODO other boards could have their custom screens here as well uint8_t screensType; /* 2bits per screen (None/Gauges/Numbers/Script) */ \
TelemetryScreenData screens[MAX_TELEMETRY_SCREENS]; \
uint8_t view;
#endif #endif
PACK(struct ModelData { PACK(struct ModelData {
@ -602,7 +583,12 @@ PACK(struct ModelData {
GVarData gvars[MAX_GVARS]; GVarData gvars[MAX_GVARS];
NOBACKUP(FrSkyTelemetryData frsky); NOBACKUP(VarioData varioData);
NOBACKUP(uint8_t rssiSource);
#if defined(PCBX9)
NOBACKUP(uint8_t voltsSource);
NOBACKUP(uint8_t altitudeSource);
#endif
NOBACKUP(RssiAlarmData rssiAlarms); NOBACKUP(RssiAlarmData rssiAlarms);
NOBACKUP(uint8_t spare1:6); NOBACKUP(uint8_t spare1:6);
@ -837,6 +823,8 @@ static inline void check_struct()
/* Difference between Taranis/Horus is LEN_EXPOMIX_NAME */ /* Difference between Taranis/Horus is LEN_EXPOMIX_NAME */
/* LEN_FUNCTION_NAME is the difference in CustomFunctionData */ /* LEN_FUNCTION_NAME is the difference in CustomFunctionData */
CHKSIZE(VarioData, 5);
#if defined(PCBX7) || defined(PCBXLITE) || defined(PCBX3) #if defined(PCBX7) || defined(PCBXLITE) || defined(PCBX3)
CHKSIZE(MixData, 20); CHKSIZE(MixData, 20);
CHKSIZE(ExpoData, 17); CHKSIZE(ExpoData, 17);
@ -848,13 +836,12 @@ static inline void check_struct()
CHKSIZE(SwashRingData, 8); CHKSIZE(SwashRingData, 8);
CHKSIZE(FrSkyBarData, 6); CHKSIZE(FrSkyBarData, 6);
CHKSIZE(FrSkyLineData, 4); CHKSIZE(FrSkyLineData, 4);
CHKTYPE(union FrSkyScreenData, 24); CHKTYPE(union TelemetryScreenData, 24);
CHKSIZE(FrSkyTelemetryData, 105);
CHKSIZE(ModelHeader, 12); CHKSIZE(ModelHeader, 12);
CHKSIZE(CurveData, 4); CHKSIZE(CurveData, 4);
#elif defined(PCBTARANIS) #elif defined(PCBTARANIS)
CHKSIZE(MixData, 22); CHKSIZE(MixData, 20);
CHKSIZE(ExpoData, 19); CHKSIZE(ExpoData, 17);
CHKSIZE(LimitData, 13); CHKSIZE(LimitData, 13);
CHKSIZE(LogicalSwitchData, 9); CHKSIZE(LogicalSwitchData, 9);
CHKSIZE(CustomFunctionData, 11); CHKSIZE(CustomFunctionData, 11);
@ -863,8 +850,7 @@ static inline void check_struct()
CHKSIZE(SwashRingData, 8); CHKSIZE(SwashRingData, 8);
CHKSIZE(FrSkyBarData, 6); CHKSIZE(FrSkyBarData, 6);
CHKSIZE(FrSkyLineData, 6); CHKSIZE(FrSkyLineData, 6);
CHKTYPE(union FrSkyScreenData, 24); CHKTYPE(union TelemetryScreenData, 24);
CHKSIZE(FrSkyTelemetryData, 105);
CHKSIZE(ModelHeader, 24); CHKSIZE(ModelHeader, 24);
CHKSIZE(CurveData, 4); CHKSIZE(CurveData, 4);
#elif defined(PCBHORUS) #elif defined(PCBHORUS)
@ -875,8 +861,7 @@ static inline void check_struct()
CHKSIZE(FlightModeData, 44); CHKSIZE(FlightModeData, 44);
CHKSIZE(TimerData, 16); CHKSIZE(TimerData, 16);
CHKSIZE(SwashRingData, 8); CHKSIZE(SwashRingData, 8);
CHKSIZE(FrSkyTelemetryData, 6); CHKSIZE(ModelHeader, 31);
CHKSIZE(ModelHeader, 27);
CHKSIZE(CurveData, 4); CHKSIZE(CurveData, 4);
CHKSIZE(CustomScreenData, 610); CHKSIZE(CustomScreenData, 610);
CHKSIZE(Topbar::PersistentData, 216); CHKSIZE(Topbar::PersistentData, 216);
@ -890,7 +875,6 @@ static inline void check_struct()
CHKSIZE(SwashRingData, 8); CHKSIZE(SwashRingData, 8);
CHKSIZE(FrSkyBarData, 5); CHKSIZE(FrSkyBarData, 5);
CHKSIZE(FrSkyLineData, 2); CHKSIZE(FrSkyLineData, 2);
CHKSIZE(FrSkyTelemetryData, 89);
CHKSIZE(ModelHeader, 12); CHKSIZE(ModelHeader, 12);
CHKTYPE(CurveData, 4); CHKTYPE(CurveData, 4);
#else #else
@ -899,7 +883,6 @@ static inline void check_struct()
CHKSIZE(SwashRingData, 3); CHKSIZE(SwashRingData, 3);
CHKSIZE(FrSkyBarData, 3); CHKSIZE(FrSkyBarData, 3);
CHKSIZE(FrSkyLineData, 2); CHKSIZE(FrSkyLineData, 2);
CHKSIZE(FrSkyTelemetryData, 43);
CHKSIZE(ModelHeader, 11); CHKSIZE(ModelHeader, 11);
CHKTYPE(CurveData, 1); CHKTYPE(CurveData, 1);
@ -923,25 +906,25 @@ static inline void check_struct()
#if defined(PCBXLITES) #if defined(PCBXLITES)
CHKSIZE(RadioData, 860); CHKSIZE(RadioData, 860);
CHKSIZE(ModelData, 6055); CHKSIZE(ModelData, 6117);
#elif defined(PCBXLITE) #elif defined(PCBXLITE)
CHKSIZE(RadioData, 852); CHKSIZE(RadioData, 852);
CHKSIZE(ModelData, 6055); CHKSIZE(ModelData, 6117);
#elif defined(PCBX7) #elif defined(PCBX7)
CHKSIZE(RadioData, 858); CHKSIZE(RadioData, 858);
CHKSIZE(ModelData, 6055); CHKSIZE(ModelData, 6117);
#elif defined(PCBX9E) #elif defined(PCBX9E)
CHKSIZE(RadioData, 960); CHKSIZE(RadioData, 960);
CHKSIZE(ModelData, 6550); CHKSIZE(ModelData, 6550);
#elif defined(PCBX9D) || defined(PCBX9DP) #elif defined(PCBX9D) || defined(PCBX9DP)
CHKSIZE(RadioData, 880); CHKSIZE(RadioData, 880);
CHKSIZE(ModelData, 6537); CHKSIZE(ModelData, 6281);
#elif defined(PCBSKY9X) #elif defined(PCBSKY9X)
CHKSIZE(RadioData, 735); CHKSIZE(RadioData, 735);
CHKSIZE(ModelData, 5216); CHKSIZE(ModelData, 5279);
#elif defined(PCBHORUS) #elif defined(PCBHORUS)
CHKSIZE(RadioData, 855); CHKSIZE(RadioData, 855);
CHKSIZE(ModelData, 9722); CHKSIZE(ModelData, 9726);
#endif #endif
#undef CHKSIZE #undef CHKSIZE

View file

@ -69,13 +69,13 @@ void onTelemetryScriptFileSelectionMenu(const char *result)
int screenIndex = TELEMETRY_CURRENT_SCREEN(menuVerticalPosition - HEADER_LINE); int screenIndex = TELEMETRY_CURRENT_SCREEN(menuVerticalPosition - HEADER_LINE);
if (result == STR_UPDATE_LIST) { if (result == STR_UPDATE_LIST) {
if (!sdListFiles(SCRIPTS_TELEM_PATH, SCRIPTS_EXT, sizeof(g_model.frsky.screens[screenIndex].script.file), NULL)) { if (!sdListFiles(SCRIPTS_TELEM_PATH, SCRIPTS_EXT, sizeof(g_model.screens[screenIndex].script.file), NULL)) {
POPUP_WARNING(STR_NO_SCRIPTS_ON_SD); POPUP_WARNING(STR_NO_SCRIPTS_ON_SD);
} }
} }
else if (result != STR_EXIT) { else if (result != STR_EXIT) {
// The user choosed a file in the list // The user choosed a file in the list
memcpy(g_model.frsky.screens[screenIndex].script.file, result, sizeof(g_model.frsky.screens[screenIndex].script.file)); memcpy(g_model.screens[screenIndex].script.file, result, sizeof(g_model.screens[screenIndex].script.file));
storageDirty(EE_MODEL); storageDirty(EE_MODEL);
LUA_LOAD_MODEL_SCRIPTS(); LUA_LOAD_MODEL_SCRIPTS();
} }
@ -125,12 +125,12 @@ void menuModelDisplay(event_t event)
TelemetryScreenType oldScreenType = TELEMETRY_SCREEN_TYPE(screenIndex); TelemetryScreenType oldScreenType = TELEMETRY_SCREEN_TYPE(screenIndex);
TelemetryScreenType newScreenType = (TelemetryScreenType)editChoice(DISPLAY_COL2, y, "", STR_VTELEMSCREENTYPE, oldScreenType, 0, TELEMETRY_SCREEN_TYPE_MAX, (menuHorizontalPosition==0 ? attr : 0), event); TelemetryScreenType newScreenType = (TelemetryScreenType)editChoice(DISPLAY_COL2, y, "", STR_VTELEMSCREENTYPE, oldScreenType, 0, TELEMETRY_SCREEN_TYPE_MAX, (menuHorizontalPosition==0 ? attr : 0), event);
if (newScreenType != oldScreenType) { if (newScreenType != oldScreenType) {
g_model.frsky.screensType = (g_model.frsky.screensType & (~(0x03 << (2*screenIndex)))) | (newScreenType << (2*screenIndex)); g_model.screensType = (g_model.screensType & (~(0x03 << (2*screenIndex)))) | (newScreenType << (2*screenIndex));
memset(&g_model.frsky.screens[screenIndex], 0, sizeof(g_model.frsky.screens[screenIndex])); memset(&g_model.screens[screenIndex], 0, sizeof(g_model.screens[screenIndex]));
} }
#if defined(LUA) #if defined(LUA)
if (newScreenType == TELEMETRY_SCREEN_TYPE_SCRIPT) { if (newScreenType == TELEMETRY_SCREEN_TYPE_SCRIPT) {
TelemetryScriptData & scriptData = g_model.frsky.screens[screenIndex].script; TelemetryScriptData & scriptData = g_model.screens[screenIndex].script;
// TODO better function name for --- // TODO better function name for ---
// TODO function for these lines // TODO function for these lines
@ -141,7 +141,7 @@ void menuModelDisplay(event_t event)
if (menuHorizontalPosition==1 && attr && event==EVT_KEY_BREAK(KEY_ENTER) && READ_ONLY_UNLOCKED()) { if (menuHorizontalPosition==1 && attr && event==EVT_KEY_BREAK(KEY_ENTER) && READ_ONLY_UNLOCKED()) {
s_editMode = 0; s_editMode = 0;
if (sdListFiles(SCRIPTS_TELEM_PATH, SCRIPTS_EXT, sizeof(g_model.frsky.screens[screenIndex].script.file), g_model.frsky.screens[screenIndex].script.file)) { if (sdListFiles(SCRIPTS_TELEM_PATH, SCRIPTS_EXT, sizeof(g_model.screens[screenIndex].script.file), g_model.screens[screenIndex].script.file)) {
POPUP_MENU_START(onTelemetryScriptFileSelectionMenu); POPUP_MENU_START(onTelemetryScriptFileSelectionMenu);
} }
else { else {
@ -192,7 +192,7 @@ void menuModelDisplay(event_t event)
} }
if (IS_BARS_SCREEN(screenIndex)) { if (IS_BARS_SCREEN(screenIndex)) {
FrSkyBarData & bar = g_model.frsky.screens[screenIndex].bars[lineIndex]; FrSkyBarData & bar = g_model.screens[screenIndex].bars[lineIndex];
drawSource(DISPLAY_COL1, y, bar.source, menuHorizontalPosition==0 ? attr : 0); drawSource(DISPLAY_COL1, y, bar.source, menuHorizontalPosition==0 ? attr : 0);
int16_t barMax, barMin; int16_t barMax, barMin;
LcdFlags lf = LEFT; LcdFlags lf = LEFT;
@ -237,7 +237,7 @@ void menuModelDisplay(event_t event)
else { else {
for (int c=0; c<NUM_LINE_ITEMS; c++) { for (int c=0; c<NUM_LINE_ITEMS; c++) {
LcdFlags cellAttr = (menuHorizontalPosition==c ? attr : 0); LcdFlags cellAttr = (menuHorizontalPosition==c ? attr : 0);
source_t & value = g_model.frsky.screens[screenIndex].lines[lineIndex].sources[c]; source_t & value = g_model.screens[screenIndex].lines[lineIndex].sources[c];
const coord_t pos[] = {DISPLAY_COL1, DISPLAY_COL2, DISPLAY_COL3}; const coord_t pos[] = {DISPLAY_COL1, DISPLAY_COL2, DISPLAY_COL3};
drawSource(pos[c], y, value, cellAttr); drawSource(pos[c], y, value, cellAttr);
if (cellAttr && s_editMode>0) { if (cellAttr && s_editMode>0) {

View file

@ -250,14 +250,14 @@ void menuModelTelemetryFrsky(event_t event)
case ITEM_TELEMETRY_RSSI_SOURCE: { case ITEM_TELEMETRY_RSSI_SOURCE: {
lcdDrawTextAlignedLeft(y, STR_SOURCE); lcdDrawTextAlignedLeft(y, STR_SOURCE);
drawSource(TELEM_COL2, y, g_model.frsky.rssiSource ? MIXSRC_FIRST_TELEM + 3 * (g_model.frsky.rssiSource - 1) : 0, attr); drawSource(TELEM_COL2, y, g_model.rssiSource ? MIXSRC_FIRST_TELEM + 3 * (g_model.rssiSource - 1) : 0, attr);
if (g_model.frsky.rssiSource) { if (g_model.rssiSource) {
TelemetrySensor * sensor = &g_model.telemetrySensors[g_model.frsky.rssiSource]; TelemetrySensor * sensor = &g_model.telemetrySensors[g_model.rssiSource];
lcdDrawText(lcdNextPos, y, " ", attr); lcdDrawText(lcdNextPos, y, " ", attr);
drawReceiverName(lcdNextPos, y, (sensor->instance >> 7) & 0x01, (sensor->instance >> 5) & 0x03, attr); drawReceiverName(lcdNextPos, y, (sensor->instance >> 7) & 0x01, (sensor->instance >> 5) & 0x03, attr);
} }
if (attr) { if (attr) {
g_model.frsky.rssiSource = checkIncDec(event, g_model.frsky.rssiSource, 0, MAX_TELEMETRY_SENSORS, EE_MODEL | NO_INCDEC_MARKS, isRssiSensorAvailable); g_model.rssiSource = checkIncDec(event, g_model.rssiSource, 0, MAX_TELEMETRY_SENSORS, EE_MODEL | NO_INCDEC_MARKS, isRssiSensorAvailable);
} }
break; break;
} }
@ -288,9 +288,9 @@ void menuModelTelemetryFrsky(event_t event)
case ITEM_TELEMETRY_VARIO_SOURCE: case ITEM_TELEMETRY_VARIO_SOURCE:
lcdDrawTextAlignedLeft(y, STR_SOURCE); lcdDrawTextAlignedLeft(y, STR_SOURCE);
drawSource(TELEM_COL2, y, g_model.frsky.varioSource ? MIXSRC_FIRST_TELEM+3*(g_model.frsky.varioSource-1) : 0, attr); drawSource(TELEM_COL2, y, g_model.varioData.source ? MIXSRC_FIRST_TELEM+3*(g_model.varioData.source-1) : 0, attr);
if (attr) { if (attr) {
g_model.frsky.varioSource = checkIncDec(event, g_model.frsky.varioSource, 0, MAX_TELEMETRY_SENSORS, EE_MODEL|NO_INCDEC_MARKS, isSensorAvailable); g_model.varioData.source = checkIncDec(event, g_model.varioData.source, 0, MAX_TELEMETRY_SENSORS, EE_MODEL|NO_INCDEC_MARKS, isSensorAvailable);
} }
break; break;
@ -299,15 +299,15 @@ void menuModelTelemetryFrsky(event_t event)
if (attr && CURSOR_ON_LINE()) { if (attr && CURSOR_ON_LINE()) {
lcdDrawSolidFilledRect(TELEM_COL2-1, y-1, LCD_W-TELEM_COL2+1, FH+1); lcdDrawSolidFilledRect(TELEM_COL2-1, y-1, LCD_W-TELEM_COL2+1, FH+1);
} }
lcdDrawNumber(TELEM_COL2, y, -10+g_model.frsky.varioMin, ((CURSOR_ON_LINE() || menuHorizontalPosition==0) ? attr : 0)|LEFT); lcdDrawNumber(TELEM_COL2, y, -10+g_model.varioData.min, ((CURSOR_ON_LINE() || menuHorizontalPosition==0) ? attr : 0)|LEFT);
lcdDrawNumber(TELEM_COL2+4*FW, y, 10+g_model.frsky.varioMax, ((CURSOR_ON_LINE() || menuHorizontalPosition==1) ? attr : 0)|LEFT); lcdDrawNumber(TELEM_COL2+4*FW, y, 10+g_model.varioData.max, ((CURSOR_ON_LINE() || menuHorizontalPosition==1) ? attr : 0)|LEFT);
if (attr && s_editMode > 0) { if (attr && s_editMode > 0) {
switch (menuHorizontalPosition) { switch (menuHorizontalPosition) {
case 0: case 0:
CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioMin, -7, 7); CHECK_INCDEC_MODELVAR(event, g_model.varioData.min, -7, 7);
break; break;
case 1: case 1:
CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioMax, -7, 7); CHECK_INCDEC_MODELVAR(event, g_model.varioData.max, -7, 7);
break; break;
} }
} }
@ -315,19 +315,19 @@ void menuModelTelemetryFrsky(event_t event)
case ITEM_TELEMETRY_VARIO_CENTER: case ITEM_TELEMETRY_VARIO_CENTER:
lcdDrawTextAlignedLeft(y, STR_CENTER); lcdDrawTextAlignedLeft(y, STR_CENTER);
lcdDrawNumber(TELEM_COL2, y, -5+g_model.frsky.varioCenterMin, ((CURSOR_ON_LINE() || menuHorizontalPosition==0) ? attr : 0)|PREC1|LEFT); lcdDrawNumber(TELEM_COL2, y, -5+g_model.varioData.centerMin, ((CURSOR_ON_LINE() || menuHorizontalPosition==0) ? attr : 0)|PREC1|LEFT);
lcdDrawNumber(TELEM_COL2+4*FW, y, 5+g_model.frsky.varioCenterMax, ((CURSOR_ON_LINE() || menuHorizontalPosition==1) ? attr : 0)|PREC1|LEFT); lcdDrawNumber(TELEM_COL2+4*FW, y, 5+g_model.varioData.centerMax, ((CURSOR_ON_LINE() || menuHorizontalPosition==1) ? attr : 0)|PREC1|LEFT);
lcdDrawTextAtIndex(TELEM_COL2+8*FW, y, STR_VVARIOCENTER, g_model.frsky.varioCenterSilent, (menuHorizontalPosition==2 ? attr : 0)); lcdDrawTextAtIndex(TELEM_COL2+8*FW, y, STR_VVARIOCENTER, g_model.varioData.centerSilent, (menuHorizontalPosition==2 ? attr : 0));
if (attr && s_editMode > 0) { if (attr && s_editMode > 0) {
switch (menuHorizontalPosition) { switch (menuHorizontalPosition) {
case 0: case 0:
CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioCenterMin, -16, 5+min<int8_t>(10, g_model.frsky.varioCenterMax+5)); CHECK_INCDEC_MODELVAR(event, g_model.varioData.centerMin, -16, 5+min<int8_t>(10, g_model.varioData.centerMax+5));
break; break;
case 1: case 1:
CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioCenterMax, -5+max<int8_t>(-10, g_model.frsky.varioCenterMin-5), +15); CHECK_INCDEC_MODELVAR(event, g_model.varioData.centerMax, -5+max<int8_t>(-10, g_model.varioData.centerMin-5), +15);
break; break;
case 2: case 2:
CHECK_INCDEC_MODELVAR_ZERO(event, g_model.frsky.varioCenterSilent, 1); CHECK_INCDEC_MODELVAR_ZERO(event, g_model.varioData.centerSilent, 1);
break; break;
} }
} }

View file

@ -59,7 +59,7 @@ uint8_t barCoord(int16_t value, int16_t min, int16_t max)
} }
bool displayGaugesTelemetryScreen(FrSkyScreenData & screen) bool displayGaugesTelemetryScreen(TelemetryScreenData & screen)
{ {
// Custom Screen with gauges // Custom Screen with gauges
uint8_t barHeight = 5; uint8_t barHeight = 5;
@ -106,7 +106,7 @@ bool displayGaugesTelemetryScreen(FrSkyScreenData & screen)
return barHeight < 13; return barHeight < 13;
} }
bool displayNumbersTelemetryScreen(FrSkyScreenData & screen) bool displayNumbersTelemetryScreen(TelemetryScreenData & screen)
{ {
// Custom Screen with numbers // Custom Screen with numbers
uint8_t fields_count = 0; uint8_t fields_count = 0;
@ -162,7 +162,7 @@ bool displayNumbersTelemetryScreen(FrSkyScreenData & screen)
bool displayCustomTelemetryScreen(uint8_t index) bool displayCustomTelemetryScreen(uint8_t index)
{ {
FrSkyScreenData & screen = g_model.frsky.screens[index]; TelemetryScreenData & screen = g_model.screens[index];
if (IS_BARS_SCREEN(s_frsky_view)) { if (IS_BARS_SCREEN(s_frsky_view)) {
return displayGaugesTelemetryScreen(screen); return displayGaugesTelemetryScreen(screen);

View file

@ -68,13 +68,13 @@ void onTelemetryScriptFileSelectionMenu(const char *result)
int screenIndex = TELEMETRY_CURRENT_SCREEN(menuVerticalPosition); int screenIndex = TELEMETRY_CURRENT_SCREEN(menuVerticalPosition);
if (result == STR_UPDATE_LIST) { if (result == STR_UPDATE_LIST) {
if (!sdListFiles(SCRIPTS_TELEM_PATH, SCRIPTS_EXT, sizeof(g_model.frsky.screens[screenIndex].script.file), NULL)) { if (!sdListFiles(SCRIPTS_TELEM_PATH, SCRIPTS_EXT, sizeof(g_model.screens[screenIndex].script.file), NULL)) {
POPUP_WARNING(STR_NO_SCRIPTS_ON_SD); POPUP_WARNING(STR_NO_SCRIPTS_ON_SD);
} }
} }
else if (result != STR_EXIT) { else if (result != STR_EXIT) {
// The user choosed a file in the list // The user choosed a file in the list
memcpy(g_model.frsky.screens[screenIndex].script.file, result, sizeof(g_model.frsky.screens[screenIndex].script.file)); memcpy(g_model.screens[screenIndex].script.file, result, sizeof(g_model.screens[screenIndex].script.file));
storageDirty(EE_MODEL); storageDirty(EE_MODEL);
LUA_LOAD_MODEL_SCRIPTS(); LUA_LOAD_MODEL_SCRIPTS();
} }
@ -103,17 +103,17 @@ void menuModelDisplay(event_t event)
case ITEM_DISPLAY_TOP_BAR_VOLTAGE: case ITEM_DISPLAY_TOP_BAR_VOLTAGE:
lcdDrawTextAlignedLeft(y, STR_VOLTAGE); lcdDrawTextAlignedLeft(y, STR_VOLTAGE);
drawSource(DISPLAY_COL2, y, g_model.frsky.voltsSource ? MIXSRC_FIRST_TELEM+3*(g_model.frsky.voltsSource-1) : 0, attr); drawSource(DISPLAY_COL2, y, g_model.voltsSource ? MIXSRC_FIRST_TELEM+3*(g_model.voltsSource-1) : 0, attr);
if (attr) { if (attr) {
g_model.frsky.voltsSource = checkIncDec(event, g_model.frsky.voltsSource, 0, MAX_TELEMETRY_SENSORS, EE_MODEL|NO_INCDEC_MARKS, isVoltsSensor); g_model.voltsSource = checkIncDec(event, g_model.voltsSource, 0, MAX_TELEMETRY_SENSORS, EE_MODEL|NO_INCDEC_MARKS, isVoltsSensor);
} }
break; break;
case ITEM_DISPLAY_TOP_BAR_ALTITUDE: case ITEM_DISPLAY_TOP_BAR_ALTITUDE:
lcdDrawTextAlignedLeft(y, STR_ALTITUDE); lcdDrawTextAlignedLeft(y, STR_ALTITUDE);
drawSource(DISPLAY_COL2, y, g_model.frsky.altitudeSource ? MIXSRC_FIRST_TELEM+3*(g_model.frsky.altitudeSource-1) : 0, attr); drawSource(DISPLAY_COL2, y, g_model.altitudeSource ? MIXSRC_FIRST_TELEM+3*(g_model.altitudeSource-1) : 0, attr);
if (attr) { if (attr) {
g_model.frsky.altitudeSource = checkIncDec(event, g_model.frsky.altitudeSource, 0, MAX_TELEMETRY_SENSORS, EE_MODEL|NO_INCDEC_MARKS, isAltSensor); g_model.altitudeSource = checkIncDec(event, g_model.altitudeSource, 0, MAX_TELEMETRY_SENSORS, EE_MODEL|NO_INCDEC_MARKS, isAltSensor);
} }
break; break;
@ -127,12 +127,12 @@ void menuModelDisplay(event_t event)
TelemetryScreenType oldScreenType = TELEMETRY_SCREEN_TYPE(screenIndex); TelemetryScreenType oldScreenType = TELEMETRY_SCREEN_TYPE(screenIndex);
TelemetryScreenType newScreenType = (TelemetryScreenType)editChoice(DISPLAY_COL2, y, "", STR_VTELEMSCREENTYPE, oldScreenType, 0, TELEMETRY_SCREEN_TYPE_MAX, (menuHorizontalPosition==0 ? attr : 0), event); TelemetryScreenType newScreenType = (TelemetryScreenType)editChoice(DISPLAY_COL2, y, "", STR_VTELEMSCREENTYPE, oldScreenType, 0, TELEMETRY_SCREEN_TYPE_MAX, (menuHorizontalPosition==0 ? attr : 0), event);
if (newScreenType != oldScreenType) { if (newScreenType != oldScreenType) {
g_model.frsky.screensType = (g_model.frsky.screensType & (~(0x03 << (2*screenIndex)))) | (newScreenType << (2*screenIndex)); g_model.screensType = (g_model.screensType & (~(0x03 << (2*screenIndex)))) | (newScreenType << (2*screenIndex));
memset(&g_model.frsky.screens[screenIndex], 0, sizeof(g_model.frsky.screens[screenIndex])); memset(&g_model.screens[screenIndex], 0, sizeof(g_model.screens[screenIndex]));
} }
#if defined(LUA) #if defined(LUA)
if (newScreenType == TELEMETRY_SCREEN_TYPE_SCRIPT) { if (newScreenType == TELEMETRY_SCREEN_TYPE_SCRIPT) {
TelemetryScriptData & scriptData = g_model.frsky.screens[screenIndex].script; TelemetryScriptData & scriptData = g_model.screens[screenIndex].script;
// TODO better function name for --- // TODO better function name for ---
// TODO function for these lines // TODO function for these lines
@ -143,7 +143,7 @@ void menuModelDisplay(event_t event)
if (menuHorizontalPosition==1 && attr && event==EVT_KEY_BREAK(KEY_ENTER) && READ_ONLY_UNLOCKED()) { if (menuHorizontalPosition==1 && attr && event==EVT_KEY_BREAK(KEY_ENTER) && READ_ONLY_UNLOCKED()) {
s_editMode = 0; s_editMode = 0;
if (sdListFiles(SCRIPTS_TELEM_PATH, SCRIPTS_EXT, sizeof(g_model.frsky.screens[screenIndex].script.file), g_model.frsky.screens[screenIndex].script.file)) { if (sdListFiles(SCRIPTS_TELEM_PATH, SCRIPTS_EXT, sizeof(g_model.screens[screenIndex].script.file), g_model.screens[screenIndex].script.file)) {
POPUP_MENU_START(onTelemetryScriptFileSelectionMenu); POPUP_MENU_START(onTelemetryScriptFileSelectionMenu);
} }
else { else {
@ -194,7 +194,7 @@ void menuModelDisplay(event_t event)
} }
if (IS_BARS_SCREEN(screenIndex)) { if (IS_BARS_SCREEN(screenIndex)) {
FrSkyBarData & bar = g_model.frsky.screens[screenIndex].bars[lineIndex]; FrSkyBarData & bar = g_model.screens[screenIndex].bars[lineIndex];
drawSource(DISPLAY_COL1, y, bar.source, menuHorizontalPosition==0 ? attr : 0); drawSource(DISPLAY_COL1, y, bar.source, menuHorizontalPosition==0 ? attr : 0);
int16_t barMax, barMin; int16_t barMax, barMin;
LcdFlags lf = LEFT; LcdFlags lf = LEFT;
@ -239,7 +239,7 @@ void menuModelDisplay(event_t event)
else { else {
for (int c=0; c<NUM_LINE_ITEMS; c++) { for (int c=0; c<NUM_LINE_ITEMS; c++) {
LcdFlags cellAttr = (menuHorizontalPosition==c ? attr : 0); LcdFlags cellAttr = (menuHorizontalPosition==c ? attr : 0);
source_t & value = g_model.frsky.screens[screenIndex].lines[lineIndex].sources[c]; source_t & value = g_model.screens[screenIndex].lines[lineIndex].sources[c];
const coord_t pos[] = {DISPLAY_COL1, DISPLAY_COL2, DISPLAY_COL3}; const coord_t pos[] = {DISPLAY_COL1, DISPLAY_COL2, DISPLAY_COL3};
drawSource(pos[c], y, value, cellAttr); drawSource(pos[c], y, value, cellAttr);
if (cellAttr && s_editMode>0) { if (cellAttr && s_editMode>0) {

View file

@ -277,23 +277,23 @@ void menuModelTelemetryFrsky(event_t event)
case ITEM_TELEMETRY_VARIO_SOURCE: case ITEM_TELEMETRY_VARIO_SOURCE:
lcdDrawTextAlignedLeft(y, STR_SOURCE); lcdDrawTextAlignedLeft(y, STR_SOURCE);
drawSource(TELEM_COL2, y, g_model.frsky.varioSource ? MIXSRC_FIRST_TELEM+3*(g_model.frsky.varioSource-1) : 0, attr); drawSource(TELEM_COL2, y, g_model.varioData.source ? MIXSRC_FIRST_TELEM+3*(g_model.varioData.source-1) : 0, attr);
if (attr) { if (attr) {
g_model.frsky.varioSource = checkIncDec(event, g_model.frsky.varioSource, 0, MAX_TELEMETRY_SENSORS, EE_MODEL|NO_INCDEC_MARKS, isSensorAvailable); g_model.varioData.source = checkIncDec(event, g_model.varioData.source, 0, MAX_TELEMETRY_SENSORS, EE_MODEL|NO_INCDEC_MARKS, isSensorAvailable);
} }
break; break;
case ITEM_TELEMETRY_VARIO_RANGE: case ITEM_TELEMETRY_VARIO_RANGE:
lcdDrawTextAlignedLeft(y, STR_RANGE); lcdDrawTextAlignedLeft(y, STR_RANGE);
lcdDrawNumber(TELEM_COL2, y, -10+g_model.frsky.varioMin, (menuHorizontalPosition==0 ? attr : 0)|LEFT); lcdDrawNumber(TELEM_COL2, y, -10+g_model.varioData.min, (menuHorizontalPosition==0 ? attr : 0)|LEFT);
lcdDrawNumber(TELEM_COL2+7*FW, y, 10+g_model.frsky.varioMax, (menuHorizontalPosition==1 ? attr : 0)|LEFT); lcdDrawNumber(TELEM_COL2+7*FW, y, 10+g_model.varioData.max, (menuHorizontalPosition==1 ? attr : 0)|LEFT);
if (attr && s_editMode>0) { if (attr && s_editMode>0) {
switch (menuHorizontalPosition) { switch (menuHorizontalPosition) {
case 0: case 0:
CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioMin, -7, 7); CHECK_INCDEC_MODELVAR(event, g_model.varioData.min, -7, 7);
break; break;
case 1: case 1:
CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioMax, -7, 7); CHECK_INCDEC_MODELVAR(event, g_model.varioData.max, -7, 7);
break; break;
} }
} }
@ -301,19 +301,19 @@ void menuModelTelemetryFrsky(event_t event)
case ITEM_TELEMETRY_VARIO_CENTER: case ITEM_TELEMETRY_VARIO_CENTER:
lcdDrawTextAlignedLeft(y, STR_CENTER); lcdDrawTextAlignedLeft(y, STR_CENTER);
lcdDrawNumber(TELEM_COL2, y, -5+g_model.frsky.varioCenterMin, (menuHorizontalPosition==0 ? attr : 0)|PREC1|LEFT); lcdDrawNumber(TELEM_COL2, y, -5+g_model.varioData.centerMin, (menuHorizontalPosition==0 ? attr : 0)|PREC1|LEFT);
lcdDrawNumber(TELEM_COL2+7*FW, y, 5+g_model.frsky.varioCenterMax, (menuHorizontalPosition==1 ? attr : 0)|PREC1|LEFT); lcdDrawNumber(TELEM_COL2+7*FW, y, 5+g_model.varioData.centerMax, (menuHorizontalPosition==1 ? attr : 0)|PREC1|LEFT);
lcdDrawTextAtIndex(TELEM_COL3, y, STR_VVARIOCENTER, g_model.frsky.varioCenterSilent, (menuHorizontalPosition==2 ? attr : 0)); lcdDrawTextAtIndex(TELEM_COL3, y, STR_VVARIOCENTER, g_model.varioData.centerSilent, (menuHorizontalPosition==2 ? attr : 0));
if (attr && s_editMode>0) { if (attr && s_editMode>0) {
switch (menuHorizontalPosition) { switch (menuHorizontalPosition) {
case 0: case 0:
CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioCenterMin, -16, 5+min<int8_t>(10, g_model.frsky.varioCenterMax+5)); CHECK_INCDEC_MODELVAR(event, g_model.varioData.centerMin, -16, 5+min<int8_t>(10, g_model.varioData.centerMax+5));
break; break;
case 1: case 1:
CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioCenterMax, -5+max<int8_t>(-10, g_model.frsky.varioCenterMin-5), +15); CHECK_INCDEC_MODELVAR(event, g_model.varioData.centerMax, -5+max<int8_t>(-10, g_model.varioData.centerMin-5), +15);
break; break;
case 2: case 2:
CHECK_INCDEC_MODELVAR_ZERO(event, g_model.frsky.varioCenterSilent, 1); CHECK_INCDEC_MODELVAR_ZERO(event, g_model.varioData.centerSilent, 1);
break; break;
} }
} }

View file

@ -42,7 +42,7 @@ void menuRadioDiagAnalogs(event_t event)
// RAS // RAS
if((isModuleXJT(INTERNAL_MODULE) && IS_INTERNAL_MODULE_ON()) || (isModulePXX(EXTERNAL_MODULE) && !IS_INTERNAL_MODULE_ON())) { if((isModuleXJT(INTERNAL_MODULE) && IS_INTERNAL_MODULE_ON()) || (isModulePXX(EXTERNAL_MODULE) && !IS_INTERNAL_MODULE_ON())) {
lcdDrawTextAlignedLeft(MENU_HEADER_HEIGHT+6*FH, "RAS"); lcdDrawTextAlignedLeft(MENU_HEADER_HEIGHT+6*FH, "RAS");
lcdDrawNumber(10*FW-1, MENU_HEADER_HEIGHT+6*FH, telemetryData.swr.value, RIGHT); lcdDrawNumber(10*FW-1, MENU_HEADER_HEIGHT+6*FH, telemetryData.swrInternal.value, RIGHT);
lcdDrawText(LCD_W/2, MENU_HEADER_HEIGHT+6*FH, "XJTVER"); lcdDrawText(LCD_W/2, MENU_HEADER_HEIGHT+6*FH, "XJTVER");
lcdDrawNumber(LCD_W/2 + 10*FW-1, MENU_HEADER_HEIGHT+6*FH, telemetryData.xjtVersion, RIGHT); lcdDrawNumber(LCD_W/2 + 10*FW-1, MENU_HEADER_HEIGHT+6*FH, telemetryData.xjtVersion, RIGHT);

View file

@ -222,8 +222,8 @@ void displayTopBar()
/* Rx voltage */ /* Rx voltage */
altitude_icon_x = batt_icon_x+7*FW+3; altitude_icon_x = batt_icon_x+7*FW+3;
if (g_model.frsky.voltsSource) { if (g_model.voltsSource) {
uint8_t item = g_model.frsky.voltsSource-1; uint8_t item = g_model.voltsSource-1;
if (item < MAX_TELEMETRY_SENSORS) { if (item < MAX_TELEMETRY_SENSORS) {
TelemetryItem & voltsItem = telemetryItems[item]; TelemetryItem & voltsItem = telemetryItems[item];
if (voltsItem.isAvailable()) { if (voltsItem.isAvailable()) {
@ -234,8 +234,8 @@ void displayTopBar()
} }
/* Altitude */ /* Altitude */
if (g_model.frsky.altitudeSource) { if (g_model.altitudeSource) {
uint8_t item = g_model.frsky.altitudeSource-1; uint8_t item = g_model.altitudeSource-1;
if (item < MAX_TELEMETRY_SENSORS) { if (item < MAX_TELEMETRY_SENSORS) {
TelemetryItem & altitudeItem = telemetryItems[item]; TelemetryItem & altitudeItem = telemetryItems[item];
if (altitudeItem.isAvailable()) { if (altitudeItem.isAvailable()) {

View file

@ -54,7 +54,7 @@ int barCoord(int value, int min, int max)
return ((BAR_WIDTH-1) * (value - min)) / (max - min); return ((BAR_WIDTH-1) * (value - min)) / (max - min);
} }
void displayGaugesTelemetryScreen(FrSkyScreenData & screen) void displayGaugesTelemetryScreen(TelemetryScreenData & screen)
{ {
// Custom Screen with gauges // Custom Screen with gauges
int barHeight = 5; int barHeight = 5;
@ -94,7 +94,7 @@ void displayGaugesTelemetryScreen(FrSkyScreenData & screen)
displayRssiLine(); displayRssiLine();
} }
bool displayNumbersTelemetryScreen(FrSkyScreenData & screen) bool displayNumbersTelemetryScreen(TelemetryScreenData & screen)
{ {
// Custom Screen with numbers // Custom Screen with numbers
const coord_t pos[] = {0, 71, 143, 214}; const coord_t pos[] = {0, 71, 143, 214};
@ -159,7 +159,7 @@ bool displayNumbersTelemetryScreen(FrSkyScreenData & screen)
void displayCustomTelemetryScreen(uint8_t index) void displayCustomTelemetryScreen(uint8_t index)
{ {
FrSkyScreenData & screen = g_model.frsky.screens[index]; TelemetryScreenData & screen = g_model.screens[index];
if (IS_BARS_SCREEN(s_frsky_view)) { if (IS_BARS_SCREEN(s_frsky_view)) {
return displayGaugesTelemetryScreen(screen); return displayGaugesTelemetryScreen(screen);

View file

@ -310,23 +310,23 @@ bool menuModelTelemetryFrsky(event_t event)
case ITEM_TELEMETRY_VARIO_SOURCE: case ITEM_TELEMETRY_VARIO_SOURCE:
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_SOURCE); lcdDrawText(MENUS_MARGIN_LEFT, y, STR_SOURCE);
drawSource(TELEM_COL2, y, g_model.frsky.varioSource ? MIXSRC_FIRST_TELEM+3*(g_model.frsky.varioSource-1) : 0, attr); drawSource(TELEM_COL2, y, g_model.varioData.source ? MIXSRC_FIRST_TELEM+3*(g_model.varioData.source-1) : 0, attr);
if (attr) { if (attr) {
g_model.frsky.varioSource = checkIncDec(event, g_model.frsky.varioSource, 0, MAX_TELEMETRY_SENSORS, EE_MODEL|NO_INCDEC_MARKS, isSensorAvailable); g_model.varioData.source = checkIncDec(event, g_model.varioData.source, 0, MAX_TELEMETRY_SENSORS, EE_MODEL|NO_INCDEC_MARKS, isSensorAvailable);
} }
break; break;
case ITEM_TELEMETRY_VARIO_RANGE: case ITEM_TELEMETRY_VARIO_RANGE:
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_RANGE); lcdDrawText(MENUS_MARGIN_LEFT, y, STR_RANGE);
lcdDrawNumber(TELEM_COL2, y, -10+g_model.frsky.varioMin, (menuHorizontalPosition==0 ? attr : 0)|LEFT); lcdDrawNumber(TELEM_COL2, y, -10+g_model.varioData.min, (menuHorizontalPosition==0 ? attr : 0)|LEFT);
lcdDrawNumber(TELEM_COL3, y, 10+g_model.frsky.varioMax, (menuHorizontalPosition==1 ? attr : 0)|LEFT); lcdDrawNumber(TELEM_COL3, y, 10+g_model.varioData.max, (menuHorizontalPosition==1 ? attr : 0)|LEFT);
if (attr && s_editMode>0) { if (attr && s_editMode>0) {
switch (menuHorizontalPosition) { switch (menuHorizontalPosition) {
case 0: case 0:
CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioMin, -7, 7); CHECK_INCDEC_MODELVAR(event, g_model.varioData.min, -7, 7);
break; break;
case 1: case 1:
CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioMax, -7, 7); CHECK_INCDEC_MODELVAR(event, g_model.varioData.max, -7, 7);
break; break;
} }
} }
@ -334,19 +334,19 @@ bool menuModelTelemetryFrsky(event_t event)
case ITEM_TELEMETRY_VARIO_CENTER: case ITEM_TELEMETRY_VARIO_CENTER:
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_CENTER); lcdDrawText(MENUS_MARGIN_LEFT, y, STR_CENTER);
lcdDrawNumber(TELEM_COL2, y, -5+g_model.frsky.varioCenterMin, (menuHorizontalPosition==0 ? attr : 0)|PREC1|LEFT); lcdDrawNumber(TELEM_COL2, y, -5+g_model.varioData.centerMin, (menuHorizontalPosition==0 ? attr : 0)|PREC1|LEFT);
lcdDrawNumber(TELEM_COL3, y, 5+g_model.frsky.varioCenterMax, (menuHorizontalPosition==1 ? attr : 0)|PREC1|LEFT); lcdDrawNumber(TELEM_COL3, y, 5+g_model.varioData.centerMax, (menuHorizontalPosition==1 ? attr : 0)|PREC1|LEFT);
lcdDrawTextAtIndex(TELEM_COL4, y, STR_VVARIOCENTER, g_model.frsky.varioCenterSilent, (menuHorizontalPosition==2 ? attr : 0)); lcdDrawTextAtIndex(TELEM_COL4, y, STR_VVARIOCENTER, g_model.varioData.centerSilent, (menuHorizontalPosition==2 ? attr : 0));
if (attr && s_editMode>0) { if (attr && s_editMode>0) {
switch (menuHorizontalPosition) { switch (menuHorizontalPosition) {
case 0: case 0:
CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioCenterMin, -16, 5+min<int8_t>(10, g_model.frsky.varioCenterMax+5)); CHECK_INCDEC_MODELVAR(event, g_model.varioData.centerMin, -16, 5+min<int8_t>(10, g_model.varioData.centerMax+5));
break; break;
case 1: case 1:
CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioCenterMax, -5+max<int8_t>(-10, g_model.frsky.varioCenterMin-5), +15); CHECK_INCDEC_MODELVAR(event, g_model.varioData.centerMax, -5+max<int8_t>(-10, g_model.varioData.centerMin-5), +15);
break; break;
case 2: case 2:
CHECK_INCDEC_MODELVAR_ZERO(event, g_model.frsky.varioCenterSilent, 1); CHECK_INCDEC_MODELVAR_ZERO(event, g_model.varioData.centerSilent, 1);
break; break;
} }
} }

View file

@ -180,7 +180,7 @@ bool menuStatsAnalogs(event_t event)
// RAS // RAS
if ((isModuleXJT(INTERNAL_MODULE) && IS_INTERNAL_MODULE_ON()) || (isModulePXX(EXTERNAL_MODULE) && !IS_INTERNAL_MODULE_ON())) { if ((isModuleXJT(INTERNAL_MODULE) && IS_INTERNAL_MODULE_ON()) || (isModulePXX(EXTERNAL_MODULE) && !IS_INTERNAL_MODULE_ON())) {
lcdDrawText(MENUS_MARGIN_LEFT, MENU_CONTENT_TOP+7*FH, "RAS"); lcdDrawText(MENUS_MARGIN_LEFT, MENU_CONTENT_TOP+7*FH, "RAS");
lcdDrawNumber(MENUS_MARGIN_LEFT+100, MENU_CONTENT_TOP+7*FH, telemetryData.swr.value); lcdDrawNumber(MENUS_MARGIN_LEFT+100, MENU_CONTENT_TOP+7*FH, telemetryData.swrInternal.value);
lcdDrawText(MENUS_MARGIN_LEFT + LCD_W/2, MENU_CONTENT_TOP+7*FH, "XJTVER"); lcdDrawText(MENUS_MARGIN_LEFT + LCD_W/2, MENU_CONTENT_TOP+7*FH, "XJTVER");
lcdDrawNumber(LCD_W/2 + MENUS_MARGIN_LEFT+100, MENU_CONTENT_TOP+7*FH, telemetryData.xjtVersion); lcdDrawNumber(LCD_W/2 + MENUS_MARGIN_LEFT+100, MENU_CONTENT_TOP+7*FH, telemetryData.xjtVersion);
} }

View file

@ -667,7 +667,7 @@ bool luaLoadTelemetryScript(uint8_t index)
TelemetryScreenType screenType = TELEMETRY_SCREEN_TYPE(index); TelemetryScreenType screenType = TELEMETRY_SCREEN_TYPE(index);
if (screenType == TELEMETRY_SCREEN_TYPE_SCRIPT) { if (screenType == TELEMETRY_SCREEN_TYPE_SCRIPT) {
TelemetryScriptData & script = g_model.frsky.screens[index].script; TelemetryScriptData & script = g_model.screens[index].script;
if (ZEXIST(script.file)) { if (ZEXIST(script.file)) {
if (luaScriptsCount < MAX_SCRIPTS) { if (luaScriptsCount < MAX_SCRIPTS) {
ScriptInternalData & sid = scriptInternalData[luaScriptsCount++]; ScriptInternalData & sid = scriptInternalData[luaScriptsCount++];
@ -943,7 +943,7 @@ bool luaDoOneRunPermanentScript(event_t evt, int i, uint32_t scriptType)
else { else {
#if defined(PCBTARANIS) #if defined(PCBTARANIS)
#if defined(SIMU) || defined(DEBUG) #if defined(SIMU) || defined(DEBUG)
TelemetryScriptData & script = g_model.frsky.screens[sid.reference-SCRIPT_TELEMETRY_FIRST].script; TelemetryScriptData & script = g_model.screens[sid.reference-SCRIPT_TELEMETRY_FIRST].script;
filename = script.file; filename = script.file;
#endif #endif
if ((scriptType & RUN_TELEM_FG_SCRIPT) && (menuHandlers[0]==menuViewTelemetryFrsky && sid.reference==SCRIPT_TELEMETRY_FIRST+s_frsky_view)) { if ((scriptType & RUN_TELEM_FG_SCRIPT) && (menuHandlers[0]==menuViewTelemetryFrsky && sid.reference==SCRIPT_TELEMETRY_FIRST+s_frsky_view)) {

View file

@ -340,7 +340,7 @@ PACK(typedef struct {
GVarData_v218 gvars[MAX_GVARS_218]; GVarData_v218 gvars[MAX_GVARS_218];
FrSkyTelemetryData frsky; VarioData frsky;
RssiAlarmData rssiAlarms; RssiAlarmData rssiAlarms;
MODELDATA_EXTRA_218 MODELDATA_EXTRA_218

View file

@ -165,7 +165,7 @@ void copyRssiAlarmData(A * dest, B * src)
} }
template <class A, class B> template <class A, class B>
void copyFrSkyTelemetryData(A * dest, B * src) void copyVarioData(A * dest, B * src)
{ {
dest->varioSource = src->varioSource; dest->varioSource = src->varioSource;
dest->varioCenterSilent = src->varioCenterSilent; dest->varioCenterSilent = src->varioCenterSilent;

View file

@ -168,8 +168,8 @@ void sportProcessTelemetryPacketWithoutCrc(uint8_t origin, const uint8_t * packe
if (dataId == RSSI_ID) { if (dataId == RSSI_ID) {
telemetryStreaming = TELEMETRY_TIMEOUT10ms; // reset counter only if valid packets are being detected telemetryStreaming = TELEMETRY_TIMEOUT10ms; // reset counter only if valid packets are being detected
data = SPORT_DATA_U8(packet); data = SPORT_DATA_U8(packet);
if (g_model.frsky.rssiSource) { if (g_model.rssiSource) {
TelemetrySensor * sensor = & g_model.telemetrySensors[g_model.frsky.rssiSource]; TelemetrySensor * sensor = & g_model.telemetrySensors[g_model.rssiSource];
if (sensor->instance == instance) { if (sensor->instance == instance) {
telemetryData.rssi.set(data); telemetryData.rssi.set(data);
} }

View file

@ -29,17 +29,17 @@ void varioWakeup()
uint8_t varioFlags; uint8_t varioFlags;
int verticalSpeed = 0; int verticalSpeed = 0;
if (g_model.frsky.varioSource) { if (g_model.varioData.source) {
uint8_t item = g_model.frsky.varioSource-1; uint8_t item = g_model.varioData.source-1;
if (item < MAX_TELEMETRY_SENSORS) { if (item < MAX_TELEMETRY_SENSORS) {
verticalSpeed = telemetryItems[item].value * g_model.telemetrySensors[item].getPrecMultiplier(); verticalSpeed = telemetryItems[item].value * g_model.telemetrySensors[item].getPrecMultiplier();
} }
} }
int varioCenterMin = (int)g_model.frsky.varioCenterMin * 10 - 50; int varioCenterMin = (int)g_model.varioData.centerMin * 10 - 50;
int varioCenterMax = (int)g_model.frsky.varioCenterMax * 10 + 50; int varioCenterMax = (int)g_model.varioData.centerMax * 10 + 50;
int varioMax = (10+(int)g_model.frsky.varioMax) * 100; int varioMax = (10+(int)g_model.varioData.max) * 100;
int varioMin = (-10+(int)g_model.frsky.varioMin) * 100; int varioMin = (-10+(int)g_model.varioData.min) * 100;
if (verticalSpeed > varioMax) if (verticalSpeed > varioMax)
verticalSpeed = varioMax; verticalSpeed = varioMax;
@ -51,7 +51,7 @@ void varioWakeup()
varioDuration = 80; // continuous beep: we will enter again here before the tone ends varioDuration = 80; // continuous beep: we will enter again here before the tone ends
varioFlags = PLAY_BACKGROUND|PLAY_NOW; varioFlags = PLAY_BACKGROUND|PLAY_NOW;
} }
else if (verticalSpeed >= varioCenterMax || !g_model.frsky.varioCenterSilent) { else if (verticalSpeed >= varioCenterMax || !g_model.varioData.centerSilent) {
varioFreq = VARIO_FREQUENCY_ZERO + (g_eeGeneral.varioPitch*10) + (((VARIO_FREQUENCY_RANGE+(g_eeGeneral.varioRange*10)) * (verticalSpeed-varioCenterMin)) / varioMax); varioFreq = VARIO_FREQUENCY_ZERO + (g_eeGeneral.varioPitch*10) + (((VARIO_FREQUENCY_RANGE+(g_eeGeneral.varioRange*10)) * (verticalSpeed-varioCenterMin)) / varioMax);
int varioPeriod = VARIO_REPEAT_MAX + ((VARIO_REPEAT_ZERO+(g_eeGeneral.varioRepeat*10)-VARIO_REPEAT_MAX) * (varioMax-verticalSpeed) * (varioMax-verticalSpeed)) / ((varioMax-varioCenterMin) * (varioMax-varioCenterMin)); int varioPeriod = VARIO_REPEAT_MAX + ((VARIO_REPEAT_ZERO+(g_eeGeneral.varioRepeat*10)-VARIO_REPEAT_MAX) * (varioMax-verticalSpeed) * (varioMax-verticalSpeed)) / ((varioMax-varioCenterMin) * (varioMax-varioCenterMin));
if (verticalSpeed >= varioCenterMax || varioCenterMin == varioCenterMax) if (verticalSpeed >= varioCenterMax || varioCenterMin == varioCenterMax)