Browse Source

GimbalController: Limit how fast we send gimbal status message request:

There was no wait between such requests, and Ardupilot was failing
to detect the handshake some times
QGC4.4
davidsastresas 9 months ago
parent
commit
efa109cfc1
  1. 7
      src/Gimbal/GimbalController.cc

7
src/Gimbal/GimbalController.cc

@ -310,8 +310,11 @@ GimbalController::_checkComplete(Gimbal& gimbal, uint8_t compid) @@ -310,8 +310,11 @@ GimbalController::_checkComplete(Gimbal& gimbal, uint8_t compid)
_requestGimbalInformation(compid);
--gimbal._requestInformationRetries;
}
if (!gimbal._receivedStatus && gimbal._requestStatusRetries > 0) {
// Limit to 1 second between set message interfacl requests
static qint64 lastRequestStatusMessage = 0;
qint64 now = QDateTime::currentMSecsSinceEpoch();
if (!gimbal._receivedStatus && gimbal._requestStatusRetries > 0 && now - lastRequestStatusMessage > 1000) {
lastRequestStatusMessage = now;
_vehicle->sendMavCommand(compid,
MAV_CMD_SET_MESSAGE_INTERVAL,
false /* no error */,

Loading…
Cancel
Save