Al momento ho provato una cosa simile:
struct dataAlarm
{
int idx;
bool State;
bool Ack;
char Desc[16];
};
dataAlarm data[10] //an array of 10 structs of type dataAlarm
{
{0, 0, 0, "1° Allarme"},
{1, 0, 0, "2° Allarme"},
{2, 0, 0, "3° Allarme"},
{3, 0, 0, "4° Allarme"},
{4, 0, 0, "5° Allarme"},
{5, 0, 0, "6° Allarme"},
{6, 0, 0, "7° Allarme"},
{7, 0, 0, "8° Allarme"},
{8, 0, 0, "9° Allarme"},
{9, 0, 0, "10° Allarme"}
};
il Type [idx] non serve a nulla… ma per ora è li.
La funzione da chiamare
void SetAlarm(byte IndexArray, bool State, bool Ack){
};
All'interno aggiorno lo stato dell'Indice di Allarme, se Attivo/Riconosciuto o altro, poi ciclo l'array e determino se ho Allarmi e se ne ho Non riconosciuti in quel caso gestico la Lampada Spenta/Fissa/Accesa…
Forse funziona…