New EEPROM format 205

Introduction of differential in Mixers
Introduction of Switches as Mixer Source (FULL now removed)
Negative curves in Mixers
Optimizations in Mixer
Extended chars for localization
Swedish translations
Beep length updated
This commit is contained in:
bsongis
2012-03-04 17:25:35 +00:00
parent ab6f9108b0
commit 040160efc9
24 changed files with 718 additions and 345 deletions
+24 -24
View File
@@ -80,7 +80,7 @@ const pm_char * const n_Templates[] PROGMEM =
MixData* setDest(uint8_t dch)
{
uint8_t i = 0;
while ((g_model.mixData[i].destCh<=dch) && (g_model.mixData[i].destCh) && (i<MAX_MIXERS)) i++;
while (i<MAX_MIXERS && g_model.mixData[i].srcRaw && g_model.mixData[i].destCh <= dch) i++;
if(i==MAX_MIXERS) return &g_model.mixData[0];
memmove(&g_model.mixData[i+1],&g_model.mixData[i],
@@ -130,8 +130,8 @@ void applyTemplate(uint8_t idx)
//ICC(vSTK) -> STK
#define ICC(x) icc[(x)-1]
uint8_t icc[4] = {0};
for(uint8_t i=1; i<=4; i++) //generate inverse array
for(uint8_t j=1; j<=4; j++) if(CC(i)==j) icc[j-1]=i;
for (uint8_t i=0; i<4; i++) //generate inverse array
for(uint8_t j=0; j<4; j++) if(CC(i+1)==j+1) icc[j]=i;
switch (idx){
// Simple 4-Ch
@@ -145,7 +145,7 @@ void applyTemplate(uint8_t idx)
// T-Cut
case (1):
md=setDest(ICC(STK_THR)); md->srcRaw=MIX_HALF; md->weight=-100; md->swtch=DSW_THR; md->mltpx=MLTPX_REP;
md=setDest(ICC(STK_THR)); md->srcRaw=MIX_MAX; md->weight=-100; md->swtch=DSW_THR; md->mltpx=MLTPX_REP;
break;
// V-Tail
@@ -171,9 +171,9 @@ void applyTemplate(uint8_t idx)
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;
md=setDest(5); md->srcRaw=SRC_ELE; md->weight=-36;
md=setDest(5); md->srcRaw=SRC_AIL; md->weight=-62;
md=setDest(5); md->srcRaw=SRC_THR; md->weight= 55;
break;
// Heli Setup
@@ -192,24 +192,24 @@ void applyTemplate(uint8_t idx)
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_HALF; md->weight=-125; md->swtch=DSW_THR; md->mltpx=MLTPX_REP; 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=SRC_RUD; md->weight=100;
md=setDest(5); md->srcRaw=MIX_HALF; md->weight= 50; md->swtch=-DSW_GEA; md->carryTrim=TRIM_OFF;
md=setDest(5); md->srcRaw=MIX_HALF; md->weight=-50; md->swtch= DSW_GEA; md->carryTrim=TRIM_OFF;
md=setDest(5); md->srcRaw=STK_P3; md->weight= 40; md->carryTrim=TRIM_OFF;
md=setDest(4); md->srcRaw=MIX_MAX; md->weight= 50; md->swtch=-DSW_GEA; md->carryTrim=TRIM_OFF;
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(6); md->srcRaw=CH(9); md->weight= -50;
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(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(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;
md=setDest(8); md->srcRaw=SRC_ELE; md->weight= 60;
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;
md=setDest(10); 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);
@@ -221,10 +221,10 @@ void applyTemplate(uint8_t idx)
// Servo Test
case (6):
md=setDest(15); md->srcRaw=CH(16); md->weight= 100; md->speedUp = 8; md->speedDown = 8;
md=setDest(16); md->srcRaw=MIX_FULL; md->weight= 110; md->swtch=DSW_SW1;
md=setDest(16); md->srcRaw=MIX_HALF; md->weight=-110; md->swtch=DSW_SW2; md->mltpx=MLTPX_REP;
md=setDest(16); md->srcRaw=MIX_HALF; md->weight= 110; md->swtch=DSW_SW3; md->mltpx=MLTPX_REP;
md=setDest(14); md->srcRaw=CH(16); md->weight= 100; md->speedUp = 8; md->speedDown = 8;
md=setDest(15); md->srcRaw=MIX_SW1; md->weight= 110; md->swtch=DSW_SW1;
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);