1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-16 12:55:12 +03:00

[X9D] P3 fix

This commit is contained in:
Bertrand Songis 2019-10-07 12:40:11 +02:00
parent 63614a06f8
commit f78dbafa17
No known key found for this signature in database
GPG key ID: F189F79290FEC50F
7 changed files with 32 additions and 14 deletions

View file

@ -632,8 +632,13 @@ enum MixSources {
#elif defined(PCBTARANIS) #elif defined(PCBTARANIS)
MIXSRC_POT1 = MIXSRC_FIRST_POT, LUA_EXPORT("s1", "Potentiometer 1") MIXSRC_POT1 = MIXSRC_FIRST_POT, LUA_EXPORT("s1", "Potentiometer 1")
MIXSRC_POT2, LUA_EXPORT("s2", "Potentiometer 2") 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_POT3, LUA_EXPORT("s3", "Potentiometer 3")
MIXSRC_FIRST_SLIDER, MIXSRC_FIRST_SLIDER,
#endif
MIXSRC_SLIDER1 = MIXSRC_FIRST_SLIDER, LUA_EXPORT("ls", "Left slider") MIXSRC_SLIDER1 = MIXSRC_FIRST_SLIDER, LUA_EXPORT("ls", "Left slider")
MIXSRC_SLIDER2, LUA_EXPORT("rs", "Right slider") MIXSRC_SLIDER2, LUA_EXPORT("rs", "Right slider")
MIXSRC_LAST_POT = MIXSRC_SLIDER2, MIXSRC_LAST_POT = MIXSRC_SLIDER2,

View file

@ -165,19 +165,23 @@ void displayTrims(uint8_t phase)
void drawSliders() void drawSliders()
{ {
for (uint8_t i=NUM_STICKS; i<NUM_STICKS+NUM_POTS+NUM_SLIDERS; i++) { for (uint8_t i = NUM_STICKS; i < NUM_STICKS + NUM_POTS + NUM_SLIDERS; i++) {
#if defined(PCBX9E) #if defined(PCBX9E)
if (i < SLIDER1) continue; // TODO change and display more values if (i < SLIDER1)
continue; // TODO change and display more values
coord_t x = ((i==SLIDER1 || i==SLIDER3) ? 3 : LCD_W-5); coord_t x = ((i==SLIDER1 || i==SLIDER3) ? 3 : LCD_W-5);
int8_t y = (i<SLIDER3 ? LCD_H/2+1 : 1); int8_t y = (i<SLIDER3 ? LCD_H/2+1 : 1);
#else #else
if (i == POT3) continue; #if defined(HARDWARE_POT3)
if (i == POT3)
continue;
#endif
coord_t x = ((i==POT1 || i==SLIDER1) ? 3 : LCD_W-5); coord_t x = ((i==POT1 || i==SLIDER1) ? 3 : LCD_W-5);
int8_t y = (i>=SLIDER1 ? LCD_H/2+1 : 1); int8_t y = (i>=SLIDER1 ? LCD_H/2+1 : 1);
#endif #endif
lcdDrawSolidVerticalLine(x, y, LCD_H/2-2); lcdDrawSolidVerticalLine(x, y, LCD_H/2-2);
lcdDrawSolidVerticalLine(x+1, 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 y -= ((calibratedAnalogs[i]+RESX)*(LCD_H/2-4)/(RESX*2)); // calculate once per loop
lcdDrawSolidVerticalLine(x-1, y, 2); lcdDrawSolidVerticalLine(x-1, y, 2);
lcdDrawSolidVerticalLine(x+2, y, 2); lcdDrawSolidVerticalLine(x+2, y, 2);

View file

@ -311,7 +311,7 @@ getvalue_t getValue(mixsrc_t i)
} }
#endif #endif
else if (i <= MIXSRC_LAST_POT+NUM_MOUSE_ANALOGS) { else if (i <= MIXSRC_LAST_POT + NUM_MOUSE_ANALOGS) {
return calibratedAnalogs[i - MIXSRC_Rud]; return calibratedAnalogs[i - MIXSRC_Rud];
} }
@ -420,7 +420,7 @@ void evalInputs(uint8_t mode)
{ {
BeepANACenter anaCenter = 0; BeepANACenter anaCenter = 0;
for (uint8_t i=0; i<NUM_STICKS+NUM_POTS+NUM_SLIDERS; i++) { for (uint8_t i = 0; i < NUM_STICKS + NUM_POTS + NUM_SLIDERS; i++) {
// normalization [0..2048] -> [-1024..1024] // normalization [0..2048] -> [-1024..1024]
uint8_t ch = (i < NUM_STICKS ? CONVERT_MODE(i) : i); uint8_t ch = (i < NUM_STICKS ? CONVERT_MODE(i) : i);
int16_t v = anaIn(i); int16_t v = anaIn(i);

View file

@ -113,7 +113,7 @@ OpenTxSim::OpenTxSim(FXApp* a):
sliders[i]->setValue(0); sliders[i]->setValue(0);
} }
for(int i=0; i<NUM_POTS+NUM_SLIDERS; i++){ for (int i = 0; i < NUM_POTS + NUM_SLIDERS; i++) {
knobs[i]= new FXKnob(hf11, nullptr, 0, KNOB_TICKS|LAYOUT_LEFT); knobs[i]= new FXKnob(hf11, nullptr, 0, KNOB_TICKS|LAYOUT_LEFT);
knobs[i]->setValue(0); knobs[i]->setValue(0);
@ -125,6 +125,7 @@ OpenTxSim::OpenTxSim(FXApp* a):
continue; continue;
} }
#endif #endif
knobs[i]->setRange(-1024, 1024); knobs[i]->setRange(-1024, 1024);
} }
@ -152,7 +153,7 @@ OpenTxSim::~OpenTxSim()
delete sliders[2]; delete sliders[2];
delete sliders[3]; delete sliders[3];
for(int i=0; i<NUM_POTS+NUM_SLIDERS; i++){ for (int i = 0; i < NUM_POTS + NUM_SLIDERS; i++) {
delete knobs[i]; delete knobs[i];
} }
@ -521,10 +522,10 @@ int main(int argc, char ** argv)
uint16_t anaIn(uint8_t chan) uint16_t anaIn(uint8_t chan)
{ {
if (chan<NUM_STICKS) if (chan < NUM_STICKS)
return opentxSim->sliders[chan]->getValue(); return opentxSim->sliders[chan]->getValue();
else if (chan<NUM_STICKS+NUM_POTS+NUM_SLIDERS) else if (chan < NUM_STICKS + NUM_POTS + NUM_SLIDERS)
return opentxSim->knobs[chan-NUM_STICKS]->getValue(); return opentxSim->knobs[chan - NUM_STICKS]->getValue();
#if defined(PCBTARANIS) #if defined(PCBTARANIS)
else if (chan == TX_RTC_VOLTAGE) else if (chan == TX_RTC_VOLTAGE)
return 800; // 2.34V return 800; // 2.34V

View file

@ -36,14 +36,14 @@
9 /*TX_VOLTAGE*/, 10 /*TX_VBAT*/ }; 9 /*TX_VOLTAGE*/, 10 /*TX_VBAT*/ };
#elif defined(PCBX9DP) #elif defined(PCBX9DP)
const int8_t adcDirection[NUM_ANALOGS] = {1,-1,1,-1, 1,1,-1, 1,1, 1, 1}; 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) #elif defined(PCBX7)
const int8_t adcDirection[NUM_ANALOGS] = {-1,1,-1,1, 1,1, 1, 1}; const int8_t adcDirection[NUM_ANALOGS] = {-1,1,-1,1, 1,1, 1, 1};
#elif defined(PCBX9LITE) #elif defined(PCBX9LITE)
const int8_t adcDirection[NUM_ANALOGS] = {-1,1,-1,1, 1,1, 1}; const int8_t adcDirection[NUM_ANALOGS] = {-1,1,-1,1, 1,1, 1};
#elif defined(PCBXLITE) #elif defined(PCBXLITE)
const int8_t adcDirection[NUM_ANALOGS] = {1,-1,-1,1, -1,1, 1, 1}; 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 #endif
#if NUM_PWMSTICKS > 0 #if NUM_PWMSTICKS > 0

View file

@ -465,6 +465,11 @@ enum Analogs {
SLIDER2, SLIDER2,
SLIDER3, SLIDER3,
SLIDER4, SLIDER4,
#elif defined(PCBX9D)
POT2,
POT_LAST = POT2,
SLIDER1,
SLIDER2,
#else #else
POT2, POT2,
POT3, POT3,
@ -556,7 +561,7 @@ enum CalibratedAnalogs {
CALIBRATED_STICK3, CALIBRATED_STICK3,
CALIBRATED_STICK4, CALIBRATED_STICK4,
CALIBRATED_POT_FIRST, 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_FIRST,
CALIBRATED_SLIDER_LAST = CALIBRATED_SLIDER_FIRST + NUM_SLIDERS - 1, CALIBRATED_SLIDER_LAST = CALIBRATED_SLIDER_FIRST + NUM_SLIDERS - 1,
NUM_CALIBRATED_ANALOGS NUM_CALIBRATED_ANALOGS

View file

@ -50,6 +50,9 @@
#elif defined(PCBX9LITE) #elif defined(PCBX9LITE)
#define TR_POTS_VSRCRAW "\310S1\0" #define TR_POTS_VSRCRAW "\310S1\0"
#define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\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) #elif defined(PCBTARANIS)
#define TR_POTS_VSRCRAW "\310S1\0""\310S2\0""\310S3\0""\311LS\0""\311RS\0" #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" #define TR_SW_VSRCRAW "\312SA\0""\312SB\0""\312SC\0""\312SD\0""\312SE\0""\312SF\0""\312SG\0""\312SH\0""\312SI\0"