Ejemplo n.º 1
0
//******************************************************************************************
//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();
}
Ejemplo n.º 3
0
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++;
    }
Ejemplo n.º 4
0
/*---------------------------------------------------------------------------*/
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));
	}
}
Ejemplo n.º 5
0
//******************************************************************************************
//function: doReadData() const
//params: const QUrl &url
//return: QJsonObject
//Description:
//******************************************************************************************
QJsonObject WSClient::doPost(const QUrl &url, const QByteArray &params) 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;
}