:tada: **Version 2 of MAVSDK is finally out!**
:notebook: Note that v2 means that the API (and ABI) has changed, for details see: https://mavsdk.mavlink.io/v2.0/en/cpp/api_changes.html#v2
High level changelog
- API changes ([upgrade guide](https://mavsdk.mavlink.io/v2.0/en/cpp/api_changes.html#v2))
- Multiple callback subscriptions
- Required configuration of Mavsdk instances, consolidated component types
- Easier autopilot discovery
- Better support for server components (camera, companion/onboard computer side)
- New functionality
- New plugins
- Tons of refactoring and bugfixes
- Updated dependencies
All pull requests
* gitmodule: remove mavlink repo by julianoes in https://github.com/mavlink/MAVSDK/pull/1771
* Server component and server plugin infrastructure by julianoes in https://github.com/mavlink/MAVSDK/pull/1733
* Add version number fallback by bazfp in https://github.com/mavlink/MAVSDK/pull/1773
* Fix system discovery by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1774
* workflows: reset CI cache for Windows build by julianoes in https://github.com/mavlink/MAVSDK/pull/1775
* Fix FTP test segfault by julianoes in https://github.com/mavlink/MAVSDK/pull/1777
* telemetry: fix scope of subscription lock by julianoes in https://github.com/mavlink/MAVSDK/pull/1780
* openssl: update to 1.1.1o by julianoes in https://github.com/mavlink/MAVSDK/pull/1782
* params: fix double promise call by julianoes in https://github.com/mavlink/MAVSDK/pull/1788
* Update ios toolchain by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1781
* Update dependencies by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1784
* Two small improvements of server component by julianoes in https://github.com/mavlink/MAVSDK/pull/1790
* core: Add callback list by julianoes in https://github.com/mavlink/MAVSDK/pull/1767
* More command result options by julianoes in https://github.com/mavlink/MAVSDK/pull/1793
* telemetry: sys_status for position health flags by julianoes in https://github.com/mavlink/MAVSDK/pull/1794
* docker/workflows: add PX4 v1.13 beta to CI by julianoes in https://github.com/mavlink/MAVSDK/pull/1796
* server: enabled option for default health check service for mavsdk grpc server. by ykhedar in https://github.com/mavlink/MAVSDK/pull/1799
* rtk: fix multi part data being sent by julianoes in https://github.com/mavlink/MAVSDK/pull/1808
* plugin: corrected support for basic actions for ardupilot by ykhedar in https://github.com/mavlink/MAVSDK/pull/1738
* Fix vehicle type detection by bazfp in https://github.com/mavlink/MAVSDK/pull/1810
* Add Ubuntu 22.04 to CI by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1801
* workflows: try to fix caching issue by julianoes in https://github.com/mavlink/MAVSDK/pull/1814
* cmake: install mavlink headers in correct dir by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1819
* Retry home position until set. by ykhedar in https://github.com/mavlink/MAVSDK/pull/1816
* Transponder: expose altitude type by chep in https://github.com/mavlink/MAVSDK/pull/1812
* Integration tests: do not continue if flightmode unknown by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1830
* Fix build_and_push_docker_images.sh by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1829
* core: fix some bugs in fs_canonical by CodeTriangle in https://github.com/mavlink/MAVSDK/pull/1820
* Add Fedora 36 to CI by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1828
* Unregister to prevent fulfilling promise twice by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1824
* Use a uniform distribution to drop messages in lossy test by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1827
* Subscriptions with multiple subscribers by julianoes in https://github.com/mavlink/MAVSDK/pull/1768
* Update Follow me code to match upstream changes by junwoo091400 in https://github.com/mavlink/MAVSDK/pull/1770
* core: unistd is not available on Windows by julianoes in https://github.com/mavlink/MAVSDK/pull/1832
* Generate grpc_server.h/grpc_server.cpp, support selectively building plugins by julianoes in https://github.com/mavlink/MAVSDK/pull/1776
* Set default MAVLINK_DIALECT by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1835
* Use mission_type argument in integration test by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1834
* Update tinyxml2 to 9.0.0 by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1838
* Fix cache by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1844
* Fix unused warnings in filesystem tests by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1841
* Fix warning and improve integration test by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1839
* Fix warnings in mavsdk server by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1840
* Only enable follow-me test if the improved followme' parameter exists by junwoo091400 in https://github.com/mavlink/MAVSDK/pull/1847
* Various cleanup towards v2 by julianoes in https://github.com/mavlink/MAVSDK/pull/1849
* added optional mavsdk server built with grpc proto reflection. This a… by ykhedar in https://github.com/mavlink/MAVSDK/pull/1850
* Local protoc-gen-mavsdk install by julianoes in https://github.com/mavlink/MAVSDK/pull/1855
* core: second in flight command fix by julianoes in https://github.com/mavlink/MAVSDK/pull/1862
* core: prevent timeout after callback by julianoes in https://github.com/mavlink/MAVSDK/pull/1863
* Detect external storage format by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1851
* create ack packet and send it by julianoes in https://github.com/mavlink/MAVSDK/pull/1868
* Switch to clang-format-12 by julianoes in https://github.com/mavlink/MAVSDK/pull/1859
* examples: fix build of gimbal_device_tester by julianoes in https://github.com/mavlink/MAVSDK/pull/1871
* tools: fix clang-format error message by julianoes in https://github.com/mavlink/MAVSDK/pull/1887
* mission/mission_raw: more results by julianoes in https://github.com/mavlink/MAVSDK/pull/1886
* info: updated the message to obtain flight and autopilot info as per … by ykhedar in https://github.com/mavlink/MAVSDK/pull/1787
* core: fix unused-parameter warning by julianoes in https://github.com/mavlink/MAVSDK/pull/1895
* mission_raw: Add support for geofence and rally points by julianoes in https://github.com/mavlink/MAVSDK/pull/1892
* telemetry: split attitude into Euler + Quaternion by julianoes in https://github.com/mavlink/MAVSDK/pull/1878
* core: fix style by julianoes in https://github.com/mavlink/MAVSDK/pull/1896
* Add support for pkgconfig by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1889
* mission_raw: add home position at 0 for ArduPilot by julianoes in https://github.com/mavlink/MAVSDK/pull/1893
* Update openssl to 3.0.5 by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1811
* New vehicle action by rligocki in https://github.com/mavlink/MAVSDK/pull/1628
* Pin ci workers to macos-12 by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1898
* Add ArduPlane flight modes by bahadirbuber in https://github.com/mavlink/MAVSDK/pull/1897
* core: remove wrong/confusing warning by julianoes in https://github.com/mavlink/MAVSDK/pull/1904
* Remove some noise by julianoes in https://github.com/mavlink/MAVSDK/pull/1905
* Add software version type to system info by YalamareddyChaitanya in https://github.com/mavlink/MAVSDK/pull/1918
* tools: Refactor changelog generation by Andreea-L in https://github.com/mavlink/MAVSDK/pull/1923
* Added altitude to telemetry plugin by YalamareddyChaitanya in https://github.com/mavlink/MAVSDK/pull/1920
* Use latest MAVLink definitions by TSC21 in https://github.com/mavlink/MAVSDK/pull/1929
* Add bottom_clearance to altitude in telemetry by YalamareddyChaitanya in https://github.com/mavlink/MAVSDK/pull/1930
* mavlink: install pymavlink dependencies by julianoes in https://github.com/mavlink/MAVSDK/pull/1906
* Move openssl dep to MAVSDK_SERVER only by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1926
* docker: Update README by antonio-sc66 in https://github.com/mavlink/MAVSDK/pull/1938
* server_utility: remove leftover warning by julianoes in https://github.com/mavlink/MAVSDK/pull/1934
* geofence: Add support for circular geofences by YalamareddyChaitanya in https://github.com/mavlink/MAVSDK/pull/1933
* Add multi_mavsdk_server.sh util by antonio-sc66 in https://github.com/mavlink/MAVSDK/pull/1937
* fixed log_files proto by dayjaby in https://github.com/mavlink/MAVSDK/pull/1942
* Fix CI for iOS by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/1949
* mission_raw: add method to import plan from string by julianoes in https://github.com/mavlink/MAVSDK/pull/1950
* fix_style.sh: Show correct docs link by potaito in https://github.com/mavlink/MAVSDK/pull/1954
* examples: add simple sniffer by julianoes in https://github.com/mavlink/MAVSDK/pull/1953
* Add battery status message for v1 by Katawann in https://github.com/mavlink/MAVSDK/pull/1939
* Fixed bug with empty mission upload by weirdgyn in https://github.com/mavlink/MAVSDK/pull/1963
* core: always send heartbeat on serial connections by julianoes in https://github.com/mavlink/MAVSDK/pull/1968
* telemetry: fix distance_sensor unit by julianoes in https://github.com/mavlink/MAVSDK/pull/1971
* Distance sensor server by potaito in https://github.com/mavlink/MAVSDK/pull/1964
* Winch and Gripper plugins by potaito in https://github.com/mavlink/MAVSDK/pull/1958
* mission_raw: bug fix in setting current mission item by YalamareddyChaitanya in https://github.com/mavlink/MAVSDK/pull/1976
* core/plugins: fix includes by julianoes in https://github.com/mavlink/MAVSDK/pull/1982
* calibration: remove spurious cancel command by julianoes in https://github.com/mavlink/MAVSDK/pull/1986
* offboard: two actuator control fixes by julianoes in https://github.com/mavlink/MAVSDK/pull/1993
* Enable offboard plugin with Ardupilot Rover by dvinc in https://github.com/mavlink/MAVSDK/pull/1995
* plugins/action: fix apm_takeoff by 41Mo in https://github.com/mavlink/MAVSDK/pull/1997
* Add overrides in impl_h template by potaito in https://github.com/mavlink/MAVSDK/pull/2004
* mavsdk_server: fix linking by julianoes in https://github.com/mavlink/MAVSDK/pull/2005
* info: wait up to 1.5s for information by julianoes in https://github.com/mavlink/MAVSDK/pull/2006
* CI: update checkout action by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/2011
* Expose params through mavlink_passthrough by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/2010
* Rename _parent to _system_impl by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/2012
* CI: Remove deprecated ubuntu-18.04 by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/2017
* Build deb package for Ubuntu 22.04 by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/2018
* Change dl with CMAKE_DL_LIBS by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/2020
* Fix mavlink_passthrough operator<< by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/2014
* telemetry: fix set battery rate by YalamareddyChaitanya in https://github.com/mavlink/MAVSDK/pull/2021
* Update mavlink by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/2024
* core: fix system tests subscription by julianoes in https://github.com/mavlink/MAVSDK/pull/2025
* Easier discovery by julianoes in https://github.com/mavlink/MAVSDK/pull/2026
* Add .pc file (pkg-config) to deb package by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/2032
* tune: fix stack overrun by julianoes in https://github.com/mavlink/MAVSDK/pull/2036
* Update mavlink and use its new CMakeLists by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/2028
* Add camera client sample code for camera server example by tbago in https://github.com/mavlink/MAVSDK/pull/2042
* Refactor MAVLinkParameters into client and server classes by julianoes in https://github.com/mavlink/MAVSDK/pull/1772
* core: improve subscription race by julianoes in https://github.com/mavlink/MAVSDK/pull/2044
* Minor refactoring in ardupilot flight modes by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/2052
* added set_position_velocity_acceleration_ned offboard function by alireza787b in https://github.com/mavlink/MAVSDK/pull/2057
* Generate code from protos by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/2061
* ci: try to fix fetching tags on macOS by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/2055
* CI: disable integration tests by julianoes in https://github.com/mavlink/MAVSDK/pull/2062
* Camera definition: accept bool type in xml by julianoes in https://github.com/mavlink/MAVSDK/pull/2048
* Update gtest by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/2054
* corrected mission item seq check for ardupilot by ykhedar in https://github.com/mavlink/MAVSDK/pull/2064
* The bool parameter now automatically creates on/off options. Reopen. by tlapik123 in https://github.com/mavlink/MAVSDK/pull/2067
* Tools: change the absolute path for generate_from_protos.sh by tbago in https://github.com/mavlink/MAVSDK/pull/2071
* examples: add disconnection example by julianoes in https://github.com/mavlink/MAVSDK/pull/2078
* core: remove always connected flag by julianoes in https://github.com/mavlink/MAVSDK/pull/2077
* core: add way to remove a connection by julianoes in https://github.com/mavlink/MAVSDK/pull/2079
* core: don't create a null system if not required by julianoes in https://github.com/mavlink/MAVSDK/pull/2081
* Simplify linking, update dependencies by julianoes in https://github.com/mavlink/MAVSDK/pull/2069
* TCP: Allow connecting by hostname by ThomasDebrunner in https://github.com/mavlink/MAVSDK/pull/2053
* build: Install MAVLink headers within MAVSDK by julianoes in https://github.com/mavlink/MAVSDK/pull/2084
* Build with gcc13 without errors by tlapik123 in https://github.com/mavlink/MAVSDK/pull/2087
* log_files: remove hard-coded timeout values by julianoes in https://github.com/mavlink/MAVSDK/pull/2092
* core: do not ping ardupilot by holden-zenith in https://github.com/mavlink/MAVSDK/pull/2099
* Added new code for MAV_CMD_DO_SET_SERVO ArduPilot by trolledbypro in https://github.com/mavlink/MAVSDK/pull/2113
* Fix battery voltage, included extended voltages by julianoes in https://github.com/mavlink/MAVSDK/pull/2114
* Mission module: Updated camera action commands (param4) to be compliant with mavlink standard by trolledbypro in https://github.com/mavlink/MAVSDK/pull/2118
* Link CMAKE_DL_LIBS when necessary by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/2104
* core: send heartbeats to UDP remote by julianoes in https://github.com/mavlink/MAVSDK/pull/2097
* telemetry: Be compatible for battery_status by julianoes in https://github.com/mavlink/MAVSDK/pull/2123
* Action plugin 'set_actuator_async' switch statement index changed to zero-based by elbarto1980 in https://github.com/mavlink/MAVSDK/pull/2122
* Fix: Ardupilot needs to be in offboard/guided mode for goto_location() by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/2136
* telemetry: do not interrupt calibration checks too early by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/2140
* camera: fix conflict between subscribe_status and subscribe_information by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/2141
* docker/CI: remove Fedora images by julianoes in https://github.com/mavlink/MAVSDK/pull/2148
* Fix storage type translation (STORAGE_TYPE_OTHER) by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/2151
* offboard: fix typo, update proto by julianoes in https://github.com/mavlink/MAVSDK/pull/2154
* Preserve symlinks in zip file by tthbalazs in https://github.com/mavlink/MAVSDK/pull/2157
* Threading fixes, MAVLink sequence number cleanup by julianoes in https://github.com/mavlink/MAVSDK/pull/2155
* Mavsdk server default to autopilot by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/2164
* Request mode change for action MAV_CMD_DO_REPOSITION by Jaeyoung-Lim in https://github.com/mavlink/MAVSDK/pull/2170
* Split Ftp plugin into Ftp and FtpServer by julianoes in https://github.com/mavlink/MAVSDK/pull/2060
* Split mission transfer into client and server by julianoes in https://github.com/mavlink/MAVSDK/pull/2160
* gimbal device test fixes by julianoes in https://github.com/mavlink/MAVSDK/pull/2171
* core: fix burst implementation by julianoes in https://github.com/mavlink/MAVSDK/pull/2174
* core: fix mission transfer by julianoes in https://github.com/mavlink/MAVSDK/pull/2175
* CI: downgrade to Python 3.11 for macOS by julianoes in https://github.com/mavlink/MAVSDK/pull/2179
* mavsdk_server: fix dl-lib linking by JonasVautherin in https://github.com/mavlink/MAVSDK/pull/2181
* Include header <atomic> in connection.h to avoid compiler erros with msvc2019 16.4 by chehrlic in https://github.com/mavlink/MAVSDK/pull/2185
* Use DEBUG_POSTFIX cmake property to distinguish between debug and release dll by chehrlic in https://github.com/mavlink/MAVSDK/pull/2186
* Update to MavlinkPassthrough unsubscribe_message by c-devine in https://github.com/mavlink/MAVSDK/pull/2189
* core: fix component ID check by julianoes in https://github.com/mavlink/MAVSDK/pull/2193
* core: fix incoming messages by sysid by julianoes in https://github.com/mavlink/MAVSDK/pull/2192
* Add option to build without cURL by julianoes in https://github.com/mavlink/MAVSDK/pull/1955
* camera: remove cached camera definition files by julianoes in https://github.com/mavlink/MAVSDK/pull/2195
* tools: remove unused script by julianoes in https://github.com/mavlink/MAVSDK/pull/2196
* tools: Update iOS toolchain by julianoes in https://github.com/mavlink/MAVSDK/pull/2184
* Consolidate components by julianoes in https://github.com/mavlink/MAVSDK/pull/2169
* Customizing distance sensor to add orientation for multiple sensor support by prokas-nikos in https://github.com/mavlink/MAVSDK/pull/2093
* Require configuration for Mavsdk ctor by julianoes in https://github.com/mavlink/MAVSDK/pull/2197
* More camera server functionality by tbago in https://github.com/mavlink/MAVSDK/pull/2088
* Update readme and license by julianoes in https://github.com/mavlink/MAVSDK/pull/2198
New Contributors
* chep made their first contribution in https://github.com/mavlink/MAVSDK/pull/1812
* CodeTriangle made their first contribution in https://github.com/mavlink/MAVSDK/pull/1820
* junwoo091400 made their first contribution in https://github.com/mavlink/MAVSDK/pull/1770
* rligocki made their first contribution in https://github.com/mavlink/MAVSDK/pull/1628
* bahadirbuber made their first contribution in https://github.com/mavlink/MAVSDK/pull/1897
* YalamareddyChaitanya made their first contribution in https://github.com/mavlink/MAVSDK/pull/1918
* Andreea-L made their first contribution in https://github.com/mavlink/MAVSDK/pull/1923
* antonio-sc66 made their first contribution in https://github.com/mavlink/MAVSDK/pull/1938
* weirdgyn made their first contribution in https://github.com/mavlink/MAVSDK/pull/1963
* dvinc made their first contribution in https://github.com/mavlink/MAVSDK/pull/1995
* 41Mo made their first contribution in https://github.com/mavlink/MAVSDK/pull/1997
* tbago made their first contribution in https://github.com/mavlink/MAVSDK/pull/2042
* alireza787b made their first contribution in https://github.com/mavlink/MAVSDK/pull/2057
* tlapik123 made their first contribution in https://github.com/mavlink/MAVSDK/pull/2067
* holden-zenith made their first contribution in https://github.com/mavlink/MAVSDK/pull/2099
* trolledbypro made their first contribution in https://github.com/mavlink/MAVSDK/pull/2113
* tthbalazs made their first contribution in https://github.com/mavlink/MAVSDK/pull/2157
* chehrlic made their first contribution in https://github.com/mavlink/MAVSDK/pull/2185
* c-devine made their first contribution in https://github.com/mavlink/MAVSDK/pull/2189
* prokas-nikos made their first contribution in https://github.com/mavlink/MAVSDK/pull/2093
**Full Changelog**: https://github.com/mavlink/MAVSDK/compare/v1.4.0...v2.0.0