2 #include <QJsonDocument> 25 manager =
new QNetworkAccessManager(
this);
38 qDebug() << Q_FUNC_INFO << url <<
cle;
48 if(
url.isEmpty() ||
cle.isEmpty())
54 if(deviceID.isEmpty())
55 strURL =
url +
"/api/v2/query";
59 strURL +=
"?last=" + duree;
62 QNetworkRequest request;
67 request.setRawHeader(
"Accept",
"application/json");
69 request.setRawHeader(
"Authorization",
"key " +
cle.toLatin1());
135 QByteArray datas = reply->readAll();
146 QJsonDocument documentJSON = QJsonDocument::fromJson(datas);
147 if(documentJSON.isArray())
149 QJsonArray tableauJSON = documentJSON.array();
153 QString message(
"Nombre de valeurs récupérées : ");
154 int valeursRecuperees = tableauJSON.size();
155 message.append(QString::number(valeursRecuperees));
158 QJsonValue poids, pression, temperatureExt, temperatureInt, humiditeExt, humiditeInt;
167 for(
int i = 0; i < tableauJSON.count(); i++)
169 QJsonValue valeur = tableauJSON.at(i);
170 if(valeur.isObject())
172 QJsonObject objet = valeur.toObject();
184 if(objet.value(QString(
"device_id")).toString() ==
deviceID)
186 poids = objet.value(QString(
"poids"));
187 pression = objet.value(QString(
"pression"));
188 temperatureExt = objet.value(QString(
"temperatureExt"));
189 temperatureInt = objet.value(QString(
"temperatureInt"));
190 humiditeExt = objet.value(QString(
"humiditeExt"));
191 humiditeInt = objet.value(QString(
"humiditeInt"));
198 QDateTime horodatage = QDateTime::fromString(objet.value(QString(
"time")).toString(), Qt::ISODate).toLocalTime();
199 donnees << horodatage.toString(
"HH") << QString::number(poids.toDouble()) << horodatage.toString(
"dd/MM/yyyy") << horodatage.toString(
"HH:mm:ss");
202 else if(!pression.isNull())
205 QDateTime horodatagePression = QDateTime::fromString(objet.value(QString(
"time")).toString(), Qt::ISODate).toLocalTime();
206 donnees << horodatagePression.toString(
"HH") << QString::number(pression.toDouble()) << horodatagePression.toString(
"dd/MM/yyyy") << horodatagePression.toString(
"HH:mm:ss");
211 QDateTime horodatageTemperatureExt = QDateTime::fromString(objet.value(QString(
"time")).toString(), Qt::ISODate).toLocalTime();
212 donnees << horodatageTemperatureExt.toString(
"HH") << QString::number(temperatureExt.toDouble()) << horodatageTemperatureExt.toString(
"dd/MM/yyyy") << horodatageTemperatureExt.toString(
"HH:mm:ss");
216 QDateTime horodatageTemperatureInt = QDateTime::fromString(objet.value(QString(
"time")).toString(), Qt::ISODate).toLocalTime();
217 donnees << horodatageTemperatureInt.toString(
"HH") << QString::number(temperatureInt.toDouble()) << horodatageTemperatureInt.toString(
"dd/MM/yyyy") << horodatageTemperatureInt.toString(
"HH:mm:ss");
221 QDateTime horodatageHumiditeExt = QDateTime::fromString(objet.value(QString(
"time")).toString(), Qt::ISODate).toLocalTime();
222 donnees << horodatageHumiditeExt.toString(
"HH") << QString::number(humiditeExt.toDouble()) << horodatageHumiditeExt.toString(
"dd/MM/yyyy") << horodatageHumiditeExt.toString(
"HH:mm:ss");
226 QDateTime horodatageHumiditeInt = QDateTime::fromString(objet.value(QString(
"time")).toString(), Qt::ISODate).toLocalTime();
227 donnees << horodatageHumiditeInt.toString(
"HH") << QString::number(humiditeInt.toDouble()) << horodatageHumiditeInt.toString(
"dd/MM/yyyy") << horodatageHumiditeInt.toString(
"HH:mm:ss");
261 for(
int heure = 0; heure < 24; heure++)
268 if((*it).at(0).toInt() == heure)
271 somme += (*it).at(1).toDouble();
274 else if((*it).at(0).toInt() < heure)
284 mesure << QString::number(heure) << QString::number((somme/(
double)nbMesures));
307 for(
int heure = 0; heure < 24; heure++)
314 if((*it).at(0).toInt() == heure)
317 somme += (*it).at(1).toDouble();
320 else if((*it).at(0).toInt() < heure)
330 mesure << QString::number(heure) << QString::number((somme/(
double)nbMesures));
353 for(
int heure = 0; heure < 24; heure++)
360 if((*it).at(0).toInt() == heure)
363 somme += (*it).at(1).toDouble();
366 else if((*it).at(0).toInt() < heure)
376 mesure << QString::number(heure) << QString::number((somme/(
double)nbMesures));
399 for(
int heure = 0; heure < 24; heure++)
406 if((*it).at(0).toInt() == heure)
409 somme += (*it).at(1).toDouble();
412 else if((*it).at(0).toInt() < heure)
422 mesure << QString::number(heure) << QString::number((somme/(
double)nbMesures));
445 for(
int heure = 0; heure < 24; heure++)
451 if((*it).at(0).toInt() == heure)
454 somme += (*it).at(1).toDouble();
457 else if((*it).at(0).toInt() < heure)
467 mesure << QString::number(heure) << QString::number((somme/(
double)nbMesures));
490 for(
int heure = 0; heure < 24; heure++)
497 if((*it).at(0).toInt() == heure)
500 somme += (*it).at(1).toDouble();
503 else if((*it).at(0).toInt() < heure)
513 mesure << QString::number(heure) << QString::number((somme/(
double)nbMesures));
La déclaration de la classe Historique.
void replyFinished(QNetworkReply *reply)
Methode qui traite les donnees et emet un signal afin de generer des graphique a partor des mesures r...
void recuperationTerminee()
QVector< QStringList > mesuresTemperatureExterieure
QVector< QStringList > donneesTemperatureExterieure
QVector< QStringList > getMesuresHumiditeExterieure() const
Methode qui retourne un conteneur dynamique, contenant les mesures de l'humidite exterieure.
QVector< QStringList > getMesuresTemperatureExterieure() const
Methode qui retourne un conteneur dynamique, contenant les mesures de la temperature exterieure...
Historique(QObject *parent=nullptr)
QVector< QStringList > mesuresPression
QVector< QStringList > mesuresHumiditeExterieure
QVector< QStringList > getMesuresTemperatureInterieure() const
Methode qui retourne un conteneur dynamique, contenant les mesures de la temperature interieure...
void traiterDonneesPression()
Methode qui traite les donnees de la pression.
QVector< QStringList > mesuresHumiditeInterieure
void traiterDonneesHumiditeExterieure()
Methode qui traite les donnees de l'humidite exterieure.
void messageJournal(QString message)
void traiterDonneesTemperatureInterieure()
Methode qui traite les donnees de la temperature interieure.
void recupererDonnees(QString deviceID, QString duree="")
Methode qui recupère toutes les donnees (mesures des capteurs) de la ruche selectionnee (deviceID) ...
QVector< QStringList > getMesuresPoids() const
Methode qui retourne un conteneur dynamique, contenant les mesures du poids.
QVector< QStringList > donneesPression
QVector< QStringList > donneesTemperatureInterieure
QVector< QStringList > mesuresTemperatureInterieure
void traiterDonneesHumiditeInterieure()
Methode qui traite les donnees de l'humidite interieure.
QVector< QStringList > getMesuresHumiditeInterieure() const
Methode qui retourne un conteneur dynamique, contenant les mesures de l'humidite interieure.
QVector< QStringList > donneesHumiditeInterieure
void traiterDonneesPoids()
Methode qui traite les donnees du poids.
void setAuthentification(QString url, QString cle)
Methode qui modifie l'URL et la clé
QVector< QStringList > getMesuresPression() const
Methode qui retourne un conteneur dynamique, contenant les mesures de la pression.
QVector< QStringList > donneesHumiditeExterieure
QVector< QStringList > mesuresPoids
QVector< QStringList > donneesPoids
QNetworkAccessManager * manager
void traiterDonneesTemperatureExterieure()
Methode qui traite les donnees de la temperature exterieure.