[Algoritmo] Mutua esclusione multipla. Non ci riesco...

Mauro non perdo dati, perchè la scheda che raccoglie i dati dalle seriali è un'altra scheda (una DUE) la quale li passa (solo se sono valori sotto soglia, quindi errori) in I2C ad una seconda scheda che fa l'analisi di questi dati, tirando fuori l'Highlander.

Sembra che ho risolto con questo sistema, ma era l'una di notte e l'Elettromeccanico dove fare le sue cose e mi guardava male, quindi ho dovuto concludere in fretta senza fare troppe prove (leggi: un numero sufficiente di simulazioni di allarme per verificare che l'Highlander lo sia effettivamente in tutti i rami della macchina)

Quindi:


Faccio partire un Timer ( millis())

Raccolgo dati per circa 30 secondi
infilo i dati ricevuti in un array[ ] (la board è una MEGA2560, non un 328!)
Se un codice errore è già stato letto, lo scarto

Fermo il timer a 30 secondi.
La MCU diventa sorda
Dopo di che eseguo la ricerca in mezzo a quell'array dell'Highlander
lo stampo sulla riga 1 del Display

La MCU si rimette in ascolto
Solito timer, solito riempimento dell'array e solito stop

Se l'allarme è sempre lo stesso di prima, viene ignorato, se ce n'è uno nuovo, lo stampa sulla riga 2 del Display

In pratica uso il principio di una macchina fotografica di cui regolo a 30 sec il tempo di esposizione e, fatta la fotografia, analizzo i dati all'interno di quella foto. Poi via un'altro scatto e altra analisi.

Insomma... keep simple.