Unverified Commit 7dfd0a2b authored by Gus Grubba's avatar Gus Grubba Committed by GitHub

Merge pull request #7661 from mavlink/photoIdle

Photo idle
parents 07d286c9 7e13b6d4
...@@ -359,7 +359,16 @@ QGCCameraControl::takePhoto() ...@@ -359,7 +359,16 @@ QGCCameraControl::takePhoto()
{ {
qCDebug(CameraControlLog) << "takePhoto()"; qCDebug(CameraControlLog) << "takePhoto()";
//-- Check if camera can capture photos or if it can capture it while in Video Mode //-- Check if camera can capture photos or if it can capture it while in Video Mode
if(!capturesPhotos() || (cameraMode() == CAM_MODE_VIDEO && !photosInVideoMode()) || photoStatus() != PHOTO_CAPTURE_IDLE) { if(!capturesPhotos()) {
qCWarning(CameraControlLog) << "Camera does not handle image capture";
return false;
}
if(cameraMode() == CAM_MODE_VIDEO && !photosInVideoMode()) {
qCWarning(CameraControlLog) << "Camera does not handle image capture while in video mode";
return false;
}
if(photoStatus() != PHOTO_CAPTURE_IDLE) {
qCWarning(CameraControlLog) << "Camera not idle";
return false; return false;
} }
if(!_resetting) { if(!_resetting) {
...@@ -719,10 +728,11 @@ QGCCameraControl::_mavCommandResult(int vehicleId, int component, int command, i ...@@ -719,10 +728,11 @@ QGCCameraControl::_mavCommandResult(int vehicleId, int component, int command, i
switch(command) { switch(command) {
case MAV_CMD_IMAGE_START_CAPTURE: case MAV_CMD_IMAGE_START_CAPTURE:
case MAV_CMD_IMAGE_STOP_CAPTURE: case MAV_CMD_IMAGE_STOP_CAPTURE:
if(++_captureInfoRetries < 5) { if(++_captureInfoRetries < 3) {
_captureStatusTimer.start(1000); _captureStatusTimer.start(1000);
} else { } else {
qCDebug(CameraControlLog) << "Giving up requesting capture status"; qCDebug(CameraControlLog) << "Giving up start/stop image capture";
_setPhotoStatus(PHOTO_CAPTURE_IDLE);
} }
break; break;
case MAV_CMD_REQUEST_CAMERA_CAPTURE_STATUS: case MAV_CMD_REQUEST_CAMERA_CAPTURE_STATUS:
...@@ -778,6 +788,7 @@ void ...@@ -778,6 +788,7 @@ void
QGCCameraControl::_setPhotoStatus(PhotoStatus status) QGCCameraControl::_setPhotoStatus(PhotoStatus status)
{ {
if(_photo_status != status) { if(_photo_status != status) {
qCDebug(CameraControlLog) << "Set Photo Status:" << status;
_photo_status = status; _photo_status = status;
emit photoStatusChanged(); emit photoStatusChanged();
} }
......
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