mirror of
https://github.com/EdgeTX/edgetx.git
synced 2025-07-23 16:25:12 +03:00
Spectrum analyser / Powermeter better fix
This commit is contained in:
parent
41273db462
commit
e127e1c986
4 changed files with 24 additions and 21 deletions
|
@ -60,6 +60,7 @@ void menuRadioPowerMeter(event_t event)
|
||||||
memclear(&reusableBuffer.powerMeter, sizeof(reusableBuffer.powerMeter));
|
memclear(&reusableBuffer.powerMeter, sizeof(reusableBuffer.powerMeter));
|
||||||
reusableBuffer.powerMeter.freq = 2400000000;
|
reusableBuffer.powerMeter.freq = 2400000000;
|
||||||
reusableBuffer.powerMeter.attn = 4;
|
reusableBuffer.powerMeter.attn = 4;
|
||||||
|
reusableBuffer.powerMeter.dirty = true;
|
||||||
moduleState[g_moduleIdx].mode = MODULE_MODE_POWER_METER;
|
moduleState[g_moduleIdx].mode = MODULE_MODE_POWER_METER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,6 +82,7 @@ void menuRadioPowerMeter(event_t event)
|
||||||
if (checkIncDec_Ret) {
|
if (checkIncDec_Ret) {
|
||||||
reusableBuffer.powerMeter.power = 0;
|
reusableBuffer.powerMeter.power = 0;
|
||||||
reusableBuffer.powerMeter.peak = 0;
|
reusableBuffer.powerMeter.peak = 0;
|
||||||
|
reusableBuffer.powerMeter.dirty = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -66,12 +66,12 @@ void menuRadioSpectrumAnalyser(event_t event)
|
||||||
reusableBuffer.spectrumAnalyser.freqMax = 2485;
|
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 = reusableBuffer.spectrumAnalyser.spanDefault * 1000000;
|
reusableBuffer.spectrumAnalyser.span = reusableBuffer.spectrumAnalyser.spanDefault * 1000000;
|
||||||
reusableBuffer.spectrumAnalyser.freq = reusableBuffer.spectrumAnalyser.freqDefault * 1000000;
|
reusableBuffer.spectrumAnalyser.freq = reusableBuffer.spectrumAnalyser.freqDefault * 1000000;
|
||||||
reusableBuffer.spectrumAnalyser.step = reusableBuffer.spectrumAnalyser.span / LCD_W;
|
reusableBuffer.spectrumAnalyser.step = reusableBuffer.spectrumAnalyser.span / LCD_W;
|
||||||
|
reusableBuffer.spectrumAnalyser.dirty = true;
|
||||||
moduleState[g_moduleIdx].mode = MODULE_MODE_SPECTRUM_ANALYSER;
|
moduleState[g_moduleIdx].mode = MODULE_MODE_SPECTRUM_ANALYSER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -86,6 +86,9 @@ void menuRadioSpectrumAnalyser(event_t event)
|
||||||
lcdDrawText(lcdLastRightPos + 2, 10, "MHz", 0);
|
lcdDrawText(lcdLastRightPos + 2, 10, "MHz", 0);
|
||||||
if (attr) {
|
if (attr) {
|
||||||
reusableBuffer.spectrumAnalyser.freq = uint32_t(checkIncDec(event, frequency, reusableBuffer.spectrumAnalyser.freqMin, reusableBuffer.spectrumAnalyser.freqMax, 0)) * 1000000;
|
reusableBuffer.spectrumAnalyser.freq = uint32_t(checkIncDec(event, frequency, reusableBuffer.spectrumAnalyser.freqMin, reusableBuffer.spectrumAnalyser.freqMax, 0)) * 1000000;
|
||||||
|
if (checkIncDec_Ret) {
|
||||||
|
reusableBuffer.spectrumAnalyser.dirty = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -97,6 +100,10 @@ void menuRadioSpectrumAnalyser(event_t event)
|
||||||
lcdDrawText(lcdLastRightPos + 2, 10, "MHz", 0);
|
lcdDrawText(lcdLastRightPos + 2, 10, "MHz", 0);
|
||||||
if (attr) {
|
if (attr) {
|
||||||
reusableBuffer.spectrumAnalyser.span = checkIncDec(event, span, 1, reusableBuffer.spectrumAnalyser.spanMax, 0) * 1000000;
|
reusableBuffer.spectrumAnalyser.span = checkIncDec(event, span, 1, reusableBuffer.spectrumAnalyser.spanMax, 0) * 1000000;
|
||||||
|
if (checkIncDec_Ret) {
|
||||||
|
reusableBuffer.spectrumAnalyser.step = reusableBuffer.spectrumAnalyser.span / LCD_W;
|
||||||
|
reusableBuffer.spectrumAnalyser.dirty = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1197,6 +1197,7 @@ union ReusableBuffer
|
||||||
uint16_t freqDefault;
|
uint16_t freqDefault;
|
||||||
uint16_t freqMax;
|
uint16_t freqMax;
|
||||||
uint16_t freqMin;
|
uint16_t freqMin;
|
||||||
|
uint8_t dirty;
|
||||||
} spectrumAnalyser;
|
} spectrumAnalyser;
|
||||||
|
|
||||||
struct
|
struct
|
||||||
|
@ -1205,6 +1206,7 @@ union ReusableBuffer
|
||||||
int16_t power;
|
int16_t power;
|
||||||
int16_t peak;
|
int16_t peak;
|
||||||
uint8_t attn;
|
uint8_t attn;
|
||||||
|
uint8_t dirty;
|
||||||
} powerMeter;
|
} powerMeter;
|
||||||
|
|
||||||
struct
|
struct
|
||||||
|
|
|
@ -267,32 +267,24 @@ void Pxx2Pulses::setupResetFrame(uint8_t module)
|
||||||
|
|
||||||
void Pxx2Pulses::setupSpectrumAnalyser(uint8_t module)
|
void Pxx2Pulses::setupSpectrumAnalyser(uint8_t module)
|
||||||
{
|
{
|
||||||
if (moduleState[module].counter > 2500) {
|
if (reusableBuffer.spectrumAnalyser.dirty) {
|
||||||
moduleState[module].counter = 2502;
|
reusableBuffer.spectrumAnalyser.dirty = false;
|
||||||
return;
|
addFrameType(PXX2_TYPE_C_POWER_METER, PXX2_TYPE_ID_SPECTRUM);
|
||||||
|
Pxx2Transport::addByte(0x00);
|
||||||
|
Pxx2Transport::addWord(reusableBuffer.spectrumAnalyser.freq);
|
||||||
|
Pxx2Transport::addWord(reusableBuffer.spectrumAnalyser.span);
|
||||||
|
Pxx2Transport::addWord(reusableBuffer.spectrumAnalyser.step);
|
||||||
}
|
}
|
||||||
|
|
||||||
moduleState[module].counter = 2502;
|
|
||||||
|
|
||||||
addFrameType(PXX2_TYPE_C_POWER_METER, PXX2_TYPE_ID_SPECTRUM);
|
|
||||||
Pxx2Transport::addByte(0x00);
|
|
||||||
Pxx2Transport::addWord(reusableBuffer.spectrumAnalyser.freq);
|
|
||||||
Pxx2Transport::addWord(reusableBuffer.spectrumAnalyser.span);
|
|
||||||
Pxx2Transport::addWord(reusableBuffer.spectrumAnalyser.step);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Pxx2Pulses::setupPowerMeter(uint8_t module)
|
void Pxx2Pulses::setupPowerMeter(uint8_t module)
|
||||||
{
|
{
|
||||||
if (moduleState[module].counter > 2500) {
|
if (reusableBuffer.powerMeter.dirty) {
|
||||||
moduleState[module].counter = 2502;
|
reusableBuffer.powerMeter.dirty = false;
|
||||||
return;
|
addFrameType(PXX2_TYPE_C_POWER_METER, PXX2_TYPE_ID_POWER_METER);
|
||||||
|
Pxx2Transport::addByte(0x00);
|
||||||
|
Pxx2Transport::addWord(reusableBuffer.powerMeter.freq);
|
||||||
}
|
}
|
||||||
|
|
||||||
moduleState[module].counter = 2502;
|
|
||||||
|
|
||||||
addFrameType(PXX2_TYPE_C_POWER_METER, PXX2_TYPE_ID_POWER_METER);
|
|
||||||
Pxx2Transport::addByte(0x00);
|
|
||||||
Pxx2Transport::addWord(reusableBuffer.powerMeter.freq);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Pxx2Pulses::setupShareMode(uint8_t module)
|
void Pxx2Pulses::setupShareMode(uint8_t module)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue