Keresés

Hirdetés

Új hozzászólás Aktív témák

  • Danex

    addikt

    válasz DeniL #1867 üzenetére

    Lehet erre a do-while jobb megoldás lenne mint az egymásba ágyazott if-ek.

    De ha if-et akarunk, akkor szerintem úgy lehetne megoldani a gondot, hogy a kiugrásnál (else) le kéne mentened , hogy mikor ugrott ki és ,hogy ha újra lefut a loop akkor onnan folytassa.

    De lehet hülyeséget mondok, így egy oszlopba téve (tagolás nélkül) kb olvashatatlan számomra a kód :U

    [ Szerkesztve ]

  • JozsBiker

    aktív tag

    válasz DeniL #1867 üzenetére

    Szerintem is igaza van Danex -nek, a feladat leírása alapján tipikusan while -lal kellene operálnod. 6 db while ciklus és kész. Az első addig fut, amíg az első tag -et meg nem kapja. Ha nem azt kapja akkor hibaüzenet. Ha megkapta megy a második while -ra ami a második tag -et várja, és így tovább.
    Abban is igaza van Danex -nek, hogy így strukturálatlanul képtelenség áttekinteni a kódot.

    Valahogy így:

    idnumber = ""; // Adunk egy indulóértéket ami biztosan nem egyezik egyik UID -vel sem

    while ( idnumber != myUID1 ) // Amíg nincs egyezés nem lép ki a ciklusból
    {
    NfcTag tag = nfc.read();
    idnumber = tag.getUidString();
    if ( idnumber != myUID1 ) Serial.println("Not correct tag!");
    }
    Serial.println("This is the first"); // Megvan az első, hiszen elhagyta a ciklust
    delay(4000);

    while ( idnumber != myUID2 )
    {
    NfcTag tag = nfc.read();
    idnumber = tag.getUidString();
    if ( idnumber != myUID2 ) Serial.println("Not correct tag!");
    }
    Serial.println("This is the second"); // Megvan a második, hiszen elhagyta a ciklust
    delay(4000);

    stb.

    De biztos van egyszerűbb megoldás is :-)

Új hozzászólás Aktív témák