Add safety and context to spektrum and power meter

This commit is contained in:
3djc
2019-03-31 12:24:07 +02:00
parent cc33d5833b
commit 63383f15c1
8 changed files with 61 additions and 3 deletions
@@ -21,8 +21,20 @@
#include <opentx.h>
#include "opentx.h"
void pxx2ModuleRequiredScreen(event_t event);
void menuRadioPowerMeter(event_t event)
{
if(!isModulePXX2(INTERNAL_MODULE)) {
pxx2ModuleRequiredScreen(event);
return;
}
if(TELEMETRY_STREAMING()) {
lcdDrawCenteredText(LCD_H/2, "Turn off receiver");
return;
}
SIMPLE_SUBMENU("POWER METER", 1);
if (menuEvent) {
@@ -32,8 +44,9 @@ void menuRadioPowerMeter(event_t event)
watchdogSuspend(500);
RTOS_WAIT_MS(500);
resumePulses();
return;
}
else if (event == EVT_ENTRY) {
else if (moduleSettings[INTERNAL_MODULE].mode != MODULE_MODE_SPECTRUM_ANALYSER) {
memclear(&reusableBuffer.powerMeter, sizeof(reusableBuffer.powerMeter));
reusableBuffer.powerMeter.freq = 2400;
moduleSettings[INTERNAL_MODULE].mode = MODULE_MODE_POWER_METER;
@@ -20,8 +20,20 @@
#include "opentx.h"
extern void pxx2ModuleRequiredScreen(event_t event);
void menuRadioSpectrumAnalyser(event_t event)
{
if(!isModulePXX2(INTERNAL_MODULE)) {
pxx2ModuleRequiredScreen(event);
return;
}
if(TELEMETRY_STREAMING()) {
lcdDrawCenteredText(15, "Turn off receiver");
return;
}
SIMPLE_SUBMENU("SPECTRUM ANALYSER", 1);
if (menuEvent) {
@@ -31,8 +43,9 @@ void menuRadioSpectrumAnalyser(event_t event)
watchdogSuspend(500);
RTOS_WAIT_MS(500);
resumePulses();
return;
}
else if (event == EVT_ENTRY) {
else if (moduleSettings[INTERNAL_MODULE].mode != MODULE_MODE_SPECTRUM_ANALYSER) {
memclear(reusableBuffer.spectrumAnalyser.bars, sizeof(reusableBuffer.spectrumAnalyser.bars));
moduleSettings[INTERNAL_MODULE].mode = MODULE_MODE_SPECTRUM_ANALYSER;
}
+14 -1
View File
@@ -20,6 +20,19 @@
#include "opentx.h"
void pxx2ModuleRequiredScreen(event_t event)
{
lcdClear();
lcdDrawCenteredText(15, "THIS FEATURE REQUIRES");
lcdDrawCenteredText(30, "ACCESS UPGRADE ON");
lcdDrawCenteredText(45, "YOUR INTERNAL MODULE");
if(event == EVT_KEY_FIRST(KEY_EXIT)) {
killEvents(event);
popMenu();
}
}
void addRadioTool(uint8_t index, const char * label, void (* tool)(event_t event), event_t event)
{
int8_t sub = menuVerticalPosition - HEADER_LINE;
@@ -37,7 +50,7 @@ void menuRadioTools(event_t event)
{
SIMPLE_MENU("TOOLS", menuTabGeneral, MENU_RADIO_TOOLS, HEADER_LINE + 2);
#if defined(PXX2)
#if defined(PXX2) && !(defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX9E) || defined(PCBX7) || (defined(PCBXLITE) && !defined(PCBXLITES)))
addRadioTool(0, "Spectrum Analyser", menuRadioSpectrumAnalyser, event);
addRadioTool(1, "Power Meter", menuRadioPowerMeter, event);
#endif