оптимизация кода. совет нуженю
- Войдите на сайт для отправки комментариев
Вс, 17/05/2015 - 12:23
Привет всем нужна помощь по оптимизации кода.
вот что было
boolean aleks= EEPROM.read(0);
int addr_aleks = 0;
boolean aleksandr= EEPROM.read(1);
int addr_aleksandr = 1;
boolean anton= EEPROM.read(2);
if (uidDec == 691247130)
{
if (anton == true)
{
printtrue ("aleks.txtt");
}
if (anton == false)
{
printfalse ("aleks.txtt");
}
myFile.close();
aleks= ! aleks;
EEPROM.write(addr_aleks, aleks);
}
проблема втом что на каждого человека пришлось писать этот код что было полным бредом.
начил оптимизацию вот что щас получилось
char* karti[]={"4200285874","2123090467","691247130","3104822041","3645938714"}; //массив карт
char* users[]={"aleks","alex","anton","nasti","vova"};// массив пользователей
....
...
for (int i=0; i <= 5; i++){
if (uidDec == int(karti[i]))
{
boolean loginstatus= EEPROM.read(i);
if (loginstatus == true)
{
printtrue (users[i]);
}
if (loginstatus == false)
{
printfalse (users[i]);
}
myFile.close();
loginstatus = ! loginstatus;
EEPROM.write(i, loginstatus);
}
}
...
...
void printfalse (String tex)
{
String s = tex;
s.toCharArray(Str1, s.length());
myFile.close();
myFile = SD.open(Str1, FILE_WRITE);
if (myFile) {
myFile.print(rtc.getDateStr());
myFile.print(" ; ");
myFile.println(rtc.getTimeStr());
myFile.close();
lcd.setCursor(2, 1);
lcd.print("OK");
tone(7,700,500);
}
}
void printtrue (String tex )
{
String s = tex;
s.toCharArray(Str1, s.length());
myFile.close();
myFile = SD.open(Str1, FILE_WRITE);
if (myFile) {
myFile.print(tex+" ; ");
myFile.print(rtc.getDateStr());
myFile.print(" ; ");
myFile.print(rtc.getTimeStr());
myFile.print(" ; ");
myFile.close();
lcd.setCursor(2, 1);
lcd.print("OK");
tone(7,500,500);
}
}
подскажите как специолисты что еще можно оптимизировать.