Loading isis/src/base/apps/spiceinit/SpiceClient.cpp +128 −95 Original line number Diff line number Diff line Loading @@ -154,18 +154,26 @@ namespace Isis { */ void SpiceClient::replyFinished(QNetworkReply *reply) { p_rawResponse = new QString(QString(reply->readAll())); //qDebug() << p_rawResponse; // Decode the response p_response = new QString(); // p_response = new QString(); p_response = new QJsonObject(); try { *p_response = QString( QByteArray::fromHex(QByteArray(p_rawResponse->toLatin1())).constData()); // *p_response = QString( // QByteArray::fromHex(QByteArray(p_rawResponse->toLatin1())).constData()); //qDebug() << "p_resonse: "<<*p_response; // QJsonDocument document; QByteArray decoded = QByteArray::fromHex(QByteArray(p_rawResponse->toLatin1())).constData(); QJsonDocument doc = QJsonDocument::fromJson(decoded); *p_response = doc.object(); // QFile finalOutput("output.txt"); // finalOutput.open(QIODevice::WriteOnly); // finalOutput.write( document.toJson() ); // finalOutput.close(); // Make sure we can get the log out of it before continuing applicationLog(); // applicationLog(); } catch(IException &) { p_error = new QString(); Loading Loading @@ -349,14 +357,14 @@ namespace Isis { QJsonValue SpiceClient::tableToJson(QString file) { QFile tableFile(file); tableFile.open(QIODevice::ReadOnly); QByteArray data = tableFile.readAll(); tableFile.close(); return QJsonValue::fromVariant(data.toHex().constData()); } // QString SpiceClient::jsonToTable(QJsonValue val) { // QFile tableFile(file); // tableFile.open(QIODevice::ReadOnly); // QByteArray data = tableFile.readAll(); // tableFile.close(); // // return QJsonValue::toVariant(data.toHex().constData()); // } /** Loading @@ -365,7 +373,7 @@ QJsonValue SpiceClient::tableToJson(QString file) { void SpiceClient::authenticationRequired(QNetworkReply *, QAuthenticator *) { if(!p_response) { p_rawResponse = new QString(); p_response = new QString(); p_response = new QJsonObject(); } *p_error = "Server expects authentication which is not currently "; Loading @@ -380,7 +388,7 @@ QJsonValue SpiceClient::tableToJson(QString file) { void SpiceClient::proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *) { if(!p_response) { p_rawResponse = new QString(); p_response = new QString(); p_response = new QJsonObject(); } *p_error = "Server expects authentication which is not currently "; Loading @@ -397,7 +405,7 @@ QJsonValue SpiceClient::tableToJson(QString file) { const QList<QSslError> & err) { if(!p_response) { p_rawResponse = new QString(); p_response = new QString(); p_response = new QJsonObject(); } *p_error = "Server expects authentication which is not currently "; Loading @@ -413,28 +421,32 @@ QJsonValue SpiceClient::tableToJson(QString file) { * * @return QDomElement */ QDomElement SpiceClient::rootXMLElement() { if(!p_response || !p_rawResponse) { QString error = "No server response available"; throw IException(IException::Io, error, _FILEINFO_); } QDomDocument document; QString errorMsg; int errorLine, errorCol; if(!p_response->isEmpty() && document.setContent(QString(p_response->toLatin1()), &errorMsg, &errorLine, &errorCol)) { return document.firstChild().toElement(); } else { QString msg = "Unexpected response from spice server ["; msg += *p_rawResponse; msg += "]"; throw IException(IException::Io, msg, _FILEINFO_); } } // QDomElement SpiceClient::rootXMLElement() { // if(!p_response || !p_rawResponse) { // QString error = "No server response available"; // throw IException(IException::Io, error, _FILEINFO_); // } // // QDomDocument document; // QString errorMsg; // int errorLine, errorCol; // // if(!p_response->isEmpty() && // document.setContent(QString(p_response->toLatin1()), // &errorMsg, &errorLine, &errorCol)) { // return document.firstChild().toElement(); // } // else if (p_response->isEmpty()){ // QString msg = "Empty response returned from server."; // throw IException(IException::Io, msg, _FILEINFO_); // } // else { // QString msg = "Unexpected response from spice server ["; // msg += *p_rawResponse; // msg += "]"; // throw IException(IException::Io, msg, _FILEINFO_); // } // } /** Loading Loading @@ -471,11 +483,14 @@ QJsonValue SpiceClient::tableToJson(QString file) { PvlGroup SpiceClient::kernelsGroup() { checkErrors(); QDomElement root = rootXMLElement(); QDomElement kernelsLabel = findTag(root, "kernels_label"); QString kernelsLabels = elementContents(kernelsLabel); // QDomElement root = rootXMLElement(); // QDomElement kernelsLabel = findTag(root, "kernels_label"); // QString kernelsLabels = elementContents(kernelsLabel); // // QString unencoded(QByteArray::fromHex(kernelsLabels.toLatin1()).constData()); QString unencoded(QByteArray::fromHex(kernelsLabels.toLatin1()).constData()); QString kernVal = p_response->value("Kernels Label").toVariant().toString(); QString unencoded(QByteArray::fromHex(kernVal.toLatin1()).constData()); stringstream pvlStream; pvlStream << unencoded; Loading @@ -495,19 +510,22 @@ QJsonValue SpiceClient::tableToJson(QString file) { PvlGroup SpiceClient::applicationLog() { checkErrors(); QDomElement root = rootXMLElement(); QDomElement logLabel = findTag(root, "application_log"); QString logLabels = elementContents(logLabel); QString unencoded(QByteArray::fromHex(logLabels.toLatin1()).constData()); stringstream pvlStream; pvlStream << unencoded; Pvl labels; pvlStream >> labels; PvlGroup group("group"); return group; return labels.findGroup("Kernels", Pvl::Traverse); // QDomElement root = rootXMLElement(); // QDomElement logLabel = findTag(root, "application_log"); // QString logLabels = elementContents(logLabel); // // QString unencoded(QByteArray::fromHex(logLabels.toLatin1()).constData()); // // stringstream pvlStream; // pvlStream << unencoded; // // Pvl labels; // pvlStream >> labels; // // return labels.findGroup("Kernels", Pvl::Traverse); } Loading @@ -533,7 +551,7 @@ QJsonValue SpiceClient::tableToJson(QString file) { * @return Table* */ Table *SpiceClient::pointingTable() { return readTable("instrument_pointing", "InstrumentPointing"); return readTable("Instrument Pointing", "InstrumentPointing"); } Loading @@ -544,7 +562,7 @@ QJsonValue SpiceClient::tableToJson(QString file) { * @return Table* */ Table *SpiceClient::positionTable() { return readTable("instrument_position", "InstrumentPosition"); return readTable("Instrument Position", "InstrumentPosition"); } Loading @@ -555,7 +573,7 @@ QJsonValue SpiceClient::tableToJson(QString file) { * @return Table* */ Table *SpiceClient::bodyRotationTable() { return readTable("body_rotation", "BodyRotation"); return readTable("Body Rotation", "BodyRotation"); } Loading @@ -563,7 +581,7 @@ QJsonValue SpiceClient::tableToJson(QString file) { * This returns the table given by the server. */ Table *SpiceClient::sunPositionTable() { return readTable("sun_position", "SunPosition"); return readTable("Sun Position", "SunPosition"); } Loading Loading @@ -591,19 +609,22 @@ QJsonValue SpiceClient::tableToJson(QString file) { PvlObject SpiceClient::naifKeywordsObject() { checkErrors(); QDomElement root = rootXMLElement(); QDomElement kernelsLabel = findTag(root, "kernels_label"); QString kernelsLabels = elementContents(kernelsLabel); QString unencoded(QByteArray::fromHex(kernelsLabels.toLatin1()).constData()); stringstream pvlStream; pvlStream << unencoded; PvlObject ob("object"); return ob; Pvl labels; pvlStream >> labels; return labels.findObject("NaifKeywords"); // QDomElement root = rootXMLElement(); // QDomElement kernelsLabel = findTag(root, "kernels_label"); // QString kernelsLabels = elementContents(kernelsLabel); // // QString unencoded(QByteArray::fromHex(kernelsLabels.toLatin1()).constData()); // // stringstream pvlStream; // pvlStream << unencoded; // // Pvl labels; // pvlStream >> labels; // // return labels.findObject("NaifKeywords"); } Loading @@ -622,31 +643,43 @@ QJsonValue SpiceClient::tableToJson(QString file) { } Table *SpiceClient::readTable(QString xmlName, QString tableName) { Table *SpiceClient::readTable(QString jsonName, QString tableName) { checkErrors(); QDomElement root = rootXMLElement(); QDomElement tablesTag = findTag(root, "tables"); QDomElement pointingTag = findTag(tablesTag, xmlName); QString encodedString = elementContents(pointingTag); QByteArray encodedArray; for (int i = 0; i < encodedString.size(); i++) { encodedArray.append(encodedString.data()[i]); } QByteArray unencodedArray(QByteArray::fromHex(encodedArray)); QString value = p_response->value(jsonName).toVariant().toString(); QString decoded(QByteArray::fromHex(value.toLatin1()).constData()); stringstream tableStream; tableStream.write(unencodedArray.data(), unencodedArray.size()); QFile finalOutput(tableName + ".txt"); finalOutput.open(QIODevice::WriteOnly); finalOutput.write(decoded.toLatin1()); finalOutput.close(); Pvl lab; tableStream >> lab; Table *table = new Table(tableName); table->Read(lab, tableStream); Table *table = new Table(decoded); return table; // QDomElement root = rootXMLElement(); // QDomElement tablesTag = findTag(root, "tables"); // QDomElement pointingTag = findTag(tablesTag, xmlName); // QString encodedString = elementContents(pointingTag); // QByteArray encodedArray; // for (int i = 0; i < encodedString.size(); i++) { // encodedArray.append(encodedString.data()[i]); // } // // QByteArray unencodedArray(QByteArray::fromHex(encodedArray)); // // stringstream tableStream; // tableStream.write(unencodedArray.data(), unencodedArray.size()); // // Pvl lab; // tableStream >> lab; // // Table *table = new Table(tableName); // table->Read(lab, tableStream); // // return table; } }; isis/src/base/apps/spiceinit/SpiceClient.h +3 −3 Original line number Diff line number Diff line Loading @@ -61,7 +61,7 @@ namespace Isis { private: static QString yesNo(bool boolVal); Table *readTable(QString xmlName, QString tableName); QDomElement rootXMLElement(); // QDomElement rootXMLElement(); QDomElement findTag(QDomElement currentElement, QString name); QString elementContents(QDomElement element); void checkErrors(); Loading @@ -70,7 +70,7 @@ namespace Isis { QString *p_error; QJsonDocument *p_jsonDocument; //!< Json file to send to server QString *p_rawResponse; //!< Server raw response QString *p_response; //!< Server decoded response QJsonObject *p_response; //!< The QJsonObject constructed from the server response QNetworkAccessManager *p_networkMgr; //!< Network manager does request QNetworkRequest *p_request; //!< Network request sent }; Loading isis/src/base/apps/spiceinit/spiceinit.cpp +21 −17 Original line number Diff line number Diff line Loading @@ -87,7 +87,9 @@ void IsisMain() { QString mission = missionXlater.Translate("MissionName"); if (ui.GetBoolean("WEB")) { std::cout << "Before Request" << std::endl; requestSpice(icube, *icube->label(), mission); std::cout << "After Request" << std::endl; } else { // Get system base kernels Loading Loading @@ -572,13 +574,14 @@ void requestSpice(Cube *icube, Pvl &labels, QString missionName) { client.blockUntilComplete(); connectionProgress.CheckStatus(); PvlGroup kernelsGroup = client.kernelsGroup(); PvlGroup logGrp = client.applicationLog(); PvlGroup kernelsGroup = client.kernelsGroup(); // PvlGroup logGrp = client.applicationLog(); // PvlObject naifKeywords = client.naifKeywordsObject(); Table *pointingTable = client.pointingTable(); Table *positionTable = client.positionTable(); Table *bodyTable = client.bodyRotationTable(); Table *sunPosTable = client.sunPositionTable(); Table *pointingTable = client.pointingTable(); // Table *positionTable = client.positionTable(); // Table *bodyTable = client.bodyRotationTable(); // Table *sunPosTable = client.sunPositionTable(); // // Verify everything in the kernels group exists, if not then our kernels are // out of date. Loading Loading @@ -621,6 +624,7 @@ void requestSpice(Cube *icube, Pvl &labels, QString missionName) { icube->label()->addObject(naifKeywords); icube->write(*pointingTable); qDebug() << "YAYA!"; icube->write(*positionTable); icube->write(*bodyTable); icube->write(*sunPosTable); Loading Loading
isis/src/base/apps/spiceinit/SpiceClient.cpp +128 −95 Original line number Diff line number Diff line Loading @@ -154,18 +154,26 @@ namespace Isis { */ void SpiceClient::replyFinished(QNetworkReply *reply) { p_rawResponse = new QString(QString(reply->readAll())); //qDebug() << p_rawResponse; // Decode the response p_response = new QString(); // p_response = new QString(); p_response = new QJsonObject(); try { *p_response = QString( QByteArray::fromHex(QByteArray(p_rawResponse->toLatin1())).constData()); // *p_response = QString( // QByteArray::fromHex(QByteArray(p_rawResponse->toLatin1())).constData()); //qDebug() << "p_resonse: "<<*p_response; // QJsonDocument document; QByteArray decoded = QByteArray::fromHex(QByteArray(p_rawResponse->toLatin1())).constData(); QJsonDocument doc = QJsonDocument::fromJson(decoded); *p_response = doc.object(); // QFile finalOutput("output.txt"); // finalOutput.open(QIODevice::WriteOnly); // finalOutput.write( document.toJson() ); // finalOutput.close(); // Make sure we can get the log out of it before continuing applicationLog(); // applicationLog(); } catch(IException &) { p_error = new QString(); Loading Loading @@ -349,14 +357,14 @@ namespace Isis { QJsonValue SpiceClient::tableToJson(QString file) { QFile tableFile(file); tableFile.open(QIODevice::ReadOnly); QByteArray data = tableFile.readAll(); tableFile.close(); return QJsonValue::fromVariant(data.toHex().constData()); } // QString SpiceClient::jsonToTable(QJsonValue val) { // QFile tableFile(file); // tableFile.open(QIODevice::ReadOnly); // QByteArray data = tableFile.readAll(); // tableFile.close(); // // return QJsonValue::toVariant(data.toHex().constData()); // } /** Loading @@ -365,7 +373,7 @@ QJsonValue SpiceClient::tableToJson(QString file) { void SpiceClient::authenticationRequired(QNetworkReply *, QAuthenticator *) { if(!p_response) { p_rawResponse = new QString(); p_response = new QString(); p_response = new QJsonObject(); } *p_error = "Server expects authentication which is not currently "; Loading @@ -380,7 +388,7 @@ QJsonValue SpiceClient::tableToJson(QString file) { void SpiceClient::proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *) { if(!p_response) { p_rawResponse = new QString(); p_response = new QString(); p_response = new QJsonObject(); } *p_error = "Server expects authentication which is not currently "; Loading @@ -397,7 +405,7 @@ QJsonValue SpiceClient::tableToJson(QString file) { const QList<QSslError> & err) { if(!p_response) { p_rawResponse = new QString(); p_response = new QString(); p_response = new QJsonObject(); } *p_error = "Server expects authentication which is not currently "; Loading @@ -413,28 +421,32 @@ QJsonValue SpiceClient::tableToJson(QString file) { * * @return QDomElement */ QDomElement SpiceClient::rootXMLElement() { if(!p_response || !p_rawResponse) { QString error = "No server response available"; throw IException(IException::Io, error, _FILEINFO_); } QDomDocument document; QString errorMsg; int errorLine, errorCol; if(!p_response->isEmpty() && document.setContent(QString(p_response->toLatin1()), &errorMsg, &errorLine, &errorCol)) { return document.firstChild().toElement(); } else { QString msg = "Unexpected response from spice server ["; msg += *p_rawResponse; msg += "]"; throw IException(IException::Io, msg, _FILEINFO_); } } // QDomElement SpiceClient::rootXMLElement() { // if(!p_response || !p_rawResponse) { // QString error = "No server response available"; // throw IException(IException::Io, error, _FILEINFO_); // } // // QDomDocument document; // QString errorMsg; // int errorLine, errorCol; // // if(!p_response->isEmpty() && // document.setContent(QString(p_response->toLatin1()), // &errorMsg, &errorLine, &errorCol)) { // return document.firstChild().toElement(); // } // else if (p_response->isEmpty()){ // QString msg = "Empty response returned from server."; // throw IException(IException::Io, msg, _FILEINFO_); // } // else { // QString msg = "Unexpected response from spice server ["; // msg += *p_rawResponse; // msg += "]"; // throw IException(IException::Io, msg, _FILEINFO_); // } // } /** Loading Loading @@ -471,11 +483,14 @@ QJsonValue SpiceClient::tableToJson(QString file) { PvlGroup SpiceClient::kernelsGroup() { checkErrors(); QDomElement root = rootXMLElement(); QDomElement kernelsLabel = findTag(root, "kernels_label"); QString kernelsLabels = elementContents(kernelsLabel); // QDomElement root = rootXMLElement(); // QDomElement kernelsLabel = findTag(root, "kernels_label"); // QString kernelsLabels = elementContents(kernelsLabel); // // QString unencoded(QByteArray::fromHex(kernelsLabels.toLatin1()).constData()); QString unencoded(QByteArray::fromHex(kernelsLabels.toLatin1()).constData()); QString kernVal = p_response->value("Kernels Label").toVariant().toString(); QString unencoded(QByteArray::fromHex(kernVal.toLatin1()).constData()); stringstream pvlStream; pvlStream << unencoded; Loading @@ -495,19 +510,22 @@ QJsonValue SpiceClient::tableToJson(QString file) { PvlGroup SpiceClient::applicationLog() { checkErrors(); QDomElement root = rootXMLElement(); QDomElement logLabel = findTag(root, "application_log"); QString logLabels = elementContents(logLabel); QString unencoded(QByteArray::fromHex(logLabels.toLatin1()).constData()); stringstream pvlStream; pvlStream << unencoded; Pvl labels; pvlStream >> labels; PvlGroup group("group"); return group; return labels.findGroup("Kernels", Pvl::Traverse); // QDomElement root = rootXMLElement(); // QDomElement logLabel = findTag(root, "application_log"); // QString logLabels = elementContents(logLabel); // // QString unencoded(QByteArray::fromHex(logLabels.toLatin1()).constData()); // // stringstream pvlStream; // pvlStream << unencoded; // // Pvl labels; // pvlStream >> labels; // // return labels.findGroup("Kernels", Pvl::Traverse); } Loading @@ -533,7 +551,7 @@ QJsonValue SpiceClient::tableToJson(QString file) { * @return Table* */ Table *SpiceClient::pointingTable() { return readTable("instrument_pointing", "InstrumentPointing"); return readTable("Instrument Pointing", "InstrumentPointing"); } Loading @@ -544,7 +562,7 @@ QJsonValue SpiceClient::tableToJson(QString file) { * @return Table* */ Table *SpiceClient::positionTable() { return readTable("instrument_position", "InstrumentPosition"); return readTable("Instrument Position", "InstrumentPosition"); } Loading @@ -555,7 +573,7 @@ QJsonValue SpiceClient::tableToJson(QString file) { * @return Table* */ Table *SpiceClient::bodyRotationTable() { return readTable("body_rotation", "BodyRotation"); return readTable("Body Rotation", "BodyRotation"); } Loading @@ -563,7 +581,7 @@ QJsonValue SpiceClient::tableToJson(QString file) { * This returns the table given by the server. */ Table *SpiceClient::sunPositionTable() { return readTable("sun_position", "SunPosition"); return readTable("Sun Position", "SunPosition"); } Loading Loading @@ -591,19 +609,22 @@ QJsonValue SpiceClient::tableToJson(QString file) { PvlObject SpiceClient::naifKeywordsObject() { checkErrors(); QDomElement root = rootXMLElement(); QDomElement kernelsLabel = findTag(root, "kernels_label"); QString kernelsLabels = elementContents(kernelsLabel); QString unencoded(QByteArray::fromHex(kernelsLabels.toLatin1()).constData()); stringstream pvlStream; pvlStream << unencoded; PvlObject ob("object"); return ob; Pvl labels; pvlStream >> labels; return labels.findObject("NaifKeywords"); // QDomElement root = rootXMLElement(); // QDomElement kernelsLabel = findTag(root, "kernels_label"); // QString kernelsLabels = elementContents(kernelsLabel); // // QString unencoded(QByteArray::fromHex(kernelsLabels.toLatin1()).constData()); // // stringstream pvlStream; // pvlStream << unencoded; // // Pvl labels; // pvlStream >> labels; // // return labels.findObject("NaifKeywords"); } Loading @@ -622,31 +643,43 @@ QJsonValue SpiceClient::tableToJson(QString file) { } Table *SpiceClient::readTable(QString xmlName, QString tableName) { Table *SpiceClient::readTable(QString jsonName, QString tableName) { checkErrors(); QDomElement root = rootXMLElement(); QDomElement tablesTag = findTag(root, "tables"); QDomElement pointingTag = findTag(tablesTag, xmlName); QString encodedString = elementContents(pointingTag); QByteArray encodedArray; for (int i = 0; i < encodedString.size(); i++) { encodedArray.append(encodedString.data()[i]); } QByteArray unencodedArray(QByteArray::fromHex(encodedArray)); QString value = p_response->value(jsonName).toVariant().toString(); QString decoded(QByteArray::fromHex(value.toLatin1()).constData()); stringstream tableStream; tableStream.write(unencodedArray.data(), unencodedArray.size()); QFile finalOutput(tableName + ".txt"); finalOutput.open(QIODevice::WriteOnly); finalOutput.write(decoded.toLatin1()); finalOutput.close(); Pvl lab; tableStream >> lab; Table *table = new Table(tableName); table->Read(lab, tableStream); Table *table = new Table(decoded); return table; // QDomElement root = rootXMLElement(); // QDomElement tablesTag = findTag(root, "tables"); // QDomElement pointingTag = findTag(tablesTag, xmlName); // QString encodedString = elementContents(pointingTag); // QByteArray encodedArray; // for (int i = 0; i < encodedString.size(); i++) { // encodedArray.append(encodedString.data()[i]); // } // // QByteArray unencodedArray(QByteArray::fromHex(encodedArray)); // // stringstream tableStream; // tableStream.write(unencodedArray.data(), unencodedArray.size()); // // Pvl lab; // tableStream >> lab; // // Table *table = new Table(tableName); // table->Read(lab, tableStream); // // return table; } };
isis/src/base/apps/spiceinit/SpiceClient.h +3 −3 Original line number Diff line number Diff line Loading @@ -61,7 +61,7 @@ namespace Isis { private: static QString yesNo(bool boolVal); Table *readTable(QString xmlName, QString tableName); QDomElement rootXMLElement(); // QDomElement rootXMLElement(); QDomElement findTag(QDomElement currentElement, QString name); QString elementContents(QDomElement element); void checkErrors(); Loading @@ -70,7 +70,7 @@ namespace Isis { QString *p_error; QJsonDocument *p_jsonDocument; //!< Json file to send to server QString *p_rawResponse; //!< Server raw response QString *p_response; //!< Server decoded response QJsonObject *p_response; //!< The QJsonObject constructed from the server response QNetworkAccessManager *p_networkMgr; //!< Network manager does request QNetworkRequest *p_request; //!< Network request sent }; Loading
isis/src/base/apps/spiceinit/spiceinit.cpp +21 −17 Original line number Diff line number Diff line Loading @@ -87,7 +87,9 @@ void IsisMain() { QString mission = missionXlater.Translate("MissionName"); if (ui.GetBoolean("WEB")) { std::cout << "Before Request" << std::endl; requestSpice(icube, *icube->label(), mission); std::cout << "After Request" << std::endl; } else { // Get system base kernels Loading Loading @@ -572,13 +574,14 @@ void requestSpice(Cube *icube, Pvl &labels, QString missionName) { client.blockUntilComplete(); connectionProgress.CheckStatus(); PvlGroup kernelsGroup = client.kernelsGroup(); PvlGroup logGrp = client.applicationLog(); PvlGroup kernelsGroup = client.kernelsGroup(); // PvlGroup logGrp = client.applicationLog(); // PvlObject naifKeywords = client.naifKeywordsObject(); Table *pointingTable = client.pointingTable(); Table *positionTable = client.positionTable(); Table *bodyTable = client.bodyRotationTable(); Table *sunPosTable = client.sunPositionTable(); Table *pointingTable = client.pointingTable(); // Table *positionTable = client.positionTable(); // Table *bodyTable = client.bodyRotationTable(); // Table *sunPosTable = client.sunPositionTable(); // // Verify everything in the kernels group exists, if not then our kernels are // out of date. Loading Loading @@ -621,6 +624,7 @@ void requestSpice(Cube *icube, Pvl &labels, QString missionName) { icube->label()->addObject(naifKeywords); icube->write(*pointingTable); qDebug() << "YAYA!"; icube->write(*positionTable); icube->write(*bodyTable); icube->write(*sunPosTable); Loading