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

MauroTec:
nid nel codice di BaBBuino il problema non è funzionale ma solo rappresentativo.
C'è chi riceve 10 e ancora non conosce ciò che riceverà dopo, ma già qui
può stabilire che i numeri superiori a 10 non gli interessano, perché se il contatto 9 è chiuso 10, 11, ... nmax non ricevono tensione. Se dopo il 10 dovesse arrivare il 9 lo deve prendere in considerazione ma la situazioni da 10 a nmax rimane invariata.

Per cui secondo me non ha neanche bisogno di collezionarli.

Ciao.

In effetti è così.

La comodità è che non ho necessità di velocità di reazioni da RealTime.

L'informazione è ad uso e consumo per il Manutentore dell'impianto, un Elettromeccanico, il quale quando riceve un allarme di fermo-macchina, tra che si alza dalla sedia del suo ufficio, cammina per mezzo stabilimento per arrivare al pannello di controllo, sono passati 2 minuti.

Quindi ho 120 secondi per fare un pò di smazzamento delle carte. Naturalmente mi bastano pochi secondi, ma è per indicare che non ci sono costrains di tempo.

Attualmente il circuito secondari (la seconda MEGA che riceve il pacchetto I2C da smazzare per vedere chi è l'HighLander) scrive su una riga il primo allarme che capita, poi, continuando nell'analisi, se c'è qualche allarme con priorità maggiore (cioè un contatto ancora più a monte) cancella quella stringa e ci sovrascrive quella del contatto a priorità maggiore, e ancora: se arriva un ulteriore contatto ancora più a monte, cancella la stringa e ci sovrascrive questa ultima.

E così via fino all'ultimo contatto possibile, quello incriminato, che sarà quello che ha priorità 1. Da quel momento, essendo la priorità messa nel mucchione di IF di valore x (es. 1 appunto), nessun IF con priorità superiore a 1 verrà più eseguita, e quello sarà l'allarme definitivo.

La cosa poco elegante è che, una volta attivato un allarme, sul display si vedono passare, e cancellare, i diversi allarmi fino a quello finale, cosa che impiega circa 7-10 secondi (L'Operatore nemmeno si è ancora alzato dalla sedia, quindi non vede questo... chiamiamolo "sfarfallio").

Il problema è che il mio sistema software non funziona, dà "i numeri", e si ferma ad un allarme che non è l'ultimo, ma uno a caso di quelli della serie interrotta.
Mi servirebbe un'alternativa software, o anche di più di una, da smanettare e da cui aspettarmi un funzionamento come descritto sopra.

Entro domani sera spero di avere risolto, perchè vado dal MOSTRO a infilarci il Software - sperem - definitivo.