From 4b34688a424635bb7daefe00174060e2f20de604 Mon Sep 17 00:00:00 2001 From: Helen Oleynikova Date: Mon, 14 Jul 2014 11:21:17 +0200 Subject: [PATCH 1/2] Fixed video transmission. --- src/uas/UAS.cc | 12 ++++++++++-- src/ui/HUD.cc | 7 +++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/uas/UAS.cc b/src/uas/UAS.cc index 020516b..8201184 100644 --- a/src/uas/UAS.cc +++ b/src/uas/UAS.cc @@ -1329,10 +1329,13 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message) ++imagePacketsArrived; // emit signal if all packets arrived + // && seq >= imagePackets-1 if ((imagePacketsArrived >= imagePackets)) { // Restart statemachine emit imageReady(this); + //imagePacketsArrived = 0; + //imagePackets = 0; //qDebug() << "imageReady emitted. all packets arrived"; } } @@ -2142,11 +2145,16 @@ QImage UAS::getImage() if (!image.loadFromData(imageRecBuffer)) { qDebug() << __FILE__ << __LINE__ << "Loading data from image buffer failed!"; + //imagePacketsArrived = 0; + //imagePackets = 0; + return QImage(); } } + // Restart statemachine imagePacketsArrived = 0; - //imageRecBuffer.clear(); + imagePackets = 0; + imageRecBuffer.clear(); return image; } @@ -3148,7 +3156,7 @@ void UAS::sendHilGroundTruth(quint64 time_us, float roll, float pitch, float yaw Q_UNUSED(xacc); Q_UNUSED(yacc); Q_UNUSED(zacc); - + // Emit attitude for cross-check emit valueChanged(uasId, "roll sim", "rad", roll, getUnixTime()); emit valueChanged(uasId, "pitch sim", "rad", pitch, getUnixTime()); diff --git a/src/ui/HUD.cc b/src/ui/HUD.cc index 90b1ca0..e4386ae 100644 --- a/src/ui/HUD.cc +++ b/src/ui/HUD.cc @@ -119,7 +119,7 @@ HUD::HUD(int width, int height, QWidget* parent) { Q_UNUSED(width); Q_UNUSED(height); - + // Set auto fill to false setAutoFillBackground(false); @@ -1374,7 +1374,10 @@ void HUD::copyImage(UASInterface* uas) UAS* u = qobject_cast(uas); if (u) { - this->glImage = u->getImage(); + QImage temp_im = u->getImage(); + if (temp_im.byteCount() > 0) { + this->glImage = temp_im;//u->getImage(); + } // Save to directory if logging is enabled if (imageLoggingEnabled) From f3bd14524161926ee78730fc956a6e4bb7277ea1 Mon Sep 17 00:00:00 2001 From: Helen Oleynikova Date: Mon, 14 Jul 2014 13:10:05 +0200 Subject: [PATCH 2/2] Clean-up for video transmission. --- src/uas/UAS.cc | 8 +------- src/ui/HUD.cc | 2 +- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/uas/UAS.cc b/src/uas/UAS.cc index ca4e6c0..9bc6ca3 100644 --- a/src/uas/UAS.cc +++ b/src/uas/UAS.cc @@ -1387,15 +1387,12 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message) ++imagePacketsArrived; // emit signal if all packets arrived - // && seq >= imagePackets-1 - if ((imagePacketsArrived >= imagePackets)) + if (imagePacketsArrived >= imagePackets) { // Restart statemachine imagePackets = 0; imagePacketsArrived = 0; emit imageReady(this); - //imagePacketsArrived = 0; - //imagePackets = 0; //qDebug() << "imageReady emitted. all packets arrived"; } } @@ -2205,8 +2202,6 @@ QImage UAS::getImage() if (!image.loadFromData(imageRecBuffer)) { qDebug() << __FILE__ << __LINE__ << "Loading data from image buffer failed!"; - //imagePacketsArrived = 0; - //imagePackets = 0; return QImage(); } } @@ -2216,7 +2211,6 @@ QImage UAS::getImage() imagePackets = 0; imageRecBuffer.clear(); return image; - } void UAS::requestImage() diff --git a/src/ui/HUD.cc b/src/ui/HUD.cc index c832228..48a74c0 100644 --- a/src/ui/HUD.cc +++ b/src/ui/HUD.cc @@ -1376,7 +1376,7 @@ void HUD::copyImage(UASInterface* uas) { QImage temp_im = u->getImage(); if (temp_im.byteCount() > 0) { - this->glImage = temp_im;//u->getImage(); + this->glImage = temp_im; } // Save to directory if logging is enabled