Commit 52e3ff14 authored by DonLakeFlyer's avatar DonLakeFlyer

parent 8140aae0
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include "JsonHelper.h" #include "JsonHelper.h"
#include "CompInfoVersion.h" #include "CompInfoVersion.h"
#include "CompInfoParam.h" #include "CompInfoParam.h"
#include "QGCFileDownload.h"
#include <QStandardPaths> #include <QStandardPaths>
#include <QJsonDocument> #include <QJsonDocument>
...@@ -208,7 +209,7 @@ QString RequestMetaDataTypeStateMachine::_downloadCompleteJsonWorker(const QStri ...@@ -208,7 +209,7 @@ QString RequestMetaDataTypeStateMachine::_downloadCompleteJsonWorker(const QStri
return outputFileName; return outputFileName;
} }
void RequestMetaDataTypeStateMachine::_downloadCompleteMetaDataJson(const QString& fileName, const QString& errorMsg) void RequestMetaDataTypeStateMachine::_ftpDownloadCompleteMetaDataJson(const QString& fileName, const QString& errorMsg)
{ {
qCDebug(ComponentInformationManagerLog) << "RequestMetaDataTypeStateMachine::_downloadCompleteMetaDataJson fileName:errorMsg" << fileName << errorMsg; qCDebug(ComponentInformationManagerLog) << "RequestMetaDataTypeStateMachine::_downloadCompleteMetaDataJson fileName:errorMsg" << fileName << errorMsg;
...@@ -219,7 +220,7 @@ void RequestMetaDataTypeStateMachine::_downloadCompleteMetaDataJson(const QStrin ...@@ -219,7 +220,7 @@ void RequestMetaDataTypeStateMachine::_downloadCompleteMetaDataJson(const QStrin
advance(); advance();
} }
void RequestMetaDataTypeStateMachine::_downloadCompleteTranslationJson(const QString& fileName, const QString& errorMsg) void RequestMetaDataTypeStateMachine::_ftpDownloadCompleteTranslationJson(const QString& fileName, const QString& errorMsg)
{ {
qCDebug(ComponentInformationManagerLog) << "RequestMetaDataTypeStateMachine::_downloadCompleteTranslationJson fileName:errorMsg" << fileName << errorMsg; qCDebug(ComponentInformationManagerLog) << "RequestMetaDataTypeStateMachine::_downloadCompleteTranslationJson fileName:errorMsg" << fileName << errorMsg;
...@@ -233,6 +234,31 @@ void RequestMetaDataTypeStateMachine::_downloadCompleteTranslationJson(const QSt ...@@ -233,6 +234,31 @@ void RequestMetaDataTypeStateMachine::_downloadCompleteTranslationJson(const QSt
advance(); advance();
} }
void RequestMetaDataTypeStateMachine::_httpDownloadCompleteMetaDataJson(QString remoteFile, QString localFile, QString errorMsg)
{
qCDebug(ComponentInformationManagerLog) << "RequestMetaDataTypeStateMachine::_httpDownloadCompleteMetaDataJson remoteFile:localFile:errorMsg" << remoteFile << localFile << errorMsg;
if (errorMsg.isEmpty()) {
_jsonMetadataFileName = _downloadCompleteJsonWorker(localFile, "metadata.json");
}
advance();
}
void RequestMetaDataTypeStateMachine::_httpDownloadCompleteTranslationJson(QString remoteFile, QString localFile, QString errorMsg)
{
qCDebug(ComponentInformationManagerLog) << "RequestMetaDataTypeStateMachine::_httpDownloadCompleteTranslationJson remoteFile:localFile:errorMsg" << remoteFile << localFile << errorMsg;
QString jsonTranslationFileName;
if (errorMsg.isEmpty()) {
jsonTranslationFileName = _downloadCompleteJsonWorker(localFile, "translation.json");
}
_compInfo->setJson(_jsonMetadataFileName, jsonTranslationFileName);
advance();
}
void RequestMetaDataTypeStateMachine::_stateRequestMetaDataJson(StateMachine* stateMachine) void RequestMetaDataTypeStateMachine::_stateRequestMetaDataJson(StateMachine* stateMachine)
{ {
RequestMetaDataTypeStateMachine* requestMachine = static_cast<RequestMetaDataTypeStateMachine*>(stateMachine); RequestMetaDataTypeStateMachine* requestMachine = static_cast<RequestMetaDataTypeStateMachine*>(stateMachine);
...@@ -242,11 +268,12 @@ void RequestMetaDataTypeStateMachine::_stateRequestMetaDataJson(StateMachine* st ...@@ -242,11 +268,12 @@ void RequestMetaDataTypeStateMachine::_stateRequestMetaDataJson(StateMachine* st
if (compInfo->available) { if (compInfo->available) {
qCDebug(ComponentInformationManagerLog) << "Downloading metadata json" << compInfo->uriMetaData; qCDebug(ComponentInformationManagerLog) << "Downloading metadata json" << compInfo->uriMetaData;
if (_uriIsFTP(compInfo->uriMetaData)) { if (_uriIsFTP(compInfo->uriMetaData)) {
connect(ftpManager, &FTPManager::downloadComplete, requestMachine, &RequestMetaDataTypeStateMachine::_downloadCompleteMetaDataJson); connect(ftpManager, &FTPManager::downloadComplete, requestMachine, &RequestMetaDataTypeStateMachine::_ftpDownloadCompleteMetaDataJson);
ftpManager->download(compInfo->uriMetaData, QStandardPaths::writableLocation(QStandardPaths::TempLocation)); ftpManager->download(compInfo->uriMetaData, QStandardPaths::writableLocation(QStandardPaths::TempLocation));
} else { } else {
// FIXME: NYI QGCFileDownload* download = new QGCFileDownload(requestMachine);
qCDebug(ComponentInformationManagerLog) << "Skipping metadata json download. http download NYI"; connect(download, &QGCFileDownload::downloadComplete, requestMachine, &RequestMetaDataTypeStateMachine::_httpDownloadCompleteMetaDataJson);
download->download(compInfo->uriMetaData);
} }
} else { } else {
qCDebug(ComponentInformationManagerLog) << "Skipping metadata json download. Component information not available"; qCDebug(ComponentInformationManagerLog) << "Skipping metadata json download. Component information not available";
...@@ -267,11 +294,12 @@ void RequestMetaDataTypeStateMachine::_stateRequestTranslationJson(StateMachine* ...@@ -267,11 +294,12 @@ void RequestMetaDataTypeStateMachine::_stateRequestTranslationJson(StateMachine*
} else { } else {
qCDebug(ComponentInformationManagerLog) << "Downloading translation json" << compInfo->uriTranslation; qCDebug(ComponentInformationManagerLog) << "Downloading translation json" << compInfo->uriTranslation;
if (_uriIsFTP(compInfo->uriTranslation)) { if (_uriIsFTP(compInfo->uriTranslation)) {
connect(ftpManager, &FTPManager::downloadComplete, requestMachine, &RequestMetaDataTypeStateMachine::_downloadCompleteTranslationJson); connect(ftpManager, &FTPManager::downloadComplete, requestMachine, &RequestMetaDataTypeStateMachine::_ftpDownloadCompleteTranslationJson);
ftpManager->download(compInfo->uriTranslation, QStandardPaths::writableLocation(QStandardPaths::TempLocation)); ftpManager->download(compInfo->uriTranslation, QStandardPaths::writableLocation(QStandardPaths::TempLocation));
} else { } else {
// FIXME: NYI QGCFileDownload* download = new QGCFileDownload(requestMachine);
qCDebug(ComponentInformationManagerLog) << "Skipping translation json download. http download NYI"; connect(download, &QGCFileDownload::downloadComplete, requestMachine, &RequestMetaDataTypeStateMachine::_httpDownloadCompleteTranslationJson);
download->download(compInfo->uriTranslation);
} }
} }
} else { } else {
......
...@@ -38,8 +38,10 @@ public: ...@@ -38,8 +38,10 @@ public:
void statesCompleted (void) const final; void statesCompleted (void) const final;
private slots: private slots:
void _downloadCompleteMetaDataJson (const QString& file, const QString& errorMsg); void _ftpDownloadCompleteMetaDataJson (const QString& file, const QString& errorMsg);
void _downloadCompleteTranslationJson(const QString& file, const QString& errorMsg); void _ftpDownloadCompleteTranslationJson (const QString& file, const QString& errorMsg);
void _httpDownloadCompleteMetaDataJson (QString remoteFile, QString localFile, QString errorMsg);
void _httpDownloadCompleteTranslationJson(QString remoteFile, QString localFile, QString errorMsg);
QString _downloadCompleteJsonWorker (const QString& jsonFileName, const QString& inflatedFileName); QString _downloadCompleteJsonWorker (const QString& jsonFileName, const QString& inflatedFileName);
private: private:
......
...@@ -1529,7 +1529,11 @@ bool MockLink::_handleRequestMessage(const mavlink_command_long_t& request, bool ...@@ -1529,7 +1529,11 @@ bool MockLink::_handleRequestMessage(const mavlink_command_long_t& request, bool
void MockLink::_sendVersionMetaData(void) void MockLink::_sendVersionMetaData(void)
{ {
mavlink_message_t responseMsg; mavlink_message_t responseMsg;
#if 1
char metaDataURI[MAVLINK_MSG_COMPONENT_INFORMATION_FIELD_METADATA_URI_LEN] = "mavlinkftp://version.json.gz"; char metaDataURI[MAVLINK_MSG_COMPONENT_INFORMATION_FIELD_METADATA_URI_LEN] = "mavlinkftp://version.json.gz";
#else
char metaDataURI[MAVLINK_MSG_COMPONENT_INFORMATION_FIELD_METADATA_URI_LEN] = "https://bit.ly/31nm0fs";
#endif
char translationURI[MAVLINK_MSG_COMPONENT_INFORMATION_FIELD_TRANSLATION_URI_LEN] = ""; char translationURI[MAVLINK_MSG_COMPONENT_INFORMATION_FIELD_TRANSLATION_URI_LEN] = "";
mavlink_msg_component_information_pack_chan(_vehicleSystemId, mavlink_msg_component_information_pack_chan(_vehicleSystemId,
...@@ -1548,7 +1552,11 @@ void MockLink::_sendVersionMetaData(void) ...@@ -1548,7 +1552,11 @@ void MockLink::_sendVersionMetaData(void)
void MockLink::_sendParameterMetaData(void) void MockLink::_sendParameterMetaData(void)
{ {
mavlink_message_t responseMsg; mavlink_message_t responseMsg;
#if 1
char metaDataURI[MAVLINK_MSG_COMPONENT_INFORMATION_FIELD_METADATA_URI_LEN] = "mavlinkftp://parameter.json"; char metaDataURI[MAVLINK_MSG_COMPONENT_INFORMATION_FIELD_METADATA_URI_LEN] = "mavlinkftp://parameter.json";
#else
char metaDataURI[MAVLINK_MSG_COMPONENT_INFORMATION_FIELD_METADATA_URI_LEN] = "https://bit.ly/2ZKRIRE";
#endif
char translationURI[MAVLINK_MSG_COMPONENT_INFORMATION_FIELD_TRANSLATION_URI_LEN] = ""; char translationURI[MAVLINK_MSG_COMPONENT_INFORMATION_FIELD_TRANSLATION_URI_LEN] = "";
mavlink_msg_component_information_pack_chan(_vehicleSystemId, mavlink_msg_component_information_pack_chan(_vehicleSystemId,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment