1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-24 00:35:18 +03:00
This commit is contained in:
Bertrand Songis 2019-03-31 15:17:11 +02:00
parent 98c3dd9acc
commit eb2b82bf92
8 changed files with 16 additions and 21 deletions

View file

@ -400,7 +400,7 @@ void lcdDrawText(coord_t x, coord_t y, const char * s, LcdFlags flags)
void lcdDrawCenteredText(coord_t y, const char * s, LcdFlags flags) void lcdDrawCenteredText(coord_t y, const char * s, LcdFlags flags)
{ {
coord_t x = (LCD_W - FW * strlen(s)) / 2; coord_t x = (LCD_W - getTextWidth(s, flags)) / 2;
lcdDrawText(x, y, s, flags); lcdDrawText(x, y, s, flags);
} }

View file

@ -349,7 +349,7 @@ void lcdDrawSizedText(coord_t x, coord_t y, const char * s, uint8_t len)
void lcdDrawCenteredText(coord_t y, const char * s, LcdFlags flags) void lcdDrawCenteredText(coord_t y, const char * s, LcdFlags flags)
{ {
coord_t x = (LCD_W - FW * strlen(s)) / 2; coord_t x = (LCD_W - getTextWidth(s, flags)) / 2;
lcdDrawText(x, y, s, flags); lcdDrawText(x, y, s, flags);
} }

View file

@ -25,12 +25,12 @@ void pxx2ModuleRequiredScreen(event_t event);
void menuRadioPowerMeter(event_t event) void menuRadioPowerMeter(event_t event)
{ {
if(!isModulePXX2(INTERNAL_MODULE)) { if (!isModulePXX2(INTERNAL_MODULE)) {
pxx2ModuleRequiredScreen(event); pxx2ModuleRequiredScreen(event);
return; return;
} }
if(TELEMETRY_STREAMING()) { if (TELEMETRY_STREAMING()) {
lcdDrawCenteredText(LCD_H/2, "Turn off receiver"); lcdDrawCenteredText(LCD_H/2, "Turn off receiver");
return; return;
} }
@ -46,23 +46,21 @@ void menuRadioPowerMeter(event_t event)
resumePulses(); resumePulses();
return; return;
} }
else if (moduleSettings[INTERNAL_MODULE].mode != MODULE_MODE_POWER_METER) {
if (moduleSettings[INTERNAL_MODULE].mode != MODULE_MODE_POWER_METER) {
memclear(&reusableBuffer.powerMeter, sizeof(reusableBuffer.powerMeter)); memclear(&reusableBuffer.powerMeter, sizeof(reusableBuffer.powerMeter));
reusableBuffer.powerMeter.freq = 2400;
moduleSettings[INTERNAL_MODULE].mode = MODULE_MODE_POWER_METER; moduleSettings[INTERNAL_MODULE].mode = MODULE_MODE_POWER_METER;
} }
coord_t y = MENU_HEADER_HEIGHT + 1 + FH; coord_t y = MENU_HEADER_HEIGHT + 1 + FH;
LcdFlags attr = (menuVerticalPosition == 0 ? INVERS : 0); LcdFlags attr = (menuVerticalPosition == 0 ? INVERS : 0);
lcdDrawText(0, y, "Freq."); lcdDrawText(0, y, "Freq.");
lcdDrawNumber(8*FW, y, reusableBuffer.powerMeter.freqBand ? 900: 2400, LEFT|attr|(s_editMode > 0 ? BLINK : 0)); lcdDrawNumber(8*FW, y, reusableBuffer.powerMeter.freq, LEFT|attr|(s_editMode > 0 ? BLINK : 0));
lcdDrawText(lcdNextPos, y, " MHz band"); lcdDrawText(lcdNextPos, y, " MHz band");
if (attr) { if (attr) {
CHECK_INCDEC_MODELVAR(event, reusableBuffer.powerMeter.freqBand, 0, 1); reusableBuffer.powerMeter.freq = checkIncDec(event, reusableBuffer.powerMeter.freq == 900, 0, 1) ? 900 : 2400;
if (checkIncDec_Ret) { if (checkIncDec_Ret) {
if(reusableBuffer.powerMeter.freqBand == 0)
reusableBuffer.powerMeter.freq = 900; //TODO fine tune to region ? (866/900/915)
else
reusableBuffer.powerMeter.freq = 2400;
reusableBuffer.powerMeter.power = 0; reusableBuffer.powerMeter.power = 0;
reusableBuffer.powerMeter.peak = 0; reusableBuffer.powerMeter.peak = 0;
} }

View file

@ -24,12 +24,12 @@ extern void pxx2ModuleRequiredScreen(event_t event);
void menuRadioSpectrumAnalyser(event_t event) void menuRadioSpectrumAnalyser(event_t event)
{ {
if(!isModulePXX2(INTERNAL_MODULE)) { if (!isModulePXX2(INTERNAL_MODULE)) {
pxx2ModuleRequiredScreen(event); pxx2ModuleRequiredScreen(event);
return; return;
} }
if(TELEMETRY_STREAMING()) { if (TELEMETRY_STREAMING()) {
lcdDrawCenteredText(15, "Turn off receiver"); lcdDrawCenteredText(15, "Turn off receiver");
return; return;
} }
@ -45,7 +45,8 @@ void menuRadioSpectrumAnalyser(event_t event)
resumePulses(); resumePulses();
return; return;
} }
else if (moduleSettings[INTERNAL_MODULE].mode != MODULE_MODE_SPECTRUM_ANALYSER) {
if (moduleSettings[INTERNAL_MODULE].mode != MODULE_MODE_SPECTRUM_ANALYSER) {
memclear(reusableBuffer.spectrumAnalyser.bars, sizeof(reusableBuffer.spectrumAnalyser.bars)); memclear(reusableBuffer.spectrumAnalyser.bars, sizeof(reusableBuffer.spectrumAnalyser.bars));
moduleSettings[INTERNAL_MODULE].mode = MODULE_MODE_SPECTRUM_ANALYSER; moduleSettings[INTERNAL_MODULE].mode = MODULE_MODE_SPECTRUM_ANALYSER;
} }

View file

@ -27,7 +27,7 @@ void pxx2ModuleRequiredScreen(event_t event)
lcdDrawCenteredText(30, "ACCESS UPGRADE ON"); lcdDrawCenteredText(30, "ACCESS UPGRADE ON");
lcdDrawCenteredText(45, "YOUR INTERNAL MODULE"); lcdDrawCenteredText(45, "YOUR INTERNAL MODULE");
if(event == EVT_KEY_FIRST(KEY_EXIT)) { if (event == EVT_KEY_FIRST(KEY_EXIT)) {
killEvents(event); killEvents(event);
popMenu(); popMenu();
} }
@ -50,7 +50,7 @@ void menuRadioTools(event_t event)
{ {
SIMPLE_MENU("TOOLS", menuTabGeneral, MENU_RADIO_TOOLS, HEADER_LINE + 2); SIMPLE_MENU("TOOLS", menuTabGeneral, MENU_RADIO_TOOLS, HEADER_LINE + 2);
#if defined(PXX2) && !(defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX9E) || defined(PCBX7) || (defined(PCBXLITE) && !defined(PCBXLITES))) #if defined(PXX2) && (defined(PCBXLITES) || defined(PCBX3))
addRadioTool(0, "Spectrum Analyser", menuRadioSpectrumAnalyser, event); addRadioTool(0, "Spectrum Analyser", menuRadioSpectrumAnalyser, event);
addRadioTool(1, "Power Meter", menuRadioPowerMeter, event); addRadioTool(1, "Power Meter", menuRadioPowerMeter, event);
#endif #endif

View file

@ -1220,7 +1220,6 @@ union ReusableBuffer
uint32_t freq; uint32_t freq;
int16_t power; int16_t power;
int16_t peak; int16_t peak;
uint8_t freqBand;
} powerMeter; } powerMeter;
struct struct

View file

@ -208,9 +208,6 @@ void copyTrainerModuleData(A * dest, B * src)
template <class A, class B> template <class A, class B>
void copyReceiverData(A * dest, B * src) void copyReceiverData(A * dest, B * src)
{ {
dest->used = src->used;
dest->telemetry = src->telemetry;
dest->dirty = src->dirty;
memcpy(dest->name, src->name, sizeof(dest->name)); memcpy(dest->name, src->name, sizeof(dest->name));
} }

View file

@ -206,7 +206,7 @@ extern "C" void TELEMETRY_USART_IRQHandler(void)
#if defined(LUA) #if defined(LUA)
if (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_SPORT) { if (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_SPORT) {
static uint8_t prevdata; static uint8_t prevdata;
if (prevdata == 0x7E && outputTelemetryBuffer.size > 0 && data == outputTelemetryBuffer.trigger && outputTelemetryBuffer.destination == SPORT_MODULE) { if (prevdata == 0x7E && outputTelemetryBuffer.size > 0 && outputTelemetryBuffer.destination.value == TELEMETRY_ENDPOINT_SPORT && data == outputTelemetryBuffer.sport.physicalId) {
sportSendBuffer(outputTelemetryBuffer.data, outputTelemetryBuffer.size); sportSendBuffer(outputTelemetryBuffer.data, outputTelemetryBuffer.size);
} }
prevdata = data; prevdata = data;