* Gimbal: ignore invalid gimbal_device_id
Otherwise, we potentially work with garbage.
* Gimbal: Reference gimbal with manager + device IDs
This changes how the found gimbals are referenced. Instead of only using
the gimbal device ID for the gimbal map, we now also use the gimbal
manager compid.
This assumes that it is valid to have more than one gimbal manager with
non-MAVLink gimbals attached, which means the gimbal_device_id would
clash in that case, e.g. both would be 1.
Therefore, we use the gimbal manager compid as well as the associated
gimbal_device_id as the map key.
* Gimbal: fix yaw calculation
We should use the new yaw value, not the previous one when calculating
the missing frame.
* Gimbal: send commands to gimbal component
We shouldn't just send the commands to the vehicle because the gimbal
manager might be implemented on any component, not just the autopilot.
* Gimbal: fix operator==
This made sense when we were not taking compid autopilot into account,
but now it will log this every vehicle connection if it isn't emulating
a mavlink camera
This fixes terrain download on Ubuntu 22.04 where only OpenSSL 3 is
available on the system but Qt5 wants OpenSSL 1.x.
This just copies the fix over from QGCFileDownload.
Since we no longer request cameras to have specific camera component IDs
but allow the autopilot to "be" a camera as well, we need to adjust the
unit tests to account for that.
By querying autopilot for the CAMERA_INFORMATION message, we allow an
autopilot to be a proxy for a MAVLink or non-MAVLink camera.
The idea is similar to a gimbal manager implemented by an autopilot.
The used commands like REQUEST_CAMERA_SETTINGS and
REQUEST_CAMERA_INFORMATION are deprecated. Therefore, we should
gradually try to move to the new REQUEST_MESSAGE commands.
This commit does so by sending REQUEST_MESSAGE by default but falling
back to the previous commands on the second try and every other retry
after that.
This removes rc version strings from the Android version code which
does not allow for anything but numbers. This is just to fix the release
candidate builds.
gimbal controller sends some message requests when receiving a
hearbeat, and the cmd results collide with this test, so we filter
out MAV_CMD_REQUEST_MESSAGE from gimbal controller
RequestMessageTest implementation collides with how gimbal controller works.
Gimbal controller will request some messages when hearbeat is received, to
try to discover new gimbals, and it messes with this particular test, so this
way we can disable gimbal manager just for this test
Instead of setting manually the roilocationitem coordinate in
flyviewmap.qml, we rely instead on the new signal from vehicle.
This way, changes in roi in other parts of the app than map clicks,
like gimbal controls point home, will make the roi indicator appear