1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-16 21:05:26 +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)
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,

View file

@ -165,19 +165,23 @@ void displayTrims(uint8_t phase)
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 (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);
int8_t y = (i<SLIDER3 ? LCD_H/2+1 : 1);
#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);
int8_t y = (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);

View file

@ -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<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]
uint8_t ch = (i < NUM_STICKS ? CONVERT_MODE(i) : i);
int16_t v = anaIn(i);

View file

@ -113,7 +113,7 @@ OpenTxSim::OpenTxSim(FXApp* a):
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]->setValue(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; i<NUM_POTS+NUM_SLIDERS; i++){
for (int i = 0; i < NUM_POTS + NUM_SLIDERS; i++) {
delete knobs[i];
}
@ -521,10 +522,10 @@ int main(int argc, char ** argv)
uint16_t anaIn(uint8_t chan)
{
if (chan<NUM_STICKS)
if (chan < NUM_STICKS)
return opentxSim->sliders[chan]->getValue();
else if (chan<NUM_STICKS+NUM_POTS+NUM_SLIDERS)
return opentxSim->knobs[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

View file

@ -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

View file

@ -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

View file

@ -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"