From a4b2e79532979289a371f3085532baab7410c7b3 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 12 Feb 2019 09:12:58 +1100 Subject: [PATCH 1/6] Add link to Python in sidebar --- en/SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/SUMMARY.md b/en/SUMMARY.md index f2bb346..a7f20f3 100644 --- a/en/SUMMARY.md +++ b/en/SUMMARY.md @@ -4,6 +4,7 @@ * [FAQ](getting_started/faq.md) * [iOS/Swift](http://dronecode-sdk-swift.s3.eu-central-1.amazonaws.com/docs/master/index.html) +* [Python](https://github.com/dronecode/dronecodesdk-python#dronecodesdk-python) * [C++ (Dronecode Core)](cpp/README.md) * [Guide](guide/README.md) * [Usage/Paradigms](guide/general_usage.md) @@ -76,7 +77,6 @@ * [struct MavlinkMissionItemInt](api_reference/structdronecode__sdk_1_1_mission_raw_1_1_mavlink_mission_item_int.md) * [MavlinkPassthrough](/api_reference/classdronecode__sdk_1_1_mavlink_passthrough.md) * [namespace dronecode_sdk (globals)](api_reference/namespacedronecode__sdk.md) - * [Contributing](contributing/README.md) * [Building Source](contributing/build.md) * [Testing](contributing/test.md) From 80b61895c09e03e3373cb0c3b2264d3b952b43fd Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Wed, 20 Mar 2019 15:57:53 +0100 Subject: [PATCH 2/6] build: removed trailing whitespace --- en/contributing/build.md | 44 ++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/en/contributing/build.md b/en/contributing/build.md index 1b4420b..83f187f 100644 --- a/en/contributing/build.md +++ b/en/contributing/build.md @@ -1,13 +1,13 @@ # Building SDK from Source -This section explains how to [build](#build_sdk_cpp) and [install](#install-artifacts) the *Dronecode SDK* C++ library from source (both "natively" and in docker) for all our target platforms. +This section explains how to [build](#build_sdk_cpp) and [install](#install-artifacts) the *Dronecode SDK* C++ library from source (both "natively" and in docker) for all our target platforms. It also shows how to build the SDK with extensions and build the API Reference documentation. ## Build the C++ Library {#build_sdk_cpp} -This section explains how to build the SDK C++ library from source, -along with its unit and integration tests. +This section explains how to build the SDK C++ library from source, +along with its unit and integration tests. Build artifacts are created in the **build** subdirectory. ### macOS {#build_cpp_mac_os} @@ -33,7 +33,7 @@ To build the *Dronecode SDK* C++ Library on Linux (or macOS after installing the ``` > **Note** If the build reports a missing dependency, confirm that the set above matches the requirements in the [appropriate docker file for your platform](https://github.com/Dronecode/DronecodeSDK/tree/{{ book.github_branch }}/docker). -1. Clone the [DronecodeSDK repository](https://github.com/Dronecode/DronecodeSDK) (or your fork): +1. Clone the [DronecodeSDK repository](https://github.com/Dronecode/DronecodeSDK) (or your fork): ```sh git clone https://github.com/Dronecode/DronecodeSDK.git cd DronecodeSDK @@ -76,7 +76,7 @@ To build the library in Windows, you need: > **Note** The instructions below assume you downloaded [curl-7.56.1.zip](https://curl.haxx.se/download/curl-7.56.1.zip) and extracted to the root of your C drive. You can use a different *curl* if you want. To build the *Dronecode SDK* C++ Library on Windows: -1. Clone the [Dronecode SDK repository](https://github.com/Dronecode/DronecodeSDK) (or your fork): +1. Clone the [Dronecode SDK repository](https://github.com/Dronecode/DronecodeSDK) (or your fork): ```sh git clone https://github.com/Dronecode/DronecodeSDK.git cd DronecodeSDK @@ -123,7 +123,7 @@ To build the *Dronecode SDK* C++ Library on Windows: ## Install the SDK {#install-artifacts} -*Installing* builds the SDK **and** copies the libraries and header files into a "public" location so that they can be referenced by C++ applications (see [Building C++ Apps](../guide/toolchain.md)). +*Installing* builds the SDK **and** copies the libraries and header files into a "public" location so that they can be referenced by C++ applications (see [Building C++ Apps](../guide/toolchain.md)). The SDK supports installation system-wide by default. You can also install files locally/relative to the DronecodeSDK tree if needed. > **Warning** System-wide installation is not yet supported on Windows (see [#155](https://github.com/Dronecode/DronecodeSDK/issues/155)) so you will need to [install the SDK locally](#sdk_local_install). @@ -134,7 +134,7 @@ The SDK supports installation system-wide by default. You can also install files System-wide installation copies the SDK headers and binaries to the standard system-wide locations for your platform (On Ubuntu Linux this is **/usr/local/**). -> **Warning** System-wide installation overwrites any previously installed version of the SDK. +> **Warning** System-wide installation overwrites any previously installed version of the SDK. To install the SDK system-wide: @@ -147,7 +147,7 @@ sudo make default install # sudo required to install files to system directorie sudo ldconfig # update linker cache ``` -> **Note** The first time you build the SDK you may also need to [update the linker cache](http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html). +> **Note** The first time you build the SDK you may also need to [update the linker cache](http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html). On Ubuntu this is done with `sudo ldconfig`, as shown above. @@ -216,7 +216,7 @@ make ios_simulator install ## Building in Docker -You can also build the SDK on your host computer with a toolchain running in a [Docker](https://docs.docker.com/) container (this saves you from having to install or manage the toolchain directly). +You can also build the SDK on your host computer with a toolchain running in a [Docker](https://docs.docker.com/) container (this saves you from having to install or manage the toolchain directly). > **Tip** There are docker containers based on Fedora and Ubuntu. It doesn't matter which you use! @@ -231,7 +231,7 @@ The main steps are: git submodule update --init --recursive ``` 1. Enter one of the following commands in your host's terminal: - * Fedora 27 + * Fedora 27 ```sh docker run --rm -it -v $HOME/DronecodeSDK:/root/DronecodeSDK:rw dronecode/dronecode-sdk-fedora-27 bash ``` @@ -241,15 +241,15 @@ The main steps are: ``` * Ubuntu 16.04 LTS ```sh - docker run --rm -it -v $HOME/DronecodeSDK:/root/DronecodeSDK:rw dronecode/dronecode-sdk-ubuntu-16.04 bash + docker run --rm -it -v $HOME/DronecodeSDK:/root/DronecodeSDK:rw dronecode/dronecode-sdk-ubuntu-16.04 bash ``` * Ubuntu 18.04 LTS ```sh - docker run --rm -it -v $HOME/DronecodeSDK:/root/DronecodeSDK:rw dronecode/dronecode-sdk-ubuntu-18.04 bash + docker run --rm -it -v $HOME/DronecodeSDK:/root/DronecodeSDK:rw dronecode/dronecode-sdk-ubuntu-18.04 bash ``` - - > **Note** The `-v` flag maps a directory on your host (left side) to a path in the container (right side). - > You need to specify the left-side path to the DronecodeSDK repository on your host and the container path must be set as above. + + > **Note** The `-v` flag maps a directory on your host (left side) to a path in the container (right side). + > You need to specify the left-side path to the DronecodeSDK repository on your host and the container path must be set as above. > The `--rm` automatically cleans up leftover docker containers after you exit the docker container. Docker will download the selected image from [Docker Hub](https://hub.docker.com/u/dronecode/), use it to create a container, and then open a bash prompt: @@ -286,7 +286,7 @@ docker run --rm -it -v $HOME//DronecodeSDK:/root/DronecodeSDK: ### Building the Docker Image -The approach above downloads a [container image](https://hub.docker.com/r/dronecode/) from Docker Hub based on Ubuntu 16.04, Ubuntu 18.04, Fedora 27 or Fedora 28. +The approach above downloads a [container image](https://hub.docker.com/r/dronecode/) from Docker Hub based on Ubuntu 16.04, Ubuntu 18.04, Fedora 27 or Fedora 28. You can also build the images yourself using the files in [DronecodeSDK/docker](https://github.com/Dronecode/DronecodeSDK/tree/{{ book.github_branch }}/docker). The image can be used in the same way as the one from Docker Hub. @@ -326,7 +326,7 @@ Otherwise the build is exactly the same as usual. To build the backend on Ubuntu: 1. [Setup/Build the C++ Library on Linux](#build_cpp_linux) -1. Install additional dependencies +1. Install additional dependencies ``` sudo apt-get install golang ``` @@ -341,7 +341,7 @@ To build the backend on Ubuntu: To build the backend on macOS: 1. [Setup/Build the C++ Library on macOS](#build_cpp_mac_os) -1. Install additional dependencies +1. Install additional dependencies ``` brew install go ``` @@ -358,7 +358,7 @@ TBD ## Build API Reference Documentation {#build_api_reference} -The C++ source code is annotated using comments using [Doxygen](http://doxygen.nl/manual/index.html) syntax. +The C++ source code is annotated using comments using [Doxygen](http://doxygen.nl/manual/index.html) syntax. Extract the documentation to markdown files (one per class) on macOS or Linux using the commands: ```bash @@ -368,11 +368,11 @@ make distclean # Required (clean build) ``` The files are created in **/install/docs/markdown**. -> **Note** Extracting the API reference does not yet work automatically on Windows. +> **Note** Extracting the API reference does not yet work automatically on Windows. -> **Note** The *generate_docs.sh* script [builds the library](../contributing/build.md), installs it locally to **/install**, and then uses *DOxygen* to create XML documentation in **/install/docs/xml**. -> The [generate_markdown_from_doxygen_xml.py](https://github.com/Dronecode/DronecodeSDK/blob/{{ book.github_branch }}/generate_markdown_from_doxygen_xml.py) script +> **Note** The *generate_docs.sh* script [builds the library](../contributing/build.md), installs it locally to **/install**, and then uses *DOxygen* to create XML documentation in **/install/docs/xml**. +> The [generate_markdown_from_doxygen_xml.py](https://github.com/Dronecode/DronecodeSDK/blob/{{ book.github_branch }}/generate_markdown_from_doxygen_xml.py) script > is then run on all files in the */xml* directory to generate markdown files in **/install/docs/markdown**. From 798a133908808d225d2080f16665962be64ca7a2 Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Wed, 20 Mar 2019 16:12:49 +0100 Subject: [PATCH 3/6] build: backend on macOS requires openssl --- en/contributing/build.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/contributing/build.md b/en/contributing/build.md index 83f187f..249e85f 100644 --- a/en/contributing/build.md +++ b/en/contributing/build.md @@ -343,7 +343,7 @@ To build the backend on macOS: 1. [Setup/Build the C++ Library on macOS](#build_cpp_mac_os) 1. Install additional dependencies ``` - brew install go + brew install go openssl ``` 1. Navigate into the SDK directory and build the project ``` From 96823a28f37a93516bd50d8d2e5acecdc8ba4462 Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Thu, 21 Mar 2019 16:56:19 +0100 Subject: [PATCH 4/6] en: fix newlines, trailing whitespace --- en/contributing/test.md | 12 ++++++------ en/examples/README.md | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/en/contributing/test.md b/en/contributing/test.md index 7e7f67a..e3e01f6 100644 --- a/en/contributing/test.md +++ b/en/contributing/test.md @@ -1,6 +1,6 @@ # Testing -The SDK has both unit and integration tests, written using the [Google C++ Test Framework](https://github.com/google/googletest/blob/master/googletest/docs/Primer.md) (`gtest`). +The SDK has both unit and integration tests, written using the [Google C++ Test Framework](https://github.com/google/googletest/blob/master/googletest/docs/Primer.md) (`gtest`). The unit tests are run every time new code is committed to the SDK codelines, and must pass before the code can be merged. This topic shows how to run the existing tests. @@ -10,10 +10,10 @@ This topic shows how to run the existing tests. ## Running Unit Tests -To run all unit tests: +To run all unit tests: ``` -make run_unit_tests +make run_unit_tests ``` @@ -21,7 +21,7 @@ make run_unit_tests Tests can be run against the simulator (either manually starting PX4 SITL or letting the tests start it automatically) or against a real vehicle. -> **Tip** To run SITL you will need to install the *Gazebo* simulator. +> **Tip** To run SITL you will need to install the *Gazebo* simulator. This is included as part of the standard PX4 installation for [macOS](https://dev.px4.io/en/setup/dev_env_mac.html) and [Linux](https://dev.px4.io/en/setup/dev_env_linux.html#development-toolchain). It does not run on Windows. @@ -58,7 +58,7 @@ make posix gazebo Then run the tests as shown: ``` -make run_integration_tests +make run_integration_tests ``` ### Run With a Real Vehicle @@ -68,7 +68,7 @@ make run_integration_tests Make sure you are connected to a vehicle and check the connection using e.g.: ``` -make && build/default/integration_tests/integration_tests_runner --gtest_filter="SitlTest.TelemetryAsync" +make && build/default/integration_tests/integration_tests_runner --gtest_filter="SitlTest.TelemetryAsync" ``` diff --git a/en/examples/README.md b/en/examples/README.md index 7ec4c46..e403f59 100644 --- a/en/examples/README.md +++ b/en/examples/README.md @@ -15,23 +15,23 @@ Example | Description The examples are "largely" built and run in the same way, as described in the following section (any exceptions are covered in the page for the associated example). -> **Warning** Some of the examples define flight behaviour relative to the default home position in the simulator (e.g. [Fly Mission](../examples/fly_mission.md)). +> **Warning** Some of the examples define flight behaviour relative to the default home position in the simulator (e.g. [Fly Mission](../examples/fly_mission.md)). Care should be taken if using them on a real vehicle. ## Trying the Examples {#trying_the_examples} The easiest way to test the examples is to use a [simulated PX4 vehicle](https://dev.px4.io/en/simulation/) that is running on the same computer. -First start PX4 in SITL (Simulation), optionally start *QGroundControl* to observe the vehicle, then build and run the example code. +First start PX4 in SITL (Simulation), optionally start *QGroundControl* to observe the vehicle, then build and run the example code. > **Note** The simulator broadcasts to the standard PX4 UDP port for connecting to offboard APIs (14540). The examples connect to this port using either [add_any_connection()](../api_reference/classdronecode__sdk_1_1_dronecode_s_d_k.md#classdronecode__sdk_1_1_dronecode_s_d_k_1a51097e0dad30f0292a2ab4d3e9d91acf) or [add_udp_connection()](../api_reference/classdronecode__sdk_1_1_dronecode_s_d_k.md#classdronecode__sdk_1_1_dronecode_s_d_k_1ac242fb36bc018038fc1fc5ee4e5f21ad). ### Setting up a Simulator -PX4 supports a [number of simulators](https://dev.px4.io/en/simulation/). +PX4 supports a [number of simulators](https://dev.px4.io/en/simulation/). In order to set up the [jMAVSim](https://dev.px4.io/en/simulation/jmavsim.html) or [Gazebo](https://dev.px4.io/en/simulation/gazebo.html) simulator, you can simply follow the standard PX4 toolchain setup instructions for [macOS](https://dev.px4.io/en/setup/dev_env_mac.html) or [Ubuntu Linux](https://dev.px4.io/en/setup/dev_env_linux.html#development-toolchain). -> **Note** JMAVSim can only be used to simulate multicopters. +> **Note** JMAVSim can only be used to simulate multicopters. Gazebo additionally supports a number of [other vehicles](https://dev.px4.io/en/simulation/gazebo.html#html#running-the-simulation) (e.g. VTOL, Rovers, fixed-wing etc.). After running a standard installation, a simulation can be started from the PX4 **/Firmware** directory using the command: @@ -42,7 +42,7 @@ After running a standard installation, a simulation can be started from the PX4 ### Using QGroundControl -You can use *QGroundControl* to connect to PX4 and observe vehicle movement and behaviour while the examples are running. +You can use *QGroundControl* to connect to PX4 and observe vehicle movement and behaviour while the examples are running. *QGroundControl* will automatically connect to the PX4 simulation as soon as it is started. See [QGroundControl > Download and Install](https://docs.qgroundcontrol.com/en/getting_started/download_and_install.html) for information about setting up *QGroundControl* on your platform. @@ -50,7 +50,7 @@ See [QGroundControl > Download and Install](https://docs.qgroundcontrol.com/en/g ### Building the Examples {#build_examples} -To build the examples follow the instructions below, replacing *takeoff_and_land* with the name of the specific example. +To build the examples follow the instructions below, replacing *takeoff_and_land* with the name of the specific example. Any exceptions will be covered in the page for the associated example(s). #### Linux @@ -73,7 +73,7 @@ make #### Windows First [Build and install the SDK C++ Library](../contributing/build.md#windows). -Make sure that you [install the library and headers locally](../contributing/build.md#sdk_local_install) in the standard location: +Make sure that you [install the library and headers locally](../contributing/build.md#sdk_local_install) in the standard location: ```sh cmake --build . --target install @@ -95,8 +95,8 @@ cmake --build . You can then run the example, specifying the connection URL as the first argument. When running with the Simulator, you will use the connection string: `udp://:14540` - -On Linux/macOS you would run the following (from the **/build** directory): + +On Linux/macOS you would run the following (from the **/build** directory): ```sh ./takeoff_and_land udp://:14540 ``` @@ -107,10 +107,10 @@ For Windows you would run the following (from the **\build\Debug\** directory): ``` -> **Tip** Most examples will create a binary with the same name as the example. +> **Tip** Most examples will create a binary with the same name as the example. > The name that is used is specified in the **CMakeLists.txt** file as the first value in the call to `add_executable()`. -If you have already started the simulation the example code should connect to PX4, +If you have already started the simulation the example code should connect to PX4, and you will be able to observe behaviour through the SDK terminal, SITL terminal, and/or *QGroundControl*. ## Troubleshooting @@ -123,7 +123,7 @@ The following error is raised when you run an application/example on Linux and t error while loading shared libraries: libdronecode_sdk.so: cannot open shared object file: No such file or directory ``` -The solution is to update the linker cache so that the system can find the library. +The solution is to update the linker cache so that the system can find the library. On Ubuntu call the following: ``` sudo ldconfig From cb0c4972f61aa731ce0cd3ac57cbb859290cca66 Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Thu, 21 Mar 2019 16:56:39 +0100 Subject: [PATCH 5/6] en: fix PX4 SITL command With master and 1.9.x it is px4_sitl instead of posix. --- en/contributing/test.md | 4 ++-- en/examples/README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/en/contributing/test.md b/en/contributing/test.md index e3e01f6..3f8814c 100644 --- a/en/contributing/test.md +++ b/en/contributing/test.md @@ -31,7 +31,7 @@ Make sure that the [PX4 Gazebo simulation](https://dev.px4.io/en/simulation/gaze ``` cd wherever/Firmware/ -make posix gazebo +make px4_sitl gazebo ``` Then press **Ctrl+C** to stop the simulation and run the integration tests: @@ -53,7 +53,7 @@ Build and run the PX4 simulation manually: ``` cd wherever/Firmware/ -make posix gazebo +make px4_sitl gazebo ``` Then run the tests as shown: diff --git a/en/examples/README.md b/en/examples/README.md index e403f59..0ced221 100644 --- a/en/examples/README.md +++ b/en/examples/README.md @@ -35,9 +35,9 @@ In order to set up the [jMAVSim](https://dev.px4.io/en/simulation/jmavsim.html) Gazebo additionally supports a number of [other vehicles](https://dev.px4.io/en/simulation/gazebo.html#html#running-the-simulation) (e.g. VTOL, Rovers, fixed-wing etc.). After running a standard installation, a simulation can be started from the PX4 **/Firmware** directory using the command: -* Multicopter (jMAVSim): `make posix_sitl_default jmavsim` -* Multicopter (Gazebo): `make posix_sitl_default gazebo` -* VTOL (Gazebo): `make posix_sitl_default gazebo_standard_vtol` +* Multicopter (jMAVSim): `make px4_sitl jmavsim` +* Multicopter (Gazebo): `make px4_sitl gazebo` +* VTOL (Gazebo): `make px4_sitl gazebo_standard_vtol` ### Using QGroundControl From 4b68f7a459be9241b6a9ff76414f3bf5f78f9d87 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Wed, 3 Apr 2019 09:41:44 +1100 Subject: [PATCH 6/6] APIRef - update to 0.15.0 --- en/SUMMARY.md | 3 +- en/api_reference/README.md | 3 +- .../classdronecode__sdk_1_1_action.md | 14 +- .../classdronecode__sdk_1_1_camera.md | 21 +- ...classdronecode__sdk_1_1_dronecode_s_d_k.md | 30 +++ .../classdronecode__sdk_1_1_offboard.md | 16 ++ .../classdronecode__sdk_1_1_param.md | 209 ++++++++++++++++++ .../classdronecode__sdk_1_1_params_raw.md | 203 ----------------- en/api_reference/namespacedronecode__sdk.md | 72 +++++- ...sdk_1_1_offboard_1_1_position_n_e_d_yaw.md | 63 ++++++ en/cpp/README.md | 2 +- 11 files changed, 421 insertions(+), 215 deletions(-) create mode 100644 en/api_reference/classdronecode__sdk_1_1_param.md delete mode 100644 en/api_reference/classdronecode__sdk_1_1_params_raw.md create mode 100644 en/api_reference/structdronecode__sdk_1_1_offboard_1_1_position_n_e_d_yaw.md diff --git a/en/SUMMARY.md b/en/SUMMARY.md index a7f20f3..caf3305 100644 --- a/en/SUMMARY.md +++ b/en/SUMMARY.md @@ -52,6 +52,7 @@ * [struct AltitudeRate](api_reference/structdronecode__sdk_1_1_offboard_1_1_attitude_rate.md) * [struct VelocityBodyYawspeed](api_reference/structdronecode__sdk_1_1_offboard_1_1_velocity_body_yawspeed.md) * [struct VelocityNEDYaw](api_reference/structdronecode__sdk_1_1_offboard_1_1_velocity_n_e_d_yaw.md) + * [struct PositionNEDYaw](api_reference/structdronecode__sdk_1_1_offboard_1_1_position_n_e_d_yaw.md) * [class Gimbal](api_reference/classdronecode__sdk_1_1_gimbal.md) * [class Camera](api_reference/classdronecode__sdk_1_1_camera.md) * [struct Information](api_reference/structdronecode__sdk_1_1_camera_1_1_information.md) @@ -72,7 +73,7 @@ * [struct ProgressData](api_reference/structdronecode__sdk_1_1_calibration_1_1_progress_data.md) * [class LogFiles](api_reference/classdronecode__sdk_1_1_log_files.md) * [struct Entry](api_reference/structdronecode__sdk_1_1_log_files_1_1_entry.md) - * [class ParamsRaw](api_reference/classdronecode__sdk_1_1_params_raw.md) + * [class Param](api_reference/classdronecode__sdk_1_1_param.md) * [class MissionRaw](api_reference/classdronecode__sdk_1_1_mission_raw.md) * [struct MavlinkMissionItemInt](api_reference/structdronecode__sdk_1_1_mission_raw_1_1_mavlink_mission_item_int.md) * [MavlinkPassthrough](/api_reference/classdronecode__sdk_1_1_mavlink_passthrough.md) diff --git a/en/api_reference/README.md b/en/api_reference/README.md index 6f96ffc..dbe25c8 100644 --- a/en/api_reference/README.md +++ b/en/api_reference/README.md @@ -25,6 +25,7 @@ * [struct VelocityBodyYawspeed](structdronecode__sdk_1_1_offboard_1_1_velocity_body_yawspeed.md) * [struct VelocityNEDYaw](structdronecode__sdk_1_1_offboard_1_1_velocity_n_e_d_yaw.md) * [struct AltitudeRate](structdronecode__sdk_1_1_offboard_1_1_attitude_rate.md) + * [struct PositionNEDYaw](structdronecode__sdk_1_1_offboard_1_1_position_n_e_d_yaw.md) * [class Gimbal](classdronecode__sdk_1_1_gimbal.md) * [class Camera](classdronecode__sdk_1_1_camera.md) * [struct Information](structdronecode__sdk_1_1_camera_1_1_information.md) @@ -45,7 +46,7 @@ * [struct ProgressData](structdronecode__sdk_1_1_calibration_1_1_progress_data.md) * [class LogFiles](classdronecode__sdk_1_1_log_files.md) * [struct Entry](structdronecode__sdk_1_1_log_files_1_1_entry.md) -* [class ParamsRaw](classdronecode__sdk_1_1_params_raw.md) +* [class Param](classdronecode__sdk_1_1_param.md) * [class MissionRaw](classdronecode__sdk_1_1_mission_raw.md) * [struct MavlinkMissionItemInt](structdronecode__sdk_1_1_mission_raw_1_1_mavlink_mission_item_int.md) * [class MavlinkPassthrough](classdronecode__sdk_1_1_mavlink_passthrough.md) diff --git a/en/api_reference/classdronecode__sdk_1_1_action.md b/en/api_reference/classdronecode__sdk_1_1_action.md index 96dad22..8a6aeb7 100644 --- a/en/api_reference/classdronecode__sdk_1_1_action.md +++ b/en/api_reference/classdronecode__sdk_1_1_action.md @@ -36,7 +36,7 @@ Type | Name | Description [Result](classdronecode__sdk_1_1_action.md#classdronecode__sdk_1_1_action_1a7075ba49da42a7e5122b3c9a1979df6d) | [takeoff](#classdronecode__sdk_1_1_action_1abbcce1c335e6aec78917af9e705e235e) () const | Send command to *take off and hover* (synchronous). [Result](classdronecode__sdk_1_1_action.md#classdronecode__sdk_1_1_action_1a7075ba49da42a7e5122b3c9a1979df6d) | [land](#classdronecode__sdk_1_1_action_1af50fb3a17784557281ac37e83022575f) () const | Send command to *land* at the current position (synchronous). [Result](classdronecode__sdk_1_1_action.md#classdronecode__sdk_1_1_action_1a7075ba49da42a7e5122b3c9a1979df6d) | [return_to_launch](#classdronecode__sdk_1_1_action_1aae04fe166fac96b2efadee26f91de3d1) () const | Send command to *return to the launch* (takeoff) position and *land* (asynchronous). -[Result](classdronecode__sdk_1_1_action.md#classdronecode__sdk_1_1_action_1a7075ba49da42a7e5122b3c9a1979df6d) | [goto_location](#classdronecode__sdk_1_1_action_1ab6bcb58fdac1aa7e699f89ed605c7666) (double latitude_deg, double longitude_deg, float altitude_amsl_m, float yaw_deg) | Send command to reposition the vehicle to a specific WGS84 global position. +[Result](classdronecode__sdk_1_1_action.md#classdronecode__sdk_1_1_action_1a7075ba49da42a7e5122b3c9a1979df6d) | [goto_location](#classdronecode__sdk_1_1_action_1ab6bcb58fdac1aa7e699f89ed605c7666) (double latitude_deg, double longitude_deg, float altitude_amsl_m, float yaw_deg) | Send command to move the vehicle to a specific global position. [Result](classdronecode__sdk_1_1_action.md#classdronecode__sdk_1_1_action_1a7075ba49da42a7e5122b3c9a1979df6d) | [transition_to_fixedwing](#classdronecode__sdk_1_1_action_1a80c1336efa7b165df4beadb64435f31a) () const | Send command to transition the drone to fixedwing. [Result](classdronecode__sdk_1_1_action.md#classdronecode__sdk_1_1_action_1a7075ba49da42a7e5122b3c9a1979df6d) | [transition_to_multicopter](#classdronecode__sdk_1_1_action_1ab18e5b60e262e5dc9e6cb9479a285b2a) () const | Send command to transition the drone to multicopter. void | [arm_async](#classdronecode__sdk_1_1_action_1ad295c4f5fb38636d1603dd1c401ca4a1) ([result_callback_t](classdronecode__sdk_1_1_action.md#classdronecode__sdk_1_1_action_1ac20e209e6ad3fce8e1b755f025a6581b) callback) | Send command to *arm* the drone (asynchronous). @@ -254,16 +254,16 @@ Result dronecode_sdk::Action::goto_location(double latitude_deg, double longitud ``` -Send command to reposition the vehicle to a specific WGS84 global position. +Send command to move the vehicle to a specific global position. -This sends the vehicle to a specified lattitude/longitude/altitude coordinates. +The latitude and longitude are given in degrees (WGS84 frame) and the altitude in meters AMSL (above mean sea level). **Parameters** -* double **latitude_deg** - Latitude in degrees -* double **longitude_deg** - Longitude in degrees -* float **altitude_amsl_m** - Altitude AMSL in meters -* float **yaw_deg** - Yaw angle in degrees +* double **latitude_deg** - Latitude in degrees. +* double **longitude_deg** - Longitude in degrees. +* float **altitude_amsl_m** - Altitude AMSL in meters. +* float **yaw_deg** - Yaw angle in degrees (Frame is NED, 0 is North, positive is clockwise). **Returns** diff --git a/en/api_reference/classdronecode__sdk_1_1_camera.md b/en/api_reference/classdronecode__sdk_1_1_camera.md index 739d76c..943f60f 100644 --- a/en/api_reference/classdronecode__sdk_1_1_camera.md +++ b/en/api_reference/classdronecode__sdk_1_1_camera.md @@ -7,7 +7,7 @@ The [Camera](classdronecode__sdk_1_1_camera.md) class can be used to manage cameras that implement the MAVLink [Camera](classdronecode__sdk_1_1_camera.md) Protocol: [https://mavlink.io/en/protocol/camera.html](https://mavlink.io/en/protocol/camera.html). -Currently only a single camera is supported. When multiple cameras are supported the plugin will need to be instantiated separately for every camera. +Currently only a single camera is supported. When multiple cameras are supported the plugin will need to be instantiated separately for every camera and the camera selected using `select_camera`. Synchronous and asynchronous variants of the camera methods are supplied. @@ -59,6 +59,7 @@ Type | Name | Description   | [Camera](#classdronecode__sdk_1_1_camera_1ab578fe3d602cd2c9f916c454f00208db) ([System](classdronecode__sdk_1_1_system.md) & system) | Constructor. Creates the plugin for a specific [System](classdronecode__sdk_1_1_system.md).   | [~Camera](#classdronecode__sdk_1_1_camera_1a858b876e442b38f4b9953de0f5fcbfd5) () | Destructor (internal use only).   | [Camera](#classdronecode__sdk_1_1_camera_1a944afb176f249e97183edf97f9a3313e) (const [Camera](classdronecode__sdk_1_1_camera.md) &)=delete | Copy constructor (object is not copyable). +[Result](classdronecode__sdk_1_1_camera.md#classdronecode__sdk_1_1_camera_1af195d32b1a669d8dbb28220b45f7c069) | [select_camera](#classdronecode__sdk_1_1_camera_1ab3abe48c717107c732bd2ed2428de18a) (unsigned id) | Select camera to interact with. [Result](classdronecode__sdk_1_1_camera.md#classdronecode__sdk_1_1_camera_1af195d32b1a669d8dbb28220b45f7c069) | [take_photo](#classdronecode__sdk_1_1_camera_1ae62b17fc618d9734aad479737a2af775) () | Take photo (synchronous). [Result](classdronecode__sdk_1_1_camera.md#classdronecode__sdk_1_1_camera_1af195d32b1a669d8dbb28220b45f7c069) | [start_photo_interval](#classdronecode__sdk_1_1_camera_1a8c958ad6a09ead28b6ed9cdd5be2f411) (float interval_s) | Start photo interval (synchronous). [Result](classdronecode__sdk_1_1_camera.md#classdronecode__sdk_1_1_camera_1af195d32b1a669d8dbb28220b45f7c069) | [stop_photo_interval](#classdronecode__sdk_1_1_camera_1adebc3692071d0309e9c3015789a5a253) () | Stop photo interval (synchronous). @@ -293,6 +294,24 @@ Value | Description ## Member Function Documentation +### select_camera() {#classdronecode__sdk_1_1_camera_1ab3abe48c717107c732bd2ed2428de18a} +```cpp +Result dronecode_sdk::Camera::select_camera(unsigned id) +``` + + +Select camera to interact with. + +It is recommended to instantiate multiple camera plugins to deal with multiple cameras and to select the camera once right after creating the plugin. + +**Parameters** + +* unsigned **id** - The camera ID from 0 to 5. + +**Returns** + + [Result](classdronecode__sdk_1_1_camera.md#classdronecode__sdk_1_1_camera_1af195d32b1a669d8dbb28220b45f7c069) - Result of request. + ### take_photo() {#classdronecode__sdk_1_1_camera_1ae62b17fc618d9734aad479737a2af775} ```cpp Result dronecode_sdk::Camera::take_photo() diff --git a/en/api_reference/classdronecode__sdk_1_1_dronecode_s_d_k.md b/en/api_reference/classdronecode__sdk_1_1_dronecode_s_d_k.md index 0e49280..ae17897 100644 --- a/en/api_reference/classdronecode__sdk_1_1_dronecode_s_d_k.md +++ b/en/api_reference/classdronecode__sdk_1_1_dronecode_s_d_k.md @@ -18,6 +18,7 @@ An instance of this class must be created (first) in order to use the library. T Type | Description --- | --- +enum [Configuration](#classdronecode__sdk_1_1_dronecode_s_d_k_1a3cb7c3712a0f330d29b30b501dfab947) | Possible configurations. std::function< void(uint64_t uuid)> [event_callback_t](#classdronecode__sdk_1_1_dronecode_s_d_k_1a56579e10311b046b887fdec0c313a4b8) | Callback type for discover and timeout notifications. ## Public Member Functions @@ -33,6 +34,7 @@ Type | Name | Description [ConnectionResult](namespacedronecode__sdk.md#namespacedronecode__sdk_1a8ba260cb5fc0837533a86e236d205c96) | [add_tcp_connection](#classdronecode__sdk_1_1_dronecode_s_d_k_1a7c543c91cf9209745c60a5b4bb6a59b1) (int remote_port=[DEFAULT_TCP_REMOTE_PORT](classdronecode__sdk_1_1_dronecode_s_d_k.md#classdronecode__sdk_1_1_dronecode_s_d_k_1a27efab91c255ec80da081b3a2667130a)) | Adds a TCP connection with a specific port number on localhost. [ConnectionResult](namespacedronecode__sdk.md#namespacedronecode__sdk_1a8ba260cb5fc0837533a86e236d205c96) | [add_tcp_connection](#classdronecode__sdk_1_1_dronecode_s_d_k_1ae1fda663ab173e0b1dfc644f630506e4) (const std::string & remote_ip, int remote_port=[DEFAULT_TCP_REMOTE_PORT](classdronecode__sdk_1_1_dronecode_s_d_k.md#classdronecode__sdk_1_1_dronecode_s_d_k_1a27efab91c255ec80da081b3a2667130a)) | Adds a TCP connection with a specific IP address and port number. [ConnectionResult](namespacedronecode__sdk.md#namespacedronecode__sdk_1a8ba260cb5fc0837533a86e236d205c96) | [add_serial_connection](#classdronecode__sdk_1_1_dronecode_s_d_k_1a3b9dfa07541777ec16d9ada6423650b0) (const std::string & dev_path, int baudrate=[DEFAULT_SERIAL_BAUDRATE](classdronecode__sdk_1_1_dronecode_s_d_k.md#classdronecode__sdk_1_1_dronecode_s_d_k_1a535901e195f2910ce16bd85fca2c2e9d)) | Adds a serial connection with a specific port (COM or UART dev node) and baudrate as specified. +void | [set_configuration](#classdronecode__sdk_1_1_dronecode_s_d_k_1aa173ce1f22cbd3985fc9177392c7896b) ([Configuration](classdronecode__sdk_1_1_dronecode_s_d_k.md#classdronecode__sdk_1_1_dronecode_s_d_k_1a3cb7c3712a0f330d29b30b501dfab947) configuration) | Set `Configuration` of SDK. std::vector< uint64_t > | [system_uuids](#classdronecode__sdk_1_1_dronecode_s_d_k_1adff0ce5e9bd666103a3ec5274ecb9b47) () const | Get vector of system UUIDs. [System](classdronecode__sdk_1_1_system.md) & | [system](#classdronecode__sdk_1_1_dronecode_s_d_k_1a33dbbe477d4f321cff32c7cea1aee4eb) () const | Get the first discovered system. [System](classdronecode__sdk_1_1_system.md) & | [system](#classdronecode__sdk_1_1_dronecode_s_d_k_1ad8138a15ad24f448733b76b267c62121) (uint64_t uuid)const | Get the system with the specified UUID. @@ -98,6 +100,20 @@ Callback type for discover and timeout notifications. * **uuid** - UUID of system (or MAVLink system ID for systems that don't have a UUID). +## Member Enumeration Documentation + + +### enum Configuration {#classdronecode__sdk_1_1_dronecode_s_d_k_1a3cb7c3712a0f330d29b30b501dfab947} + + +Possible configurations. + + +Value | Description +--- | --- + `GroundStation` | SDK is used as a ground station. + `CompanionComputer` | SDK is used on a companion computer onboard the system (e.g. drone). + ## Member Function Documentation @@ -214,6 +230,20 @@ Adds a serial connection with a specific port (COM or UART dev node) and baudrat  [ConnectionResult](namespacedronecode__sdk.md#namespacedronecode__sdk_1a8ba260cb5fc0837533a86e236d205c96) - The result of adding the connection. +### set_configuration() {#classdronecode__sdk_1_1_dronecode_s_d_k_1aa173ce1f22cbd3985fc9177392c7896b} +```cpp +void dronecode_sdk::DronecodeSDK::set_configuration(Configuration configuration) +``` + + +Set `Configuration` of SDK. + +The default configuration is [Configuration::GroundStation](classdronecode__sdk_1_1_dronecode_s_d_k.md#classdronecode__sdk_1_1_dronecode_s_d_k_1a3cb7c3712a0f330d29b30b501dfab947af64f82089eddc6133add8c55c65d6687) The configuration is used in order to set the MAVLink system ID, the component ID, as well as the MAV_TYPE accordingly. + +**Parameters** + +* [Configuration](classdronecode__sdk_1_1_dronecode_s_d_k.md#classdronecode__sdk_1_1_dronecode_s_d_k_1a3cb7c3712a0f330d29b30b501dfab947) **configuration** - Configuration chosen. + ### system_uuids() {#classdronecode__sdk_1_1_dronecode_s_d_k_1adff0ce5e9bd666103a3ec5274ecb9b47} ```cpp std::vector dronecode_sdk::DronecodeSDK::system_uuids() const diff --git a/en/api_reference/classdronecode__sdk_1_1_offboard.md b/en/api_reference/classdronecode__sdk_1_1_offboard.md index 3793850..9513972 100644 --- a/en/api_reference/classdronecode__sdk_1_1_offboard.md +++ b/en/api_reference/classdronecode__sdk_1_1_offboard.md @@ -21,6 +21,8 @@ Client code must specify a setpoint before starting offboard mode. [DronecodeSDK struct [AttitudeRate](structdronecode__sdk_1_1_offboard_1_1_attitude_rate.md) +struct [PositionNEDYaw](structdronecode__sdk_1_1_offboard_1_1_position_n_e_d_yaw.md) + struct [VelocityBodyYawspeed](structdronecode__sdk_1_1_offboard_1_1_velocity_body_yawspeed.md) struct [VelocityNEDYaw](structdronecode__sdk_1_1_offboard_1_1_velocity_n_e_d_yaw.md) @@ -46,6 +48,7 @@ Type | Name | Description void | [start_async](#classdronecode__sdk_1_1_offboard_1a8181092c3a3cac5e62dfcef4f10363de) ([result_callback_t](classdronecode__sdk_1_1_offboard.md#classdronecode__sdk_1_1_offboard_1a02563418f94499b40d27543b3f486034) callback) | Start offboard control (asynchronous). void | [stop_async](#classdronecode__sdk_1_1_offboard_1a2ff3262dbc6194def28bb9b3d5684e68) ([result_callback_t](classdronecode__sdk_1_1_offboard.md#classdronecode__sdk_1_1_offboard_1a02563418f94499b40d27543b3f486034) callback) | Stop offboard control (asynchronous). bool | [is_active](#classdronecode__sdk_1_1_offboard_1ac3c75fcd1ae1e6b00090eccd03696479) () const | Check if offboard control is active. +void | [set_position_ned](#classdronecode__sdk_1_1_offboard_1a127749d168fe4e7ddb40ba4c6747bb4a) ([PositionNEDYaw](structdronecode__sdk_1_1_offboard_1_1_position_n_e_d_yaw.md) position_ned_yaw) | Set the position in NED coordinates and yaw. void | [set_velocity_ned](#classdronecode__sdk_1_1_offboard_1a95dfbe096a363e21bfd035258e786350) ([VelocityNEDYaw](structdronecode__sdk_1_1_offboard_1_1_velocity_n_e_d_yaw.md) velocity_ned_yaw) | Set the velocity in NED coordinates and yaw. void | [set_velocity_body](#classdronecode__sdk_1_1_offboard_1ad87778386509911269b87766c0f1830f) ([VelocityBodyYawspeed](structdronecode__sdk_1_1_offboard_1_1_velocity_body_yawspeed.md) velocity_body_yawspeed) | Set the velocity body coordinates and yaw angular rate. void | [set_attitude_rate](#classdronecode__sdk_1_1_offboard_1a511ba0314a4217c3ac3020ab2b0dfd23) ([AttitudeRate](structdronecode__sdk_1_1_offboard_1_1_attitude_rate.md) attitude_rate) | Set the attitude rate in terms of pitch, roll and yaw angular rate along with thrust in percentage. @@ -208,6 +211,19 @@ Check if offboard control is active.  bool - `true` if active +### set_position_ned() {#classdronecode__sdk_1_1_offboard_1a127749d168fe4e7ddb40ba4c6747bb4a} +```cpp +void dronecode_sdk::Offboard::set_position_ned(PositionNEDYaw position_ned_yaw) +``` + + +Set the position in NED coordinates and yaw. + + +**Parameters** + +* [PositionNEDYaw](structdronecode__sdk_1_1_offboard_1_1_position_n_e_d_yaw.md) **position_ned_yaw** - Position and yaw `struct`. + ### set_velocity_ned() {#classdronecode__sdk_1_1_offboard_1a95dfbe096a363e21bfd035258e786350} ```cpp void dronecode_sdk::Offboard::set_velocity_ned(VelocityNEDYaw velocity_ned_yaw) diff --git a/en/api_reference/classdronecode__sdk_1_1_param.md b/en/api_reference/classdronecode__sdk_1_1_param.md new file mode 100644 index 0000000..bba888f --- /dev/null +++ b/en/api_reference/classdronecode__sdk_1_1_param.md @@ -0,0 +1,209 @@ +# dronecode_sdk::Param Class Reference +`#include: param.h` + +---- + + +The [Param](classdronecode__sdk_1_1_param.md) class provides raw access to get and set parameters. + + +## Public Types + + +Type | Description +--- | --- +enum [Result](#classdronecode__sdk_1_1_param_1a757c3af24f094d63efa62b798847e3d6) | Possible results returned for param requests. + +## Public Member Functions + + +Type | Name | Description +---: | --- | --- +  | [Param](#classdronecode__sdk_1_1_param_1aec4400f9f7005eec4085b96c5d3716a1) ([System](classdronecode__sdk_1_1_system.md) & system) | Constructor. Creates the plugin for a specific [System](classdronecode__sdk_1_1_system.md). +  | [~Param](#classdronecode__sdk_1_1_param_1a1e1ce9b859e995c618a4c3de939f3b09) () | Destructor (internal use only). +  | [Param](#classdronecode__sdk_1_1_param_1aeac83f8ee26422204e35463cfb073693) (const [Param](classdronecode__sdk_1_1_param.md) &)=delete | Copy Constructor (object is not copyable). +std::pair< [Result](classdronecode__sdk_1_1_param.md#classdronecode__sdk_1_1_param_1a757c3af24f094d63efa62b798847e3d6), int32_t > | [get_param_int](#classdronecode__sdk_1_1_param_1ae1c0fc11f38935855b9805c29d3ef5f2) (const std::string & name) | Get an int parameter. +[Result](classdronecode__sdk_1_1_param.md#classdronecode__sdk_1_1_param_1a757c3af24f094d63efa62b798847e3d6) | [set_param_int](#classdronecode__sdk_1_1_param_1a6c89820f1053c4f7bc5906c9331d205f) (const std::string & name, int32_t value) | Set an int parameter. +std::pair< [Result](classdronecode__sdk_1_1_param.md#classdronecode__sdk_1_1_param_1a757c3af24f094d63efa62b798847e3d6), float > | [get_param_float](#classdronecode__sdk_1_1_param_1a12981bc9b8b67a53162e41554f91bbb8) (const std::string & name) | Get a float parameter. +[Result](classdronecode__sdk_1_1_param.md#classdronecode__sdk_1_1_param_1a757c3af24f094d63efa62b798847e3d6) | [set_param_float](#classdronecode__sdk_1_1_param_1a8651cd567242f2d27be673bef344f473) (const std::string & name, float value) | Set a float parameter. +const [Param](classdronecode__sdk_1_1_param.md) & | [operator=](#classdronecode__sdk_1_1_param_1a77533b40931846200ba69292c1db2356) (const [Param](classdronecode__sdk_1_1_param.md) &)=delete | Equality operator (object is not copyable). + +## Static Public Member Functions + + +Type | Name | Description +---: | --- | --- +std::string | [result_str](#classdronecode__sdk_1_1_param_1a5382b52978bd32c8d78f213f77f844c2) ([Result](classdronecode__sdk_1_1_param.md#classdronecode__sdk_1_1_param_1a757c3af24f094d63efa62b798847e3d6) result) | Returns a human-readable English string for [Param::Result](classdronecode__sdk_1_1_param.md#classdronecode__sdk_1_1_param_1a757c3af24f094d63efa62b798847e3d6). + + +## Constructor & Destructor Documentation + + +### Param() {#classdronecode__sdk_1_1_param_1aec4400f9f7005eec4085b96c5d3716a1} +```cpp +dronecode_sdk::Param::Param(System &system) +``` + + +Constructor. Creates the plugin for a specific [System](classdronecode__sdk_1_1_system.md). + +The plugin is typically created as shown below: + +```cpp +auto param = std::make_shared(system); +``` + +**Parameters** + +* [System](classdronecode__sdk_1_1_system.md)& **system** - The specific system associated with this plugin. + +### ~Param() {#classdronecode__sdk_1_1_param_1a1e1ce9b859e995c618a4c3de939f3b09} +```cpp +dronecode_sdk::Param::~Param() +``` + + +Destructor (internal use only). + + +### Param() {#classdronecode__sdk_1_1_param_1aeac83f8ee26422204e35463cfb073693} +```cpp +dronecode_sdk::Param::Param(const Param &)=delete +``` + + +Copy Constructor (object is not copyable). + + +**Parameters** + +* const [Param](classdronecode__sdk_1_1_param.md)& - + +## Member Enumeration Documentation + + +### enum Result {#classdronecode__sdk_1_1_param_1a757c3af24f094d63efa62b798847e3d6} + + +Possible results returned for param requests. + + +Value | Description +--- | --- + `UNKNOWN` | Unknown error. + `SUCCESS` | Request succeeded. + `TIMEOUT` | Request timed out. + `CONNECTION_ERROR` | Connection error. + `WRONG_TYPE` | Error. + `PARAM_NAME_TOO_LONG` | Parameter name too long (> 16). + +## Member Function Documentation + + +### get_param_int() {#classdronecode__sdk_1_1_param_1ae1c0fc11f38935855b9805c29d3ef5f2} +```cpp +std::pair dronecode_sdk::Param::get_param_int(const std::string &name) +``` + + +Get an int parameter. + +If the type is wrong, the result will be [Result::WRONG_TYPE](classdronecode__sdk_1_1_param.md#classdronecode__sdk_1_1_param_1a757c3af24f094d63efa62b798847e3d6a9bf67e4befa0dcd99caa7f01f2c9b714). + +**Parameters** + +* const std::string& **name** - + +**Returns** + + std::pair< [Result](classdronecode__sdk_1_1_param.md#classdronecode__sdk_1_1_param_1a757c3af24f094d63efa62b798847e3d6), int32_t > - a pair of the result of the request and the param (if successful). + +### set_param_int() {#classdronecode__sdk_1_1_param_1a6c89820f1053c4f7bc5906c9331d205f} +```cpp +Result dronecode_sdk::Param::set_param_int(const std::string &name, int32_t value) +``` + + +Set an int parameter. + +If the type is wrong, the result will be [Result::WRONG_TYPE](classdronecode__sdk_1_1_param.md#classdronecode__sdk_1_1_param_1a757c3af24f094d63efa62b798847e3d6a9bf67e4befa0dcd99caa7f01f2c9b714). + +**Parameters** + +* const std::string& **name** - +* int32_t **value** - + +**Returns** + + [Result](classdronecode__sdk_1_1_param.md#classdronecode__sdk_1_1_param_1a757c3af24f094d63efa62b798847e3d6) - result of the request. + +### get_param_float() {#classdronecode__sdk_1_1_param_1a12981bc9b8b67a53162e41554f91bbb8} +```cpp +std::pair dronecode_sdk::Param::get_param_float(const std::string &name) +``` + + +Get a float parameter. + +If the type is wrong, the result will be [Result::WRONG_TYPE](classdronecode__sdk_1_1_param.md#classdronecode__sdk_1_1_param_1a757c3af24f094d63efa62b798847e3d6a9bf67e4befa0dcd99caa7f01f2c9b714). + +**Parameters** + +* const std::string& **name** - + +**Returns** + + std::pair< [Result](classdronecode__sdk_1_1_param.md#classdronecode__sdk_1_1_param_1a757c3af24f094d63efa62b798847e3d6), float > - a pair of the result of the request and the param (if successful). + +### set_param_float() {#classdronecode__sdk_1_1_param_1a8651cd567242f2d27be673bef344f473} +```cpp +Result dronecode_sdk::Param::set_param_float(const std::string &name, float value) +``` + + +Set a float parameter. + +If the type is wrong, the result will be [Result::WRONG_TYPE](classdronecode__sdk_1_1_param.md#classdronecode__sdk_1_1_param_1a757c3af24f094d63efa62b798847e3d6a9bf67e4befa0dcd99caa7f01f2c9b714). + +**Parameters** + +* const std::string& **name** - +* float **value** - + +**Returns** + + [Result](classdronecode__sdk_1_1_param.md#classdronecode__sdk_1_1_param_1a757c3af24f094d63efa62b798847e3d6) - result of the request. + +### operator=() {#classdronecode__sdk_1_1_param_1a77533b40931846200ba69292c1db2356} +```cpp +const Param& dronecode_sdk::Param::operator=(const Param &)=delete +``` + + +Equality operator (object is not copyable). + + +**Parameters** + +* const [Param](classdronecode__sdk_1_1_param.md)& - + +**Returns** + + const [Param](classdronecode__sdk_1_1_param.md) & - + +### result_str() {#classdronecode__sdk_1_1_param_1a5382b52978bd32c8d78f213f77f844c2} +```cpp +static std::string dronecode_sdk::Param::result_str(Result result) +``` + + +Returns a human-readable English string for [Param::Result](classdronecode__sdk_1_1_param.md#classdronecode__sdk_1_1_param_1a757c3af24f094d63efa62b798847e3d6). + + +**Parameters** + +* [Result](classdronecode__sdk_1_1_param.md#classdronecode__sdk_1_1_param_1a757c3af24f094d63efa62b798847e3d6) **result** - The enum value for which a human readable string is required. + +**Returns** + + std::string - Human readable string for the [Param::Result](classdronecode__sdk_1_1_param.md#classdronecode__sdk_1_1_param_1a757c3af24f094d63efa62b798847e3d6). \ No newline at end of file diff --git a/en/api_reference/classdronecode__sdk_1_1_params_raw.md b/en/api_reference/classdronecode__sdk_1_1_params_raw.md deleted file mode 100644 index a9db57b..0000000 --- a/en/api_reference/classdronecode__sdk_1_1_params_raw.md +++ /dev/null @@ -1,203 +0,0 @@ -# dronecode_sdk::ParamsRaw Class Reference -`#include: params_raw.h` - ----- - - -The [ParamsRaw](classdronecode__sdk_1_1_params_raw.md) class provides raw access to get and set parameters. - - -## Public Types - - -Type | Description ---- | --- -enum [Result](#classdronecode__sdk_1_1_params_raw_1a56a99fac0db7b397442482736de52803) | Possible results returned for params_raw requests. - -## Public Member Functions - - -Type | Name | Description ----: | --- | --- -  | [ParamsRaw](#classdronecode__sdk_1_1_params_raw_1af25dfed59dd061240520ae9ed2a4d2e8) ([System](classdronecode__sdk_1_1_system.md) & system) | Constructor. Creates the plugin for a specific [System](classdronecode__sdk_1_1_system.md). -  | [~ParamsRaw](#classdronecode__sdk_1_1_params_raw_1a89c3ffa2df9d592553e5fae468c72112) () | Destructor (internal use only). -  | [ParamsRaw](#classdronecode__sdk_1_1_params_raw_1a09f5d63ca15fd2e4006b03621e2a2c15) (const [ParamsRaw](classdronecode__sdk_1_1_params_raw.md) &)=delete | Copy Constructor (object is not copyable). -std::string | [result_str](#classdronecode__sdk_1_1_params_raw_1a573a6f54493f0e862fbd12cdd3a8ac8c) ([Result](classdronecode__sdk_1_1_params_raw.md#classdronecode__sdk_1_1_params_raw_1a56a99fac0db7b397442482736de52803) result) | Returns a human-readable English string for [ParamsRaw::Result](classdronecode__sdk_1_1_params_raw.md#classdronecode__sdk_1_1_params_raw_1a56a99fac0db7b397442482736de52803). -std::pair< [Result](classdronecode__sdk_1_1_params_raw.md#classdronecode__sdk_1_1_params_raw_1a56a99fac0db7b397442482736de52803), int32_t > | [get_param_int](#classdronecode__sdk_1_1_params_raw_1a5ec45f63958cd939849a2751b9fa602e) (const std::string & name) | Get an int parameter. -[Result](classdronecode__sdk_1_1_params_raw.md#classdronecode__sdk_1_1_params_raw_1a56a99fac0db7b397442482736de52803) | [set_param_int](#classdronecode__sdk_1_1_params_raw_1a989b66a45a4a69919eaeebfdcec2a2e1) (const std::string & name, int32_t value) | Set an int parameter. -std::pair< [Result](classdronecode__sdk_1_1_params_raw.md#classdronecode__sdk_1_1_params_raw_1a56a99fac0db7b397442482736de52803), float > | [get_param_float](#classdronecode__sdk_1_1_params_raw_1ab3d5e0706c3e7a0b2acf4ca0e6299213) (const std::string & name) | Get a float parameter. -[Result](classdronecode__sdk_1_1_params_raw.md#classdronecode__sdk_1_1_params_raw_1a56a99fac0db7b397442482736de52803) | [set_param_float](#classdronecode__sdk_1_1_params_raw_1a169b6d40f0909c127f0195b2fce18a04) (const std::string & name, float value) | Set a float parameter. -const [ParamsRaw](classdronecode__sdk_1_1_params_raw.md) & | [operator=](#classdronecode__sdk_1_1_params_raw_1a419df0713ee17d9fb14ff000b3430f39) (const [ParamsRaw](classdronecode__sdk_1_1_params_raw.md) &)=delete | Equality operator (object is not copyable). - - -## Constructor & Destructor Documentation - - -### ParamsRaw() {#classdronecode__sdk_1_1_params_raw_1af25dfed59dd061240520ae9ed2a4d2e8} -```cpp -dronecode_sdk::ParamsRaw::ParamsRaw(System &system) -``` - - -Constructor. Creates the plugin for a specific [System](classdronecode__sdk_1_1_system.md). - -The plugin is typically created as shown below: - -```cpp -auto params_raw = std::make_shared(system); -``` - -**Parameters** - -* [System](classdronecode__sdk_1_1_system.md)& **system** - The specific system associated with this plugin. - -### ~ParamsRaw() {#classdronecode__sdk_1_1_params_raw_1a89c3ffa2df9d592553e5fae468c72112} -```cpp -dronecode_sdk::ParamsRaw::~ParamsRaw() -``` - - -Destructor (internal use only). - - -### ParamsRaw() {#classdronecode__sdk_1_1_params_raw_1a09f5d63ca15fd2e4006b03621e2a2c15} -```cpp -dronecode_sdk::ParamsRaw::ParamsRaw(const ParamsRaw &)=delete -``` - - -Copy Constructor (object is not copyable). - - -**Parameters** - -* const [ParamsRaw](classdronecode__sdk_1_1_params_raw.md)& - - -## Member Enumeration Documentation - - -### enum Result {#classdronecode__sdk_1_1_params_raw_1a56a99fac0db7b397442482736de52803} - - -Possible results returned for params_raw requests. - - -Value | Description ---- | --- - `UNKNOWN` | Unknown error. - `SUCCESS` | Request succeeded. - `TIMEOUT` | Request timed out. - `CONNECTION_ERROR` | Connection error. - `WRONG_TYPE` | Error. - `PARAM_NAME_TOO_LONG` | Parameter name too long (> 16). - -## Member Function Documentation - - -### result_str() {#classdronecode__sdk_1_1_params_raw_1a573a6f54493f0e862fbd12cdd3a8ac8c} -```cpp -std::string dronecode_sdk::ParamsRaw::result_str(Result result) -``` - - -Returns a human-readable English string for [ParamsRaw::Result](classdronecode__sdk_1_1_params_raw.md#classdronecode__sdk_1_1_params_raw_1a56a99fac0db7b397442482736de52803). - - -**Parameters** - -* [Result](classdronecode__sdk_1_1_params_raw.md#classdronecode__sdk_1_1_params_raw_1a56a99fac0db7b397442482736de52803) **result** - The enum value for which a human readable string is required. - -**Returns** - - std::string - Human readable string for the [ParamsRaw::Result](classdronecode__sdk_1_1_params_raw.md#classdronecode__sdk_1_1_params_raw_1a56a99fac0db7b397442482736de52803). - -### get_param_int() {#classdronecode__sdk_1_1_params_raw_1a5ec45f63958cd939849a2751b9fa602e} -```cpp -std::pair dronecode_sdk::ParamsRaw::get_param_int(const std::string &name) -``` - - -Get an int parameter. - -If the type is wrong, the result will be [Result::WRONG_TYPE](classdronecode__sdk_1_1_params_raw.md#classdronecode__sdk_1_1_params_raw_1a56a99fac0db7b397442482736de52803a9bf67e4befa0dcd99caa7f01f2c9b714). - -**Parameters** - -* const std::string& **name** - - -**Returns** - - std::pair< [Result](classdronecode__sdk_1_1_params_raw.md#classdronecode__sdk_1_1_params_raw_1a56a99fac0db7b397442482736de52803), int32_t > - a pair of the result of the request and the param (if successful). - -### set_param_int() {#classdronecode__sdk_1_1_params_raw_1a989b66a45a4a69919eaeebfdcec2a2e1} -```cpp -Result dronecode_sdk::ParamsRaw::set_param_int(const std::string &name, int32_t value) -``` - - -Set an int parameter. - -If the type is wrong, the result will be [Result::WRONG_TYPE](classdronecode__sdk_1_1_params_raw.md#classdronecode__sdk_1_1_params_raw_1a56a99fac0db7b397442482736de52803a9bf67e4befa0dcd99caa7f01f2c9b714). - -**Parameters** - -* const std::string& **name** - -* int32_t **value** - - -**Returns** - - [Result](classdronecode__sdk_1_1_params_raw.md#classdronecode__sdk_1_1_params_raw_1a56a99fac0db7b397442482736de52803) - result of the request. - -### get_param_float() {#classdronecode__sdk_1_1_params_raw_1ab3d5e0706c3e7a0b2acf4ca0e6299213} -```cpp -std::pair dronecode_sdk::ParamsRaw::get_param_float(const std::string &name) -``` - - -Get a float parameter. - -If the type is wrong, the result will be [Result::WRONG_TYPE](classdronecode__sdk_1_1_params_raw.md#classdronecode__sdk_1_1_params_raw_1a56a99fac0db7b397442482736de52803a9bf67e4befa0dcd99caa7f01f2c9b714). - -**Parameters** - -* const std::string& **name** - - -**Returns** - - std::pair< [Result](classdronecode__sdk_1_1_params_raw.md#classdronecode__sdk_1_1_params_raw_1a56a99fac0db7b397442482736de52803), float > - a pair of the result of the request and the param (if successful). - -### set_param_float() {#classdronecode__sdk_1_1_params_raw_1a169b6d40f0909c127f0195b2fce18a04} -```cpp -Result dronecode_sdk::ParamsRaw::set_param_float(const std::string &name, float value) -``` - - -Set a float parameter. - -If the type is wrong, the result will be [Result::WRONG_TYPE](classdronecode__sdk_1_1_params_raw.md#classdronecode__sdk_1_1_params_raw_1a56a99fac0db7b397442482736de52803a9bf67e4befa0dcd99caa7f01f2c9b714). - -**Parameters** - -* const std::string& **name** - -* float **value** - - -**Returns** - - [Result](classdronecode__sdk_1_1_params_raw.md#classdronecode__sdk_1_1_params_raw_1a56a99fac0db7b397442482736de52803) - result of the request. - -### operator=() {#classdronecode__sdk_1_1_params_raw_1a419df0713ee17d9fb14ff000b3430f39} -```cpp -const ParamsRaw& dronecode_sdk::ParamsRaw::operator=(const ParamsRaw &)=delete -``` - - -Equality operator (object is not copyable). - - -**Parameters** - -* const [ParamsRaw](classdronecode__sdk_1_1_params_raw.md)& - - -**Returns** - - const [ParamsRaw](classdronecode__sdk_1_1_params_raw.md) & - \ No newline at end of file diff --git a/en/api_reference/namespacedronecode__sdk.md b/en/api_reference/namespacedronecode__sdk.md index b49aa4a..6aa1b06 100644 --- a/en/api_reference/namespacedronecode__sdk.md +++ b/en/api_reference/namespacedronecode__sdk.md @@ -20,7 +20,7 @@ Namespace for all [dronecode_sdk](namespacedronecode__sdk.md) types. * [dronecode_sdk::MissionItem](classdronecode__sdk_1_1_mission_item.md) * [dronecode_sdk::MissionRaw](classdronecode__sdk_1_1_mission_raw.md) * [dronecode_sdk::Offboard](classdronecode__sdk_1_1_offboard.md) -* [dronecode_sdk::ParamsRaw](classdronecode__sdk_1_1_params_raw.md) +* [dronecode_sdk::Param](classdronecode__sdk_1_1_param.md) * [dronecode_sdk::PluginBase](classdronecode__sdk_1_1_plugin_base.md) * [dronecode_sdk::System](classdronecode__sdk_1_1_system.md) * [dronecode_sdk::Telemetry](classdronecode__sdk_1_1_telemetry.md) @@ -65,6 +65,9 @@ std::ostream & | [operator<<](#namespacedronecode__sdk_1aba2a59ff24c643d38cd2f8f bool | [operator==](#namespacedronecode__sdk_1a70e13ff33048ec0b6a8d100dc813a84a) (const [Telemetry::PositionVelocityNED](structdronecode__sdk_1_1_telemetry_1_1_position_velocity_n_e_d.md) & lhs, const [Telemetry::PositionVelocityNED](structdronecode__sdk_1_1_telemetry_1_1_position_velocity_n_e_d.md) & rhs) | Equal operator to compare two [Telemetry::PositionVelocityNED](structdronecode__sdk_1_1_telemetry_1_1_position_velocity_n_e_d.md) objects. bool | [operator==](#namespacedronecode__sdk_1aeee7bba4738b277d079f347b8f48a1e7) (const [Telemetry::Position](structdronecode__sdk_1_1_telemetry_1_1_position.md) & lhs, const [Telemetry::Position](structdronecode__sdk_1_1_telemetry_1_1_position.md) & rhs) | Equal operator to compare two [Telemetry::Position](structdronecode__sdk_1_1_telemetry_1_1_position.md) objects. std::ostream & | [operator<<](#namespacedronecode__sdk_1a1d3838c8844e1dc4a784c789f29f5267) (std::ostream & str, [Telemetry::Position](structdronecode__sdk_1_1_telemetry_1_1_position.md) const & position) | Stream operator to print information about a [Telemetry::Position](structdronecode__sdk_1_1_telemetry_1_1_position.md). +std::ostream & | [operator<<](#namespacedronecode__sdk_1a1fa26d63643cccf9c7b8a2361ba20688) (std::ostream & str, [Telemetry::PositionNED](structdronecode__sdk_1_1_telemetry_1_1_position_n_e_d.md) const & position_ned) | Stream operator to print information about a [Telemetry::PositionNED](structdronecode__sdk_1_1_telemetry_1_1_position_n_e_d.md). +std::ostream & | [operator<<](#namespacedronecode__sdk_1ad94e3e98805a83094010f1ed0599005f) (std::ostream & str, [Telemetry::VelocityNED](structdronecode__sdk_1_1_telemetry_1_1_velocity_n_e_d.md) const & velocity_ned) | Stream operator to print information about a [Telemetry::VelocityNED](structdronecode__sdk_1_1_telemetry_1_1_velocity_n_e_d.md). +std::ostream & | [operator<<](#namespacedronecode__sdk_1a52df542023f743fd2ad0dd647389a0ab) (std::ostream & str, [Telemetry::PositionVelocityNED](structdronecode__sdk_1_1_telemetry_1_1_position_velocity_n_e_d.md) const & position_velocity_ned) | Stream operator to print information about a [Telemetry::PositionVelocityNED](structdronecode__sdk_1_1_telemetry_1_1_position_velocity_n_e_d.md). bool | [operator==](#namespacedronecode__sdk_1a023eddb27d7cee0950801ce1e1445ada) (const [Telemetry::Health](structdronecode__sdk_1_1_telemetry_1_1_health.md) & lhs, const [Telemetry::Health](structdronecode__sdk_1_1_telemetry_1_1_health.md) & rhs) | Equal operator to compare two [Telemetry::Health](structdronecode__sdk_1_1_telemetry_1_1_health.md) objects. std::ostream & | [operator<<](#namespacedronecode__sdk_1a28f6d4519e116bed2fb0457455742ee1) (std::ostream & str, [Telemetry::Health](structdronecode__sdk_1_1_telemetry_1_1_health.md) const & health) | Stream operator to print information about a [Telemetry::Health](structdronecode__sdk_1_1_telemetry_1_1_health.md). bool | [operator==](#namespacedronecode__sdk_1ab03745281710b020b9ac76daf16140ed) (const [Telemetry::GPSInfo](structdronecode__sdk_1_1_telemetry_1_1_g_p_s_info.md) & lhs, const [Telemetry::GPSInfo](structdronecode__sdk_1_1_telemetry_1_1_g_p_s_info.md) & rhs) | Equal operator to compare two [Telemetry::GPSInfo](structdronecode__sdk_1_1_telemetry_1_1_g_p_s_info.md) objects. @@ -109,6 +112,7 @@ Value | Description `DESTINATION_IP_UNKNOWN` | Connection IP is unknown. `CONNECTIONS_EXHAUSTED` | Connections exhausted. `CONNECTION_URL_INVALID` | URL invalid. + `BAUDRATE_UNKNOWN` | Baudrate unknown. ### enum ComponentType {#namespacedronecode__sdk_1a19aedbe22879fce9e10f588c16ee823e} @@ -767,6 +771,72 @@ Stream operator to print information about a [Telemetry::Position](structdroneco  std::ostream & - A reference to the stream. +### operator<<() {#namespacedronecode__sdk_1a1fa26d63643cccf9c7b8a2361ba20688} + +``` +#include: plugins/telemetry/telemetry.h +``` +```cpp +std::ostream& dronecode_sdk::operator<<(std::ostream &str, Telemetry::PositionNED const &position_ned) +``` + + +Stream operator to print information about a [Telemetry::PositionNED](structdronecode__sdk_1_1_telemetry_1_1_position_n_e_d.md). + + +**Parameters** + +* std::ostream& **str** - +* [Telemetry::PositionNED](structdronecode__sdk_1_1_telemetry_1_1_position_n_e_d.md) const& **position_ned** - + +**Returns** + + std::ostream & - A reference to the stream. + +### operator<<() {#namespacedronecode__sdk_1ad94e3e98805a83094010f1ed0599005f} + +``` +#include: plugins/telemetry/telemetry.h +``` +```cpp +std::ostream& dronecode_sdk::operator<<(std::ostream &str, Telemetry::VelocityNED const &velocity_ned) +``` + + +Stream operator to print information about a [Telemetry::VelocityNED](structdronecode__sdk_1_1_telemetry_1_1_velocity_n_e_d.md). + + +**Parameters** + +* std::ostream& **str** - +* [Telemetry::VelocityNED](structdronecode__sdk_1_1_telemetry_1_1_velocity_n_e_d.md) const& **velocity_ned** - + +**Returns** + + std::ostream & - A reference to the stream. + +### operator<<() {#namespacedronecode__sdk_1a52df542023f743fd2ad0dd647389a0ab} + +``` +#include: plugins/telemetry/telemetry.h +``` +```cpp +std::ostream& dronecode_sdk::operator<<(std::ostream &str, Telemetry::PositionVelocityNED const &position_velocity_ned) +``` + + +Stream operator to print information about a [Telemetry::PositionVelocityNED](structdronecode__sdk_1_1_telemetry_1_1_position_velocity_n_e_d.md). + + +**Parameters** + +* std::ostream& **str** - +* [Telemetry::PositionVelocityNED](structdronecode__sdk_1_1_telemetry_1_1_position_velocity_n_e_d.md) const& **position_velocity_ned** - + +**Returns** + + std::ostream & - A reference to the stream. + ### operator==() {#namespacedronecode__sdk_1a023eddb27d7cee0950801ce1e1445ada} ``` diff --git a/en/api_reference/structdronecode__sdk_1_1_offboard_1_1_position_n_e_d_yaw.md b/en/api_reference/structdronecode__sdk_1_1_offboard_1_1_position_n_e_d_yaw.md new file mode 100644 index 0000000..f5b1537 --- /dev/null +++ b/en/api_reference/structdronecode__sdk_1_1_offboard_1_1_position_n_e_d_yaw.md @@ -0,0 +1,63 @@ +# dronecode_sdk::Offboard::PositionNEDYaw Struct Reference +`#include: offboard.h` + +---- + + +Type for Position commands in NED (North East Down) coordinates and yaw. + + +## Data Fields + + +float [north_m](#structdronecode__sdk_1_1_offboard_1_1_position_n_e_d_yaw_1a0fde9e523eb629630f9d3c0ae900c6c4) - Position North in metres. + +float [east_m](#structdronecode__sdk_1_1_offboard_1_1_position_n_e_d_yaw_1a071aba9a735e9410ec6442b6cf3d4b92) - Position East in metres. + +float [down_m](#structdronecode__sdk_1_1_offboard_1_1_position_n_e_d_yaw_1a4122851e77b35c789c837784e5e40c19) - Position Down in metres. + +float [yaw_deg](#structdronecode__sdk_1_1_offboard_1_1_position_n_e_d_yaw_1ae11c76bbda88ba5f572997fa18d45656) - Yaw in degrees (0 North, positive is clock-wise looking from above). + + +## Field Documentation + + +### north_m {#structdronecode__sdk_1_1_offboard_1_1_position_n_e_d_yaw_1a0fde9e523eb629630f9d3c0ae900c6c4} + +```cpp +float dronecode_sdk::Offboard::PositionNEDYaw::north_m +``` + + +Position North in metres. + + +### east_m {#structdronecode__sdk_1_1_offboard_1_1_position_n_e_d_yaw_1a071aba9a735e9410ec6442b6cf3d4b92} + +```cpp +float dronecode_sdk::Offboard::PositionNEDYaw::east_m +``` + + +Position East in metres. + + +### down_m {#structdronecode__sdk_1_1_offboard_1_1_position_n_e_d_yaw_1a4122851e77b35c789c837784e5e40c19} + +```cpp +float dronecode_sdk::Offboard::PositionNEDYaw::down_m +``` + + +Position Down in metres. + + +### yaw_deg {#structdronecode__sdk_1_1_offboard_1_1_position_n_e_d_yaw_1ae11c76bbda88ba5f572997fa18d45656} + +```cpp +float dronecode_sdk::Offboard::PositionNEDYaw::yaw_deg +``` + + +Yaw in degrees (0 North, positive is clock-wise looking from above). + diff --git a/en/cpp/README.md b/en/cpp/README.md index 0474fbc..5f9ac1a 100644 --- a/en/cpp/README.md +++ b/en/cpp/README.md @@ -53,7 +53,7 @@ The most important classes are: The following APIs provide more direct access to underlying MAVLink messages/types. They should only be used where features are missing from the main APIs above. -* [ParamsRaw](/api_reference/classdronecode__sdk_1_1_params_raw.md): Raw access to get and set parameters. +* [Param](/api_reference/classdronecode__sdk_1_1_param.md): Raw access to get and set parameters. * [MissionRaw](/api_reference/classdronecode__sdk_1_1_mission_raw.md): Direct access to MAVLink mission items. * [MavlinkPassthrough](/api_reference/classdronecode__sdk_1_1_mavlink_passthrough.md): Provides full/direct MAVLink access