3 пароля с библиотекой Password.h

Bard
Offline
Зарегистрирован: 04.03.2017

Доброго времени суток.

Пока я еще начинающий ардуинщик, но замахиваться по мелочам скучно, а потому, как водится, сразу поставил задачу посложнее.

Хочу сделать все тот же популярный кодовый замок, но с несколькими кодами, чтобы была разная реакция. Тоесть чтобы на выходе получить что-то вроде:

void checkPassword(){
  if (password.evaluate() == 1){
    Serial.println("Success 1");
  }
  else if (password.evaluate() == 2){
    Serial.println("Success 2");
  }
  else if (password.evaluate() == 3){
    Serial.println("Success 3");
  }
  else{
    Serial.println("Wrong");
  }
}

Попытался вникнуть в суть библиотеки Password.h, но не могу разобраться как ее правильно адаптировать для 3 паролей.

Прошу знающих людей подсказать, как это сделать грамотно.

Заранее благодарю за конструктив!

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Создайте несколько экземпляров класса "password", установите для каждого свой пароль и определяйте совпадает ли введённый посетителем пароль с любым из заданных.
 

Password password1 = Password( "1234" );
Password password2 = Password( "4567" );
Password password3 = Password( "7890" );
void checkPassword(){
  if (password1.evaluate()){
    Serial.println("Success 1");
  }
  else if (password2.evaluate()){
    Serial.println("Success 2");
  }
  else if (password3.evaluate()){
    Serial.println("Success 3");
  }
  else{
    Serial.println("Wrong");
  }
} 
Bard
Offline
Зарегистрирован: 04.03.2017

Я правильно предполагаю, что в таком случае нужно и вот этот код переписать примерно так? Или я еще что-то не учел/напутал?

//take care of some special events
void keypadEvent(KeypadEvent eKey){
  switch (keypad.getState()){
    case PRESSED:
	Serial.print("Pressed: ");
	Serial.println(eKey);
	switch (eKey){
	  case '*': checkPassword(); break;
	  case '#': password.reset(); password2.reset(); break;
	  default: password.append(eKey); password2.append(eKey); break;
     }
  }
}
P.S. Да, с такими доработками заработало. Пойду учиться их дружить с EEPROM, но это тут уже обсуждалось...
ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

Bard пишет:

Пока я еще начинающий ардуинщик, но замахиваться по мелочам скучно, а потому, как водится, сразу поставил задачу посложнее.

Хочу сделать все тот же популярный кодовый замок, но с несколькими кодами, чтобы была разная реакция. 

Вы бы всё-таки начали с мигания светодиодом. а потом несколькими светодиодами с разнчми частотами!!! И вот когда Вы это освоите, можете возвращаться к замку.