diff --git a/src/frsky.cpp b/src/frsky.cpp index 8e19d220c..9e9c4ac03 100644 --- a/src/frsky.cpp +++ b/src/frsky.cpp @@ -741,7 +741,7 @@ void menuProcFrsky(uint8_t event) if (g_model.frsky.bars[i].source && (51-g_model.frsky.bars[i].barMax) > g_model.frsky.bars[i].barMin) { lcd_putsiAtt(0, bars_height+bars_height+1+i*(bars_height+6), STR_VTELEMBARS, g_model.frsky.bars[i].source, 0); lcd_rect(25, bars_height+6+i*(bars_height+6), 101, bars_height+2); - int16_t value = getValue(CHOUT_BASE+NUM_CHNOUT+MAX_TIMERS+g_model.frsky.bars[i].source-1); + int16_t value = getValue(CSW_CHOUT_BASE+NUM_CHNOUT+MAX_TIMERS+g_model.frsky.bars[i].source-1); uint8_t threshold = 0, thresholdX = 0; if (g_model.frsky.bars[i].source <= 2) threshold = g_model.frsky.channels[g_model.frsky.bars[i].source-1].alarms_value[0]; diff --git a/src/model_menus.cpp b/src/model_menus.cpp index 041c70281..9d9d5dae8 100644 --- a/src/model_menus.cpp +++ b/src/model_menus.cpp @@ -1727,13 +1727,13 @@ void menuProcCustomSwitches(uint8_t event) int8_t v1 = cs.v1; CHECK_INCDEC_MODELVAR(event, cs.v1, v1_min, v1_max); if (cstate == CS_VOFS) { - if (cs.v1 == CHOUT_BASE+NUM_CHNOUT+1 && v1 < cs.v1) cs.v2 = -98; + if (cs.v1 == CSW_CHOUT_BASE+NUM_CHNOUT+1 && v1 < cs.v1) cs.v2 = -98; #ifdef FRSKY - if (cs.v1 == CHOUT_BASE+NUM_CHNOUT+MAX_TIMERS+1 && v1 < cs.v1) cs.v2 = -128; + if (cs.v1 == CSW_CHOUT_BASE+NUM_CHNOUT+MAX_TIMERS+1 && v1 < cs.v1) cs.v2 = -128; #endif - if (cs.v1 == CHOUT_BASE+NUM_CHNOUT && v1 > cs.v1) cs.v2 = 0; + if (cs.v1 == CSW_CHOUT_BASE+NUM_CHNOUT && v1 > cs.v1) cs.v2 = 0; #ifdef FRSKY - if (cs.v1 == CHOUT_BASE+NUM_CHNOUT+MAX_TIMERS && v1 > cs.v1) cs.v2 = -98; + if (cs.v1 == CSW_CHOUT_BASE+NUM_CHNOUT+MAX_TIMERS && v1 > cs.v1) cs.v2 = -98; #endif } break; diff --git a/src/myeeprom.h b/src/myeeprom.h index f2c5f638b..9555b2955 100644 --- a/src/myeeprom.h +++ b/src/myeeprom.h @@ -168,6 +168,9 @@ PACK(typedef struct t_LimitData { #define MIX_PPM1 34 #define MIX_PPM8 41 #define MIX_CH1 42 +#define MIX_CH9 50 +#define MIX_CH10 51 +#define MIX_CH11 52 #define MIX_CH16 57 #define TRIM_ON 0 diff --git a/src/open9x.cpp b/src/open9x.cpp index be4dd250e..55f0c47c6 100644 --- a/src/open9x.cpp +++ b/src/open9x.cpp @@ -306,22 +306,22 @@ int16_t getValue(uint8_t i) #else return 0; #endif - else if(i CHOUT_BASE+NUM_CHNOUT+MAX_TIMERS+2) - barsThresholds[cs.v1-CHOUT_BASE-NUM_CHNOUT-MAX_TIMERS-3] = 128 + cs.v2; + if (cs.v1 > CSW_CHOUT_BASE+NUM_CHNOUT+MAX_TIMERS+2) + barsThresholds[cs.v1-CSW_CHOUT_BASE-NUM_CHNOUT-MAX_TIMERS-3] = 128 + cs.v2; // TODO CELL? // FUEL, T1, T2, SPEED - if (cs.v1 > CHOUT_BASE+NUM_CHNOUT+MAX_TIMERS+4) + if (cs.v1 > CSW_CHOUT_BASE+NUM_CHNOUT+MAX_TIMERS+4) y = (128+cs.v2); // RPMs - else if (cs.v1 > CHOUT_BASE+NUM_CHNOUT+MAX_TIMERS+3) + else if (cs.v1 > CSW_CHOUT_BASE+NUM_CHNOUT+MAX_TIMERS+3) y = (128+cs.v2) * 25; else #endif #if defined(FRSKY_HUB) || defined(WS_HOW_HIGH) // ALT - if (cs.v1 > CHOUT_BASE+NUM_CHNOUT+MAX_TIMERS+2) + if (cs.v1 > CSW_CHOUT_BASE+NUM_CHNOUT+MAX_TIMERS+2) y = (128+cs.v2) * 4; else #endif // Volts - if (cs.v1 > CHOUT_BASE+NUM_CHNOUT+MAX_TIMERS) + if (cs.v1 > CSW_CHOUT_BASE+NUM_CHNOUT+MAX_TIMERS) y = 128+cs.v2; else #endif // Timers - if (cs.v1 > CHOUT_BASE+NUM_CHNOUT) + if (cs.v1 > CSW_CHOUT_BASE+NUM_CHNOUT) y = 98+cs.v2; else y = calc100toRESX(cs.v2); @@ -1238,13 +1238,12 @@ void perOut(uint8_t phase) if (k < NUM_STICKS) v = anas[k]; //Switch is on. MAX=FULL=512 or value. - else if (k>=CHOUT_BASE && k=MIX_3POS && k=MIX_CH1-1 && k<=MIX_CH16-1 && k-MIX_CH1+1=MIX_THR-1 && k<=MIX_SWC-1) + v = getSwitch(k-MIX_THR+1+1, 0) ? +1024 : -1024; else - v = getValue(k < MIX_3POS ? k : k-MAX_SWITCH); + v = getValue(k <= MIX_3POS ? k : k-MAX_SWITCH); if (md->mixWarn) mixWarning |= 1<<(md->mixWarn-1); // Mix warning diff --git a/src/open9x.h b/src/open9x.h index edb130c1a..f404eb69f 100644 --- a/src/open9x.h +++ b/src/open9x.h @@ -339,10 +339,10 @@ enum EnumKeys { #define NUM_STICKS 4 #define NUM_POTS 3 -#define PPM_BASE (MIX_3POS+3/*CYC1-CYC3*/) // because srcRaw is shifted +1! // TODO use MIX_PPM1 +#define CSW_PPM_BASE (MIX_3POS+3/*CYC1-CYC3*/) // because srcRaw is shifted +1! // TODO use MIX_PPM1 #define NUM_CAL_PPM 4 #define NUM_PPM 8 -#define CHOUT_BASE (PPM_BASE+NUM_PPM) +#define CSW_CHOUT_BASE (CSW_PPM_BASE+NUM_PPM) #if defined(FRSKY_HUB) #define NUM_TELEMETRY 9 diff --git a/src/templates.cpp b/src/templates.cpp index abfd28800..f294eb737 100644 --- a/src/templates.cpp +++ b/src/templates.cpp @@ -164,12 +164,12 @@ void applyTemplate(uint8_t idx) clearCurves(); //Set up Mixes - md=setDest(ICC(STK_AIL)); md->srcRaw=CH(9); md->weight= 50; - md=setDest(ICC(STK_AIL)); md->srcRaw=CH(10); md->weight=-100; - md=setDest(ICC(STK_AIL)); md->srcRaw=CH(11); md->weight= 100; md->carryTrim=TRIM_OFF; + md=setDest(ICC(STK_AIL)); md->srcRaw=MIX_CH9; md->weight= 50; + md=setDest(ICC(STK_AIL)); md->srcRaw=MIX_CH10; md->weight=-100; + md=setDest(ICC(STK_AIL)); md->srcRaw=MIX_CH11; md->weight= 100; md->carryTrim=TRIM_OFF; - md=setDest(ICC(STK_ELE)); md->srcRaw=CH(9); md->weight=-100; - md=setDest(ICC(STK_ELE)); md->srcRaw=CH(11); md->weight= 100; md->carryTrim=TRIM_OFF; + md=setDest(ICC(STK_ELE)); md->srcRaw=MIX_CH9; md->weight=-100; + md=setDest(ICC(STK_ELE)); md->srcRaw=MIX_CH11; md->weight= 100; md->carryTrim=TRIM_OFF; md=setDest(ICC(STK_THR)); md->srcRaw=SRC_THR; md->weight= 100; md->swtch=DSW_ID0; md->curve=CV(1); md->carryTrim=TRIM_OFF; md=setDest(ICC(STK_THR)); md->srcRaw=SRC_THR; md->weight= 100; md->swtch=DSW_ID1; md->curve=CV(2); md->carryTrim=TRIM_OFF; @@ -182,12 +182,12 @@ void applyTemplate(uint8_t idx) md=setDest(4); md->srcRaw=MIX_MAX; md->weight=-50; md->swtch= DSW_GEA; md->carryTrim=TRIM_OFF; md=setDest(4); md->srcRaw=STK_P3; md->weight= 40; md->carryTrim=TRIM_OFF; - md=setDest(5); md->srcRaw=CH(9); md->weight= -50; - md=setDest(5); md->srcRaw=CH(10); md->weight=-100; - md=setDest(5); md->srcRaw=CH(11); md->weight=-100; md->carryTrim=TRIM_OFF; + md=setDest(5); md->srcRaw=MIX_CH9; md->weight= -50; + md=setDest(5); md->srcRaw=MIX_CH10; md->weight=-100; + md=setDest(5); md->srcRaw=MIX_CH11; md->weight=-100; md->carryTrim=TRIM_OFF; md=setDest(8); md->srcRaw=SRC_ELE; md->weight= 60; - md=setDest(9); md->srcRaw=SRC_AIL; md->weight=-52; + md=setDest(9); md->srcRaw=SRC_AIL; md->weight=-52; md=setDest(10); md->srcRaw=SRC_THR; md->weight= 70; md->swtch=DSW_ID0; md->curve=CV(3); md->carryTrim=TRIM_OFF; md=setDest(10); md->srcRaw=SRC_THR; md->weight= 70; md->swtch=DSW_ID1; md->curve=CV(4); md->carryTrim=TRIM_OFF; md=setDest(10); md->srcRaw=SRC_THR; md->weight= 70; md->swtch=DSW_ID2; md->curve=CV(4); md->carryTrim=TRIM_OFF; @@ -208,9 +208,9 @@ void applyTemplate(uint8_t idx) md=setDest(15); md->srcRaw=MIX_MAX; md->weight=-110; md->swtch=DSW_SW2; md->mltpx=MLTPX_REP; md=setDest(15); md->srcRaw=MIX_MAX; md->weight= 110; md->swtch=DSW_SW3; md->mltpx=MLTPX_REP; - setSwitch(1,CS_LESS,CH(15),CH(16)); - setSwitch(2,CS_VPOS,CH(15), 105); - setSwitch(3,CS_VNEG,CH(15), -105); + setSwitch(1, CS_LESS, CSW_CHOUT_BASE+15, CSW_CHOUT_BASE+16); + setSwitch(2, CS_VPOS, CSW_CHOUT_BASE+15, 105); + setSwitch(3, CS_VNEG, CSW_CHOUT_BASE+15, -105); break; diff --git a/src/templates.h b/src/templates.h index 9e1492865..be56bb774 100644 --- a/src/templates.h +++ b/src/templates.h @@ -69,7 +69,6 @@ #define STK_P2 6 #define STK_P3 7 -#define CH(x) (CHOUT_BASE+(x)) #define CV(x) (CURVE_BASE+(x)-1) #define CC(x) (channel_order(x)) //need to invert this to work with dest