Calibration screen. Bugs and optimizations.
This commit is contained in:
+41
-40
@@ -945,42 +945,42 @@ inline void editExpoVals(uint8_t event, uint8_t which, bool edit, uint8_t y, uin
|
||||
switch(which)
|
||||
{
|
||||
case 0:
|
||||
lcd_outdezAtt(9*FW, y, ed->expo, invBlk);
|
||||
if(edit) CHECK_INCDEC_MODELVAR(event, ed->expo,-100, 100);
|
||||
lcd_outdezAtt(9*FW+5, y, ed->weight, invBlk);
|
||||
if(edit) CHECK_INCDEC_MODELVAR(event, ed->weight, 0, 100);
|
||||
break;
|
||||
case 1:
|
||||
lcd_outdezAtt(9*FW, y, ed->weight, invBlk);
|
||||
if(edit) CHECK_INCDEC_MODELVAR(event, ed->weight, 0, 100);
|
||||
lcd_outdezAtt(9*FW+5, y, ed->expo, invBlk);
|
||||
if(edit) CHECK_INCDEC_MODELVAR(event, ed->expo, -100, 100);
|
||||
break;
|
||||
case 2:
|
||||
{
|
||||
int8_t phase = ed->negPhase ? -ed->phase : +ed->phase;
|
||||
putsFlightPhase(6*FW, y, phase, invBlk);
|
||||
putsFlightPhase(6*FW+5, y, phase, invBlk);
|
||||
if(edit) { phase = checkIncDecModel(event, phase, -MAX_PHASES, MAX_PHASES); ed->negPhase = (phase < 0); ed->phase = abs(phase); }
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
putsSwitches(6*FW, y, ed->swtch, invBlk);
|
||||
putsSwitches(6*FW+5, y, ed->swtch, invBlk);
|
||||
if(edit) CHECK_INCDEC_MODELVAR(event, ed->swtch, -MAX_DRSWITCH, MAX_DRSWITCH);
|
||||
break;
|
||||
case 4:
|
||||
lcd_putsnAtt(6*FW, y, PSTR(CURV_STR)+3*(ed->curve+(ed->curve >= CURVE_BASE+4 ? 4 : 0)), 3, invBlk);
|
||||
lcd_putsnAtt(6*FW+5, y, PSTR("---x>0x<0")+9-3*ed->mode, 3, invBlk);
|
||||
if(edit) ed->mode = 4 - checkIncDecModel(event, 4-ed->mode, 1, 3);
|
||||
break;
|
||||
case 5:
|
||||
putsCurve(6*FW+5, y, ed->curve+(ed->curve >= CURVE_BASE+4 ? 4 : 0), invBlk);
|
||||
if(invBlk) CHECK_INCDEC_MODELVAR(event, ed->curve, 0, 15);
|
||||
if(invBlk && ed->curve>=CURVE_BASE && event==EVT_KEY_FIRST(KEY_MENU)) {
|
||||
s_curveChan = ed->curve - (ed->curve >= CURVE_BASE+4 ? CURVE_BASE-4 : CURVE_BASE);
|
||||
pushMenu(menuProcCurveOne);
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
lcd_putsnAtt(6*FW, y, PSTR("---PosNeg")+9-3*ed->mode, 3, invBlk);
|
||||
if(edit) ed->mode = 4 - checkIncDecModel(event, 4-ed->mode, 1, 3);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void menuProcExpoOne(uint8_t event)
|
||||
{
|
||||
SIMPLE_SUBMENU("EXPO/DR", 6);
|
||||
SIMPLE_SUBMENU("DR/EXPO", 6);
|
||||
|
||||
ExpoData *ed = expoaddress(s_currIdx);
|
||||
|
||||
@@ -991,7 +991,7 @@ void menuProcExpoOne(uint8_t event)
|
||||
uint8_t y = FH;
|
||||
|
||||
for (uint8_t i=0; i<7; i++) {
|
||||
lcd_putsnAtt(0, y, PSTR("Expo WeightPhase Swtch Curve Mode ")+6*i, 6, 0);
|
||||
lcd_putsnAtt(0, y, PSTR("Weight""Expo ""Phase ""Swtch ""When ""Curve "" ")+6*i, 6, 0);
|
||||
editExpoVals(event, i, sub==i, y, s_currIdx);
|
||||
y+=FH;
|
||||
}
|
||||
@@ -1060,7 +1060,7 @@ void menuProcMixOne(uint8_t event)
|
||||
break;
|
||||
case 4:
|
||||
lcd_putsAtt( 2*FW,y,PSTR("Curves"),0);
|
||||
lcd_putsnAtt( FW*10,y,PSTR(CURV_STR)+md2->curve*3,3,attr);
|
||||
putsCurve(FW*10, y, md2->curve, attr);
|
||||
if(attr) CHECK_INCDEC_MODELVAR( event, md2->curve, 0,MAX_CURVE5+MAX_CURVE9+7-1);
|
||||
if(attr && md2->curve>=CURVE_BASE && event==EVT_KEY_FIRST(KEY_MENU)){
|
||||
s_curveChan = md2->curve-CURVE_BASE;
|
||||
@@ -1133,8 +1133,8 @@ inline void displayMixerLine(uint8_t row, uint8_t mix, uint8_t ch, uint8_t idx,
|
||||
if (attr != 0)
|
||||
CHECK_INCDEC_MODELVAR(event, md->weight, -125, 125);
|
||||
|
||||
if (md->curve) lcd_putsnAtt(12*FW+7, y, PSTR(CURV_STR)+md->curve*3, 3, 0);
|
||||
if (md->swtch) putsSwitches(16*FW+6, y, md->swtch, 0);
|
||||
if (md->curve) putsCurve(12*FW+7, y, md->curve);
|
||||
if (md->swtch) putsSwitches(16*FW+6, y, md->swtch);
|
||||
|
||||
char cs = ' ';
|
||||
if (md->speedDown || md->speedUp)
|
||||
@@ -1161,26 +1161,24 @@ inline void displayExpoLine(uint8_t row, uint8_t expo, uint8_t ch, uint8_t idx,
|
||||
uint8_t y = (row-s_pgOfs)*FH;
|
||||
ExpoData *ed = expoaddress(expo);
|
||||
|
||||
lcd_outdezAtt(7*FW, y, ed->expo, 0);
|
||||
|
||||
uint8_t attr = ((s_copyMode || cur != row) ? 0 : INVERS);
|
||||
lcd_outdezAtt(10*FW, y, ed->weight, attr);
|
||||
lcd_outdezAtt(6*FW-2, y, ed->weight, attr);
|
||||
if (attr != 0)
|
||||
CHECK_INCDEC_MODELVAR(event, ed->weight, 0, 100);
|
||||
|
||||
putsSwitches(11*FW+FW/2, y, ed->swtch, 0);
|
||||
if (ed->curve) lcd_putsnAtt(16*FW, y, PSTR(CURV_STR)+ed->curve*3, 3, 0);
|
||||
if (ed->mode!=3) lcd_putc(20*FW, y, ed->mode == 2 ? 127 : 126);//'|' : (stkVal[i] ? '<' : '>'),0);*/
|
||||
lcd_outdezAtt(9*FW+1, y, ed->expo, 0);
|
||||
putsFlightPhase(10*FW, y, ed->negPhase ? -ed->phase : +ed->phase);
|
||||
putsSwitches(13*FW+4, y, ed->swtch, 0); // normal switches
|
||||
if (ed->mode!=3) lcd_putc(17*FW, y, ed->mode == 2 ? 127 : 126);//'|' : (stkVal[i] ? '<' : '>'),0);*/
|
||||
if (ed->curve) putsCurve(18*FW+2, y, ed->curve+(ed->curve >= CURVE_BASE+4 ? 4 : 0));
|
||||
|
||||
if (s_copyMode) {
|
||||
if ((s_copyMode==COPY_MODE || s_copyTgtOfs == 0) && s_copySrcCh == ch && expo == (s_copySrcIdx + (s_copyTgtOfs<0))) {
|
||||
/* draw a border around the raw on selection mode (copy/move) */
|
||||
lcd_rect(22, y-1, DISPLAY_W-1-21, 9, s_copyMode == COPY_MODE ? 0xff : 0x55);
|
||||
lcd_rect(18, y-1, DISPLAY_W-18, 9, s_copyMode == COPY_MODE ? 0xff : 0x55);
|
||||
}
|
||||
|
||||
if (row == cur) {
|
||||
/* invert the raw when it's the current one */
|
||||
lcd_filled_rect(23, y, DISPLAY_W-1-23, 7);
|
||||
lcd_filled_rect(19, y, DISPLAY_W-20, 7);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1197,7 +1195,7 @@ void menuProcExpoMix(uint8_t expo, uint8_t __event)
|
||||
}
|
||||
|
||||
SIMPLE_MENU_NOTITLE(menuTabModel, expo ? e_ExposAll : e_MixAll, s_maxLines);
|
||||
TITLEP(expo ? PSTR("EXPO/DR") : PSTR("MIXER"));
|
||||
TITLEP(expo ? PSTR("DR/EXPO") : PSTR("MIXER"));
|
||||
|
||||
uint8_t sub = m_posVert;
|
||||
|
||||
@@ -1420,19 +1418,20 @@ void menuProcLimits(uint8_t event)
|
||||
if((g_chans512[k] - v) < -50) swVal[k] = (false==ld->revert);
|
||||
putsChn(0,y,k+1,0);
|
||||
lcd_putcAtt(12*FW+FW/2, y, (swVal[k] ? 127 : 126),0); //'<' : '>'
|
||||
for(uint8_t j=0; j<4;j++){
|
||||
for (uint8_t j=0; j<4; j++) {
|
||||
uint8_t attr = ((sub==k && m_posHorz==j) ? (s_editMode ? BLINK : INVERS) : 0);
|
||||
uint8_t active = (attr && (s_editMode || p1valdiff)) ;
|
||||
switch(j)
|
||||
{
|
||||
case 0:
|
||||
lcd_outdezAtt( 8*FW, y, ld->offset, attr|PREC1);
|
||||
if(attr && (s_editMode || p1valdiff)) {
|
||||
if (active) {
|
||||
ld->offset = checkIncDec(event, ld->offset, -1000, 1000, EE_MODEL);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
lcd_outdezAtt( 12*FW, y, (int8_t)(ld->min-100), attr);
|
||||
if(attr && (s_editMode || p1valdiff)) {
|
||||
if (active) {
|
||||
ld->min -= 100;
|
||||
if(g_model.extendedLimits)
|
||||
CHECK_INCDEC_MODELVAR( event, ld->min, -125,125);
|
||||
@@ -1443,7 +1442,7 @@ void menuProcLimits(uint8_t event)
|
||||
break;
|
||||
case 2:
|
||||
lcd_outdezAtt( 17*FW, y, (int8_t)(ld->max+100), attr);
|
||||
if(attr && (s_editMode || p1valdiff)) {
|
||||
if (active) {
|
||||
ld->max += 100;
|
||||
if(g_model.extendedLimits)
|
||||
CHECK_INCDEC_MODELVAR( event, ld->max, -125,125);
|
||||
@@ -1454,7 +1453,7 @@ void menuProcLimits(uint8_t event)
|
||||
break;
|
||||
case 3:
|
||||
lcd_putsnAtt( 18*FW, y, PSTR("---INV")+ld->revert*3,3,attr);
|
||||
if(attr && (s_editMode || p1valdiff)) {
|
||||
if (active) {
|
||||
CHECK_INCDEC_MODELVAR(event, ld->revert, 0, 1);
|
||||
}
|
||||
break;
|
||||
@@ -1620,17 +1619,18 @@ void menuProcFunctionSwitches(uint8_t event)
|
||||
FuncSwData *sd = &g_model.funcSw[k];
|
||||
for (uint8_t j=0; j<2; j++) {
|
||||
uint8_t attr = ((sub==k && m_posHorz==j) ? (s_editMode ? BLINK : INVERS) : 0);
|
||||
uint8_t active = (attr && (s_editMode || p1valdiff));
|
||||
switch (j) {
|
||||
case 0:
|
||||
putsSwitches(1*FW, y, sd->swtch, attr);
|
||||
if (attr && (s_editMode || p1valdiff)) {
|
||||
if (active) {
|
||||
CHECK_INCDEC_MODELVAR( event, sd->swtch, -MAX_SWITCH, MAX_SWITCH);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (sd->swtch) {
|
||||
lcd_putsnAtt(5*FW, y, PSTR(FSWITCH_STR)+FSW_LEN_FUNC*sd->func, FSW_LEN_FUNC, attr);
|
||||
if (attr && (s_editMode || p1valdiff)) {
|
||||
if (active) {
|
||||
CHECK_INCDEC_MODELVAR( event, sd->func, 0, FUNC_LAST);
|
||||
}
|
||||
}
|
||||
@@ -1658,18 +1658,19 @@ void menuProcSafetySwitches(uint8_t event)
|
||||
putsChn(0,y,k+1,0);
|
||||
for(uint8_t j=0; j<=2;j++){
|
||||
uint8_t attr = ((m_posVert-1==k && m_posHorz==j) ? (s_editMode ? BLINK : INVERS) : 0);
|
||||
uint8_t active = (attr && (s_editMode || p1valdiff));
|
||||
switch(j)
|
||||
{
|
||||
case 0:
|
||||
case 0:
|
||||
putsSwitches(6*FW, y, sd->swtch , attr);
|
||||
if(attr && (s_editMode || p1valdiff)) {
|
||||
CHECK_INCDEC_MODELVAR( event, sd->swtch, -MAX_SWITCH, MAX_SWITCH);
|
||||
if (active) {
|
||||
CHECK_INCDEC_MODELVAR( event, sd->swtch, -MAX_SWITCH, MAX_SWITCH);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
case 1:
|
||||
lcd_outdezAtt(16*FW, y, sd->val, attr);
|
||||
if(attr && (s_editMode || p1valdiff)) {
|
||||
CHECK_INCDEC_MODELVAR( event, sd->val, -125, 125);
|
||||
if (active) {
|
||||
CHECK_INCDEC_MODELVAR( event, sd->val, -125, 125);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user