From 3e453ec236be3b6846f6c068d5d4f45eb4199ee6 Mon Sep 17 00:00:00 2001 From: bsongis Date: Mon, 16 Jan 2012 13:51:18 +0000 Subject: [PATCH] Bug in channels order in templates --- src/myeeprom.h | 4 ++++ src/pers.cpp | 2 +- src/templates.cpp | 60 +++++++++++++++++++++++------------------------ src/templates.h | 1 - 4 files changed, 35 insertions(+), 32 deletions(-) diff --git a/src/myeeprom.h b/src/myeeprom.h index 01bd9a8e7..868429e22 100644 --- a/src/myeeprom.h +++ b/src/myeeprom.h @@ -117,6 +117,10 @@ PACK(typedef struct t_LimitData { int16_t offset; }) LimitData; +#define SRC_RUD 1 +#define SRC_ELE 2 +#define SRC_THR 3 +#define SRC_AIL 4 #define MIX_P1 5 #define MIX_P2 6 #define MIX_P3 7 diff --git a/src/pers.cpp b/src/pers.cpp index 09c7a79e1..7bf2763ee 100644 --- a/src/pers.cpp +++ b/src/pers.cpp @@ -71,7 +71,7 @@ inline void applyDefaultTemplate() MixData *md = mixaddress(i); md->destCh = i+1; md->weight = 100; - md->srcRaw = i+1; + md->srcRaw = CHANNEL_ORDER(i+1); } STORE_MODELVARS; diff --git a/src/templates.cpp b/src/templates.cpp index 23caad389..3abd10138 100644 --- a/src/templates.cpp +++ b/src/templates.cpp @@ -127,10 +127,10 @@ void applyTemplate(uint8_t idx) // Simple 4-Ch case (0): clearMixes(); - md=setDest(ICC(STK_RUD)); md->srcRaw=CM(STK_RUD); md->weight=100; - md=setDest(ICC(STK_ELE)); md->srcRaw=CM(STK_ELE); md->weight=100; - md=setDest(ICC(STK_THR)); md->srcRaw=CM(STK_THR); md->weight=100; - md=setDest(ICC(STK_AIL)); md->srcRaw=CM(STK_AIL); md->weight=100; + md=setDest(ICC(STK_RUD)); md->srcRaw=SRC_RUD; md->weight=100; + md=setDest(ICC(STK_ELE)); md->srcRaw=SRC_ELE; md->weight=100; + md=setDest(ICC(STK_THR)); md->srcRaw=SRC_THR; md->weight=100; + md=setDest(ICC(STK_AIL)); md->srcRaw=SRC_AIL; md->weight=100; break; // T-Cut @@ -140,30 +140,30 @@ void applyTemplate(uint8_t idx) // V-Tail case (2): - md=setDest(ICC(STK_RUD)); md->srcRaw=CM(STK_RUD); md->weight= 100; - md=setDest(ICC(STK_RUD)); md->srcRaw=CM(STK_ELE); md->weight=-100; - md=setDest(ICC(STK_ELE)); md->srcRaw=CM(STK_RUD); md->weight= 100; - md=setDest(ICC(STK_ELE)); md->srcRaw=CM(STK_ELE); md->weight= 100; + md=setDest(ICC(STK_RUD)); md->srcRaw=SRC_RUD; md->weight= 100; + md=setDest(ICC(STK_RUD)); md->srcRaw=SRC_ELE; md->weight=-100; + md=setDest(ICC(STK_ELE)); md->srcRaw=SRC_RUD; md->weight= 100; + md=setDest(ICC(STK_ELE)); md->srcRaw=SRC_ELE; md->weight= 100; break; // Elevon\\Delta case (3): - md=setDest(ICC(STK_ELE)); md->srcRaw=CM(STK_ELE); md->weight= 100; - md=setDest(ICC(STK_ELE)); md->srcRaw=CM(STK_AIL); md->weight= 100; - md=setDest(ICC(STK_AIL)); md->srcRaw=CM(STK_ELE); md->weight= 100; - md=setDest(ICC(STK_AIL)); md->srcRaw=CM(STK_AIL); md->weight=-100; + md=setDest(ICC(STK_ELE)); md->srcRaw=SRC_ELE; md->weight= 100; + md=setDest(ICC(STK_ELE)); md->srcRaw=SRC_AIL; md->weight= 100; + md=setDest(ICC(STK_AIL)); md->srcRaw=SRC_ELE; md->weight= 100; + md=setDest(ICC(STK_AIL)); md->srcRaw=SRC_AIL; md->weight=-100; break; // eCCPM case (4): - md=setDest(ICC(STK_ELE)); md->srcRaw=CM(STK_ELE); md->weight= 72; - md=setDest(ICC(STK_ELE)); md->srcRaw=CM(STK_THR); md->weight= 55; - md=setDest(ICC(STK_AIL)); md->srcRaw=CM(STK_ELE); md->weight=-36; - md=setDest(ICC(STK_AIL)); md->srcRaw=CM(STK_AIL); md->weight= 62; - md=setDest(ICC(STK_AIL)); md->srcRaw=CM(STK_THR); md->weight= 55; - md=setDest(6); md->srcRaw=CM(STK_ELE); md->weight=-36; - md=setDest(6); md->srcRaw=CM(STK_AIL); md->weight=-62; - md=setDest(6); md->srcRaw=CM(STK_THR); md->weight= 55; + md=setDest(ICC(STK_ELE)); md->srcRaw=SRC_ELE; md->weight= 72; + md=setDest(ICC(STK_ELE)); md->srcRaw=SRC_THR; md->weight= 55; + md=setDest(ICC(STK_AIL)); md->srcRaw=SRC_ELE; md->weight=-36; + md=setDest(ICC(STK_AIL)); md->srcRaw=SRC_AIL; md->weight= 62; + md=setDest(ICC(STK_AIL)); md->srcRaw=SRC_THR; md->weight= 55; + md=setDest(6); md->srcRaw=SRC_ELE; md->weight=-36; + md=setDest(6); md->srcRaw=SRC_AIL; md->weight=-62; + md=setDest(6); md->srcRaw=SRC_THR; md->weight= 55; break; // Heli Setup @@ -179,12 +179,12 @@ void applyTemplate(uint8_t idx) 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_THR)); md->srcRaw=CM(STK_THR); md->weight= 100; md->swtch=DSW_ID0; md->curve=CV(1); md->carryTrim=TRIM_OFF; - md=setDest(ICC(STK_THR)); md->srcRaw=CM(STK_THR); md->weight= 100; md->swtch=DSW_ID1; md->curve=CV(2); md->carryTrim=TRIM_OFF; - md=setDest(ICC(STK_THR)); md->srcRaw=CM(STK_THR); md->weight= 110; md->swtch=DSW_ID2; md->curve=CV(2); 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; + md=setDest(ICC(STK_THR)); md->srcRaw=SRC_THR; md->weight= 110; md->swtch=DSW_ID2; md->curve=CV(2); md->carryTrim=TRIM_OFF; md=setDest(ICC(STK_THR)); md->srcRaw=MIX_MAX; md->weight=-125; md->swtch=DSW_THR; md->mltpx=MLTPX_REP; md->carryTrim=TRIM_OFF; - md=setDest(ICC(STK_RUD)); md->srcRaw=CM(STK_RUD); md->weight=100; + md=setDest(ICC(STK_RUD)); md->srcRaw=SRC_RUD; md->weight=100; md=setDest(5); md->srcRaw=MIX_MAX; md->weight= 50; md->swtch=-DSW_GEA; md->carryTrim=TRIM_OFF; md=setDest(5); md->srcRaw=MIX_MAX; md->weight=-50; md->swtch= DSW_GEA; md->carryTrim=TRIM_OFF; @@ -194,12 +194,12 @@ void applyTemplate(uint8_t idx) md=setDest(6); md->srcRaw=CH(10); md->weight=-100; md=setDest(6); md->srcRaw=CH(11); md->weight=-100; md->carryTrim=TRIM_OFF; - md=setDest(9); md->srcRaw=CM(STK_ELE); md->weight= 60; - md=setDest(10); md->srcRaw=CM(STK_AIL); md->weight=-52; - md=setDest(11); md->srcRaw=CM(STK_THR); md->weight= 70; md->swtch=DSW_ID0; md->curve=CV(3); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=CM(STK_THR); md->weight= 70; md->swtch=DSW_ID1; md->curve=CV(4); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=CM(STK_THR); md->weight= 70; md->swtch=DSW_ID2; md->curve=CV(4); md->carryTrim=TRIM_OFF; - md=setDest(11); md->srcRaw=CM(STK_THR); md->weight=100; md->swtch=DSW_THR; md->curve=CV(5); md->carryTrim=TRIM_OFF; md->mltpx=MLTPX_REP; + md=setDest(9); md->srcRaw=SRC_ELE; md->weight= 60; + md=setDest(10); md->srcRaw=SRC_AIL; md->weight=-52; + md=setDest(11); md->srcRaw=SRC_THR; md->weight= 70; md->swtch=DSW_ID0; md->curve=CV(3); md->carryTrim=TRIM_OFF; + md=setDest(11); md->srcRaw=SRC_THR; md->weight= 70; md->swtch=DSW_ID1; md->curve=CV(4); md->carryTrim=TRIM_OFF; + md=setDest(11); md->srcRaw=SRC_THR; md->weight= 70; md->swtch=DSW_ID2; md->curve=CV(4); md->carryTrim=TRIM_OFF; + md=setDest(11); md->srcRaw=SRC_THR; md->weight=100; md->swtch=DSW_THR; md->curve=CV(5); md->carryTrim=TRIM_OFF; md->mltpx=MLTPX_REP; //Set up Curves setCurve(CURVE5(1), heli_ar1); diff --git a/src/templates.h b/src/templates.h index 60014d348..253e1e5a4 100644 --- a/src/templates.h +++ b/src/templates.h @@ -62,7 +62,6 @@ #define TRIM_ON 0 #define TRIM_OFF 1 -#define CM(x) (CONVERT_MODE(x)) //good for SRC #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