From f78dbafa17f9dd69e10d95cdaa4d87b2a4616393 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Mon, 7 Oct 2019 12:40:11 +0200 Subject: [PATCH] [X9D] P3 fix --- radio/src/dataconstants.h | 5 +++++ radio/src/gui/212x64/view_main.cpp | 12 ++++++++---- radio/src/mixer.cpp | 4 ++-- radio/src/simu.cpp | 11 ++++++----- radio/src/targets/common/arm/stm32/adc_driver.cpp | 4 ++-- radio/src/targets/taranis/board.h | 7 ++++++- radio/src/translations/untranslated.h | 3 +++ 7 files changed, 32 insertions(+), 14 deletions(-) diff --git a/radio/src/dataconstants.h b/radio/src/dataconstants.h index 2f88ed826..4e21d419b 100644 --- a/radio/src/dataconstants.h +++ b/radio/src/dataconstants.h @@ -632,8 +632,13 @@ enum MixSources { #elif defined(PCBTARANIS) MIXSRC_POT1 = MIXSRC_FIRST_POT, LUA_EXPORT("s1", "Potentiometer 1") MIXSRC_POT2, LUA_EXPORT("s2", "Potentiometer 2") +#if defined(PCBX9D) + MIXSRC_POT3 = MIXSRC_NONE, + MIXSRC_FIRST_SLIDER = MIXSRC_POT2 + 1, +#else MIXSRC_POT3, LUA_EXPORT("s3", "Potentiometer 3") MIXSRC_FIRST_SLIDER, +#endif MIXSRC_SLIDER1 = MIXSRC_FIRST_SLIDER, LUA_EXPORT("ls", "Left slider") MIXSRC_SLIDER2, LUA_EXPORT("rs", "Right slider") MIXSRC_LAST_POT = MIXSRC_SLIDER2, diff --git a/radio/src/gui/212x64/view_main.cpp b/radio/src/gui/212x64/view_main.cpp index 46b56716d..8008507b8 100644 --- a/radio/src/gui/212x64/view_main.cpp +++ b/radio/src/gui/212x64/view_main.cpp @@ -165,19 +165,23 @@ void displayTrims(uint8_t phase) void drawSliders() { - for (uint8_t i=NUM_STICKS; i=SLIDER1 ? LCD_H/2+1 : 1); #endif lcdDrawSolidVerticalLine(x, y, LCD_H/2-2); lcdDrawSolidVerticalLine(x+1, y, LCD_H/2-2); - y += LCD_H/2-4; + y += LCD_H / 2 - 4; y -= ((calibratedAnalogs[i]+RESX)*(LCD_H/2-4)/(RESX*2)); // calculate once per loop lcdDrawSolidVerticalLine(x-1, y, 2); lcdDrawSolidVerticalLine(x+2, y, 2); diff --git a/radio/src/mixer.cpp b/radio/src/mixer.cpp index ee4406201..43c2629ee 100644 --- a/radio/src/mixer.cpp +++ b/radio/src/mixer.cpp @@ -311,7 +311,7 @@ getvalue_t getValue(mixsrc_t i) } #endif - else if (i <= MIXSRC_LAST_POT+NUM_MOUSE_ANALOGS) { + else if (i <= MIXSRC_LAST_POT + NUM_MOUSE_ANALOGS) { return calibratedAnalogs[i - MIXSRC_Rud]; } @@ -420,7 +420,7 @@ void evalInputs(uint8_t mode) { BeepANACenter anaCenter = 0; - for (uint8_t i=0; i [-1024..1024] uint8_t ch = (i < NUM_STICKS ? CONVERT_MODE(i) : i); int16_t v = anaIn(i); diff --git a/radio/src/simu.cpp b/radio/src/simu.cpp index b92e16dab..cfe2516a6 100644 --- a/radio/src/simu.cpp +++ b/radio/src/simu.cpp @@ -113,7 +113,7 @@ OpenTxSim::OpenTxSim(FXApp* a): sliders[i]->setValue(0); } - for(int i=0; isetValue(0); @@ -125,6 +125,7 @@ OpenTxSim::OpenTxSim(FXApp* a): continue; } #endif + knobs[i]->setRange(-1024, 1024); } @@ -152,7 +153,7 @@ OpenTxSim::~OpenTxSim() delete sliders[2]; delete sliders[3]; - for(int i=0; isliders[chan]->getValue(); - else if (chanknobs[chan-NUM_STICKS]->getValue(); + else if (chan < NUM_STICKS + NUM_POTS + NUM_SLIDERS) + return opentxSim->knobs[chan - NUM_STICKS]->getValue(); #if defined(PCBTARANIS) else if (chan == TX_RTC_VOLTAGE) return 800; // 2.34V diff --git a/radio/src/targets/common/arm/stm32/adc_driver.cpp b/radio/src/targets/common/arm/stm32/adc_driver.cpp index 36d0e5a60..c24f4a5c8 100644 --- a/radio/src/targets/common/arm/stm32/adc_driver.cpp +++ b/radio/src/targets/common/arm/stm32/adc_driver.cpp @@ -36,14 +36,14 @@ 9 /*TX_VOLTAGE*/, 10 /*TX_VBAT*/ }; #elif defined(PCBX9DP) const int8_t adcDirection[NUM_ANALOGS] = {1,-1,1,-1, 1,1,-1, 1,1, 1, 1}; +#elif defined(PCBX9D) + const int8_t adcDirection[NUM_ANALOGS] = {1,-1,1,-1, 1,1, 1,1, 1, 1}; #elif defined(PCBX7) const int8_t adcDirection[NUM_ANALOGS] = {-1,1,-1,1, 1,1, 1, 1}; #elif defined(PCBX9LITE) const int8_t adcDirection[NUM_ANALOGS] = {-1,1,-1,1, 1,1, 1}; #elif defined(PCBXLITE) const int8_t adcDirection[NUM_ANALOGS] = {1,-1,-1,1, -1,1, 1, 1}; -#else - const int8_t adcDirection[NUM_ANALOGS] = {1,-1,1,-1, 1,1,0, 1,1, 1, 1}; #endif #if NUM_PWMSTICKS > 0 diff --git a/radio/src/targets/taranis/board.h b/radio/src/targets/taranis/board.h index 7c4842d39..28f293de3 100644 --- a/radio/src/targets/taranis/board.h +++ b/radio/src/targets/taranis/board.h @@ -465,6 +465,11 @@ enum Analogs { SLIDER2, SLIDER3, SLIDER4, +#elif defined(PCBX9D) + POT2, + POT_LAST = POT2, + SLIDER1, + SLIDER2, #else POT2, POT3, @@ -556,7 +561,7 @@ enum CalibratedAnalogs { CALIBRATED_STICK3, CALIBRATED_STICK4, CALIBRATED_POT_FIRST, - CALIBRATED_POT_LAST = CALIBRATED_POT_FIRST + NUM_POTS - 1, + CALIBRATED_POT_LAST = CALIBRATED_POT_FIRST + STORAGE_NUM_POTS - 1, CALIBRATED_SLIDER_FIRST, CALIBRATED_SLIDER_LAST = CALIBRATED_SLIDER_FIRST + NUM_SLIDERS - 1, NUM_CALIBRATED_ANALOGS diff --git a/radio/src/translations/untranslated.h b/radio/src/translations/untranslated.h index 480717772..810b70eed 100644 --- a/radio/src/translations/untranslated.h +++ b/radio/src/translations/untranslated.h @@ -50,6 +50,9 @@ #elif defined(PCBX9LITE) #define TR_POTS_VSRCRAW "\310S1\0" #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0" +#elif defined(PCBX9D) + #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\311LS\0""\311RS\0" + #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0" #elif defined(PCBTARANIS) #define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0" #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0"