harbour-aira 0.1.0: client Sailfish per pompa di calore Aira (bridge HTTP + stato e comandi ACS)
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
#ifndef AIRAJSON_H
|
||||
#define AIRAJSON_H
|
||||
|
||||
// Funzioni PURE (solo QtCore, nessun QObject): sono la parte dell'app
|
||||
// verificabile senza SDK, con l'harness locale in tests/core_test.cpp.
|
||||
// Il bridge HTTP parla JSON; qui stanno normalizzazione dell'indirizzo,
|
||||
// lettura del riassunto e costruzione del corpo dei comandi.
|
||||
|
||||
#include <QByteArray>
|
||||
#include <QString>
|
||||
#include <QVariant>
|
||||
#include <QVariantMap>
|
||||
|
||||
namespace AiraJson {
|
||||
|
||||
// "192.168.2.15:8790" -> "http://192.168.2.15:8790"
|
||||
// "" -> "" (nessun indirizzo: il client non fa richieste)
|
||||
// toglie gli slash finali e gli spazi; preserva schema e porta espliciti.
|
||||
QString normalizeBaseUrl(const QString &raw);
|
||||
|
||||
// Legge il corpo di GET /summary nel dizionario usato dalla UI.
|
||||
// In caso di JSON non valido o di risposta di errore ritorna un dizionario
|
||||
// vuoto e mette *ok a false.
|
||||
QVariantMap parseSummary(const QByteArray &body, bool *ok);
|
||||
|
||||
// Codice di stato Aira ("OPERATING_STATUS_AUTO") in etichetta italiana.
|
||||
QString modeLabel(const QString &operatingStatus);
|
||||
|
||||
// Temperatura leggibile: "51,0" oppure "—" se il valore manca.
|
||||
QString formatValue(const QVariant &value);
|
||||
|
||||
// Corpo JSON per POST /command. value viene omesso se nullo (i comandi
|
||||
// semplici non hanno parametri).
|
||||
QByteArray commandPayload(const QString &id, const QVariant &value);
|
||||
|
||||
// Messaggio d'errore leggibile da una risposta del bridge
|
||||
// ({"ok":false,"error":"..."}), con fallback sullo stato HTTP.
|
||||
QString errorMessage(const QByteArray &body, int httpStatus);
|
||||
|
||||
} // namespace AiraJson
|
||||
|
||||
#endif // AIRAJSON_H
|
||||
Reference in New Issue
Block a user