void SettingsMenu::editItem(uint8_t index, uint8_t key) { int dir = -1; if(key == BUTTON_INC) dir = 1; // dir *= keyboard.getSpeedFactor(); START_CASE_COUNTER; switch(index) { #ifdef ENABLE_LCD_BACKLIGHT case NEXT_CASE: changeBacklight(dir); break; #endif #ifdef ENABLE_FAN case NEXT_CASE: changeTemp(p_.fanTempOn_, dir); break; #endif #ifdef ENABLE_T_INTERNAL case NEXT_CASE: changeTemp(p_.dischargeTempOff_, dir); break; #endif case NEXT_CASE: changeMax(p_.externT_, dir, 1); break; case NEXT_CASE: changeTemp(p_.externTCO_,dir); break; case NEXT_CASE: changeDeltaTemp(p_.deltaT_,dir); break; case NEXT_CASE: changeMax(p_.deltaV_NiMH_, dir, 20); break; case NEXT_CASE: changeMax(p_.deltaV_NiCd_, dir, 20); break; case NEXT_CASE: change1Max(p_.CDcycles_, dir, 5); break; case NEXT_CASE: change1Max(p_.capCutoff_, dir, 250); break; case NEXT_CASE: changeInputVolt(p_.inputVoltageLow_, dir); break; case NEXT_CASE: changeMaxSmart(p_.dischargeOffset_LiXX_, dir, Settings::MaxDischargeOffset_LiXX); break; case NEXT_CASE: changeBalanceError(p_.balancerError_, dir); break; case NEXT_CASE: changeMax(p_.UART_, dir, Settings::ExtDebugAdc); break; case NEXT_CASE: changeMax(p_.UARTspeed_, dir, Settings::UARTSpeeds-1); break; } }
int main(int argc, char* argv[]){ hd44780 lcd(14, 15, 24, 25, 8, 7); lcd.init(20, 4); lcd.setAutoscroll(hd44780::HSCROLL_LINE | hd44780::VSCROLL); rpihw::gpio &io = rpihw::gpio::get(); io.setup(23, rpihw::OUTPUT); io.write(23, rpihw::HIGH); bool *backlight = new bool(true); uint8_t blank[8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; lcd.defChar(hd44780::CCHAR2, blank); getDatabaseDetails(&DBHOST, &USER, &PASSWORD, &DATABASE); retrieveSQL(entries, lcd); entries.erase(0); int card = 0; lcd.move(0,2); printfl("DeltaPi ver. 0.9.0",lcd); do{ moveAndClearLine(0,0,lcd); lcd.write("Retrieving database"); retrieveSQL(entries, lcd); scanCard(entries, card, lcd); if (!(*backlight)) changeBacklight(io, backlight, lcd); if (card > 10){ moveAndClearLine(0,1,lcd); lcd.write("Retrieving database"); retrieveSQL(entries, lcd); printInfo(entries, card, lcd); transaction(entries, card, lcd); } else if (card == 0){ printHelp(lcd); }else if (card == 1){ lcd.write("Retrieving database"); retrieveSQL(entries, lcd); printSummary(entries, lcd); } else if (card == 3){ lcd.clear(); lcd.move(0,1); printfl("Retrieving database", lcd); retrieveSQL(entries, lcd); } else if (card == 4){ printTime(lcd); } else if (card == 6){ printLastCoffee(lcd); } else if (card == 9){ changeBacklight(io, backlight, lcd); } }while (card != -1); lcd.clear(); printfl(" Closing DeltaPi", lcd); lcd.move(6,2); lcd.write("Goodbye! .",128); io.write(23, rpihw::LOW); delete backlight; return 0; }