Hi developer:
I am a new QGC users. And I use one camera(From YUNEEC) compatible with QGC. I found when I click the change camera mode button , for Example from video mode to photo mode. The UI changed to photo mode immediately. But if the camera change mode return failed. The UI is not reset to origin video mode.
In the QGCCameraIO.cc
if(ack.param_result == PARAM_ACK_FAILED) {
if(++_sentRetries < 3) {
//-- Try again
qCWarning(CameraIOLog) << "Param set failed:" << _fact->name() << _sentRetries;
_paramWriteTimer.start();
}
return;
}
...
//-- If UI changed and value was not set, restore UI
If the camera ack param result is PARAM_ACK_FAILED. The QGC Client will retry to send mavlink message three times. But there is return in the following line and will always execute. So The restore UI function will never called when the ack message is still failed.
So in my opinion. I think the right logic is when retry three times all failed then restore the origin UI.
if(ack.param_result == PARAM_ACK_FAILED) {
if(++_sentRetries < 3) {
//-- Try again
qCWarning(CameraIOLog) << "Param set failed:" << _fact->name() << _sentRetries;
_paramWriteTimer.start();
return; ///< put return here
}
}
...
//-- If UI changed and value was not set, restore UI
Hi developer: I am a new QGC users. And I use one camera(From YUNEEC) compatible with QGC. I found when I click the change camera mode button , for Example from video mode to photo mode. The UI changed to photo mode immediately. But if the camera change mode return failed. The UI is not reset to origin video mode. In the QGCCameraIO.cc
If the camera ack param result is PARAM_ACK_FAILED. The QGC Client will retry to send mavlink message three times. But there is return in the following line and will always execute. So The restore UI function will never called when the ack message is still failed. So in my opinion. I think the right logic is when retry three times all failed then restore the origin UI.
Does that make sense to you?
Best Regard