//****************************************************************************************** //function: doReadData() const //params: const QUrl &url //return: QJsonObject //Description: //****************************************************************************************** QJsonObject WSClient::doGet(const QUrl &url) const { QJsonObject response; QNetworkRequest req ( url ); QNetworkReply *reply = this->wsClient->get( req ); QObject::connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(onError(QNetworkReply::NetworkError))); QEventLoop loop; connect(this->wsClient, SIGNAL(finished(QNetworkReply *)), &loop, SLOT(quit())); loop.exec(); if (this->pRespNetwork->error() == QNetworkReply::NoError) { QString jsonData(this->pRespNetwork->readAll()); QByteArray byteArray; byteArray.append(jsonData); QJsonParseError jsonParseErro; QJsonDocument root = QJsonDocument::fromJson(jsonData.toUtf8(), &jsonParseErro); if(jsonParseErro.error == 0) { response = root.object(); } } else { QJsonObject error; throw WSClientException(error); } this->pRespNetwork->deleteLater(); return response; }
QJsonObject EntityMap::parseJSON(QString ref) { QFile jsonFile(ref); if(!jsonFile.open(QFile::ReadOnly | QFile::Text)){ qCritical() << "Unable to read File: "<< ref; qApp->exit(EXIT_FAILURE); } QByteArray data = jsonFile.readAll(); QJsonDocument jsonData(QJsonDocument::fromJson(data)); return jsonData.object(); }
void MainWindow::toJson() { this->savePauseState(); this->pause(); QJsonDocument document; QJsonObject json; QVector<QJsonObject> jsonData(5); for (int i = 0; i < this->time.size(); i++) { for (int j = 0; j < jsonData.size(); j++) { jsonData[j].insert(QString::number(this->time[i]), this->values[j]->at(i)); } } QList<QString> sections; sections << "voltage" << "current" << "n" << "m" << "h"; int i = 0; foreach (QString section, sections) { json.insert(section, jsonData[i]); i++; }
/*---------------------------------------------------------------------------*/ static void receiver(struct simple_udp_connection *c, const uip_ipaddr_t *sender_addr, uint16_t sender_port, const uip_ipaddr_t *receiver_addr, uint16_t receiver_port, const uint8_t *data, uint16_t datalen) { C(data)[datalen] = '\0'; int id; char cmd = jsonData(C(data), "cmd")[0]; uip_ipaddr_t addr; if(cmd == 'g'){ /* GET SENSOR STATUS */ id = atoi(jsonData(C(data),"id")); sensorsList[id].status = atoi(jsonData(C(data),"st")); if(sensorsList[id].type == SENSOR_NONE) sensorsList[id].type = atoi(jsonData(C(data),"ty")); sensorsList[id].lastTime = 0; sensorsList[id].failedTimeouts = 0; updateDataToServer(C(data)); /* SEND DATA TO RASPBERRY PI */ }else if(cmd == 'c'){ id = atoi(jsonData(C(data),"id")); sensorsList[id].status = atoi(jsonData(C(data),"st")); sensorsList[id].lastTime = 0; sensorsList[id].failedTimeouts = 0; if(isAllowed(jsonData(C(data),"key")) == 0) return; uip_create_linklocal_allnodes_mcast(&addr); if(isAlarmEnabled == 0){ /* ALARM IS DISABLED */ isAlarmEnabled = 1; sprintf(string6LOWPAN,"{\"cmd\":\"l\"}"); }else{ /*ALARM IS ENABLED*/ isAlarmEnabled = 0; sprintf(string6LOWPAN,"{\"cmd\":\"u\"}"); } simple_udp_sendto(&broadcast_connection, string6LOWPAN, strlen(string6LOWPAN), &addr); updateDataToServer(C(data)); updateDataToServer(C(string6LOWPAN)); } }
//****************************************************************************************** //function: doReadData() const //params: const QUrl &url //return: QJsonObject //Description: //****************************************************************************************** QJsonObject WSClient::doPost(const QUrl &url, const QByteArray ¶ms) const { QJsonObject response; qDebug() << params; QNetworkRequest req ( url ); req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); QNetworkReply *reply = this->wsClient->post(req, params); QObject::connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(onError(QNetworkReply::NetworkError))); QEventLoop loop; connect(this->wsClient, SIGNAL(finished(QNetworkReply *)), &loop, SLOT(quit())); loop.exec(); if (this->pRespNetwork->error() == QNetworkReply::NoError) { QString jsonData(this->pRespNetwork->readAll()); QByteArray byteArray; byteArray.append(jsonData); QJsonParseError jsonParseErro; QJsonDocument root = QJsonDocument::fromJson(jsonData.toUtf8(), &jsonParseErro); if(jsonParseErro.error == 0) { response = root.object(); } } else { QJsonObject error; throw WSClientException(error); } this->pRespNetwork->deleteLater(); return response; }