void loop()
{
d = Serial1.readString();
if(d.indexOf("xxxxxxxxx") >=0)
{
Serial.println("call is from known number");
} else {
Serial.println("call is not from known number");
}
}
Wszystko co jest w loop (), wykonauje sie ciagle, to taka petla while (true). Jezeli chcesz to wykonac tylko raz, to ja bym to zrobil tak:
Tworzysz zmienna, do ktorej dopisujesz 0.
Sprawdzasz czy d.indexOf("xxxxxxxxx") >=0 i czy zmienna ktora zadeklarowales jest rozna od 1. Jesli nie to wykonujesz sobie else, jesli wszytsko sie zgadza wykona sie Twoj if i zrobi to tylko raz.
Ja wolabym tu pracowac na zmiennej bool, niz liczbowej. Pytanie proste, czy ma sie cos jeszcze dziac, czy tylko sprawdzanie czy numer jest znany lub nie znany oraz czy else powinno tez sie wykonac tylko raz.
moja_zmienna_typu_bool = false;
void loop ()
{
d = Serial1.readString();
if((d.indexOf("xxxxxxxxx") >= 0) && (moja_zmienna_typu_bool == false)) {
Serial.println ("call is from known number");
moja_zmienna_typu_bool = true;
}else {}
}
Tu ze zmienna typu bool, jak wolisz ze zmienna liczbowa, to przeksztalc kod i tyle. Powinno wykonac sie tylko raz.