utente autorizzato

Perdonami ORSO2011 mi potresti fare un esempio; se io ho :

String codice valido="125S5R65D6"

come lo posso scrivere in array di char?????

questo un esempio semplice; non faccio controlli sulla lunghezza della stringa passata...pensaci tu...ovviamente la "parola" va passata dal monitor seriale abilitando NL & CR.

char passOK[] = "passOK";
char passCheck[sizeof(passOK)] = "";
byte ite = 0;

void setup() {
  Serial.begin(115200);
}

void loop() {
  if (Serial.available()) {
    char c = Serial.read();
    if (c != '\r' && c != '\n') {
      passCheck[ite] = c;
      ite++;
    }
    else if (c == '\n') {
      if ( strcmp(passOK, passCheck) == 0) {
        Serial.println("controllo passato!");
      }
      else {
        Serial.println("controllo fallito!");
      }
      ite = 0;
      memset(passCheck, '\0', sizeof(passCheck));
    }
  }
}

se passi qualsiasi cosa che non sia passOK (attenzione alle maiuscole) ti darà controllo fallito; diversamente controllo passato

louis83:
Ripeto… a me serve solo capire come fare a leggere riga per riga e confrontare ogni riga con il mio codice

Te l’ho detto, quello lo fa la funzione di Standardoil. Se tu provassi a capire un minimo come funziona e quindi come usarla. Ma non ci riesci per gli stessi motivi per i quali il tuo codice ha tutte quelle altre cose che ti ho suggerito di modificare, ossia stai facendo “taglia e cuci” di pezzi di codice senza capire esattamente cosa facciano e/o cosa tu stia facendo.

Non dico di fare tutto quello che ti ho segnalato (sono più che altro “consigli” sia per migliorare il codice sia per evitare blocchi o comportamenti imprevisti per colpa delle String, sia per cercare anche di farti capire alcune cose che evidentemente ti sfuggono), ma intendo che dovresti rispondere almeno a queste domande:

dopo “if (verificaCodice(codiceLetto, codiceAutorizzato))” cosa succede? Quella graffa che c’è dopo cosa chiude? E la funzione “verificaCodice” che qui usi, dov’è? E la funzione “autorizzato()” di Standardoil, dov’è?

Quindi dato che qui nessuno scrive codice “per conto terzi”, ora o rispondi a quello che ti chiedo, o lascio la parola ad altri.

>louis83:

  1. NON aprire più thread sullo stesso argomento/problema ... ne avevi aperti TRE ... ora, il più vecchio lo blocco e lo lascio morire li, tu continui SOLO su questo (che è l'unione di due thread) senza aprirne altri per la stessa/simile problematica.

  2. rileggi con attenzione il punto 16.1 del REGOLAMENTO.

  3. con i copia/incolla, senza studiare e senza capire ... al massimo fai lampeggiare un LED ... per cose più complesse, occorre studiare e occorre capire il codice che si usa ... ::slight_smile:

>ORSO2001 rammentati di quanto è scritto al punto 16.13 (... e mi sembra di avertelo già ricordato in passato :wink:) ... evitiamo la "pappa fatta" :grin:

Guglielmo

@Guglielmo: hai ragione sul "niente pappa fatta"...infatti, secondo me, i due codici che ho postato non gli risolvono il problema...il primo fa solo una "conta" della rappresentazione ASCII dei numeri; il secondo fa solo una verifica di una stringa con un'altra...all'OP implementare questo secondo nello sketch precedente...se non ho capito male a lui serve discriminare/valutare sia un codice solo numerico sia un alfanumerico...e magari confrontare il "letto" con una serie valida di codici...siamo ancora molto lontani...poi louis83 usa String...io gli ho postato un esempio con string...deve ben rivedere il suo codice :smiley:

ORSO2001:
@Guglielmo: hai ragione sul "niente pappa fatta"...

Guglielmo