From 3a2b0f330984fcd60bdee6fe98ec4d986dc7b82c Mon Sep 17 00:00:00 2001
From: Gus Grubba <gus@auterion.com>
Date: Mon, 13 May 2019 10:25:21 -0400
Subject: [PATCH] Check for camera info when receiving heartbeats from camera
 component IDs only.

---
 src/Camera/QGCCameraManager.cc | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/Camera/QGCCameraManager.cc b/src/Camera/QGCCameraManager.cc
index e61c62f..2352ad6 100644
--- a/src/Camera/QGCCameraManager.cc
+++ b/src/Camera/QGCCameraManager.cc
@@ -107,8 +107,8 @@ QGCCameraManager::_handleHeartbeat(const mavlink_message_t &message)
 {
     mavlink_heartbeat_t heartbeat;
     mavlink_msg_heartbeat_decode(&message, &heartbeat);
-    //-- If this heartbeat is from a different component within the vehicle
-    if(_vehicleReadyState && _vehicle->id() == message.sysid && _vehicle->defaultComponentId() != message.compid) {
+    //-- Only pay attention to "camera" component IDs
+    if(_vehicleReadyState && _vehicle->id() == message.sysid && message.compid >= MAV_COMP_ID_CAMERA && message.compid <= MAV_COMP_ID_CAMERA6) {
         //-- First time hearing from this one?
         QString sCompID = QString::number(message.compid);
         if(!_cameraInfoRequest.contains(sCompID)) {
@@ -135,8 +135,7 @@ QGCCameraManager::_handleHeartbeat(const mavlink_message_t &message)
                             }
                         } else {
                             pInfo->tryCount++;
-                            //-- Request camera info. Again. It could be something other than a camera, in which
-                            //   case, we won't ever receive it.
+                            //-- Request camera info again.
                             _requestCameraInfo(message.compid);
                         }
                     }