1
0
Fork 0
mirror of https://github.com/EdgeTX/edgetx.git synced 2025-07-24 00:35:14 +03:00

R9M ACCESS handling for spectrum analyser

This commit is contained in:
3djc 2019-04-30 17:03:36 +02:00
parent 8aa596ead7
commit 5606b017c2
2 changed files with 26 additions and 4 deletions

View file

@ -18,6 +18,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
*/ */
#include <opentx.h>
#include "opentx.h" #include "opentx.h"
extern uint8_t g_moduleIdx; extern uint8_t g_moduleIdx;
@ -51,10 +52,26 @@ void menuRadioSpectrumAnalyser(event_t event)
return; return;
} }
if (isModuleR9M2(g_moduleIdx)) {
reusableBuffer.spectrumAnalyser.spanDefault = 20;
reusableBuffer.spectrumAnalyser.spanMax = 40;
reusableBuffer.spectrumAnalyser.freqDefault = 890;
reusableBuffer.spectrumAnalyser.freqMin = 850;
reusableBuffer.spectrumAnalyser.freqMax = 930;
}
else {
reusableBuffer.spectrumAnalyser.spanDefault = 40; // 40MHz
reusableBuffer.spectrumAnalyser.spanMax = 80;
reusableBuffer.spectrumAnalyser.freqDefault = 2440; // 2440MHz
reusableBuffer.spectrumAnalyser.freqMin = 2400;
reusableBuffer.spectrumAnalyser.freqMax = 2485;
}
if (moduleState[g_moduleIdx].mode != MODULE_MODE_SPECTRUM_ANALYSER) { if (moduleState[g_moduleIdx].mode != MODULE_MODE_SPECTRUM_ANALYSER) {
memclear(reusableBuffer.spectrumAnalyser.bars, sizeof(reusableBuffer.spectrumAnalyser.bars)); memclear(reusableBuffer.spectrumAnalyser.bars, sizeof(reusableBuffer.spectrumAnalyser.bars));
reusableBuffer.spectrumAnalyser.span = 40000000; // 40MHz reusableBuffer.spectrumAnalyser.span = reusableBuffer.spectrumAnalyser.spanDefault * 1000000;
reusableBuffer.spectrumAnalyser.freq = 2440000000; // 2440MHz reusableBuffer.spectrumAnalyser.freq = reusableBuffer.spectrumAnalyser.freqDefault * 1000000;
reusableBuffer.spectrumAnalyser.step = reusableBuffer.spectrumAnalyser.span / LCD_W; reusableBuffer.spectrumAnalyser.step = reusableBuffer.spectrumAnalyser.span / LCD_W;
moduleState[g_moduleIdx].mode = MODULE_MODE_SPECTRUM_ANALYSER; moduleState[g_moduleIdx].mode = MODULE_MODE_SPECTRUM_ANALYSER;
} }
@ -69,7 +86,7 @@ void menuRadioSpectrumAnalyser(event_t event)
lcdDrawNumber(lcdLastRightPos + 2, 10, frequency, attr); lcdDrawNumber(lcdLastRightPos + 2, 10, frequency, attr);
lcdDrawText(lcdLastRightPos + 2, 10, "MHz", 0); lcdDrawText(lcdLastRightPos + 2, 10, "MHz", 0);
if (attr) { if (attr) {
reusableBuffer.spectrumAnalyser.freq = uint32_t(checkIncDec(event, frequency, 2400, 2485, 0)) * 1000000; reusableBuffer.spectrumAnalyser.freq = uint32_t(checkIncDec(event, frequency, reusableBuffer.spectrumAnalyser.freqMin, reusableBuffer.spectrumAnalyser.freqMax, 0)) * 1000000;
} }
break; break;
} }
@ -80,7 +97,7 @@ void menuRadioSpectrumAnalyser(event_t event)
lcdDrawNumber(lcdLastRightPos + 2, 10, reusableBuffer.spectrumAnalyser.span/1000000, attr); lcdDrawNumber(lcdLastRightPos + 2, 10, reusableBuffer.spectrumAnalyser.span/1000000, attr);
lcdDrawText(lcdLastRightPos + 2, 10, "MHz", 0); lcdDrawText(lcdLastRightPos + 2, 10, "MHz", 0);
if (attr) { if (attr) {
reusableBuffer.spectrumAnalyser.span = checkIncDec(event, span, 1, 80, 0) * 1000000; reusableBuffer.spectrumAnalyser.span = checkIncDec(event, span, 1, reusableBuffer.spectrumAnalyser.spanMax, 0) * 1000000;
} }
break; break;
} }

View file

@ -1184,6 +1184,11 @@ union ReusableBuffer
uint32_t freq; uint32_t freq;
uint32_t span; uint32_t span;
uint32_t step; uint32_t step;
uint8_t spanDefault;
uint8_t spanMax;
uint16_t freqDefault;
uint16_t freqMax;
uint16_t freqMin;
} spectrumAnalyser; } spectrumAnalyser;
struct struct