0.6.2: pallino rosso solo per un allarme che ferma la macchina (avviso = ambra)
Il pallino era rosso per qualunque voce nell'elenco errori: un semplice avviso (compressore limitato dalla temperatura esterna, caso reale del 10/10) sembrava un guasto. Ora il ponte espone in /summary anche error_severity e alarm_stopping, e il livello 3 (rosso) e' riservato agli allarmi che fermano la macchina o di severita' CRITICAL/ERROR; avviso = ambra. Copertina allineata. 6 verifiche nuove nell'harness del nucleo (avviso/stop/critical/error/ precedenza sul modo attivo/gravita' ignota = ambra).
This commit is contained in:
@@ -245,6 +245,42 @@ int main(int argc, char *argv[])
|
||||
"stato breve: l'errore vince sul modo attivo");
|
||||
check(AiraJson::statusLevel(misto) == 2, "livello: errore prima di tutto");
|
||||
|
||||
// Un avviso NON e' un allarme: pallino ambra (livello 2), non rosso.
|
||||
// Caso reale 10/10/2026: compressore limitato dalla temperatura esterna
|
||||
// (SEVERITY_WARNING, nessun allarme che ferma la macchina) -> l'app
|
||||
// accendeva il rosso per un semplice avviso.
|
||||
QVariantMap avviso = calmo;
|
||||
avviso.insert("errors_count", 1);
|
||||
avviso.insert("alarm_stopping", false);
|
||||
avviso.insert("error_severity", "WARNING");
|
||||
check(AiraJson::statusLevel(avviso) == 2,
|
||||
"livello: avviso (WARNING) = ambra, non rosso");
|
||||
|
||||
// Allarme che ferma la macchina: rosso anche con severita' di avviso.
|
||||
QVariantMap fermo = avviso;
|
||||
fermo.insert("alarm_stopping", true);
|
||||
check(AiraJson::statusLevel(fermo) == 3, "livello: allarme che ferma = rosso");
|
||||
|
||||
// Severita' alta: rosso anche senza il flag di stop.
|
||||
QVariantMap critico = avviso;
|
||||
critico.insert("error_severity", "CRITICAL");
|
||||
check(AiraJson::statusLevel(critico) == 3, "livello: CRITICAL = rosso");
|
||||
QVariantMap guasto = avviso;
|
||||
guasto.insert("error_severity", "ERROR");
|
||||
check(AiraJson::statusLevel(guasto) == 3, "livello: ERROR = rosso");
|
||||
|
||||
// Il rosso vince sul modo attivo.
|
||||
QVariantMap fermoAssente = assente;
|
||||
fermoAssente.insert("errors_count", 1);
|
||||
fermoAssente.insert("alarm_stopping", true);
|
||||
check(AiraJson::statusLevel(fermoAssente) == 3,
|
||||
"livello: allarme che ferma prima del modo attivo");
|
||||
|
||||
// Senza i campi di gravita' (bridge piu' vecchio) si resta ambra:
|
||||
// il rosso si accende solo su un guasto che sappiamo essere serio.
|
||||
check(AiraJson::statusLevel(uno) == 2,
|
||||
"livello: gravita' ignota = ambra");
|
||||
|
||||
check(AiraJson::stateShort(QVariantMap()) == "No data",
|
||||
"stato breve: nessun dato");
|
||||
check(AiraJson::stateLong(QVariantMap()).isEmpty(),
|
||||
|
||||
Reference in New Issue
Block a user