From 5b968389a0f64d4a0716b92b6f5f5610f9bdabd5 Mon Sep 17 00:00:00 2001 From: Alessio Morale Date: Wed, 24 Sep 2014 01:05:08 +0200 Subject: [PATCH] OP-1476 - AutoUpload description from OPFW firmwares --- .../src/experimental/USB_UPLOAD_TOOL/main.cpp | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/ground/openpilotgcs/src/experimental/USB_UPLOAD_TOOL/main.cpp b/ground/openpilotgcs/src/experimental/USB_UPLOAD_TOOL/main.cpp index 36580e895..78a53545d 100644 --- a/ground/openpilotgcs/src/experimental/USB_UPLOAD_TOOL/main.cpp +++ b/ground/openpilotgcs/src/experimental/USB_UPLOAD_TOOL/main.cpp @@ -168,11 +168,29 @@ int main(int argc, char *argv[]) } standardOutput << "Uploading..." << endl; bool retstatus = dfu.UploadFirmware(file.toLatin1(), verify, device); + if (!retstatus) { standardOutput << "Upload failed with code:" << retstatus << endl; return -1; } - if (!description.isEmpty()) { + while (!dfu.isFinished()) { + QThread::msleep(500); + } + if (file.endsWith("opfw")) { + QByteArray firmware; + QFile fwfile(file); + if (!fwfile.open(QIODevice::ReadOnly)) { + standardOutput << "Cannot open file " << file << endl; + return -1; + } + firmware = fwfile.readAll(); + QByteArray desc = firmware.right(100); + OP_DFU::Status status = dfu.UploadDescription(desc); + if (status != OP_DFU::Last_operation_Success) { + standardOutput << "Upload failed with code:" << retstatus << endl; + return -1; + } + } else if (!description.isEmpty()) { retstatus = dfu.UploadDescription(description); if (retstatus != OP_DFU::Last_operation_Success) { standardOutput << "Upload failed with code:" << retstatus << endl;