void AnimatedSpritesheet::parse_json(string json_file) {
    //Create the JSON object
    JSONDoc json_doc(json_file);

    //Get animations
    Json::Value animations = json_doc.get("animations");
    for(unsigned int i=0;i<animations.size();i++) {
        int start = animations[i]["start"].asInt();
        int stop = animations[i]["stop"].asInt();
        animations_[animations[i]["name"].asString()] = std::make_pair(start, stop);
    }

    ms_per_sprite_ = json_doc.get("ms_per_sprite").asInt();
}
Example #2
0
void ThreadNet::udpSendMessage(const QJsonObject &jsonObj)
{
  QByteArray data;
  QDataStream out(&data, QIODevice::WriteOnly);

  QJsonObject json_obj = jsonObj;
  json_obj.insert("index", QJsonValue(GlobalData::getRandomString(8)));
	json_obj.insert("msgType", Message);
	QJsonDocument json_doc(json_obj);

	out << json_doc.toJson();
	qint64 ret = udp_socket->writeDatagram(data
																				 , data.length()
																				 , QHostAddress::Broadcast
																				 , udp_port);
  if(ret != 0 && ret != -1)
    {
			qDebug()<<"@ThreadNet::udpSendMessage(): sent!";
    }
}
Example #3
0
void PHD2::sendJSONRPCRequest(const QString & method, const QJsonArray args)
{

    QJsonObject jsonRPC;

    jsonRPC.insert("jsonrpc", "2.0");
    jsonRPC.insert("method", method);

    if (args.empty() == false)
        jsonRPC.insert("params", args);

    jsonRPC.insert("id", methodID++);

    QJsonDocument json_doc(jsonRPC);

    emit newLog(json_doc.toJson(QJsonDocument::Compact));

    tcpSocket->write(json_doc.toJson(QJsonDocument::Compact));
    tcpSocket->write("\r\n");
}
Example #4
0
void OnlineAstrometryParser::authenticate()
{
    QNetworkRequest request;
    //request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");

    QUrl url(Options::astrometryAPIURL());
    url.setPath("/api/login");
    request.setUrl(url);

    QVariantMap apiReq;
    apiReq.insert("apikey", Options::astrometryAPIKey());
    //QByteArray json = serializer.serialize(apiReq, &ok);
    QJsonObject json = QJsonObject::fromVariantMap(apiReq);
    QJsonDocument json_doc(json);

    QString json_request = QString("request-json=%1").arg(QString(json_doc.toJson(QJsonDocument::Compact)));

    workflowStage = AUTH_STAGE;

    networkManager->post(request, json_request.toUtf8());
}
Example #5
0
///UDP Action
void ThreadNet::udpSendHeartBeat()
{
  QByteArray data;
  QDataStream out(&data, QIODevice::WriteOnly);

	QJsonObject json_obj;
	json_obj.insert("ip", GlobalData::g_localHostIP);
	json_obj.insert("key", GlobalData::settings_struct.profile_key_str);
	json_obj.insert("name", GlobalData::settings_struct.profile_name_str);
	json_obj.insert("avatar", GlobalData::settings_struct.profile_avatar_str);
	json_obj.insert("msgType", HeartBeat);
	QJsonDocument json_doc(json_obj);
	out << json_doc.toJson();
	qint64 ret = udp_socket->writeDatagram(data
														, data.length()
														, QHostAddress::Broadcast
														, udp_port);
	if(ret != 0 && ret != -1)
		{
			qDebug()<<"@sendUsrEnter(): sent!";
		}

  return;
}
Example #6
0
void OnlineAstrometryParser::uploadFile()
{
    QNetworkRequest request;

    QFile *fitsFile = new QFile(filename);
    bool rc = fitsFile->open(QIODevice::ReadOnly);
    if (rc == false)
    {
        align->appendLogText(i18n("Failed to open file %1. %2", filename, fitsFile->errorString()));
        delete (fitsFile);
        emit solverFailed();
        return;
    }

    QUrl url(Options::astrometryAPIURL());
    url.setPath("/api/upload");
    request.setUrl(url);

    QHttpMultiPart *reqEntity = new QHttpMultiPart(QHttpMultiPart::FormDataType);

    QVariantMap uploadReq;
    uploadReq.insert("publicly_visible", "n");
    uploadReq.insert("allow_modifications", "n");
    uploadReq.insert("session", sessionKey);
    uploadReq.insert("allow_commercial_use", "n");
    uploadReq.insert("scale_units", "arcminwidth");
    uploadReq.insert("scale_type", "ul");
    uploadReq.insert("scale_lower", lowerScale);
    uploadReq.insert("scale_upper", upperScale);
    uploadReq.insert("center_ra", center_ra);
    uploadReq.insert("center_dec", center_dec);
    uploadReq.insert("radius", radius);
    if (downsample_factor != 0)
        uploadReq.insert("downsample_factor", downsample_factor);
    if (parity != -1)
        uploadReq.insert("parity", parity);

    QJsonObject json = QJsonObject::fromVariantMap(uploadReq);
    QJsonDocument json_doc(json);

    QHttpPart jsonPart;

    jsonPart.setHeader(QNetworkRequest::ContentTypeHeader, "application/text/plain");
    jsonPart.setHeader(QNetworkRequest::ContentDispositionHeader, "form-data; name=\"request-json\"");
    jsonPart.setBody(json_doc.toJson(QJsonDocument::Compact));

    QHttpPart filePart;

    filePart.setHeader(QNetworkRequest::ContentTypeHeader,"application/octet-stream");
    filePart.setHeader(QNetworkRequest::ContentDispositionHeader, QString("form-data; name=\"file\"; filename=\"%1\"").arg(filename));
    filePart.setBodyDevice(fitsFile);

    // Re-parent so that it get deleted later
    fitsFile->setParent(reqEntity);

    reqEntity->append(jsonPart);
    reqEntity->append(filePart);

    workflowStage = UPLOAD_STAGE;

    align->appendLogText(i18n("Uploading file..."));

    QNetworkReply *reply = networkManager->post(request, reqEntity);

    // The entity should be deleted when reply is finished
    reqEntity->setParent(reply);
}