static bool eeLoadGeneral() { theFile.openRd(FILE_GENERAL); memset(&g_eeGeneral, 0, sizeof(EEGeneral)); // uint8_t sz = theFile.readRlc((uint8_t*)&g_eeGeneral, sizeof(EEGeneral)); theFile.readRlc((uint8_t*)&g_eeGeneral, sizeof(EEGeneral)); validateName( g_eeGeneral.ownerName, sizeof(g_eeGeneral.ownerName) ) ; // for(uint8_t i=0; i<sizeof(g_eeGeneral.ownerName);i++) // makes sure name is valid // { // uint8_t idx = char2idx(g_eeGeneral.ownerName[i]); // g_eeGeneral.ownerName[i] = idx2char(idx); // } if(g_eeGeneral.myVers<MDVERS) { sysFlags |= sysFLAG_OLD_EEPROM; // if old EEPROM - Raise flag g_eeGeneral.myVers = MDVERS; // update myvers STORE_GENERALVARS; } // if(sz>(sizeof(EEGeneral)-20)) for(uint8_t i=0; i<12;i++) sum+=g_eeGeneral.calibMid[i]; return g_eeGeneral.chkSum == evalChkSum() ; }
void eeGeneralDefault() { memset(&g_eeGeneral,0,sizeof(g_eeGeneral)); g_eeGeneral.myVers = MDVERS; // g_eeGeneral.currModel= 0; g_eeGeneral.contrast = LCD_NOMCONTRAST; g_eeGeneral.vBatWarn = 90; g_eeGeneral.stickMode= 1; for (uint8_t i = 0; i < 7; ++i) { g_eeGeneral.calibMid[i] = 0x200; g_eeGeneral.calibSpanNeg[i] = 0x300; g_eeGeneral.calibSpanPos[i] = 0x300; } setNameP(g_eeGeneral.ownerName,PSTR(STR_ME)); // strncpy_P(g_eeGeneral.ownerName,PSTR(STR_ME),10); g_eeGeneral.chkSum = evalChkSum() ; }
void generalDefault() { memset(&g_eeGeneral,0,sizeof(g_eeGeneral)); g_eeGeneral.myVers = MDVERS; // g_eeGeneral.currModel= 0; g_eeGeneral.contrast = 18; g_eeGeneral.vBatWarn = 65; g_eeGeneral.stickMode= 1; g_eeGeneral.disablePotScroll= 1; g_eeGeneral.bright = 50 ; g_eeGeneral.volume = 2 ; g_eeGeneral.lightSw = MAX_SKYDRSWITCH ; // ON for (int i = 0; i < NUM_ANALOG_CALS ; ++i ) { *CalibMid[i] = 0x400 ; *CalibSpanPos[i] = 0x300 ; *CalibSpanNeg[i] = 0x300 ; } strncpy_P(g_eeGeneral.ownerName,PSTR(STR_ME), 10); g_eeGeneral.chkSum = evalChkSum() ; }
void menuCommonCalib(uint8_t event) { for (uint8_t i=0; i<NUM_STICKS+NUM_POTS; i++) { //get low and high vals for sticks and trims int16_t vt = anaIn(i); reusableBuffer.calib.loVals[i] = min(vt, reusableBuffer.calib.loVals[i]); reusableBuffer.calib.hiVals[i] = max(vt, reusableBuffer.calib.hiVals[i]); #if defined(PCBTARANIS) if(i >= NUM_STICKS && i < NUM_STICKS+NUM_POTS-2) { #else if (i >= NUM_STICKS) { #endif reusableBuffer.calib.midVals[i] = (reusableBuffer.calib.hiVals[i] + reusableBuffer.calib.loVals[i]) / 2; } } s_noScroll = reusableBuffer.calib.state; // make sure we don't scroll while calibrating switch(event) { case EVT_ENTRY: reusableBuffer.calib.state = 0; break; case EVT_KEY_BREAK(KEY_ENTER): reusableBuffer.calib.state++; break; } switch (reusableBuffer.calib.state) { case 0: // START CALIBRATION lcd_putsLeft(3*FH, STR_MENUTOSTART); break; case 1: // SET MIDPOINT lcd_putsAtt(0*FW, 2*FH, STR_SETMIDPOINT, s_noScroll ? INVERS : 0); lcd_putsLeft(3*FH, STR_MENUWHENDONE); for (uint8_t i=0; i<NUM_STICKS+NUM_POTS; i++) { reusableBuffer.calib.loVals[i] = 15000; reusableBuffer.calib.hiVals[i] = -15000; reusableBuffer.calib.midVals[i] = anaIn(i); } break; case 2: // MOVE STICKS/POTS STICK_SCROLL_DISABLE(); lcd_putsAtt(0*FW, 2*FH, STR_MOVESTICKSPOTS, s_noScroll ? INVERS : 0); lcd_putsLeft(3*FH, STR_MENUWHENDONE); for (uint8_t i=0; i<NUM_STICKS+NUM_POTS; i++) { if (abs(reusableBuffer.calib.loVals[i]-reusableBuffer.calib.hiVals[i])>50) { g_eeGeneral.calibMid[i] = reusableBuffer.calib.midVals[i]; int16_t v = reusableBuffer.calib.midVals[i] - reusableBuffer.calib.loVals[i]; g_eeGeneral.calibSpanNeg[i] = v - v/STICK_TOLERANCE; v = reusableBuffer.calib.hiVals[i] - reusableBuffer.calib.midVals[i]; g_eeGeneral.calibSpanPos[i] = v - v/STICK_TOLERANCE; } } break; case 3: g_eeGeneral.chkSum = evalChkSum(); eeDirty(EE_GENERAL); reusableBuffer.calib.state = 4; break; default: reusableBuffer.calib.state = 0; break; } doMainScreenGraphics(); #if defined(PCBTARANIS) drawPotsBars(); #endif } void menuGeneralCalib(uint8_t event) { SIMPLE_MENU(STR_MENUCALIBRATION, menuTabDiag, e_Calib, 1); menuCommonCalib(event); }