feat(telemetry): extend link quality warnings range (#2251)
* feat(telemetry): extend link quality warnings range * Set default values to the old legacy FrSky values * Companion support
This commit is contained in:
@@ -250,18 +250,18 @@ void menuModelTelemetry(event_t event)
|
||||
{
|
||||
bool warning = (k==ITEM_TELEMETRY_RSSI_ALARM1);
|
||||
lcdDrawTextAlignedLeft(y, (warning ? STR_LOWALARM : STR_CRITICALALARM));
|
||||
lcdDrawNumber(TELEM_COL3, y, warning? g_model.rssiAlarms.getWarningRssi() : g_model.rssiAlarms.getCriticalRssi(), attr, 3);
|
||||
lcdDrawNumber(TELEM_COL3, y, warning? g_model.rfAlarms.warning : g_model.rfAlarms.critical, attr, 3);
|
||||
if (attr && s_editMode>0) {
|
||||
if (warning)
|
||||
CHECK_INCDEC_MODELVAR(event, g_model.rssiAlarms.warning, -30, 30);
|
||||
CHECK_INCDEC_MODELVAR(event, g_model.rfAlarms.warning, 0, 100);
|
||||
else
|
||||
CHECK_INCDEC_MODELVAR(event, g_model.rssiAlarms.critical, -30, 30);
|
||||
CHECK_INCDEC_MODELVAR(event, g_model.rfAlarms.critical, 0, 100);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case ITEM_TELEMETRY_DISABLE_ALARMS:
|
||||
g_model.rssiAlarms.disabled = editCheckBox(g_model.rssiAlarms.disabled, TELEM_COL3, y, STR_DISABLE_ALARM, attr, event);
|
||||
g_model.disableTelemetryWarning = editCheckBox(g_model.disableTelemetryWarning, TELEM_COL3, y, STR_DISABLE_ALARM, attr, event);
|
||||
break;
|
||||
|
||||
#if defined(VARIO)
|
||||
|
||||
@@ -70,7 +70,7 @@ void drawExternalAntennaAndRSSI()
|
||||
#endif
|
||||
|
||||
if (TELEMETRY_RSSI() > 0) {
|
||||
auto warningRSSI = g_model.rssiAlarms.getWarningRssi();
|
||||
auto warningRSSI = g_model.rfAlarms.warning;
|
||||
int8_t value = TELEMETRY_RSSI() - warningRSSI;
|
||||
uint8_t step = (RSSI_MAX - warningRSSI) / 4;
|
||||
for (uint8_t i = 1; i < 5; i++) {
|
||||
|
||||
@@ -38,7 +38,7 @@ void displayRssiLine()
|
||||
lcdDrawText(lcdLastLeftPos,STATUS_BAR_Y, "RSSI : ", RIGHT | SMLSIZE);
|
||||
lcdDrawRect(65, 57, 38, 7);
|
||||
uint8_t v = 4*rssi/11;
|
||||
lcdDrawFilledRect(66+36-v, 58, v, 5, (rssi < g_model.rssiAlarms.getWarningRssi()) ? DOTTED : SOLID);
|
||||
lcdDrawFilledRect(66+36-v, 58, v, 5, (rssi < g_model.rfAlarms.warning) ? DOTTED : SOLID);
|
||||
}
|
||||
else {
|
||||
lcdDrawText(7*FW, STATUS_BAR_Y, STR_NODATA, BLINK);
|
||||
|
||||
@@ -253,18 +253,18 @@ void menuModelTelemetry(event_t event)
|
||||
{
|
||||
bool warning = (k==ITEM_TELEMETRY_RSSI_ALARM1);
|
||||
lcdDrawTextAlignedLeft(y, (warning ? STR_LOWALARM : STR_CRITICALALARM));
|
||||
lcdDrawNumber(TELEM_COL2, y, warning? g_model.rssiAlarms.getWarningRssi() : g_model.rssiAlarms.getCriticalRssi(), LEFT|attr, 3);
|
||||
lcdDrawNumber(TELEM_COL2, y, warning? g_model.rfAlarms.warning : g_model.rfAlarms.critical, LEFT|attr, 3);
|
||||
if (attr && s_editMode>0) {
|
||||
if (warning)
|
||||
CHECK_INCDEC_MODELVAR(event, g_model.rssiAlarms.warning, -30, 30);
|
||||
CHECK_INCDEC_MODELVAR(event, g_model.rfAlarms.warning, 0, 100);
|
||||
else
|
||||
CHECK_INCDEC_MODELVAR(event, g_model.rssiAlarms.critical, -30, 30);
|
||||
CHECK_INCDEC_MODELVAR(event, g_model.rfAlarms.critical, 0, 100);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case ITEM_TELEMETRY_DISABLE_ALARMS:
|
||||
g_model.rssiAlarms.disabled = editCheckBox(g_model.rssiAlarms.disabled, TELEM_COL3, y, STR_DISABLE_ALARM, attr, event);
|
||||
g_model.disableTelemetryWarning = editCheckBox(g_model.disableTelemetryWarning, TELEM_COL3, y, STR_DISABLE_ALARM, attr, event);
|
||||
break;
|
||||
|
||||
#if defined(VARIO)
|
||||
|
||||
@@ -300,7 +300,7 @@ void displayTopBar()
|
||||
|
||||
/* The inside of the RSSI gauge */
|
||||
if (TELEMETRY_RSSI() > 0) {
|
||||
displayTopBarGauge(batt_icon_x+5*FW, TELEMETRY_RSSI() / 10, TELEMETRY_RSSI() < g_model.rssiAlarms.getWarningRssi());
|
||||
displayTopBarGauge(batt_icon_x+5*FW, TELEMETRY_RSSI() / 10, TELEMETRY_RSSI() < g_model.rfAlarms.warning);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ void displayRssiLine()
|
||||
lcdDrawSizedText(0, STATUS_BAR_Y, STR_RX, 2);
|
||||
lcdDrawNumber(4*FW, STATUS_BAR_Y, rssi, LEADING0|RIGHT, 2);
|
||||
lcdDrawRect(BAR_LEFT, 57, 78, 7);
|
||||
lcdDrawFilledRect(BAR_LEFT+1, 58, 19*rssi/25, 5, (rssi < g_model.rssiAlarms.getWarningRssi()) ? DOTTED : SOLID);
|
||||
lcdDrawFilledRect(BAR_LEFT+1, 58, 19*rssi/25, 5, (rssi < g_model.rfAlarms.warning) ? DOTTED : SOLID);
|
||||
}
|
||||
else {
|
||||
lcdDrawText(7*FW, STATUS_BAR_Y, STR_NODATA, BLINK);
|
||||
|
||||
@@ -466,22 +466,17 @@ void ModelTelemetryPage::build(FormWindow * window, int8_t focusSensorIndex)
|
||||
grid.nextLine();
|
||||
|
||||
new StaticText(window, grid.getLabelSlot(true), STR_LOWALARM, 0, COLOR_THEME_PRIMARY1);
|
||||
auto edit = new NumberEdit(window, grid.getFieldSlot(), -30, 30, GET_SET_DEFAULT(g_model.rssiAlarms.warning));
|
||||
edit->setDisplayHandler([](int32_t value) {
|
||||
return std::to_string(g_model.rssiAlarms.getWarningRssi());
|
||||
});
|
||||
// window->setFirstField(edit);
|
||||
auto edit = new NumberEdit(window, grid.getFieldSlot(), 0, 100,
|
||||
GET_SET_DEFAULT(g_model.rfAlarms.warning));
|
||||
grid.nextLine();
|
||||
|
||||
new StaticText(window, grid.getLabelSlot(true), STR_CRITICALALARM, 0, COLOR_THEME_PRIMARY1);
|
||||
edit = new NumberEdit(window, grid.getFieldSlot(), -30, 30, GET_SET_DEFAULT(g_model.rssiAlarms.critical));
|
||||
edit->setDisplayHandler([](int32_t value) {
|
||||
return std::to_string(g_model.rssiAlarms.getCriticalRssi());
|
||||
});
|
||||
edit = new NumberEdit(window, grid.getFieldSlot(), 0, 100,
|
||||
GET_SET_DEFAULT(g_model.rfAlarms.critical));
|
||||
grid.nextLine();
|
||||
|
||||
new StaticText(window, grid.getLabelSlot(true), STR_DISABLE_ALARM, 0, COLOR_THEME_PRIMARY1);
|
||||
new CheckBox(window, grid.getFieldSlot(), GET_SET_DEFAULT(g_model.rssiAlarms.disabled));
|
||||
new CheckBox(window, grid.getFieldSlot(), GET_SET_DEFAULT(g_model.disableTelemetryWarning));
|
||||
grid.nextLine();
|
||||
|
||||
if (LCD_W < LCD_H) grid.nextLine();
|
||||
|
||||
Reference in New Issue
Block a user