From 9c4824baffffb723eb6818815818da0aaf04f8fd Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Wed, 25 Oct 2017 16:49:48 +1100 Subject: [PATCH 001/107] Make debug printfs green --- en/contributing/dev_logging.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/en/contributing/dev_logging.md b/en/contributing/dev_logging.md index 3fc855e..da80fd3 100644 --- a/en/contributing/dev_logging.md +++ b/en/contributing/dev_logging.md @@ -23,7 +23,7 @@ LogDebug() << "command unsupported (" << something.mavlink_command << ")."; Function | Description | Example --- | --- | --- -`LogDebug()` | Debug messages showing progress and internal state.
Debug messages. *These are not displayed in RELEASE builds*. | [04:55:08|Error] This is a debug message (test_file.cpp:26) -`LogInfo()` | Information messages. For reporting progress and status. | [04:55:08|Error] This is an information message (test_file.cpp:26) -`LogWarn()` | Warning messages. For reporting when the vehicle isn't acting as commanded (e.g. rejecting commands). | [04:55:08|Error] This is a warning message (test_file.cpp:26) -`LogErr()` | Error messages. For reporting errors in DroneCore behaviour (e.g. communication link issues/retry failures). | [04:55:08|Error] This is an error message (test_file.cpp:26) +`LogDebug()` | Debug messages.
For reporting internal progress/state.
*Not displayed in RELEASE builds.* | [04:55:08|Error] `This is a debug message (test_file.cpp:26)` +`LogInfo()` | Information messages.
For reporting progress and status. | [04:55:08|Error] `This is an information message (test_file.cpp:26)` +`LogWarn()` | Warning messages.
For reporting when vehicle not acting as commanded (e.g. rejecting commands). | [04:55:08|Error] `This is a warning message (test_file.cpp:26)` +`LogErr()` | Error messages.
For reporting errors in DroneCore behaviour (e.g. communication link issues/retry failures). | [04:55:08|Error] `This is an error message (test_file.cpp:26)` From 9361afc8bc194f538c7fa9244ef4c928e8a059e4 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Wed, 25 Oct 2017 17:04:48 +1100 Subject: [PATCH 002/107] Update API reference with product/vendor info as per 118 --- en/SUMMARY.md | 1 + en/api_reference/README.md | 1 + en/api_reference/classdronecore_1_1_info.md | 16 +++++ .../structdronecore_1_1_info_1_1_product.md | 66 +++++++++++++++++++ .../structdronecore_1_1_info_1_1_version.md | 26 -------- 5 files changed, 84 insertions(+), 26 deletions(-) create mode 100644 en/api_reference/structdronecore_1_1_info_1_1_product.md diff --git a/en/SUMMARY.md b/en/SUMMARY.md index 4b67a69..1bef9d4 100644 --- a/en/SUMMARY.md +++ b/en/SUMMARY.md @@ -19,6 +19,7 @@ * [class Device](api_reference/classdronecore_1_1_device.md) * [class Info](api_reference/classdronecore_1_1_info.md) * [struct Version](api_reference/structdronecore_1_1_info_1_1_version.md) + * [struct Product](api_reference/structdronecore_1_1_info_1_1_product.md) * [class Telemetry](api_reference/classdronecore_1_1_telemetry.md) * [struct Battery](api_reference/structdronecore_1_1_telemetry_1_1_battery.md) * [struct EulerAngle](api_reference/structdronecore_1_1_telemetry_1_1_euler_angle.md) diff --git a/en/api_reference/README.md b/en/api_reference/README.md index d48c2eb..8493f8c 100644 --- a/en/api_reference/README.md +++ b/en/api_reference/README.md @@ -4,6 +4,7 @@ * [class Device](classdronecore_1_1_device.md) * [class Info](classdronecore_1_1_info.md) * [struct Version](structdronecore_1_1_info_1_1_version.md) + * [struct Product](structdronecore_1_1_info_1_1_product.md) * [class Telemetry](classdronecore_1_1_telemetry.md) * [struct Battery](structdronecore_1_1_telemetry_1_1_battery.md) * [struct EulerAngle](structdronecore_1_1_telemetry_1_1_euler_angle.md) diff --git a/en/api_reference/classdronecore_1_1_info.md b/en/api_reference/classdronecore_1_1_info.md index 670cdde..6b87156 100644 --- a/en/api_reference/classdronecore_1_1_info.md +++ b/en/api_reference/classdronecore_1_1_info.md @@ -10,6 +10,8 @@ The [Info](classdronecore_1_1_info.md) class provides basic infomation about the ## Data Structures +struct [Product](structdronecore_1_1_info_1_1_product.md) + struct [Version](structdronecore_1_1_info_1_1_version.md) ## Public Member Functions @@ -23,6 +25,7 @@ Type | Name | Description uint64_t | [uuid](#classdronecore_1_1_info_1a49c7dd5f1a369c8296f0c3a2443bc031) () const | Gets the UUID of the device. bool | [is_complete](#classdronecore_1_1_info_1a088438b73c715fb20c02792fed1815f7) () const | Tests if this [Version](structdronecore_1_1_info_1_1_version.md) object is fully populated from hardware. [Version](structdronecore_1_1_info_1_1_version.md) | [get_version](#classdronecore_1_1_info_1a6e41fae8c6ad352e70b1e93b4a1589f9) () const | Get device version information. +[Product](structdronecore_1_1_info_1_1_product.md) | [get_product](#classdronecore_1_1_info_1adb7999bf9e92f95e3dfa5eaea216807a) () const | Get device product information. const [Info](classdronecore_1_1_info.md) & | [operator=](#classdronecore_1_1_info_1ac82758b486f00562e193a89e3dbff6d3) (const Info &)=delete | Equality operator (object is not copyable). ## Static Public Attributes @@ -112,6 +115,19 @@ Get device version information.  [Version](structdronecore_1_1_info_1_1_version.md) - The version object for the device. +### get_product() {#classdronecore_1_1_info_1adb7999bf9e92f95e3dfa5eaea216807a} +```cpp +Product dronecore::Info::get_product() const +``` + + +Get device product information. + + +**Returns** + + [Product](structdronecore_1_1_info_1_1_product.md) - The product object for the device. + ### operator=() {#classdronecore_1_1_info_1ac82758b486f00562e193a89e3dbff6d3} ```cpp const Info& dronecore::Info::operator=(const Info &)=delete diff --git a/en/api_reference/structdronecore_1_1_info_1_1_product.md b/en/api_reference/structdronecore_1_1_info_1_1_product.md new file mode 100644 index 0000000..2c1f0d1 --- /dev/null +++ b/en/api_reference/structdronecore_1_1_info_1_1_product.md @@ -0,0 +1,66 @@ +# dronecore::Info::Product Struct Reference +`#include: info.h` + +---- + + +Type containing device product information. + + +## Data Fields + + + int [vendor_id](#structdronecore_1_1_info_1_1_product_1a6e65d6271113bc484ce5a979b200deaa) - ID of board vendor. + + + char [vendor_name](#structdronecore_1_1_info_1_1_product_1aa4087d0be4f4f55d2a017ab794bdec12) - Name of vendor. + + + int [product_id](#structdronecore_1_1_info_1_1_product_1a1194de2d7f34e3f001ae060d425b4dba) - ID of product. + + + char [product_name](#structdronecore_1_1_info_1_1_product_1a8522bb729957f8353ff2e5f98c398082) - Name of product. + + +## Field Documentation + + +### vendor_id {#structdronecore_1_1_info_1_1_product_1a6e65d6271113bc484ce5a979b200deaa} + +```cpp +int dronecore::Info::Product::vendor_id +``` + + +ID of board vendor. + + +### vendor_name {#structdronecore_1_1_info_1_1_product_1aa4087d0be4f4f55d2a017ab794bdec12} + +```cpp +char dronecore::Info::Product::vendor_name[32] +``` + + +Name of vendor. + + +### product_id {#structdronecore_1_1_info_1_1_product_1a1194de2d7f34e3f001ae060d425b4dba} + +```cpp +int dronecore::Info::Product::product_id +``` + + +ID of product. + + +### product_name {#structdronecore_1_1_info_1_1_product_1a8522bb729957f8353ff2e5f98c398082} + +```cpp +char dronecore::Info::Product::product_name[32] +``` + + +Name of product. + diff --git a/en/api_reference/structdronecore_1_1_info_1_1_version.md b/en/api_reference/structdronecore_1_1_info_1_1_version.md index b7b5c6a..272b7de 100644 --- a/en/api_reference/structdronecore_1_1_info_1_1_version.md +++ b/en/api_reference/structdronecore_1_1_info_1_1_version.md @@ -43,12 +43,6 @@ Type containing device version information. char [os_sw_git_hash](#structdronecore_1_1_info_1_1_version_1a0466e10843ca6a745c39f254ef08cf0f) - Operating system software git hash as string. - uint16_t [vendor_id](#structdronecore_1_1_info_1_1_version_1a98d1c4e51637d6fdff5e1fc270d9a947) - ID of board vendor. - - - uint16_t [product_id](#structdronecore_1_1_info_1_1_version_1a1fecccba3c564b65f757205160b8050e) - ID of product. - - ## Field Documentation @@ -161,23 +155,3 @@ char dronecore::Info::Version::os_sw_git_hash[GIT_HASH_STR_LEN] Operating system software git hash as string. - -### vendor_id {#structdronecore_1_1_info_1_1_version_1a98d1c4e51637d6fdff5e1fc270d9a947} - -```cpp -uint16_t dronecore::Info::Version::vendor_id -``` - - -ID of board vendor. - - -### product_id {#structdronecore_1_1_info_1_1_version_1a1fecccba3c564b65f757205160b8050e} - -```cpp -uint16_t dronecore::Info::Version::product_id -``` - - -ID of product. - From ebcea2a4ba2db5797aa6c7d8d9dba07611a03e28 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Wed, 25 Oct 2017 17:18:33 +1100 Subject: [PATCH 003/107] Update guide with product/vendor info as per 118 --- en/guide/device_version.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/en/guide/device_version.md b/en/guide/device_version.md index df88589..d9cc319 100644 --- a/en/guide/device_version.md +++ b/en/guide/device_version.md @@ -1,12 +1,12 @@ ## Device Information -The [Info](../api_reference/classdronecore_1_1_info.md) class is used to get device information, including the device UUID (MAVLink `SYS_ID` if no UUID is stored in hardware), PX4 firmware version, vendor firmware version, host OS version (e.g. for NuttX) and vendor and product ids. +The [Info](../api_reference/classdronecore_1_1_info.md) class is used to get device information, including the device UUID (MAVLink `SYS_ID` if no UUID is stored in hardware), PX4 firmware version, vendor firmware version, host OS version (e.g. for NuttX) and vendor and product ids/names. > **Note** Not all version information will necessarily be relevant on all vehicles. Where this occurs the hardware may return garbage values (for example, the simulator provides garbage values for the vendor firmware semantic version). -The code below shows how to query the UUID and version information and print it to the console: +The code below shows how to query the UUID, version, and product, information and print it to the console: ```cpp // Get Device to query (the code assumes we have already found at least one vehicle and we @@ -36,9 +36,16 @@ std::cout << " flight_sw_major: " << deviceVersion.flight_sw_major<< std::endl << " os_sw_major: " << deviceVersion.os_sw_major<< std::endl << " os_sw_minor: " << deviceVersion.os_sw_minor<< std::endl << " os_sw_patch: " << deviceVersion.os_sw_patch<< std::endl - << " os_sw_git_hash: " << deviceVersion.os_sw_git_hash<< std::endl - << " vendor_id: " << deviceVersion.vendor_id<< std::endl - << " product_id: " << deviceVersion.product_id<< std::endl; + << " os_sw_git_hash: " << deviceVersion.os_sw_git_hash<< std::endl; + +// Get the device Product struct +const Info::Product &deviceProduct = device.info().get_product(); + +// Print out the vehicle product information. +std::cout << " vendor_id: " << deviceProduct.vendor_id<< std::endl + << " vendor_name: " << deviceProduct.vendor_name<< std::endl + << " product_id: " << deviceProduct.product_id<< std::endl + << " product_name: " << deviceProduct.product_id<< std::endl; ``` -> **Tip** It is possible to query for the version before all values have been retrieved. Note above how we use `Info::is_complete()` to check that the version information (`Info::Version`) has all been obtained from the vehicle before printing it. +> **Tip** It is possible to query for the information before all values have been retrieved. Note above how we use `Info::is_complete()` to check that the version information (`Info::Version` and `Info::Product`) has all been obtained from the vehicle before printing it. From 50867fbf88af9f2f67ed42f757a942e82961100c Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Fri, 27 Oct 2017 10:43:57 +1100 Subject: [PATCH 004/107] update API refer to include latest changes --- en/api_reference/classdronecore_1_1_info.md | 6 +++--- en/api_reference/classdronecore_1_1_offboard.md | 4 ++++ ...re_1_1_offboard_1_1_velocity_body_yawspeed.md | 16 ++++++++++------ ...necore_1_1_offboard_1_1_velocity_n_e_d_yaw.md | 14 +++++++++----- 4 files changed, 26 insertions(+), 14 deletions(-) diff --git a/en/api_reference/classdronecore_1_1_info.md b/en/api_reference/classdronecore_1_1_info.md index 6b87156..f12798d 100644 --- a/en/api_reference/classdronecore_1_1_info.md +++ b/en/api_reference/classdronecore_1_1_info.md @@ -23,7 +23,7 @@ Type | Name | Description | [~Info](#classdronecore_1_1_info_1a39e608070500b5fca0b4415cdb13f75f) () | Destructor (internal use only). | [Info](#classdronecore_1_1_info_1af0902805d75577d1195363eda21d7bb1) (const Info &)=delete | Copy Constructor (object is not copyable). uint64_t | [uuid](#classdronecore_1_1_info_1a49c7dd5f1a369c8296f0c3a2443bc031) () const | Gets the UUID of the device. -bool | [is_complete](#classdronecore_1_1_info_1a088438b73c715fb20c02792fed1815f7) () const | Tests if this [Version](structdronecore_1_1_info_1_1_version.md) object is fully populated from hardware. +bool | [is_complete](#classdronecore_1_1_info_1a088438b73c715fb20c02792fed1815f7) () const | Tests if the [Version](structdronecore_1_1_info_1_1_version.md) and [Product](structdronecore_1_1_info_1_1_product.md) objects are fully populated from hardware. [Version](structdronecore_1_1_info_1_1_version.md) | [get_version](#classdronecore_1_1_info_1a6e41fae8c6ad352e70b1e93b4a1589f9) () const | Get device version information. [Product](structdronecore_1_1_info_1_1_product.md) | [get_product](#classdronecore_1_1_info_1adb7999bf9e92f95e3dfa5eaea216807a) () const | Get device product information. const [Info](classdronecore_1_1_info.md) & | [operator=](#classdronecore_1_1_info_1ac82758b486f00562e193a89e3dbff6d3) (const Info &)=delete | Equality operator (object is not copyable). @@ -95,12 +95,12 @@ bool dronecore::Info::is_complete() const ``` -Tests if this [Version](structdronecore_1_1_info_1_1_version.md) object is fully populated from hardware. +Tests if the [Version](structdronecore_1_1_info_1_1_version.md) and [Product](structdronecore_1_1_info_1_1_product.md) objects are fully populated from hardware. **Returns** - bool - `true` if [Version](structdronecore_1_1_info_1_1_version.md) object is fully populated from device. + bool - `true` if [Version](structdronecore_1_1_info_1_1_version.md) and [Product](structdronecore_1_1_info_1_1_product.md) objects are fully populated from device. ### get_version() {#classdronecore_1_1_info_1a6e41fae8c6ad352e70b1e93b4a1589f9} ```cpp diff --git a/en/api_reference/classdronecore_1_1_offboard.md b/en/api_reference/classdronecore_1_1_offboard.md index 05ca4f2..6e32793 100644 --- a/en/api_reference/classdronecore_1_1_offboard.md +++ b/en/api_reference/classdronecore_1_1_offboard.md @@ -10,6 +10,9 @@ This class is used to control a drone with velocity commands. The module is called offboard because the velocity commands can be sent from external sources as opposed to onboard control right inside the autopilot "board". +Client code must specify a setpoint before starting offboard mode. [DroneCore](classdronecore_1_1_drone_core.md) automatically resends setpoints at 20Hz (PX4 [Offboard](classdronecore_1_1_offboard.md) mode requires that setpoints are minimally resent at 2Hz). If more precise control is required, clients can call the setpoint methods at whatever rate is required. + + **Attention:** this is work in progress, use with caution! @@ -120,6 +123,7 @@ Results for offboard requests. `BUSY` | Vehicle busy. `COMMAND_DENIED` | Command denied. `TIMEOUT` | Request timeout. + `NO_SETPOINT_SET` | Can't start without setpoint set. `UNKNOWN` | Unknown error. ## Member Function Documentation diff --git a/en/api_reference/structdronecore_1_1_offboard_1_1_velocity_body_yawspeed.md b/en/api_reference/structdronecore_1_1_offboard_1_1_velocity_body_yawspeed.md index 28ae495..393a13b 100644 --- a/en/api_reference/structdronecore_1_1_offboard_1_1_velocity_body_yawspeed.md +++ b/en/api_reference/structdronecore_1_1_offboard_1_1_velocity_body_yawspeed.md @@ -10,16 +10,16 @@ Type for velocity commands in body coordinates (forward, right, down and yaw ang ## Data Fields - float [forward_m_s](#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1a133a610b901d4146872f8a7b41699636) - + float [forward_m_s](#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1a133a610b901d4146872f8a7b41699636) - Velocity forward in metres/second. - float [right_m_s](#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1ae761aeeda4c129520cba653c02aeace1) - + float [right_m_s](#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1ae761aeeda4c129520cba653c02aeace1) - Velocity right in metres/secon.d. - float [down_m_s](#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1a8df8b128b12830c9736bd00e355f57a7) - + float [down_m_s](#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1a8df8b128b12830c9736bd00e355f57a7) - Velocity down in metres/second. - float [yawspeed_deg_s](#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1a6858130475964eb2d5c5a4236b7f1e31) - + float [yawspeed_deg_s](#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1a6858130475964eb2d5c5a4236b7f1e31) - Yaw angular rate in degrees/second (positive for clock-wise looking from above). ## Field Documentation @@ -34,6 +34,7 @@ float dronecore::Offboard::VelocityBodyYawspeed::forward_m_s Velocity forward in metres/second. + ### right_m_s {#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1ae761aeeda4c129520cba653c02aeace1} ```cpp @@ -41,7 +42,8 @@ float dronecore::Offboard::VelocityBodyYawspeed::right_m_s ``` -Velocity right in metres/secon.d +Velocity right in metres/secon.d. + ### down_m_s {#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1a8df8b128b12830c9736bd00e355f57a7} @@ -52,6 +54,7 @@ float dronecore::Offboard::VelocityBodyYawspeed::down_m_s Velocity down in metres/second. + ### yawspeed_deg_s {#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1a6858130475964eb2d5c5a4236b7f1e31} ```cpp @@ -59,4 +62,5 @@ float dronecore::Offboard::VelocityBodyYawspeed::yawspeed_deg_s ``` -Yaw angular rate in degrees/second (positive for clock-wise looking from above. \ No newline at end of file +Yaw angular rate in degrees/second (positive for clock-wise looking from above). + diff --git a/en/api_reference/structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw.md b/en/api_reference/structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw.md index 556c61b..356b7d5 100644 --- a/en/api_reference/structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw.md +++ b/en/api_reference/structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw.md @@ -10,16 +10,16 @@ Type for Velocity commands in NED (North East Down) coordinates and yaw. ## Data Fields - float [north_m_s](#structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw_1a16f62616bb348d64216ef62c48825023) - + float [north_m_s](#structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw_1a16f62616bb348d64216ef62c48825023) - Velocity North in metres/second. - float [east_m_s](#structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw_1aaafed7010b4bd12d4f09edb74718ff00) - + float [east_m_s](#structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw_1aaafed7010b4bd12d4f09edb74718ff00) - Velocity East in metres/second. - float [down_m_s](#structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw_1ab66e5ab2b2f5d3021b43ed305b8d600d) - + float [down_m_s](#structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw_1ab66e5ab2b2f5d3021b43ed305b8d600d) - Velocity Down in metres/second. - float [yaw_deg](#structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw_1a7b19107af4d46135d55f779909ea73f4) - + float [yaw_deg](#structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw_1a7b19107af4d46135d55f779909ea73f4) - Yaw in degrees (0 North, positive is clock-wise looking from above). ## Field Documentation @@ -34,6 +34,7 @@ float dronecore::Offboard::VelocityNEDYaw::north_m_s Velocity North in metres/second. + ### east_m_s {#structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw_1aaafed7010b4bd12d4f09edb74718ff00} ```cpp @@ -43,6 +44,7 @@ float dronecore::Offboard::VelocityNEDYaw::east_m_s Velocity East in metres/second. + ### down_m_s {#structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw_1ab66e5ab2b2f5d3021b43ed305b8d600d} ```cpp @@ -52,6 +54,7 @@ float dronecore::Offboard::VelocityNEDYaw::down_m_s Velocity Down in metres/second. + ### yaw_deg {#structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw_1a7b19107af4d46135d55f779909ea73f4} ```cpp @@ -59,4 +62,5 @@ float dronecore::Offboard::VelocityNEDYaw::yaw_deg ``` -Yaw in degrees (0 North, positive is clock-wise looking from above. \ No newline at end of file +Yaw in degrees (0 North, positive is clock-wise looking from above). + From 4de70b5c4d71da4eed72d13dcba7fd2a625eab96 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Fri, 27 Oct 2017 18:01:03 +1100 Subject: [PATCH 005/107] Add offboard control docs --- .../offboard_mode/qgc_offboard_velocity.png | Bin 0 -> 1225340 bytes en/SUMMARY.md | 2 + en/examples/README.md | 2 +- en/examples/offboard_velocity.md | 72 +++++++ en/guide/offboard.md | 183 ++++++++++++++++++ 5 files changed, 258 insertions(+), 1 deletion(-) create mode 100644 assets/examples/offboard_mode/qgc_offboard_velocity.png create mode 100644 en/examples/offboard_velocity.md create mode 100644 en/guide/offboard.md diff --git a/assets/examples/offboard_mode/qgc_offboard_velocity.png b/assets/examples/offboard_mode/qgc_offboard_velocity.png new file mode 100644 index 0000000000000000000000000000000000000000..a2a42751419382f89d6c073161faf5cd90f5de7f GIT binary patch literal 1225340 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
yQgo<|=jJ|8!{Z(Qk>7Rwp=(%mQETAHs7Zt+zW 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 ^YRdA-eF%fn8u-b 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%0Ad- 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 z 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 z%0D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

D;3Biq_Ffy00iLEqYgvp6b&%;n8^^XW`QpD!3fY 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%0A}#!Aq~BQH%>j)MmU<-RvRT12K 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 b(Zc@+OgIG<8ZWTs00000NkvXXu0mjfU%o>y literal 0 HcmV?d00001 diff --git a/en/SUMMARY.md b/en/SUMMARY.md index 1bef9d4..9367579 100644 --- a/en/SUMMARY.md +++ b/en/SUMMARY.md @@ -10,10 +10,12 @@ * [Telemetry](guide/telemetry.md) * [Taking Off and Landing](guide/taking_off_landing.md) * [Missions](guide/missions.md) + * [Offboard Control](guide/offboard.md) * [Building C++ Apps](guide/toolchain.md) * [Examples](examples/README.md) * [Takeoff and Land](examples/takeoff_and_land.md) * [Fly Mission](examples/fly_mission.md) + * [Offboard Mode - Velocity Control](examples/offboard_velocity.md) * [API Reference](api_reference/README.md) * [class DroneCore](api_reference/classdronecore_1_1_drone_core.md) * [class Device](api_reference/classdronecore_1_1_device.md) diff --git a/en/examples/README.md b/en/examples/README.md index ad1ebee..882a351 100644 --- a/en/examples/README.md +++ b/en/examples/README.md @@ -4,7 +4,7 @@ This section contains examples showing how to use DroneCore. * [Takeoff and Land](../examples/takeoff_and_land.md) - Shows basic usage of DroneCore (connect to port, detect device, arm, takeoff, land, get telemetry) * [Fly Mission](../examples/fly_mission.md) - Shows how to create, upload, and run missions. - +* [Offboard Velocity Control](../examples/offboard_velocity.md) - Demonstrates how to control a vehicle in Offboard mode using velocity commands (in both the NED and body frames). All examples are all built and run in the same way, as described in the following section (any exceptions are covered in the page for the associated example). diff --git a/en/examples/offboard_velocity.md b/en/examples/offboard_velocity.md new file mode 100644 index 0000000..8a8ce09 --- /dev/null +++ b/en/examples/offboard_velocity.md @@ -0,0 +1,72 @@ +# Example: Offboard Velocity + +This example shows how to how to control a vehicle in *Offboard mode* using velocity commands (in both the NED and body frames). + +![Offboard Mode - Velocity Control QGC Screenshot](../../assets/examples/offboard_mode/qgc_offboard_velocity.png) + + +## Running the Example {#run_example} + +The example is built and run [as described here](/examples/README.md#trying_the_examples) (the standard way). + +The example terminal output should be similar to that shown below: + +> **Note** This is for a release build of DroneCore. A debug build will display additional information from DroneCore. + +``` +$ ./offboard +Wait for device to connect via heartbeat +[11:52:48|Info ] New device on: 127.0.0.1:14557 (udp_connection.cpp:210) +[11:52:48|Debug] mavlink info: [logger] file: rootfs/fs/microsd/log/2017-10-27/0 (device_impl.cpp:223) +[11:52:49|Debug] Discovered 4294967298 (dronecore_impl.cpp:234) +Waiting for device to be ready +... +Waiting for device to be ready +Device is ready +Armed +[11:53:02|Debug] mavlink info: ARMED by arm/disarm component command (device_impl.cpp:223) +In Air... +[11:53:02|Debug] mavlink info: Using minimum takeoff altitude: 2.50 m (device_impl.cpp:223) +[11:53:02|Debug] mavlink info: Takeoff detected (device_impl.cpp:223) +[11:53:02|Debug] mavlink critical: Using minimum takeoff altitude: 2.50 m (device_impl.cpp:223) +[NED] Offboard started +[NED] Turn to face East +[NED] Go North and back South +[NED] Turn to face West +[NED] Go up 2 m/s, turn to face South +[NED] Go down 1 m/s, turn to face North +[NED] Offboard stopped +[BODY] Offboard started +[BODY] Turn clock-wise and climb +[BODY] Turn back anti-clockwise +[BODY] Wait for a bit +[BODY] Fly a circle +[BODY] Wait for a bit +[BODY] Fly a circle sideways +[BODY] Wait for a bit +[BODY] Offboard stopped +[11:54:26|Debug] mavlink info: Landing at current position (device_impl.cpp:223) +Landed +ubuntu@ubuntu:~/DroneCore/example/offboard_velocity/build$ +``` + +## How it works + +The operation of most of this code is discussed in the guide: [Offboard Control](../guide/offboard.md). + +## Source code {#source_code} + +> **Tip** The full source code for the example [can be found on Github here](https://github.com/dronecore/DroneCore/tree/master/example/offboard_velocity). + + +[CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/master/example/offboard_velocity/CMakeLists.txt) + +```make +##TODO: ADD FINAL TEXT HERE +``` + +[offboard_velocity.cpp](https://github.com/dronecore/DroneCore/blob/master/example/offboard_velocity/offboard_velocity.cpp) + +```cpp +##TODO: ADD FINAL TEXT HERE +``` diff --git a/en/guide/offboard.md b/en/guide/offboard.md new file mode 100644 index 0000000..805462a --- /dev/null +++ b/en/guide/offboard.md @@ -0,0 +1,183 @@ +# Offboard Control + +The [Offboard](../api_reference/classdronecore_1_1_offboard.md) module provides a simple API +for controlling the vehicle using velocity and yaw setpoints. It is useful for tasks requiring direct control from a companion computer; for example to implement collision avoidance. + +> **Note** The API uses the PX4 [Offboard flight mode](https://docs.px4.io/en/flight_modes/offboard.html). The class can only be used with copter and VTOL vehicles (a PX4 limitation) and currently only supports *velocity setpoint commands* (PX4 additionally supports position and thrust setpoints). + +Client code must specify a setpoint before starting *Offboard mode*. DroneCore automatically resends setpoints at 20Hz (PX4 Offboard mode requires that setpoints are minimally resent at 2Hz). If more precise control is required, clients can call the setpoint methods at whatever rate is required. + + +## Preconditions + +The following code assumes that you already have included DroneCore (`#include `) +and that there is a [connection](../guide/connections.md) to a `device` obtained as shown below: +``` +Device &device = dc.device(); +``` + +## Starting/Stopping Offboard Mode + +To use offboard mode you must first create a setpoint using either [set_velocity_ned()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a9e7f369a8f7459dc7705f4453a8c307d) or [set_velocity_body()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1ad9dc585be1bc2dba699cf089d4c274cc). You can use any setpoint you like - the vehicle will start acting on the current setpoint as soon as the mode starts. + +After you have created a setpoint call [start()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a2b3aecd25645101a705cd1d80782311a) or [start_async()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a5dd9d18eedb0e4a8f1bbbeebf6f99aa8) to switch to offboard mode. + +```cpp +// Create a null setpoint (no velocity or yaw components in any direction) +device.offboard().set_velocity_body({0.0f, 0.0f, 0.0f, 0.0f}); + +// Start offboard mode. +Offboard::Result offboard_result = device.offboard().start(); +if (result != Offboard::Result::SUCCESS) { + std::cerr << "Offboard::start() failed: " + << Offboard::result_str(offboard_result) << std::endl; + } +``` + +The methods return/complete with a [Result](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a0f6e5e9f73289f27dc99abbb3ab572ed) indicating whether the command was successful. +Above we use the synchronous API, and then use [Offboard::result_str()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a8eb7467e48fe354d34bc45637ca9f5b8) to get a human readable string for the returned enum. + +You can change the setpoints as needed (new setpoints replace any old setpoints). + +To stop offboard mode call [Offboard::stop()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a2cecfbeb40bcd1d314fcfb07eb4dcd60) or [stop_async()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1afbe6f50f63d3bc43acc4dfc2f797ca0a). +DroneCore will then clear the current setpoint and put the vehicle into +[Hold flight mode](https://docs.px4.io/en/flight_modes/hold.html). +The synchronous API is used as shown below: + +```cpp +//Stop offboard mode +offboard_result = device.offboard().stop(); +if (result != Offboard::Result::SUCCESS) { + std::cerr << "Offboard::stop() failed: " + << Offboard::result_str(offboard_result) << std::endl; + } +``` + +> **Note** Offboard mode can also be stopped by moving the vehicle into another mode (e.g. using the `Action` API). + + +## Velocity Setpoints + +The API provides methods to set velocity and yaw components using the NED frame (`set_velocity_ned()`) and the body frame (`set_velocity_body()`). +The difference is that NED is relative to an absolute co-ordinate system (North, East, Down) while Body frame is relative to the vehicle orientation (front, right, down). + +The NED frame is used to move towards, or face the vehicle in, a specific compass direction. Body frame is usually used for tasks where the vehicle needs to deviate from a current path (e.g. to avoid an obstacle) or to rotate the vehicle at a specific rate. Movement up/down is the same in either frame. + +### Move in Compass Direction + +The `set_velocity_ned()` can be used to move towards any particular compass direction - e.g. North, West, South-East, etc. + +Calling `set_velocity_ned()` using an initialiser list type declaration for the [VelocityNEDYaw](../api_reference/structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw.md) argument, the first three values are the +velocity components in North, East, and Down directions (in metres/second). + +Examples: + +* Head North at 3 m/s. + ```cpp + device.offboard().set_velocity_ned({3.0f, 0.0f, 0.0f, 0.0f}); + ``` +* Head North-West with 5 m/s on each velocity component (notice that a negative value is required on the `east_m_s` value to move West). + ```cpp + device.offboard().set_velocity_ned({5.0f, -5.0f, 0.0f, 0.0f}); + ``` + + +### Go Up or Down + +Both co-ordinate systems use the same definition for "down", and both methods take an argument where the third value is used to specify the velocity component in this direction. The following examples show how you set the velocity component down (positive) or up (negative) using the two methods: + +Examples: + +* Go *up* at 2 m/s (note, negative value to go up!) + ```cpp + device.offboard().set_velocity_ned({0.0f, 0.0f, -2.0f, 0.0f}); + ``` +* Go down at 3 m/s + ```cpp + device.offboard().set_velocity_body({0.0f, 0.0f, 3.0f, 0.0f}); + ``` + + +### Turn/Yaw Vehicle to Face a Compass Direction + +The `set_velocity_ned()` can be used to face the vehicle in a particular direction, independent of the direction of travel. +The direction is specified in clockwise degrees relative to North (0 is North, 90 is East, 180 is South, etc.) + +Calling `set_velocity_ned()` using an initialiser list type declaration for the `VelocityNEDYaw` argument, +the final (fourth) value is the yaw direction. + +Examples: +* Turn to face West + ```cpp + device.offboard().set_velocity_ned({0.0f, 0.0f, 0.0f, 270.0f}); + ``` +* Turn to face North + ```cpp + device.offboard().set_velocity_ned({0.0f, 0.0f, 0.0f, 0.0f}); + ``` + +It is not possible to control the rate or direction that the vehicle will use to turn towards the setpoint direction (it will turn in whatever direction reaches the setpoint fastest). + + +### Turn/Yaw Vehicle in specified Direction/at Rate + +The `set_velocity_body()` can be used to rotate the vehicle at a specific rate and in a specified direction. +This is set in [VelocityBodyYawspeed::yawspeed_deg_s](../api_reference/structdronecore_1_1_offboard_1_1_velocity_body_yawspeed.md#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1a6858130475964eb2d5c5a4236b7f1e31), as the angular rate in degrees/second. Looking from above, the vehicle will turn clockwise if the value is positive and anticlockwise if it is negative. + +Calling `set_velocity_body()` using an initialiser list type declaration the final (fourth) value is the yaw rate/direction. + +Examples: + +* Turn clock-wise at 60 degrees per second + ```cpp + device.offboard().set_velocity_body({0.0f, 0.0f, 0.0f, 60.0f}); + ``` +* Turn anti clock-wise at 5 degrees per second + ```cpp + device.offboard().set_velocity_body({0.0f, 0.0f, 0.0f, -5.0f}); + ``` + +### Fly Forwards + +Use `set_velocity_body()` to set the velocity components relative to the body frame. To fly forwards, simply set the first parameter (`Offboard::VelocityBodyYawspeed::forward_m_s`) when the vehicle is not rotating. + +```cpp +device.offboard().set_velocity_body({5.0f, 0.0f, 0.0f, 0.0f}); +``` + +### Fly a Circle + +To fly a circle, use `set_velocity_body()` with both forward and rotational components. This will force the vehicle to travel in a curved path. + +```cpp +device.offboard().set_velocity_body({5.0f, 0.0f, 0.0f, 30.0f}); +``` + +You can force the vehicle to fly sideways by using the (`Offboard::VelocityBodyYawspeed::right_m_s` value), and in the other direction by using a negative rotation value: +```cpp +// Fly a circle sideways +device.offboard().set_velocity_body({0.0f, -5.0f, 0.0f, -30.0f}); +``` + + +## Position/Thrust Setpoints + +DroneCore does not support position or thrust setpoints (at time of writing). + + +## Waiting on Setpoints + +The vehicle will obey the last setpoint called (when you call a setpoint the last one is cleared). +The DroneCore examples use timers to separate commands (e.g. `sleep_for(seconds(8))`) but in a +real-world use case you might use telemetry or sensors to control when the setpoint is changed. + + +## Further Information + +Additional information/examples for the Offboard API are linked below: + +* [Example: Offboard Velocity](../examples/offboard_velocity.md) +* Integration tests: + * [offboard_velocity.cpp](https://github.com/dronecore/DroneCore/blob/master/integration_tests/offboard_velocity.cpp) + + From 34b2e4287cebed9ee051ae11fc0fb410e6b3c1f3 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 30 Oct 2017 09:53:06 +1100 Subject: [PATCH 006/107] Minor fixes to presentation --- en/guide/offboard.md | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/en/guide/offboard.md b/en/guide/offboard.md index 805462a..2e4f971 100644 --- a/en/guide/offboard.md +++ b/en/guide/offboard.md @@ -3,9 +3,9 @@ The [Offboard](../api_reference/classdronecore_1_1_offboard.md) module provides a simple API for controlling the vehicle using velocity and yaw setpoints. It is useful for tasks requiring direct control from a companion computer; for example to implement collision avoidance. -> **Note** The API uses the PX4 [Offboard flight mode](https://docs.px4.io/en/flight_modes/offboard.html). The class can only be used with copter and VTOL vehicles (a PX4 limitation) and currently only supports *velocity setpoint commands* (PX4 additionally supports position and thrust setpoints). +> **Note** The API uses the PX4 [Offboard flight mode](https://docs.px4.io/en/flight_modes/offboard.html). The class can only be used with copter and VTOL vehicles (not fixed wing - a PX4 limitation) and currently only supports *velocity setpoint commands* (PX4 additionally supports position and thrust setpoints). -Client code must specify a setpoint before starting *Offboard mode*. DroneCore automatically resends setpoints at 20Hz (PX4 Offboard mode requires that setpoints are minimally resent at 2Hz). If more precise control is required, clients can call the setpoint methods at whatever rate is required. +Client code must specify a setpoint before starting *Offboard mode*. DroneCore automatically resends setpoints at 20Hz (PX4 requires that setpoints are minimally resent at 2Hz). If more precise control is required, clients can call the setpoint methods at whatever rate is required. ## Preconditions @@ -23,7 +23,7 @@ To use offboard mode you must first create a setpoint using either [set_velocity After you have created a setpoint call [start()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a2b3aecd25645101a705cd1d80782311a) or [start_async()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a5dd9d18eedb0e4a8f1bbbeebf6f99aa8) to switch to offboard mode. ```cpp -// Create a null setpoint (no velocity or yaw components in any direction) +// Create a setpoint before starting offboard mode (in this case a null setpoint) device.offboard().set_velocity_body({0.0f, 0.0f, 0.0f, 0.0f}); // Start offboard mode. @@ -59,9 +59,11 @@ if (result != Offboard::Result::SUCCESS) { ## Velocity Setpoints The API provides methods to set velocity and yaw components using the NED frame (`set_velocity_ned()`) and the body frame (`set_velocity_body()`). -The difference is that NED is relative to an absolute co-ordinate system (North, East, Down) while Body frame is relative to the vehicle orientation (front, right, down). +The difference is that NED is relative to an absolute co-ordinate system (North, East, Down) while body frame is relative to the vehicle orientation (front, right, down). -The NED frame is used to move towards, or face the vehicle in, a specific compass direction. Body frame is usually used for tasks where the vehicle needs to deviate from a current path (e.g. to avoid an obstacle) or to rotate the vehicle at a specific rate. Movement up/down is the same in either frame. +The NED frame is used to move towards a specific compass direction or face the vehicle in a specific compass direction. Body frame is usually used for tasks where the vehicle needs to *deviate* from the current path (e.g. to avoid an obstacle) or to rotate the vehicle at a specific rate. Movement up/down is the same in either frame. + +The following sections provide some common usage examples. ### Move in Compass Direction @@ -72,11 +74,11 @@ velocity components in North, East, and Down directions (in metres/second). Examples: -* Head North at 3 m/s. +* Head North at 3 m/s: ```cpp device.offboard().set_velocity_ned({3.0f, 0.0f, 0.0f, 0.0f}); ``` -* Head North-West with 5 m/s on each velocity component (notice that a negative value is required on the `east_m_s` value to move West). +* Head North-West with 5 m/s on each velocity component (notice that a negative value is required on the `east_m_s` value to move West): ```cpp device.offboard().set_velocity_ned({5.0f, -5.0f, 0.0f, 0.0f}); ``` @@ -88,11 +90,11 @@ Both co-ordinate systems use the same definition for "down", and both methods ta Examples: -* Go *up* at 2 m/s (note, negative value to go up!) +* Go *up* at 2 m/s (note, negative value to go up!): ```cpp device.offboard().set_velocity_ned({0.0f, 0.0f, -2.0f, 0.0f}); ``` -* Go down at 3 m/s +* Go down at 3 m/s: ```cpp device.offboard().set_velocity_body({0.0f, 0.0f, 3.0f, 0.0f}); ``` @@ -107,11 +109,11 @@ Calling `set_velocity_ned()` using an initialiser list type declaration for the the final (fourth) value is the yaw direction. Examples: -* Turn to face West +* Turn to face West: ```cpp device.offboard().set_velocity_ned({0.0f, 0.0f, 0.0f, 270.0f}); ``` -* Turn to face North +* Turn to face North: ```cpp device.offboard().set_velocity_ned({0.0f, 0.0f, 0.0f, 0.0f}); ``` @@ -122,17 +124,17 @@ It is not possible to control the rate or direction that the vehicle will use to ### Turn/Yaw Vehicle in specified Direction/at Rate The `set_velocity_body()` can be used to rotate the vehicle at a specific rate and in a specified direction. -This is set in [VelocityBodyYawspeed::yawspeed_deg_s](../api_reference/structdronecore_1_1_offboard_1_1_velocity_body_yawspeed.md#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1a6858130475964eb2d5c5a4236b7f1e31), as the angular rate in degrees/second. Looking from above, the vehicle will turn clockwise if the value is positive and anticlockwise if it is negative. +This is set in [VelocityBodyYawspeed::yawspeed_deg_s](../api_reference/structdronecore_1_1_offboard_1_1_velocity_body_yawspeed.md#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1a6858130475964eb2d5c5a4236b7f1e31), as the angular rate in degrees/second. If viewed from above, the vehicle will turn clockwise if the value is positive and anticlockwise if it is negative. Calling `set_velocity_body()` using an initialiser list type declaration the final (fourth) value is the yaw rate/direction. Examples: -* Turn clock-wise at 60 degrees per second +* Turn clock-wise at 60 degrees per second: ```cpp device.offboard().set_velocity_body({0.0f, 0.0f, 0.0f, 60.0f}); ``` -* Turn anti clock-wise at 5 degrees per second +* Turn anti clock-wise at 5 degrees per second: ```cpp device.offboard().set_velocity_body({0.0f, 0.0f, 0.0f, -5.0f}); ``` From 3a7b7e42610bd7cecf11950d51cdfe2cf0d52ffb Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 31 Oct 2017 12:08:26 +1100 Subject: [PATCH 007/107] Add gimbal and updated offboard ref --- en/README.md | 1 + en/SUMMARY.md | 1 + en/api_reference/README.md | 1 + en/api_reference/classdronecore_1_1_device.md | 13 + ...ssdronecore_1_1_device_plugin_container.md | 13 + en/api_reference/classdronecore_1_1_gimbal.md | 178 +++++++++++ .../classdronecore_1_1_offboard.md | 29 +- en/examples/offboard_velocity.md | 280 +++++++++++++++++- 8 files changed, 496 insertions(+), 20 deletions(-) create mode 100644 en/api_reference/classdronecore_1_1_gimbal.md diff --git a/en/README.md b/en/README.md index 2f0f06b..360fee5 100644 --- a/en/README.md +++ b/en/README.md @@ -61,6 +61,7 @@ The most important classes are: - [Action](/api_reference/classdronecore_1_1_action.md): Simple drone actions including arming, taking off, and landing. - [Mission](/api_reference/classdronecore_1_1_mission.md): Waypoint mission creation and upload/download. Missions are created from [MissionItem](/api_reference/classdronecore_1_1_mission_item.md) objects. - [Offboard](/api_reference/classdronecore_1_1_offboard.md): Control a drone with velocity commands. +- [Gimbal](/api_reference/classdronecore_1_1_gimbal.md): Control a gimbal. - [Logging](/api_reference/classdronecore_1_1_logging.md): Data logging and streaming from the vehicle. - [include/device_plugin_container.h.in](https://github.com/dronecore/DroneCore/blob/master/include/device_plugin_container.h.in): Auto-generated file that is required for DroneCore plugin development - see [DevicePluginContainer](/api_reference/classdronecore_1_1_device_plugin_container.md). diff --git a/en/SUMMARY.md b/en/SUMMARY.md index 9367579..24639bf 100644 --- a/en/SUMMARY.md +++ b/en/SUMMARY.md @@ -37,6 +37,7 @@ * [class Offboard](api_reference/classdronecore_1_1_offboard.md) * [struct VelocityBodyYawspeed](api_reference/structdronecore_1_1_offboard_1_1_velocity_body_yawspeed.md) * [struct VelocityNEDYaw](api_reference/structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw.md) + * [class Gimbal](api_reference/classdronecore_1_1_gimbal.md) * [class Logging](api_reference/classdronecore_1_1_logging.md) * [class DevicePluginContainer](api_reference/classdronecore_1_1_device_plugin_container.md) * [Contributing](contributing/README.md) diff --git a/en/api_reference/README.md b/en/api_reference/README.md index 8493f8c..74a1378 100644 --- a/en/api_reference/README.md +++ b/en/api_reference/README.md @@ -20,5 +20,6 @@ * [class Offboard](classdronecore_1_1_offboard.md) * [struct VelocityBodyYawspeed](structdronecore_1_1_offboard_1_1_velocity_body_yawspeed.md) * [struct VelocityNEDYaw](structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw.md) +* [class Gimbal](classdronecore_1_1_gimbal.md) * [class Logging](classdronecore_1_1_logging.md) * [class DevicePluginContainer](classdronecore_1_1_device_plugin_container.md) \ No newline at end of file diff --git a/en/api_reference/classdronecore_1_1_device.md b/en/api_reference/classdronecore_1_1_device.md index 30f61c0..86f69ae 100644 --- a/en/api_reference/classdronecore_1_1_device.md +++ b/en/api_reference/classdronecore_1_1_device.md @@ -27,6 +27,7 @@ Type | Name | Description | [Device](#classdronecore_1_1_device_1aa64ba685fe110fcb0a8e1b92156f144b) (DeviceImpl *impl) | Constructor (internal use only). | [~Device](#classdronecore_1_1_device_1a65c697e12eed30109074e18a9cfdc836) () | Destructor (internal use only). [Action](classdronecore_1_1_action.md) & | [action](#classdronecore_1_1_device_plugin_container_1aea48bd55b1ace227ebb56690794c2192) () | +[Gimbal](classdronecore_1_1_gimbal.md) & | [gimbal](#classdronecore_1_1_device_plugin_container_1a2fce9f439c565af9a8510c5746c728f0) () | [Info](classdronecore_1_1_info.md) & | [info](#classdronecore_1_1_device_plugin_container_1a1509e3d7a469cbc3e33471138b1f4dc7) () | [Logging](classdronecore_1_1_logging.md) & | [logging](#classdronecore_1_1_device_plugin_container_1a0551f966021bdbd9e41700232c33d379) () | [Mission](classdronecore_1_1_mission.md) & | [mission](#classdronecore_1_1_device_plugin_container_1a8a05778326d0ef4c74146bc42fdcb52d) () | @@ -76,6 +77,18 @@ Getter for [Action](classdronecore_1_1_action.md) plugin.  [Action](classdronecore_1_1_action.md) & - a reference to the action plugin instance +### gimbal() {#classdronecore_1_1_device_plugin_container_1a2fce9f439c565af9a8510c5746c728f0} +```cpp +Gimbal& dronecore::DevicePluginContainer::gimbal() +``` + + +Getter for [Gimbal](classdronecore_1_1_gimbal.md) plugin. + +**Returns** + + [Gimbal](classdronecore_1_1_gimbal.md) & - a reference to the gimbal plugin instance + ### info() {#classdronecore_1_1_device_plugin_container_1a1509e3d7a469cbc3e33471138b1f4dc7} ```cpp Info& dronecore::DevicePluginContainer::info() diff --git a/en/api_reference/classdronecore_1_1_device_plugin_container.md b/en/api_reference/classdronecore_1_1_device_plugin_container.md index e56724b..96bd81e 100644 --- a/en/api_reference/classdronecore_1_1_device_plugin_container.md +++ b/en/api_reference/classdronecore_1_1_device_plugin_container.md @@ -17,6 +17,7 @@ Type | Name | Description ---: | --- | --- | [DevicePluginContainer](#classdronecore_1_1_device_plugin_container_1af4c0f2facc64a99818737971f7f1cc77) (const DevicePluginContainer &)=delete | [Action](classdronecore_1_1_action.md) & | [action](#classdronecore_1_1_device_plugin_container_1aea48bd55b1ace227ebb56690794c2192) () | +[Gimbal](classdronecore_1_1_gimbal.md) & | [gimbal](#classdronecore_1_1_device_plugin_container_1a2fce9f439c565af9a8510c5746c728f0) () | [Info](classdronecore_1_1_info.md) & | [info](#classdronecore_1_1_device_plugin_container_1a1509e3d7a469cbc3e33471138b1f4dc7) () | [Logging](classdronecore_1_1_logging.md) & | [logging](#classdronecore_1_1_device_plugin_container_1a0551f966021bdbd9e41700232c33d379) () | [Mission](classdronecore_1_1_mission.md) & | [mission](#classdronecore_1_1_device_plugin_container_1a8a05778326d0ef4c74146bc42fdcb52d) () | @@ -53,6 +54,18 @@ Getter for [Action](classdronecore_1_1_action.md) plugin.  [Action](classdronecore_1_1_action.md) & - a reference to the action plugin instance +### gimbal() {#classdronecore_1_1_device_plugin_container_1a2fce9f439c565af9a8510c5746c728f0} +```cpp +Gimbal& dronecore::DevicePluginContainer::gimbal() +``` + + +Getter for [Gimbal](classdronecore_1_1_gimbal.md) plugin. + +**Returns** + + [Gimbal](classdronecore_1_1_gimbal.md) & - a reference to the gimbal plugin instance + ### info() {#classdronecore_1_1_device_plugin_container_1a1509e3d7a469cbc3e33471138b1f4dc7} ```cpp Info& dronecore::DevicePluginContainer::info() diff --git a/en/api_reference/classdronecore_1_1_gimbal.md b/en/api_reference/classdronecore_1_1_gimbal.md new file mode 100644 index 0000000..1a254da --- /dev/null +++ b/en/api_reference/classdronecore_1_1_gimbal.md @@ -0,0 +1,178 @@ +# dronecore::Gimbal Class Reference +`#include: gimbal.h` + +---- + + +The [Gimbal](classdronecore_1_1_gimbal.md) class enables to control a gimbal. + + +Synchronous and asynchronous variants of the gimbal methods are supplied. + + +## Public Types + + +Type | Description +--- | --- +enum [Result](#classdronecore_1_1_gimbal_1a2404686489b502fbc58e940701ba1e6f) | Possible results returned for gimbal commands. +std::function< void([Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a2404686489b502fbc58e940701ba1e6f))> [result_callback_t](#classdronecore_1_1_gimbal_1a309448760ba62635fce7139be44788ff) | Callback type for asynchronous [Gimbal](classdronecore_1_1_gimbal.md) calls. + +## Public Member Functions + + +Type | Name | Description +---: | --- | --- +| [Gimbal](#classdronecore_1_1_gimbal_1a14f51547abcaabeb212ec04439e497be) (GimbalImpl *impl) | Constructor (internal use only). +| [~Gimbal](#classdronecore_1_1_gimbal_1a4f8b2a6cf5a7347a474f8e47618ad838) () | Destructor (internal use only). +| [Gimbal](#classdronecore_1_1_gimbal_1a82637c62da14ae39db96724d4273cad4) (const Gimbal &)=delete | Copy constructor (object is not copyable). +[Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a2404686489b502fbc58e940701ba1e6f) | [set_pitch_and_yaw](#classdronecore_1_1_gimbal_1ac8ac49d29f11b2107da6b043bb57b54e) (float pitch_deg, float yaw_deg) | Set gimbal pitch and yaw angles (synchronous). +void | [set_pitch_and_yaw_async](#classdronecore_1_1_gimbal_1a3aea07049f32f8bc5b2edaee8cb2ac16) (float pitch_deg, float yaw_deg, result_callback_t callback) | Set gimbal pitch and yaw angles (asynchronous). +const [Gimbal](classdronecore_1_1_gimbal.md) & | [operator=](#classdronecore_1_1_gimbal_1ad15551254ea56674c576bbcbec6e7eac) (const Gimbal &)=delete | Equality operator (object is not copyable). + +## Static Public Member Functions + + +Type | Name | Description +---: | --- | --- +const char * | [result_str](#classdronecore_1_1_gimbal_1ad60c5378cc7d160be67432f4d6daa30d) (Result result) | Returns a human-readable English string for [Gimbal::Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a2404686489b502fbc58e940701ba1e6f). + + +## Constructor & Destructor Documentation + + +### Gimbal() {#classdronecore_1_1_gimbal_1a14f51547abcaabeb212ec04439e497be} +```cpp +dronecore::Gimbal::Gimbal(GimbalImpl *impl) +``` + + +Constructor (internal use only). + + +**Parameters** + +* GimbalImpl * **impl** - Private internal implementation. + +### ~Gimbal() {#classdronecore_1_1_gimbal_1a4f8b2a6cf5a7347a474f8e47618ad838} +```cpp +dronecore::Gimbal::~Gimbal() +``` + + +Destructor (internal use only). + + +### Gimbal() {#classdronecore_1_1_gimbal_1a82637c62da14ae39db96724d4273cad4} +```cpp +dronecore::Gimbal::Gimbal(const Gimbal &)=delete +``` + + +Copy constructor (object is not copyable). + + +**Parameters** + +* const [Gimbal](classdronecore_1_1_gimbal.md) & - + +## Member Typdef Documentation + + +### typedef result_callback_t {#classdronecore_1_1_gimbal_1a309448760ba62635fce7139be44788ff} + +```cpp +typedef std::function dronecore::Gimbal::result_callback_t +``` + + +Callback type for asynchronous [Gimbal](classdronecore_1_1_gimbal.md) calls. + + +## Member Enumeration Documentation + + +### enum Result {#classdronecore_1_1_gimbal_1a2404686489b502fbc58e940701ba1e6f} + + +Possible results returned for gimbal commands. + + + Value | Description +--- | --- + `SUCCESS` | Success. The gimbal command was accepted. + `ERROR` | Error. An error occured sending the command. + `TIMEOUT` | Timeout. A timeout occured sending the command. + `UNKNOWN` | Unspecified error. + +## Member Function Documentation + + +### set_pitch_and_yaw() {#classdronecore_1_1_gimbal_1ac8ac49d29f11b2107da6b043bb57b54e} +```cpp +Result dronecore::Gimbal::set_pitch_and_yaw(float pitch_deg, float yaw_deg) +``` + + +Set gimbal pitch and yaw angles (synchronous). + +This sets the desired pitch and yaw angles of a gimbal. The function will return when the command is accepted, however, it might take the gimbal longer to actually be set to the new angles. + +**Parameters** + +* float **pitch_deg** - The pitch angle in degrees. Negative to point down. +* float **yaw_deg** - The yaw angle in degrees. Positive for clock-wise, range -180..180 or 0..360. + +**Returns** + + [Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a2404686489b502fbc58e940701ba1e6f) - Result of request. + +### set_pitch_and_yaw_async() {#classdronecore_1_1_gimbal_1a3aea07049f32f8bc5b2edaee8cb2ac16} +```cpp +void dronecore::Gimbal::set_pitch_and_yaw_async(float pitch_deg, float yaw_deg, result_callback_t callback) +``` + + +Set gimbal pitch and yaw angles (asynchronous). + +This sets the desired pitch and yaw angles of a gimbal. The callback will be called when the command is accepted, however, it might take the gimbal longer to actually be set to the new angles. + +**Parameters** + +* float **pitch_deg** - The pitch angle in degrees. Negative to point down. +* float **yaw_deg** - The yaw angle in degrees. Positive for clock-wise, range -180..180 or 0..360. +* [result_callback_t](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a309448760ba62635fce7139be44788ff) **callback** - Function to call with result of request. + +### operator=() {#classdronecore_1_1_gimbal_1ad15551254ea56674c576bbcbec6e7eac} +```cpp +const Gimbal& dronecore::Gimbal::operator=(const Gimbal &)=delete +``` + + +Equality operator (object is not copyable). + + +**Parameters** + +* const [Gimbal](classdronecore_1_1_gimbal.md) & - + +**Returns** + + const [Gimbal](classdronecore_1_1_gimbal.md) & - + +### result_str() {#classdronecore_1_1_gimbal_1ad60c5378cc7d160be67432f4d6daa30d} +```cpp +static const char* dronecore::Gimbal::result_str(Result result) +``` + + +Returns a human-readable English string for [Gimbal::Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a2404686489b502fbc58e940701ba1e6f). + + +**Parameters** + +* [Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a2404686489b502fbc58e940701ba1e6f) **result** - + +**Returns** + + const char * - Human readable string for the [Gimbal::Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a2404686489b502fbc58e940701ba1e6f). \ No newline at end of file diff --git a/en/api_reference/classdronecore_1_1_offboard.md b/en/api_reference/classdronecore_1_1_offboard.md index 6e32793..dc7bbc4 100644 --- a/en/api_reference/classdronecore_1_1_offboard.md +++ b/en/api_reference/classdronecore_1_1_offboard.md @@ -39,10 +39,11 @@ Type | Name | Description | [Offboard](#classdronecore_1_1_offboard_1a8015934ad2d766f8b37b7d5b43f2b089) (OffboardImpl *impl) | Constructor (internal use only). | [~Offboard](#classdronecore_1_1_offboard_1a7cb4eff36c37fed1c6d973aa41b059b8) () | Destructor (internal use only). | [Offboard](#classdronecore_1_1_offboard_1ac586be55cb24aa0ccd29c97352dd2ee5) (const Offboard &)=delete | Copy constructor (object is not copyable). -[Offboard::Result](classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a0f6e5e9f73289f27dc99abbb3ab572ed) | [start](#classdronecore_1_1_offboard_1a2b3aecd25645101a705cd1d80782311a) () const | Start offboard control (synchronous). -[Offboard::Result](classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a0f6e5e9f73289f27dc99abbb3ab572ed) | [stop](#classdronecore_1_1_offboard_1a2cecfbeb40bcd1d314fcfb07eb4dcd60) () const | Stop offboard control (synchronous). +[Offboard::Result](classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a0f6e5e9f73289f27dc99abbb3ab572ed) | [start](#classdronecore_1_1_offboard_1a658454f130f7b19d56f23347a448f1b9) () | Start offboard control (synchronous). +[Offboard::Result](classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a0f6e5e9f73289f27dc99abbb3ab572ed) | [stop](#classdronecore_1_1_offboard_1ae223c08f1ffc694b26d847cab7738406) () | Stop offboard control (synchronous). void | [start_async](#classdronecore_1_1_offboard_1a5dd9d18eedb0e4a8f1bbbeebf6f99aa8) (result_callback_t callback) | Start offboard control (asynchronous). void | [stop_async](#classdronecore_1_1_offboard_1afbe6f50f63d3bc43acc4dfc2f797ca0a) (result_callback_t callback) | Stop offboard control (asynchronous). +bool | [is_active](#classdronecore_1_1_offboard_1a44d9284ef03c8cf6f37a77b2f3cadaf0) () const | Check if offboard control is active. void | [set_velocity_ned](#classdronecore_1_1_offboard_1a9e7f369a8f7459dc7705f4453a8c307d) (VelocityNEDYaw velocity_ned_yaw) | Set the velocity in NED coordinates and yaw. void | [set_velocity_body](#classdronecore_1_1_offboard_1ad9dc585be1bc2dba699cf089d4c274cc) (VelocityBodyYawspeed velocity_body_yawspeed) | Set the velocity body coordinates coordinates and yaw angular rate. const [Offboard](classdronecore_1_1_offboard.md) & | [operator=](#classdronecore_1_1_offboard_1aa6bf966e606cdd361364791d06aca977) (const Offboard &)=delete | Equality operator (object is not copyable). @@ -129,9 +130,9 @@ Results for offboard requests. ## Member Function Documentation -### start() {#classdronecore_1_1_offboard_1a2b3aecd25645101a705cd1d80782311a} +### start() {#classdronecore_1_1_offboard_1a658454f130f7b19d56f23347a448f1b9} ```cpp -Offboard::Result dronecore::Offboard::start() const +Offboard::Result dronecore::Offboard::start() ``` @@ -143,14 +144,15 @@ Start offboard control (synchronous).  [Offboard::Result](classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a0f6e5e9f73289f27dc99abbb3ab572ed) - Result of request. -### stop() {#classdronecore_1_1_offboard_1a2cecfbeb40bcd1d314fcfb07eb4dcd60} +### stop() {#classdronecore_1_1_offboard_1ae223c08f1ffc694b26d847cab7738406} ```cpp -Offboard::Result dronecore::Offboard::stop() const +Offboard::Result dronecore::Offboard::stop() ``` Stop offboard control (synchronous). +The vehicle will be put into Hold mode: [https://docs.px4.io/en/flight_modes/hold.html](https://docs.px4.io/en/flight_modes/hold.html) **Returns** @@ -178,11 +180,26 @@ void dronecore::Offboard::stop_async(result_callback_t callback) Stop offboard control (asynchronous). +The vehicle will be put into Hold mode: [https://docs.px4.io/en/flight_modes/hold.html](https://docs.px4.io/en/flight_modes/hold.html) **Parameters** * [result_callback_t](classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a75eeca649293887ac9d398e6432e431f) **callback** - Callback to receive request result. +### is_active() {#classdronecore_1_1_offboard_1a44d9284ef03c8cf6f37a77b2f3cadaf0} +```cpp +bool dronecore::Offboard::is_active() const +``` + + +Check if offboard control is active. + +`true` means that the vehicle is in offboard mode and we are actively sending setpoints. + +**Returns** + + bool - `true` if active + ### set_velocity_ned() {#classdronecore_1_1_offboard_1a9e7f369a8f7459dc7705f4453a8c307d} ```cpp void dronecore::Offboard::set_velocity_ned(VelocityNEDYaw velocity_ned_yaw) diff --git a/en/examples/offboard_velocity.md b/en/examples/offboard_velocity.md index 8a8ce09..6ea855b 100644 --- a/en/examples/offboard_velocity.md +++ b/en/examples/offboard_velocity.md @@ -11,29 +11,28 @@ The example is built and run [as described here](/examples/README.md#trying_the_ The example terminal output should be similar to that shown below: -> **Note** This is for a release build of DroneCore. A debug build will display additional information from DroneCore. +> **Note** This is for a debug build of DroneCore. ``` $ ./offboard Wait for device to connect via heartbeat -[11:52:48|Info ] New device on: 127.0.0.1:14557 (udp_connection.cpp:210) -[11:52:48|Debug] mavlink info: [logger] file: rootfs/fs/microsd/log/2017-10-27/0 (device_impl.cpp:223) -[11:52:49|Debug] Discovered 4294967298 (dronecore_impl.cpp:234) -Waiting for device to be ready -... +[05:58:02|Info ] New device on: 127.0.0.1:14557 (udp_connection.cpp:210) +[05:58:02|Debug] MAVLink: info: [logger] file: rootfs/fs/microsd/log/2017-10-31/0 (device_impl.cpp:223) +[05:58:03|Debug] Discovered 4294967298 (dronecore_impl.cpp:234) Waiting for device to be ready Device is ready +[05:58:04|Debug] MAVLink: info: ARMED by arm/disarm component command (device_impl.cpp:223) Armed -[11:53:02|Debug] mavlink info: ARMED by arm/disarm component command (device_impl.cpp:223) In Air... -[11:53:02|Debug] mavlink info: Using minimum takeoff altitude: 2.50 m (device_impl.cpp:223) -[11:53:02|Debug] mavlink info: Takeoff detected (device_impl.cpp:223) -[11:53:02|Debug] mavlink critical: Using minimum takeoff altitude: 2.50 m (device_impl.cpp:223) +[05:58:04|Debug] MAVLink: info: Using minimum takeoff altitude: 2.50 m (device_impl.cpp:223) +[05:58:04|Debug] MAVLink: info: Takeoff detected (device_impl.cpp:223) +[05:58:04|Debug] MAVLink: critical: Using minimum takeoff altitude: 2.50 m (device_impl.cpp:223) [NED] Offboard started [NED] Turn to face East [NED] Go North and back South [NED] Turn to face West [NED] Go up 2 m/s, turn to face South +[05:58:26|Debug] MAVLink: emergency: Accel #1 fail: TOUT! (device_impl.cpp:223) [NED] Go down 1 m/s, turn to face North [NED] Offboard stopped [BODY] Offboard started @@ -45,9 +44,8 @@ In Air... [BODY] Fly a circle sideways [BODY] Wait for a bit [BODY] Offboard stopped -[11:54:26|Debug] mavlink info: Landing at current position (device_impl.cpp:223) +[05:59:28|Debug] MAVLink: info: Landing at current position (device_impl.cpp:223) Landed -ubuntu@ubuntu:~/DroneCore/example/offboard_velocity/build$ ``` ## How it works @@ -62,11 +60,265 @@ The operation of most of this code is discussed in the guide: [Offboard Control] [CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/master/example/offboard_velocity/CMakeLists.txt) ```make -##TODO: ADD FINAL TEXT HERE +cmake_minimum_required(VERSION 2.8.12) + +project(offboard) + +if(NOT MSVC) + add_definitions("-std=c++11 -Wall -Wextra -Werror") +else() + add_definitions("-std=c++11 -WX -W2") + set(platform_libs "Ws2_32.lib") +endif() + +# Add DEBUG define for Debug target +set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG") + +# This finds thread libs on Linux, Mac, and Windows. +find_package(Threads REQUIRED) + +# Not needed if DroneCore installed system-wide +include_directories( + ${CMAKE_SOURCE_DIR}/../../install/include +) + +add_executable(offboard + offboard_velocity.cpp +) + +# Not needed if DroneCore installed system-wide +if(WINDOWS) + set(dronecore_lib "${CMAKE_SOURCE_DIR}/../../install/lib/dronecore.lib") +else() + set(dronecore_lib "${CMAKE_SOURCE_DIR}/../../install/lib/libdronecore.a") +endif() + +target_link_libraries(offboard + ${dronecore_lib} # Remove/comment out this line if DroneCore used locally + # dronecore # Uncomment/add this line if DroneCore installed system-wide + ${CMAKE_THREAD_LIBS_INIT} + ${platform_libs} +) ``` [offboard_velocity.cpp](https://github.com/dronecore/DroneCore/blob/master/example/offboard_velocity/offboard_velocity.cpp) ```cpp -##TODO: ADD FINAL TEXT HERE +/** + * @file offboard_velocity.cpp + * @brief Example that demonstrates offboard velocity control in local NED and body coordinates + * + * @authors Author: Julian Oes , + * Shakthi Prashanth + * @date 2017-10-17 + */ + +#include +#include +#include +#include +#include + +using namespace dronecore; +using std::this_thread::sleep_for; +using std::chrono::milliseconds; +using std::chrono::seconds; + +#define ERROR_CONSOLE_TEXT "\033[31m" //Turn text on console red +#define TELEMETRY_CONSOLE_TEXT "\033[34m" //Turn text on console blue +#define NORMAL_CONSOLE_TEXT "\033[0m" //Restore normal console colour + +// Handles Action's result +inline void action_error_exit(Action::Result result, const std::string &message) +{ + if (result != Action::Result::SUCCESS) { + std::cerr << ERROR_CONSOLE_TEXT << message << Action::result_str( + result) << NORMAL_CONSOLE_TEXT << std::endl; + exit(EXIT_FAILURE); + } +} + +// Handles Offboard's result +inline void offboard_error_exit(Offboard::Result result, const std::string &message) +{ + if (result != Offboard::Result::SUCCESS) { + std::cerr << ERROR_CONSOLE_TEXT << message << Offboard::result_str( + result) << NORMAL_CONSOLE_TEXT << std::endl; + exit(EXIT_FAILURE); + } +} + +// Handles connection result +inline void connection_error_exit(DroneCore::ConnectionResult result, const std::string &message) +{ + if (result != DroneCore::ConnectionResult::SUCCESS) { + std::cerr << ERROR_CONSOLE_TEXT << message + << DroneCore::connection_result_str(result) + << NORMAL_CONSOLE_TEXT << std::endl; + exit(EXIT_FAILURE); + } +} + +// Logs during Offboard control +inline void offboard_log(const std::string &offb_mode, const std::string msg) +{ + std::cout << "[" << offb_mode << "] " << msg << std::endl; +} + +/** + * Does Offboard control using NED co-ordinates. + * + * returns true if everything went well in Offboard control, exits with a log otherwise. + */ +bool offb_ctrl_ned(Device &device) +{ + const std::string offb_mode = "NED"; + // Send it once before starting offboard, otherwise it will be rejected. + device.offboard().set_velocity_ned({0.0f, 0.0f, 0.0f, 0.0f}); + + Offboard::Result offboard_result = device.offboard().start(); + offboard_error_exit(offboard_result, "Offboard start failed"); + offboard_log(offb_mode, "Offboard started"); + + offboard_log(offb_mode, "Turn to face East"); + device.offboard().set_velocity_ned({0.0f, 0.0f, 0.0f, 90.0f}); + sleep_for(seconds(1)); // Let yaw settle. + + { + const float step_size = 0.01f; + const float one_cycle = 2.0f * (float)M_PI; + const unsigned steps = 2 * unsigned(one_cycle / step_size); + + offboard_log(offb_mode, "Go North and back South"); + for (unsigned i = 0; i < steps; ++i) { + float vx = 5.0f * sinf(i * step_size); + device.offboard().set_velocity_ned({vx, 0.0f, 0.0f, 90.0f}); + sleep_for(milliseconds(10)); + } + } + + offboard_log(offb_mode, "Turn to face West"); + device.offboard().set_velocity_ned({0.0f, 0.0f, 0.0f, 270.0f}); + sleep_for(seconds(2)); + + + offboard_log(offb_mode, "Go up 2 m/s, turn to face South"); + device.offboard().set_velocity_ned({0.0f, 0.0f, -2.0f, 180.0f}); + sleep_for(seconds(4)); + + offboard_log(offb_mode, "Go down 1 m/s, turn to face North"); + device.offboard().set_velocity_ned({0.0f, 0.0f, 1.0f, 0.0f}); + sleep_for(seconds(4)); + + // Now, stop offboard mode. + offboard_result = device.offboard().stop(); + offboard_error_exit(offboard_result, "Offboard stop failed: "); + offboard_log(offb_mode, "Offboard stopped"); + + return true; +} + +/** + * Does Offboard control using body co-ordinates. + * + * returns true if everything went well in Offboard control, exits with a log otherwise. + */ +bool offb_ctrl_body(Device &device) +{ + const std::string offb_mode = "BODY"; + + // Send it once before starting offboard, otherwise it will be rejected. + device.offboard().set_velocity_body({0.0f, 0.0f, 0.0f, 0.0f}); + + Offboard::Result offboard_result = device.offboard().start(); + offboard_error_exit(offboard_result, "Offboard start failed: "); + offboard_log(offb_mode, "Offboard started"); + + offboard_log(offb_mode, "Turn clock-wise and climb"); + device.offboard().set_velocity_body({0.0f, 0.0f, -1.0f, 60.0f}); + sleep_for(seconds(5)); + + offboard_log(offb_mode, "Turn back anti-clockwise"); + device.offboard().set_velocity_body({0.0f, 0.0f, 0.0f, -60.0f}); + sleep_for(seconds(5)); + + offboard_log(offb_mode, "Wait for a bit"); + device.offboard().set_velocity_body({0.0f, 0.0f, 0.0f, 0.0f}); + sleep_for(seconds(2)); + + offboard_log(offb_mode, "Fly a circle"); + device.offboard().set_velocity_body({5.0f, 0.0f, 0.0f, 30.0f}); + sleep_for(seconds(15)); + + offboard_log(offb_mode, "Wait for a bit"); + device.offboard().set_velocity_body({0.0f, 0.0f, 0.0f, 0.0f}); + sleep_for(seconds(5)); + + offboard_log(offb_mode, "Fly a circle sideways"); + device.offboard().set_velocity_body({0.0f, -5.0f, 0.0f, 30.0f}); + sleep_for(seconds(15)); + + offboard_log(offb_mode, "Wait for a bit"); + device.offboard().set_velocity_body({0.0f, 0.0f, 0.0f, 0.0f}); + sleep_for(seconds(8)); + + offboard_result = device.offboard().stop(); + offboard_error_exit(offboard_result, "Offboard stop failed: "); + offboard_log(offb_mode, "Offboard stopped"); + + return true; +} + +int main(int, char **) +{ + DroneCore dc; + + DroneCore::ConnectionResult conn_result = dc.add_udp_connection(); + connection_error_exit(conn_result, "Connection failed"); + + // Wait for the device to connect via heartbeat + while (!dc.is_connected()) { + std::cout << "Wait for device to connect via heartbeat" << std::endl; + sleep_for(seconds(1)); + } + + // Device got discovered. + Device &device = dc.device(); + + while (!device.telemetry().health_all_ok()) { + std::cout << "Waiting for device to be ready" << std::endl; + sleep_for(seconds(1)); + } + std::cout << "Device is ready" << std::endl; + + Action::Result arm_result = device.action().arm(); + action_error_exit(arm_result, "Arming failed"); + std::cout << "Armed" << std::endl; + + Action::Result takeoff_result = device.action().takeoff(); + action_error_exit(takeoff_result, "Takeoff failed"); + std::cout << "In Air..." << std::endl; + sleep_for(seconds(5)); + + // using local NED co-ordinates + bool ret = offb_ctrl_ned(device); + if (ret == false) { + return EXIT_FAILURE; + } + + // using body co-ordinates + ret = offb_ctrl_body(device); + if (ret == false) { + return EXIT_FAILURE; + } + + const Action::Result land_result = device.action().land(); + action_error_exit(land_result, "Landing failed"); + + // We are relying on auto-disarming but let's keep watching the telemetry for a bit longer. + sleep_for(seconds(10)); + std::cout << "Landed" << std::endl; + + return EXIT_SUCCESS; +} ``` From d9bc25369e2a77483d467e276bb6c33f44e26d96 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 31 Oct 2017 12:43:50 +1100 Subject: [PATCH 008/107] Add notes on need to monitor for mode changes outside of app control --- en/guide/general_usage.md | 13 ++++++++++++- en/guide/offboard.md | 8 ++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/en/guide/general_usage.md b/en/guide/general_usage.md index 17bd210..b7318f3 100644 --- a/en/guide/general_usage.md +++ b/en/guide/general_usage.md @@ -20,10 +20,19 @@ DroneCore APIs do not raise exceptions! Instead, methods that can fail return su The various classes also all provide methods getting human readable strings from their associated enum (e.g. [DroneCore::connection_result_str()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a84c40dcefcafe888c38a5ed8dd93b0af), [Telemetry::result_str()](../api_reference/classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a05c6355b7f8743250b2a7a611ea5fb4a)). You can see how these are used in the example code. + +## Shared Vehicle Control + +A vehicle can receive commands from multiple sources, including a Ground Control Station, or other MAVLink applications. + +DroneCore applications that are running in environments where this is possible can explicitly monitor for changes in flight mode +(outside application control) and change behaviour appropriately (e.g. using [Telemetry::flight_mode_async()](../api_reference/classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1ac8842dec06db4bd54c8c2ba2deb0d34a)). + + ## API Limitations/Behaviour ### Supported Vehicles -DroneCore has been designed to manage *aircraft* (VTOL, copter, fixed wing) that use the PX4 autopilot. +DroneCore has been designed to manage *aircraft* (copter, fixed wing, VTOL) that use the PX4 autopilot. The APIs include methods that do not make sense for other vehicle types - including "takeoff" and "land". While ground vehicles may work, they are not supported and are untested. @@ -56,3 +65,5 @@ Not every mission command behaviour supported by the protocol and PX4 will be su ### Connection Status A device is considered to be disconnected (timed-out) if its heartbeat message is not detected within 3 seconds. + + diff --git a/en/guide/offboard.md b/en/guide/offboard.md index 2e4f971..c314464 100644 --- a/en/guide/offboard.md +++ b/en/guide/offboard.md @@ -174,6 +174,14 @@ The DroneCore examples use timers to separate commands (e.g. `sleep_for(seconds( real-world use case you might use telemetry or sensors to control when the setpoint is changed. +## Monitoring Offboard Mode + +The vehicle may change out of offboard mode outside the control of your application (for example if a GCS were to put the vehicle into *Hold mode*). +In this case, DroneCore will automatically stop sending setpoints and [Offboard::is_active()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a44d9284ef03c8cf6f37a77b2f3cadaf0) will change from `true` to `false`. + +Calls to change the setpoint do not return an error! Depending on the particular use case, offboard code may need to explicitly monitor for flight mode and change behaviour appropriately (e.g. using [Telemetry::flight_mode_async()](../api_reference/classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1ac8842dec06db4bd54c8c2ba2deb0d34a)). + + ## Further Information Additional information/examples for the Offboard API are linked below: From aab280eb25c6cccdcc732d6d75e9ecacf0d85a33 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Fri, 3 Nov 2017 16:32:11 +1100 Subject: [PATCH 009/107] Add Plugin/SDK and Test instructions --- en/SUMMARY.md | 4 +- en/contributing/build.md | 58 ++--------- en/contributing/documentation.md | 18 ++-- en/contributing/plugins.md | 102 ++++++++++++++++++ en/contributing/test.md | 173 ++++++++++++++++++++++++++++--- en/examples/README.md | 2 + en/guide/sdk.md | 155 +++++++++++++++++++++++++++ 7 files changed, 440 insertions(+), 72 deletions(-) create mode 100644 en/contributing/plugins.md create mode 100644 en/guide/sdk.md diff --git a/en/SUMMARY.md b/en/SUMMARY.md index 24639bf..7a32f25 100644 --- a/en/SUMMARY.md +++ b/en/SUMMARY.md @@ -12,6 +12,7 @@ * [Missions](guide/missions.md) * [Offboard Control](guide/offboard.md) * [Building C++ Apps](guide/toolchain.md) + * [SDK Creation](guide/sdk.md) * [Examples](examples/README.md) * [Takeoff and Land](examples/takeoff_and_land.md) * [Fly Mission](examples/fly_mission.md) @@ -42,8 +43,9 @@ * [class DevicePluginContainer](api_reference/classdronecore_1_1_device_plugin_container.md) * [Contributing](contributing/README.md) * [Building Source](contributing/build.md) - * [Tests](contributing/test.md) + * [Testing](contributing/test.md) * [Coding Style](contributing/code_style.md) + * [Writing Plugins](contributing/plugins.md) * [Plugin/Test Logging](contributing/dev_logging.md) * [Documentation](contributing/documentation.md) * [Releases](releases/README.md) diff --git a/en/contributing/build.md b/en/contributing/build.md index 14d112d..734e11a 100644 --- a/en/contributing/build.md +++ b/en/contributing/build.md @@ -170,56 +170,6 @@ Build for the iOS simulator on macOS: make ios_simulator install ``` - - -## Build with external directory for plugins and custom integration_tests - -The library is split into a [core](https://github.com/dronecore/DroneCore/tree/master/core) and [plugins](https://github.com/dronecore/DroneCore/tree/master/plugins). The plugins are included at compile time. -The cmake script [autogenerate_plugin_container.cmake](https://github.com/dronecore/DroneCore/blob/master/autogenerate_plugin_container.cmake) takes care of including the plugin folders and integrations tests. - -The architecture goal is that the plugins do not depend on each other but only to the core source. This means you can swap out plugins as needed, however, it will lead to some duplicate functionality across the plugin modules. - -You can add modules by copying the [external_example](https://github.com/dronecore/DroneCore/tree/master/external_example) and adapting it: - -The external directory needs to contain the folders `integration_tests` and `plugins`. - -``` -external_example -├── integration_tests -│   ├── CMakeLists.txt -│   └── hello_world.cpp -└── plugins - └── example - ├── CMakeLists.txt - ├── example.cpp - ├── example.h - ├── example_impl.cpp - ├── example_impl.h - └── example_impl_test.cpp -``` - -To add an additional library, the library name can be added to the variable `additional_libs` as follows: -``` -set(additional_libs "library_name" PARENT_SCOPE) -``` - -And the required includes as `additional_includes`. -``` -set(additional_includes "include_dir" PARENT_SCOPE) -``` - -To include the external folder in the build, add the folder name to the make command: - -``` -make EXTERNAL_DIR=external_example -``` - -To run the external hello world integration test, do: -``` -build/default/integration_tests_runner --gtest_filter="ExternalExampleHello" -``` - - ## Building in Docker You can also build DroneCore 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). @@ -293,3 +243,11 @@ You can also build the image yourself using the [Dockerfile](https://github.com/ docker run --rm -it -v $HOME//DroneCore:/home/docker1000/src/DroneCore:rw my_image bash ``` +## Build SDK/External Plugins {#sdk_plugins} + +[DroneCore SDKs](../guide/sdk.md#building) explains how to create and build an external library of plugins into DroneCore at compile time +(by specifying `EXTERNAL_DIR` in the `make` command): +``` +make EXTERNAL_DIR=external_example +``` +This functionality is provided to enable custom SDKs that build on top of DroneCore. \ No newline at end of file diff --git a/en/contributing/documentation.md b/en/contributing/documentation.md index 052569f..0526a65 100644 --- a/en/contributing/documentation.md +++ b/en/contributing/documentation.md @@ -51,18 +51,22 @@ For setup information see: [Gitbook toolchain](https://toolchain.gitbook.com/set ## API Reference -The C++ source code is annotated using comments using [Doxygen](https://www.stack.nl/~dimitri/doxygen/manual/index.html) syntax. You can extract the documentation on macOS or Linux when you [build the library](../contributing/build.md) using the command: +The C++ source code is annotated using comments using [Doxygen](https://www.stack.nl/~dimitri/doxygen/manual/index.html) syntax. You can extract the documentation to markdown files (one per class) when you [build the library](../contributing/build.md). + +To create the reference markdown docs (on macOS or Linux) build with: ``` make docs ``` +The files are created in **/install/docs/markdown**. -The documentation is then built to: **/install/docs/markdown**. - -> **Tip** At time of writing changes to the API reference are not automatically populated to the Guide. - Changed markdown files must be manually copied into the Guide's Github repo and submitted. +In order to include new API reference in the *DroneCore Guide* it must be manually added to the [Github repository](https://github.com/dronecore/docs/): +* Copy the files into the [docs/en/api_reference](https://github.com/dronecore/docs/tree/master/en/api_reference) folder +* *New* APIs should be added to appropriate sections in the [docs/en/SUMMARY.md](https://github.com/dronecore/docs/blob/master/en/SUMMARY.md), [docs/en/api_reference/README.md](https://github.com/dronecore/docs/blob/master/en/api_reference/README.md) and overview [docs/en/README.md](https://github.com/dronecore/docs/blob/master/en/README.md#api-overview). - > **Note** Extracting the API reference does not work automatically on Windows because the `make` toolchain is different. -> **Note** *Doxygen* creates xml files from source comments in **/install/docs/xml**. The Python script *generate_markdown_from_doxygen_xml.py* converts these to markdown (and stores in **/install/docs/markdown**). +> **Note** The toolchain uses *DOxygen* to create an XML documentation in **/install/docs/xml**. +> The [generate_markdown_from_doxygen_xml.py](https://github.com/dronecore/DroneCore/blob/develop/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** + diff --git a/en/contributing/plugins.md b/en/contributing/plugins.md new file mode 100644 index 0000000..ab16029 --- /dev/null +++ b/en/contributing/plugins.md @@ -0,0 +1,102 @@ +# Writing Plugins + +DroneCore is split into a [core](https://github.com/dronecore/DroneCore/tree/master/core) and [plugins](https://github.com/dronecore/DroneCore/tree/master/plugins). + +Plugins that are located in the correct location (a subfolder of **/plugins**) and have the correct structure are included at compile time. The *cmake* script [autogenerate_plugin_container.cmake](https://github.com/dronecore/DroneCore/blob/master/autogenerate_plugin_container.cmake) takes care of including the plugin folders and integration tests. + +> **Note** Plugins can also be defined as part of an SDK/Extension Library (see [SDK Creation](../guide/sdk.md)). + +## Plugin Architecture + +Plugins should be written so that they are independent of each other (allowing them to be removed/replaced as needed). +They will still need to be dependent on the core source, and there will be some duplicated functionality across the plugin modules. + +The code for each plugin and its unit test (if defined) is stored in a sub-folder of the **plugins** directory. Integration tests for all plugins are stored in **integration_tests**. +A simplified view of the folder structure is shown below: + +``` +├── DroneCore +│ ├── core +│ ├── integration_tests +│ └── plugins +│ ├── action +│ ├── ... +│ └── telemetry +``` +Drilling down, each plugin should have the same structure as shown for the "example" plugin below. +``` +└── plugins + └── example + ├── CMakeLists.txt + ├── example.cpp + ├── example.h + ├── example_impl.cpp + ├── example_impl.h + └── example_impl_test.cpp ##optional +``` + +## Create a Plugin + +To create a new C++ plugin, copy the [example](https://github.com/dronecore/DroneCore/tree/master/external_example/plugins/example/) plugin from the "external_example" into the DroneCore **plugins** directory. + +> **Tip** Plugins are defined/written in the same way whether declared in DroneCore or +as part of an [SDK](../guide/sdk.md). The only difference is how they are included in the build. + +Modify the plugin as needed and update its [CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/master/external_example/plugins/example/CMakeLists.txt) as appropriate: +* Add additional libraries using the variable `additional_libs`: + ``` + set(additional_libs "library_name" PARENT_SCOPE) + ``` +* Add required includes with `additional_includes`: + ``` + set(additional_includes "include_dir" PARENT_SCOPE) + ``` + + +The [standard plugins](https://github.com/dronecore/DroneCore/tree/master/plugins) can be reviewed for guidance on +how to send and process MAVLink messages. + +## Test Code + +[Integration tests](../contributing/test.md#writing_tests) must be created for all new and updated plugin code. +The tests should be exhaustive, and cover all aspects of using the plugin API. + +> **Note** All unit and integrations tests are run prior to accepting new code into the project. + + +## Example Code + +> **Note** It is quicker and easier to write and modify [integration tests](#test-code) than examples. +> Do not write example code until the plugin has been accepted! + +A simple example should be written that demonstrates basic usage of its API by 3rd parties. +The example need not cover all functionality, but should demonstrate enough that developers +can see how it is used and how the example might be extended. + +Where possible examples should demonstrate realistic use cases such that the code +can usefully be copied and reused by external developers. + +The plugin example should be documented in markdown following the same pattern as the existing [examples](../examples/README.md). + + +## Documentation + +### In-Source Comments + +The public API must be fully documented using [Doxygen](https://www.stack.nl/~dimitri/doxygen/manual/docblocks.html) markup. +All items should minimally have a brief description (preceded by the `@brief` tag). + +> **Tip** The in-source comments will be compiled to markdown and included in the [API Reference](../api_reference/README.md). +> The process is outlined in [Documentation > API Reference](../contributing/documentation.md#api-reference). + +Internal/implementation classes need not be documented, but should be written so that their use can be inferred. + +### Guide Documentation + +Ideally, [guide](../guide/README.md) documentation should be created. This should be based on example code. + +The purpose of the guide is to: +* Show how different parts of the API can be used together +* Highlight usage patterns and limitations that may not be obvious from API reference +* Provide code fragments that can easily be reused + diff --git a/en/contributing/test.md b/en/contributing/test.md index 1f945b7..c05c3ee 100644 --- a/en/contributing/test.md +++ b/en/contributing/test.md @@ -1,20 +1,28 @@ # Testing -## Unit Tests -To run the unit tests: +*DroneCore* has both unit and integration tests, written using the *Google C++ Test Framework*. +The tests are run every time new code is committed to our codelines, and must pass before the code can be merged. + +This topic shows how to run the existing tests and write new ones. + + +## Running Unit Tests + +To run all unit tests: ``` make run_unit_tests ``` -## Integration Tests -There are three ways to run the integration tests: +## Running Integration 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. -1. Automatically with SITL autostart. -2. Manually without SITL autostart. -3. On a real vehicle. +> **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. ### Autostart PX4 SITL @@ -25,14 +33,14 @@ cd wherever/Firmware/ make posix gazebo ``` -Then press Ctrl+C to stop the simulation and run the integration tests: +Then press **Ctrl+C** to stop the simulation and run the integration tests: ``` cd wherever/DroneCore/ AUTOSTART_SITL=1 make run_integration_tests ``` -To run the tests without 3D viewer (gzclient), use: +To run the tests without the 3D viewer (gzclient), use: ``` AUTOSTART_SITL=1 HEADLESS=1 make run_integration_tests @@ -47,23 +55,25 @@ cd wherever/Firmware/ make posix gazebo ``` +Then run the tests as shown: ``` make run_integration_tests ``` -### On a Real Vehicle +### Run With a Real Vehicle + +> **Warning** Some of the tests might not be suited for real vehicles, especially the takeoff and kill test! -Make sure you are connected to a vehicle and check the connection using e.g. +Make sure you are connected to a vehicle and check the connection using e.g.: ``` make && build/default/integration_tests_runner --gtest_filter="SitlTest.TelemetryAsync" ``` -Note that some of the tests might not be suited for real vehicles, especially the takeoff and kill test. -## Gtest tricks +## Gtest Tricks -To list all possible tests: +To list all integration tests: ``` make && build/default/integration_tests_runner --gtest_list_tests ``` @@ -77,3 +87,138 @@ To run all telemetry tests: ``` make && build/default/integration_tests_runner --gtest_filter="SitlTest.Telemetry*" ``` + +## Writing Tests {#writing_tests} + +The [Google Test Primer](https://github.com/google/googletest/blob/master/googletest/docs/Primer.md) +provides an excellent overview of how tests are written and used. + +Most of the existing plugins do not have unit tests, because we do not yet have the ability to [mock MAVLink communications](https://github.com/dronecore/DroneCore/issues/148) (needed to test most plugins). In consequence integration tests are used instead, +with the simulator providing appropriate MAVLink messages. + +> **Note** This section explains how to add tests for the default DroneCore code. +> Most of the information is also relevant to SDK/Extension plugin tests. See +> [SDK Creation > Testing](../guide/sdk.md#testing) for information about how +> to add tests for extensions to the test runner(s). + + +### Writing Unit Tests + +Unit tests are stored as separate files in the same directory as their associated source code. Often they test the implementation (rather than the public API), and hence are named with the suffix **_impl_test.cpp**. + + +#### Unit Test Files/Code + +Unit tests typically include the file to be tested, **dronecore.h**, and **gtest.h**. There are no standard shared test unit resources so +test functions are declared using `TEST`. All tests in a file should share the same test-case name (the first argument to `TEST`). + +The skeleton [example plugin unit test](https://github.com/dronecore/DroneCore/blob/master/external_example/plugins/example/example_impl_test.cpp) is shown below: +```cpp +#include "example_impl.h" +#include "dronecore.h" +#include "global_include.h" +#include + +namespace dronecore { + +TEST(ExampleImpl, NoTest) +{ + ASSERT_TRUE(true); +} + +} // namespace dronecore +``` + +#### Adding Unit Tests + +In order to run a unit test its file needs to be added to the DroneCore unit test program (`unit_tests_runner`). For the core plugins this is done in the main DroneCore [DroneCore/CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/master/CMakeLists.txt#L187) file: +```cmake + add_executable(unit_tests_runner + core/global_include_test.cpp + core/mavlink_channels_test.cpp + core/unittests_main.cpp + core/http_loader_test.cpp + core/timeout_handler_test.cpp + core/call_every_handler_test.cpp + ${plugin_unittest_source_files} + ${unit_tests_src} + ) +``` + +### Writing Integration Tests + +DroneCore provides the `integration_tests_runner` application for running the integration tests and +some helper code to make it easier to log tests and run them against the simulator. + +> **Tip** Check out the [Google Test Primer](https://github.com/google/googletest/blob/master/googletest/docs/Primer.md) +> and the [integration_tests](https://github.com/dronecore/DroneCore/tree/develop/integration_tests) +> for our existing plugins to better understand how to write your own! + +#### Integration Test Files/Code + +The main DroneCore-specific functionality is provided by [integration_test_helper.h](https://github.com/dronecore/DroneCore/blob/master/core/integration_test_helper.h). +This provides access to the [Plugin/Test Logger](../contributing/dev_logging.md) +and a shared test class `SitlTest` for setting up and tearing down the PX4 simulator. + +> **Note** All tests must be declared using `TEST_F` and have a first argument `SitlTest` as shown. This is required +> in order to use the shared class to set up and tear down the simulator between tests. + +The example integration test [hello_world.cpp](https://github.com/dronecore/DroneCore/blob/master/external_example/integration_tests/hello_world.cpp) demonstrates this below. + +```cpp +#include +#include +#include "dronecore.h" +#include "integration_test_helper.h" + +using namespace dronecore; + +TEST_F(SitlTest, ExternalExampleHello) +{ + DroneCore dc; + + DroneCore::ConnectionResult ret = dc.add_udp_connection(); + ASSERT_EQ(ret, DroneCore::ConnectionResult::SUCCESS); + + // Wait for device to connect via heartbeat. + std::this_thread::sleep_for(std::chrono::seconds(2)); + + // One vehicle should have connected. + std::vector uuids = dc.device_uuids(); + EXPECT_EQ(uuids.size(), 1); + + // Apparently it can say hello. + dc.device().example().say_hello(); +} +``` + +#### Adding Integration Tests + +In order to run an integration test it needs to be added to the `integration_tests_runner` program. + +Integration tests for core functionality and plugins delivered by the project +are stored in [DroneCore/integration_tests](https://github.com/dronecore/DroneCore/tree/develop/integration_tests). +The files are added to the test program in that folder's +[CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/master/integration_tests/CMakeLists.txt#L12) file: + +```cmake +list(APPEND integration_tests + simple_connect + async_connect + telemetry_simple + telemetry_async + telemetry_modes + telemetry_health + simple_hover + async_hover + takeoff_and_kill + offboard_velocity + logging + info + mission + mission_change_speed + mission_survey + curl +) +``` + diff --git a/en/examples/README.md b/en/examples/README.md index 882a351..7005180 100644 --- a/en/examples/README.md +++ b/en/examples/README.md @@ -1,5 +1,7 @@ # Examples +> **Tip** Information about *writing* example code is covered in the [Contributing > Writing Plugins](../contributing/plugins.md) (*plugin developers* should initially create [integration tests](../contributing/test.md#integration-tests) rather than examples for new code). + This section contains examples showing how to use DroneCore. * [Takeoff and Land](../examples/takeoff_and_land.md) - Shows basic usage of DroneCore (connect to port, detect device, arm, takeoff, land, get telemetry) diff --git a/en/guide/sdk.md b/en/guide/sdk.md new file mode 100644 index 0000000..cf1754a --- /dev/null +++ b/en/guide/sdk.md @@ -0,0 +1,155 @@ +# DroneCore SDKs + +DroneCore allows SDK Vendors to create independent plugin libraries, along with integration and unit tests, and +build them into DroneCore at compile time. + +> **Note** This topic only covers the (very minor) differences between SDK plugins/testing and "vanilla" DroneCore. +> SDK authors should review the topics [Writing Plugins](../contributing/plugins.md) and +> [Testing](../contributing/test.md). + + +## SDK Architecture + +SDK extensions are defined in a separate/parallel folder to DroneCore. +The extension folder *mirrors* DroneCore, and **must** contain the folders **integration_tests** and **plugins**. +The *plugin* folder contains appropriately named sub-folders for each plugin (along with its unit test code). + +A simplified view of a "typical" DroneCore SDK is shown below (with extension directory: *SDK_Extensions*). + +``` +├── DroneCore +│ ├── core +│ ├── integration_tests +│ └── plugins +│ ├── action +│ ├── ... +│ └── telemetry +├── SDK_Extensions +│ ├── integration_tests +│ └── plugins +│ ├── camera +│ ├── another_plugin +│ └── etc. +``` + + +## Create an SDK Extension Library + +To create a new C++ SDK Extension Library, first copy the [DroneCore/external_example](https://github.com/dronecore/DroneCore/tree/master/external_example) +alongside DroneCore. + +The *external_example* contains a single integration test (**hello_world.cpp**) and a single plugin (**/example**) +with a separate implementation file and a stub unit test file. Adapt it first by renaming the top level folder. +``` +external_example +├── integration_tests +│   ├── CMakeLists.txt +│   └── hello_world.cpp +└── plugins + └── example + ├── CMakeLists.txt + ├── example.cpp + ├── example.h + ├── example_impl.cpp + ├── example_impl.h + └── example_impl_test.cpp +``` + +## Adding/Modifying Plugins + +The extension library can contain as many plugins as needed, provided they are subfolders of **/plugins**, +and have an appropriately formatted **CMakeLists.txt** make file. You can therefore duplicate and modify +the "example" plugin as required by the SDK. + +Modify the example plugin as needed and update its [CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/master/external_example/plugins/example/CMakeLists.txt) as appropriate: +* Add additional libraries using the variable `additional_libs`: + ``` + set(additional_libs "library_name" PARENT_SCOPE) + ``` +* Add required includes with `additional_includes`: + ``` + set(additional_includes "include_dir" PARENT_SCOPE) + ``` +* You can also add tests with `unittest_source_files`, as discussed in the following section. + +Plugins are otherwise written exactly as discussed in [Writing Plugins](../contributing/plugins.md). + + +## Testing + +SDK Extension tests are the same as those for the default plugins. +The only (slight) difference is how the tests are included into the `unit_tests_runner` and +`integration_tests_runner` test programs. + +> **Tip** See [Testing](../contributing/test.md) for general guidance on writing tests. + +Once included in a build, the tests are run in exactly the same way as those for the default plugins. +For example to run the external_example hello world integration test, do: +``` +build/default/integration_tests_runner --gtest_filter="ExternalExampleHello" +``` + +### Unit Tests + +Unit tests are stored in the same folder as their associated plugin source code. +The test file name(s) are added to the `$unittest_source_files` variable in the +plugin **CMakeLists.txt** file (you can add multiple files). + +> **Note** The DroneCore toolchain then does everything else necessary to +> add the tests to the `unit_tests_runner` program when the extension library +> is compiled with DroneCore. + +The example plugin adds the **example_impl_test.cpp** unit test as shown below: + +```cmake +set(unittest_source_files + # Add unit test file(s) for plugin + example_impl_test.cpp + PARENT_SCOPE +) +``` + +### Integration Tests + +Integration tests for SDKs/External plugins are placed in the SDK/Extension directory's **integration_tests** folder: + +``` +external_example ## The (example) SDK/external plugin directory. +├── integration_tests +│   ├── CMakeLists.txt +│   └── hello_world.cpp +``` + +The tests are added to the test runner by appending them to the **CMakeLists.txt** file: + +```cmake +list(APPEND integration_tests + # Add the cpp file for each integration test on its own line + hello_world +) +``` + +> **Note** The DroneCore toolchain then does everything else necessary to +> add the tests to the `integration_tests_runner` program when the extension library +> is compiled with DroneCore. + + +## Building + +To build *DroneCore* so that it includes the SDK/External plugins, specify the top level directory `EXTERNAL_DIR` in the `make` command. +The line below shows how this is done for the [external_example](https://github.com/dronecore/DroneCore/tree/master/external_example) directory. + +``` +make EXTERNAL_DIR=external_example +``` + +Only one external directory can be specified. + + From 824f5dc2a5d7c30c2d8e10d6f953faaf55ab332d Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 6 Nov 2017 12:46:31 +1100 Subject: [PATCH 010/107] Move writing tests into writing plugins. Remove SDK focus --- en/SUMMARY.md | 4 +- en/contributing/build.md | 9 +- en/contributing/plugins.md | 204 ++++++++++++++++++++++++++++--- en/contributing/test.md | 142 +-------------------- en/guide/dronecore_extensions.md | 96 +++++++++++++++ en/guide/sdk.md | 155 ----------------------- 6 files changed, 290 insertions(+), 320 deletions(-) create mode 100644 en/guide/dronecore_extensions.md delete mode 100644 en/guide/sdk.md diff --git a/en/SUMMARY.md b/en/SUMMARY.md index 7a32f25..98385de 100644 --- a/en/SUMMARY.md +++ b/en/SUMMARY.md @@ -12,7 +12,7 @@ * [Missions](guide/missions.md) * [Offboard Control](guide/offboard.md) * [Building C++ Apps](guide/toolchain.md) - * [SDK Creation](guide/sdk.md) + * [DroneCore Extensions](guide/dronecore_extensions.md) * [Examples](examples/README.md) * [Takeoff and Land](examples/takeoff_and_land.md) * [Fly Mission](examples/fly_mission.md) @@ -44,8 +44,8 @@ * [Contributing](contributing/README.md) * [Building Source](contributing/build.md) * [Testing](contributing/test.md) - * [Coding Style](contributing/code_style.md) * [Writing Plugins](contributing/plugins.md) + * [Coding Style](contributing/code_style.md) * [Plugin/Test Logging](contributing/dev_logging.md) * [Documentation](contributing/documentation.md) * [Releases](releases/README.md) diff --git a/en/contributing/build.md b/en/contributing/build.md index 734e11a..ae9d990 100644 --- a/en/contributing/build.md +++ b/en/contributing/build.md @@ -243,11 +243,10 @@ You can also build the image yourself using the [Dockerfile](https://github.com/ docker run --rm -it -v $HOME//DroneCore:/home/docker1000/src/DroneCore:rw my_image bash ``` -## Build SDK/External Plugins {#sdk_plugins} +## Build DroneCore Extensions {#dronecore_extensions} -[DroneCore SDKs](../guide/sdk.md#building) explains how to create and build an external library of plugins into DroneCore at compile time -(by specifying `EXTERNAL_DIR` in the `make` command): +DroneCore can be extended with plugins and integration tests that are defined "out of tree". These are declared inside a parallel directory that is included into the DroneCore at compile time (by specifying `EXTERNAL_DIR` in the `make` command): ``` -make EXTERNAL_DIR=external_example +make EXTERNAL_DIR=relative_path_to_external_directory ``` -This functionality is provided to enable custom SDKs that build on top of DroneCore. \ No newline at end of file +See [DroneCore Extensions](../guide/dronecore_extensions.md) for more information. \ No newline at end of file diff --git a/en/contributing/plugins.md b/en/contributing/plugins.md index ab16029..f5fc4d2 100644 --- a/en/contributing/plugins.md +++ b/en/contributing/plugins.md @@ -1,18 +1,19 @@ # Writing Plugins -DroneCore is split into a [core](https://github.com/dronecore/DroneCore/tree/master/core) and [plugins](https://github.com/dronecore/DroneCore/tree/master/plugins). +DroneCore is split into a [core](https://github.com/dronecore/DroneCore/tree/master/core) and [plugins](https://github.com/dronecore/DroneCore/tree/master/plugins). -Plugins that are located in the correct location (a subfolder of **/plugins**) and have the correct structure are included at compile time. The *cmake* script [autogenerate_plugin_container.cmake](https://github.com/dronecore/DroneCore/blob/master/autogenerate_plugin_container.cmake) takes care of including the plugin folders and integration tests. +Plugins that are located in the *correct location* (a subfolder of **/plugins**) and have the *correct structure* are included at compile time. The *cmake* script [autogenerate_plugin_container.cmake](https://github.com/dronecore/DroneCore/blob/master/autogenerate_plugin_container.cmake) takes care of including the plugin folders and integration tests. -> **Note** Plugins can also be defined as part of an SDK/Extension Library (see [SDK Creation](../guide/sdk.md)). +> **Note** Plugins can also be defined in [DroneCore Extensions](../guide/dronecore_extensions.md). +> These are defined and tested in exactly the same way as "standard" DroneCore plugins. ## Plugin Architecture -Plugins should be written so that they are independent of each other (allowing them to be removed/replaced as needed). -They will still need to be dependent on the core source, and there will be some duplicated functionality across the plugin modules. +Plugins should be written so that they are independent of each other (they will still need to be dependent on the core source). This allows plugins to be removed/replaced as needed at the cost of some duplicated functionality across the plugin modules. -The code for each plugin and its unit test (if defined) is stored in a sub-folder of the **plugins** directory. Integration tests for all plugins are stored in **integration_tests**. -A simplified view of the folder structure is shown below: +The code for each plugin and its unit test (if defined) is stored in a sub-folder of the **plugins** directory. Integration tests for all plugins in the library are stored in **integration_tests**. + +A simplified view of the folder structure is shown below (showing relevant directories for both DroneCore and a DroneCore Extension): ``` ├── DroneCore @@ -22,8 +23,15 @@ A simplified view of the folder structure is shown below: │ ├── action │ ├── ... │ └── telemetry +├── DroneCore_Extensions +│ ├── integration_tests +│ └── plugins +│ ├── camera +│ ├── another_plugin +│ └── etc. ``` -Drilling down, each plugin should have the same structure as shown for the "example" plugin below. + +Each plugin must have the same files/structure, as shown for the "example" plugin below. ``` └── plugins └── example @@ -37,12 +45,12 @@ Drilling down, each plugin should have the same structure as shown for the "exam ## Create a Plugin -To create a new C++ plugin, copy the [example](https://github.com/dronecore/DroneCore/tree/master/external_example/plugins/example/) plugin from the "external_example" into the DroneCore **plugins** directory. - -> **Tip** Plugins are defined/written in the same way whether declared in DroneCore or -as part of an [SDK](../guide/sdk.md). The only difference is how they are included in the build. +To create a new C++ plugin, duplicate either a [standard plugin](https://github.com/dronecore/DroneCore/tree/master/plugins) (e.g. +[Action](https://github.com/dronecore/DroneCore/tree/master/plugins/action), +[Telemetry](https://github.com/dronecore/DroneCore/tree/master/plugins/telemetry), etc.) or the [example](https://github.com/dronecore/DroneCore/tree/master/external_example/plugins/example/) plugin into the **plugins** directory (either in the DroneCore tree or a [DroneCore Extension](../guide/dronecore_extensions.md) folder). Modify the plugin as needed and update its [CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/master/external_example/plugins/example/CMakeLists.txt) as appropriate: +* Modify plugin filenames as appropriate * Add additional libraries using the variable `additional_libs`: ``` set(additional_libs "library_name" PARENT_SCOPE) @@ -51,17 +59,167 @@ Modify the plugin as needed and update its [CMakeLists.txt](https://github.com/d ``` set(additional_includes "include_dir" PARENT_SCOPE) ``` - +* You can also add tests with `unittest_source_files`, as discussed in [Testing](../contributing/test.md#writing_tests). + + +## Plugin Code The [standard plugins](https://github.com/dronecore/DroneCore/tree/master/plugins) can be reviewed for guidance on -how to send and process MAVLink messages. +how to write plugin code, including how to send and process MAVLink messages. -## Test Code -[Integration tests](../contributing/test.md#writing_tests) must be created for all new and updated plugin code. +## Test Code {#testing} + +[Tests](../contributing/test.md#writing_tests) must be created for all new and updated plugin code. The tests should be exhaustive, and cover all aspects of using the plugin API. -> **Note** All unit and integrations tests are run prior to accepting new code into the project. +The [Google Test Primer](https://github.com/google/googletest/blob/master/googletest/docs/Primer.md) +provides an excellent overview of how tests are written and used. + +> **Note** Testing is the same for plugins that are part of DroneCore and part of +[DroneCore Extensions](../guide/dronecore_extensions.md). + + +### Writing Unit Tests + +Most of the existing plugins do not have unit tests, because we do not yet have the ability to [mock MAVLink communications](https://github.com/dronecore/DroneCore/issues/148) (needed to test most plugins). +Unit tests are therefore considered optional! + +> **Tip** Comprehensive integration tests should be written instead, with the simulator providing appropriate MAVLink messages. + +#### Adding Unit Tests + +Unit tests are stored as separate files in the same directory as their associated source code. +Often they test the implementation (rather than the public API), +and hence are named with the suffix **_impl_test.cpp**. + +In order to include a test in the DroneCore unit test program (`unit_tests_runner`), +its file name must be added to the `$unittest_source_files` variable in the +plugin **CMakeLists.txt** file (you can add multiple files). + +The example plugin adds the **example_impl_test.cpp** unit test as shown below: + +```cmake +set(unittest_source_files + # Add unit test file(s) for plugin + example_impl_test.cpp + PARENT_SCOPE +) +``` + +> **Note** Unit tests for *core* functionality are added in the main [DroneCore/CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/master/CMakeLists.txt#L187) file. + + +#### Unit Test Code + +Unit tests typically include the file to be tested, **dronecore.h**, and **gtest.h**. There are no standard shared test unit resources so +test functions are declared using `TEST`. All tests in a file should share the same test-case name (the first argument to `TEST`). + +The skeleton [example plugin unit test](https://github.com/dronecore/DroneCore/blob/master/external_example/plugins/example/example_impl_test.cpp) is shown below: +```cpp +#include "example_impl.h" +#include "dronecore.h" +#include "global_include.h" +#include + +namespace dronecore { + +TEST(ExampleImpl, NoTest) +{ + ASSERT_TRUE(true); +} + +} // namespace dronecore +``` + + + +### Writing Integration Tests + +DroneCore provides the `integration_tests_runner` application for running the integration tests and +some helper code to make it easier to log tests and run them against the simulator. + +> **Tip** Check out the [Google Test Primer](https://github.com/google/googletest/blob/master/googletest/docs/Primer.md) +> and the [integration_tests](https://github.com/dronecore/DroneCore/tree/develop/integration_tests) +> for our existing plugins to better understand how to write your own! + + +#### Adding Integration Tests + +In order to run an integration test it needs to be added to the `integration_tests_runner` program. + +Integration tests for core functionality and plugins delivered by the project +are stored in [DroneCore/integration_tests](https://github.com/dronecore/DroneCore/tree/develop/integration_tests). +The files are added to the test program in that folder's +[CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/master/integration_tests/CMakeLists.txt#L12) file: + +```cmake +list(APPEND integration_tests + simple_connect + async_connect + # ... + mission_change_speed + mission_survey + curl +) +``` + +Integration tests for [DroneCore Extensions](../guide/dronecore_extensions.md) are handled in the exactly the same way: +``` +external_example ## The (example) SDK/external plugin directory. +├── integration_tests +│   ├── CMakeLists.txt +│   └── hello_world.cpp +``` + +Example extension **CMakeLists.txt** file: +```cmake +list(APPEND integration_tests + # Add the cpp file for each integration test on its own line + hello_world +) +``` + + +#### Integration Test Files/Code + +The main DroneCore-specific functionality is provided by [integration_test_helper.h](https://github.com/dronecore/DroneCore/blob/master/core/integration_test_helper.h). +This provides access to the [Plugin/Test Logger](../contributing/dev_logging.md) +and a shared test class `SitlTest` for setting up and tearing down the PX4 simulator. + +> **Note** All tests must be declared using `TEST_F` and have a first argument `SitlTest` as shown. This is required +> in order to use the shared class to set up and tear down the simulator between tests. + +The example integration test [hello_world.cpp](https://github.com/dronecore/DroneCore/blob/master/external_example/integration_tests/hello_world.cpp) demonstrates this below. + +```cpp +#include +#include +#include "dronecore.h" +#include "integration_test_helper.h" + +using namespace dronecore; + +TEST_F(SitlTest, ExternalExampleHello) +{ + DroneCore dc; + + DroneCore::ConnectionResult ret = dc.add_udp_connection(); + ASSERT_EQ(ret, DroneCore::ConnectionResult::SUCCESS); + + // Wait for device to connect via heartbeat. + std::this_thread::sleep_for(std::chrono::seconds(2)); + + // One vehicle should have connected. + std::vector uuids = dc.device_uuids(); + EXPECT_EQ(uuids.size(), 1); + + // Apparently it can say hello. + dc.device().example().say_hello(); +} +``` + + ## Example Code @@ -76,8 +234,6 @@ can see how it is used and how the example might be extended. Where possible examples should demonstrate realistic use cases such that the code can usefully be copied and reused by external developers. -The plugin example should be documented in markdown following the same pattern as the existing [examples](../examples/README.md). - ## Documentation @@ -91,7 +247,15 @@ All items should minimally have a brief description (preceded by the `@brief` ta Internal/implementation classes need not be documented, but should be written so that their use can be inferred. -### Guide Documentation +### Example Code Documentation + +The plugin example should be documented in markdown following the same pattern as the existing [examples](../examples/README.md). + +Generally this involves explaining what the example does and displaying the source. +The explanation of how the code works is usually deferred to [guide documentation](#guide). + + +### Guide Documentation {#guide} Ideally, [guide](../guide/README.md) documentation should be created. This should be based on example code. diff --git a/en/contributing/test.md b/en/contributing/test.md index c05c3ee..10cdef7 100644 --- a/en/contributing/test.md +++ b/en/contributing/test.md @@ -1,10 +1,11 @@ # Testing +*DroneCore* 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 DroneCore codelines, and must pass before the code can be merged. -*DroneCore* has both unit and integration tests, written using the *Google C++ Test Framework*. -The tests are run every time new code is committed to our codelines, and must pass before the code can be merged. +This topic shows how to run the existing tests. -This topic shows how to run the existing tests and write new ones. +> **Tip** For information on *writing* tests see: [Writing Plugins > Test Code](../contributing/plugins.md#testing). ## Running Unit Tests @@ -87,138 +88,3 @@ To run all telemetry tests: ``` make && build/default/integration_tests_runner --gtest_filter="SitlTest.Telemetry*" ``` - -## Writing Tests {#writing_tests} - -The [Google Test Primer](https://github.com/google/googletest/blob/master/googletest/docs/Primer.md) -provides an excellent overview of how tests are written and used. - -Most of the existing plugins do not have unit tests, because we do not yet have the ability to [mock MAVLink communications](https://github.com/dronecore/DroneCore/issues/148) (needed to test most plugins). In consequence integration tests are used instead, -with the simulator providing appropriate MAVLink messages. - -> **Note** This section explains how to add tests for the default DroneCore code. -> Most of the information is also relevant to SDK/Extension plugin tests. See -> [SDK Creation > Testing](../guide/sdk.md#testing) for information about how -> to add tests for extensions to the test runner(s). - - -### Writing Unit Tests - -Unit tests are stored as separate files in the same directory as their associated source code. Often they test the implementation (rather than the public API), and hence are named with the suffix **_impl_test.cpp**. - - -#### Unit Test Files/Code - -Unit tests typically include the file to be tested, **dronecore.h**, and **gtest.h**. There are no standard shared test unit resources so -test functions are declared using `TEST`. All tests in a file should share the same test-case name (the first argument to `TEST`). - -The skeleton [example plugin unit test](https://github.com/dronecore/DroneCore/blob/master/external_example/plugins/example/example_impl_test.cpp) is shown below: -```cpp -#include "example_impl.h" -#include "dronecore.h" -#include "global_include.h" -#include - -namespace dronecore { - -TEST(ExampleImpl, NoTest) -{ - ASSERT_TRUE(true); -} - -} // namespace dronecore -``` - -#### Adding Unit Tests - -In order to run a unit test its file needs to be added to the DroneCore unit test program (`unit_tests_runner`). For the core plugins this is done in the main DroneCore [DroneCore/CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/master/CMakeLists.txt#L187) file: -```cmake - add_executable(unit_tests_runner - core/global_include_test.cpp - core/mavlink_channels_test.cpp - core/unittests_main.cpp - core/http_loader_test.cpp - core/timeout_handler_test.cpp - core/call_every_handler_test.cpp - ${plugin_unittest_source_files} - ${unit_tests_src} - ) -``` - -### Writing Integration Tests - -DroneCore provides the `integration_tests_runner` application for running the integration tests and -some helper code to make it easier to log tests and run them against the simulator. - -> **Tip** Check out the [Google Test Primer](https://github.com/google/googletest/blob/master/googletest/docs/Primer.md) -> and the [integration_tests](https://github.com/dronecore/DroneCore/tree/develop/integration_tests) -> for our existing plugins to better understand how to write your own! - -#### Integration Test Files/Code - -The main DroneCore-specific functionality is provided by [integration_test_helper.h](https://github.com/dronecore/DroneCore/blob/master/core/integration_test_helper.h). -This provides access to the [Plugin/Test Logger](../contributing/dev_logging.md) -and a shared test class `SitlTest` for setting up and tearing down the PX4 simulator. - -> **Note** All tests must be declared using `TEST_F` and have a first argument `SitlTest` as shown. This is required -> in order to use the shared class to set up and tear down the simulator between tests. - -The example integration test [hello_world.cpp](https://github.com/dronecore/DroneCore/blob/master/external_example/integration_tests/hello_world.cpp) demonstrates this below. - -```cpp -#include -#include -#include "dronecore.h" -#include "integration_test_helper.h" - -using namespace dronecore; - -TEST_F(SitlTest, ExternalExampleHello) -{ - DroneCore dc; - - DroneCore::ConnectionResult ret = dc.add_udp_connection(); - ASSERT_EQ(ret, DroneCore::ConnectionResult::SUCCESS); - - // Wait for device to connect via heartbeat. - std::this_thread::sleep_for(std::chrono::seconds(2)); - - // One vehicle should have connected. - std::vector uuids = dc.device_uuids(); - EXPECT_EQ(uuids.size(), 1); - - // Apparently it can say hello. - dc.device().example().say_hello(); -} -``` - -#### Adding Integration Tests - -In order to run an integration test it needs to be added to the `integration_tests_runner` program. - -Integration tests for core functionality and plugins delivered by the project -are stored in [DroneCore/integration_tests](https://github.com/dronecore/DroneCore/tree/develop/integration_tests). -The files are added to the test program in that folder's -[CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/master/integration_tests/CMakeLists.txt#L12) file: - -```cmake -list(APPEND integration_tests - simple_connect - async_connect - telemetry_simple - telemetry_async - telemetry_modes - telemetry_health - simple_hover - async_hover - takeoff_and_kill - offboard_velocity - logging - info - mission - mission_change_speed - mission_survey - curl -) -``` - diff --git a/en/guide/dronecore_extensions.md b/en/guide/dronecore_extensions.md new file mode 100644 index 0000000..fb91c09 --- /dev/null +++ b/en/guide/dronecore_extensions.md @@ -0,0 +1,96 @@ +# DroneCore Extensions + +DroneCore can be extended with [plugins](../contributing/plugins.md) and [tests](../contributing/test.md) that are defined "out of tree". +This enables developers to manage custom code in a separate repository (reducing *git* conflicts). +The extensions are built into the DroneCore library at compile time. + +> **Note** Extensions are defined in a parallel tree that *mirrors* the DroneCore structure. +> Extension plugins and tests are *exactly the same* as "standard" DroneCore plugins and tests. + +## Folder Structure + +The extension folder *mirrors* DroneCore, and **must** contain the folders **integration_tests** and **plugins**. +The *plugin* folder contains appropriately named sub-folders for each plugin (along with its unit test code). + +A simplified view of a "typical" extension directory is shown below (in this case named "DroneCore_Extensions"). + +``` +├── DroneCore +│ ├── core +│ ├── integration_tests +│ └── plugins +│ ├── action +│ ├── ... +│ └── telemetry +├── DroneCore_Extensions +│ ├── integration_tests +│ └── plugins +│ ├── camera +│ ├── another_plugin +│ └── etc. +``` + +## Create a DroneCore Extension Library + +To create a new C++ DroneCore Extension Library, first copy [DroneCore/external_example](https://github.com/dronecore/DroneCore/tree/master/external_example) to the same folder level as the DroneCore directory. +Then rename the top level folder as desired. + +The *external_example* contains a single integration test (**hello_world.cpp**) and a single plugin (**/example**) +with a separate implementation file and a stub unit test file. +``` +external_example +├── integration_tests +│   ├── CMakeLists.txt +│   └── hello_world.cpp +└── plugins + └── example + ├── CMakeLists.txt + ├── example.cpp + ├── example.h + ├── example_impl.cpp + ├── example_impl.h + └── example_impl_test.cpp +``` + +## Adding/Modifying Plugins + +Plugins in extension libraries are exactly the same as "normal" DroneCore plugins +(except that they are located in the extension rather than under DroneCore). + +[Writing Plugins](../contributing/plugins.md) explains how to write or modify plugins. + +> **Tip** To create a new plugin you can either copy and modify an existing DroneCore plugin +> or start from the example plugin shown above. + + +## Testing + +Tests in extension libraries are written and run exactly the same as "normal" DroneCore plugin tests. + +[Testing](../contributing/test.md) explains how to run (and write) unit and integration tests. + + +## Building + +To build *DroneCore* so that it includes the extension library, specify the top level directory `EXTERNAL_DIR` in the `make` command +(only one external directory can be specified). +The line below shows how this is done for the [external_example](https://github.com/dronecore/DroneCore/tree/master/external_example) directory. + +``` +make EXTERNAL_DIR=external_example +``` + +To build a parallel *DroneCore_Extensions* folder (from within the DroneCore directory) you would enter: + +``` +make EXTERNAL_DIR=../DroneCore_Extensions +``` + + + diff --git a/en/guide/sdk.md b/en/guide/sdk.md deleted file mode 100644 index cf1754a..0000000 --- a/en/guide/sdk.md +++ /dev/null @@ -1,155 +0,0 @@ -# DroneCore SDKs - -DroneCore allows SDK Vendors to create independent plugin libraries, along with integration and unit tests, and -build them into DroneCore at compile time. - -> **Note** This topic only covers the (very minor) differences between SDK plugins/testing and "vanilla" DroneCore. -> SDK authors should review the topics [Writing Plugins](../contributing/plugins.md) and -> [Testing](../contributing/test.md). - - -## SDK Architecture - -SDK extensions are defined in a separate/parallel folder to DroneCore. -The extension folder *mirrors* DroneCore, and **must** contain the folders **integration_tests** and **plugins**. -The *plugin* folder contains appropriately named sub-folders for each plugin (along with its unit test code). - -A simplified view of a "typical" DroneCore SDK is shown below (with extension directory: *SDK_Extensions*). - -``` -├── DroneCore -│ ├── core -│ ├── integration_tests -│ └── plugins -│ ├── action -│ ├── ... -│ └── telemetry -├── SDK_Extensions -│ ├── integration_tests -│ └── plugins -│ ├── camera -│ ├── another_plugin -│ └── etc. -``` - - -## Create an SDK Extension Library - -To create a new C++ SDK Extension Library, first copy the [DroneCore/external_example](https://github.com/dronecore/DroneCore/tree/master/external_example) -alongside DroneCore. - -The *external_example* contains a single integration test (**hello_world.cpp**) and a single plugin (**/example**) -with a separate implementation file and a stub unit test file. Adapt it first by renaming the top level folder. -``` -external_example -├── integration_tests -│   ├── CMakeLists.txt -│   └── hello_world.cpp -└── plugins - └── example - ├── CMakeLists.txt - ├── example.cpp - ├── example.h - ├── example_impl.cpp - ├── example_impl.h - └── example_impl_test.cpp -``` - -## Adding/Modifying Plugins - -The extension library can contain as many plugins as needed, provided they are subfolders of **/plugins**, -and have an appropriately formatted **CMakeLists.txt** make file. You can therefore duplicate and modify -the "example" plugin as required by the SDK. - -Modify the example plugin as needed and update its [CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/master/external_example/plugins/example/CMakeLists.txt) as appropriate: -* Add additional libraries using the variable `additional_libs`: - ``` - set(additional_libs "library_name" PARENT_SCOPE) - ``` -* Add required includes with `additional_includes`: - ``` - set(additional_includes "include_dir" PARENT_SCOPE) - ``` -* You can also add tests with `unittest_source_files`, as discussed in the following section. - -Plugins are otherwise written exactly as discussed in [Writing Plugins](../contributing/plugins.md). - - -## Testing - -SDK Extension tests are the same as those for the default plugins. -The only (slight) difference is how the tests are included into the `unit_tests_runner` and -`integration_tests_runner` test programs. - -> **Tip** See [Testing](../contributing/test.md) for general guidance on writing tests. - -Once included in a build, the tests are run in exactly the same way as those for the default plugins. -For example to run the external_example hello world integration test, do: -``` -build/default/integration_tests_runner --gtest_filter="ExternalExampleHello" -``` - -### Unit Tests - -Unit tests are stored in the same folder as their associated plugin source code. -The test file name(s) are added to the `$unittest_source_files` variable in the -plugin **CMakeLists.txt** file (you can add multiple files). - -> **Note** The DroneCore toolchain then does everything else necessary to -> add the tests to the `unit_tests_runner` program when the extension library -> is compiled with DroneCore. - -The example plugin adds the **example_impl_test.cpp** unit test as shown below: - -```cmake -set(unittest_source_files - # Add unit test file(s) for plugin - example_impl_test.cpp - PARENT_SCOPE -) -``` - -### Integration Tests - -Integration tests for SDKs/External plugins are placed in the SDK/Extension directory's **integration_tests** folder: - -``` -external_example ## The (example) SDK/external plugin directory. -├── integration_tests -│   ├── CMakeLists.txt -│   └── hello_world.cpp -``` - -The tests are added to the test runner by appending them to the **CMakeLists.txt** file: - -```cmake -list(APPEND integration_tests - # Add the cpp file for each integration test on its own line - hello_world -) -``` - -> **Note** The DroneCore toolchain then does everything else necessary to -> add the tests to the `integration_tests_runner` program when the extension library -> is compiled with DroneCore. - - -## Building - -To build *DroneCore* so that it includes the SDK/External plugins, specify the top level directory `EXTERNAL_DIR` in the `make` command. -The line below shows how this is done for the [external_example](https://github.com/dronecore/DroneCore/tree/master/external_example) directory. - -``` -make EXTERNAL_DIR=external_example -``` - -Only one external directory can be specified. - - From d096cbabdff8f44855220f3f4c003d534a9c1880 Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Mon, 6 Nov 2017 13:09:47 -0500 Subject: [PATCH 011/107] code_style: added some code guidelines This adds the code guidelines that were followed when DroneCore was written. They are not set in stone and can be changed for reasons other than taste. --- en/contributing/code_style.md | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/en/contributing/code_style.md b/en/contributing/code_style.md index e0708e5..64a65ed 100644 --- a/en/contributing/code_style.md +++ b/en/contributing/code_style.md @@ -1,9 +1,37 @@ # C++ Coding Style -All **.cpp** and **.h** files should be formatted according to the [astyle](http://astyle.sourceforge.net/) settings defined by astylerc. +## Formatting and white space + +### Formatting tool + +All **.cpp** and **.h** files should be formatted according to the [astyle](http://astyle.sourceforge.net/) settings defined by [astylerc](https://github.com/dronecore/DroneCore/blob/master/astylerc). To automatically fix the formatting, run this command: ``` make fix_style -``` \ No newline at end of file +``` + +The formatting standard is open for discussions. It can change if there are valid reasons (other than just personal taste). + +### Explanations + +- Line length should be kept below 100 characters. (Why? To make 3-way-merges with 3 columns possible on decent monitors. To discourage too many nested ifs. Why not 80? To allow for verbose naming and prevent abbreviations.) + + +## General Guidelines + +This are some guidelines that were followed while DroneCore was written. They are not written in stone and can be changed whenever there is a good reason. + +- C++11: It is encouraged to make use of C++11 features and the standard library. Examples: + - [`std::function`](http://en.cppreference.com/w/cpp/utility/functional/function) and [lambda expressions](http://en.cppreference.com/w/cpp/language/lambda) + - [`std::vector`](http://en.cppreference.com/w/cpp/container/vector), [`std::map`](http://www.cplusplus.com/reference/map/map/) + - [`std::thread`](http://www.cplusplus.com/reference/thread/thread/), [`std::mutex`](http://en.cppreference.com/w/cpp/thread/mutex) + +- `using namespace std` is discouraged ([read why](https://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice)). If needed specific declarations can be used in the source files such as `using std::this_thread::sleep_for` to prevent verbosity. +- The usage of namespacing wherever possible is encouraged (e.g. `enum class` is to be used over `enum`). +- The filenames should be `.h` for header files and `.cpp` for consistency. +- In general, variable and method names should error on the side of verbosity instead of being quick to type and read. Also, abbreviations are only to be used for small scopes and should not be exposed in public APIs. +- All variables that have a physical unit should have the unit in the variable name (e.g. `_m` for meters, `_m_s` for meters/second). +- Variable and method names should be `snake_case` and class/struct/enum names `CamelCase`. Private variables should start with an underscore as `_variable_name`. +- Try to exit functions early instead of nesting ifs ([read why](https://softwareengineering.stackexchange.com/questions/18454/should-i-return-from-a-function-early-or-use-an-if-statement)). From 467bb4a944d69d75255c12dbc09a201fc676b604 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 7 Nov 2017 09:09:47 +1100 Subject: [PATCH 012/107] Tidy the English. Added single note about these rules being "for discussion" up top with link to where things get discussed. Then made the rules below read as "firm guidelines". --- en/contributing/code_style.md | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/en/contributing/code_style.md b/en/contributing/code_style.md index 64a65ed..2219dd7 100644 --- a/en/contributing/code_style.md +++ b/en/contributing/code_style.md @@ -1,37 +1,41 @@ # C++ Coding Style -## Formatting and white space +This topic contains the DroneCore formatting and coding guidelines. -### Formatting tool +> **Note** These guidelines are not written in stone! [Start a discussion](../README.md#getting-help) if you have suggestions for +> improvement (the project will consider anything other than "matters of personal taste"). + +## Formatting and wWite Space All **.cpp** and **.h** files should be formatted according to the [astyle](http://astyle.sourceforge.net/) settings defined by [astylerc](https://github.com/dronecore/DroneCore/blob/master/astylerc). -To automatically fix the formatting, run this command: +To automatically fix the formatting, run the command: ``` make fix_style ``` -The formatting standard is open for discussions. It can change if there are valid reasons (other than just personal taste). - -### Explanations +Explanations: -- Line length should be kept below 100 characters. (Why? To make 3-way-merges with 3 columns possible on decent monitors. To discourage too many nested ifs. Why not 80? To allow for verbose naming and prevent abbreviations.) +- Line length should be kept below 100 characters. + - Enables 3-way-merges with 3 columns possible on decent monitors. + - Discourages too many nested ifs. + - Large enough o allow for verbose naming and prevent abbreviations. ## General Guidelines -This are some guidelines that were followed while DroneCore was written. They are not written in stone and can be changed whenever there is a good reason. +The following general guidelines should be used for all code: -- C++11: It is encouraged to make use of C++11 features and the standard library. Examples: +- C++11 is encouraged to allow developers to use C++11 features and the standard library. Examples: - [`std::function`](http://en.cppreference.com/w/cpp/utility/functional/function) and [lambda expressions](http://en.cppreference.com/w/cpp/language/lambda) - [`std::vector`](http://en.cppreference.com/w/cpp/container/vector), [`std::map`](http://www.cplusplus.com/reference/map/map/) - [`std::thread`](http://www.cplusplus.com/reference/thread/thread/), [`std::mutex`](http://en.cppreference.com/w/cpp/thread/mutex) -- `using namespace std` is discouraged ([read why](https://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice)). If needed specific declarations can be used in the source files such as `using std::this_thread::sleep_for` to prevent verbosity. +- `using namespace std` is discouraged ([read why](https://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice)). If needed specific declarations can be used in the source files such as `using std::this_thread::sleep_for` to reduce verbosity. - The usage of namespacing wherever possible is encouraged (e.g. `enum class` is to be used over `enum`). -- The filenames should be `.h` for header files and `.cpp` for consistency. -- In general, variable and method names should error on the side of verbosity instead of being quick to type and read. Also, abbreviations are only to be used for small scopes and should not be exposed in public APIs. +- Filename extensions should be `.h` for header files and `.cpp` for source files (for consistency). +- Variable and method names should err on the side of verbosity instead of being quick to type and read. Abbreviations are only to be used for small scopes and should not be exposed in public APIs. - All variables that have a physical unit should have the unit in the variable name (e.g. `_m` for meters, `_m_s` for meters/second). -- Variable and method names should be `snake_case` and class/struct/enum names `CamelCase`. Private variables should start with an underscore as `_variable_name`. +- Variable and method names should be `snake_case` and class/struct/enum names `CamelCase`. Private variables should start with an underscore, e.g.: `_variable_name`. - Try to exit functions early instead of nesting ifs ([read why](https://softwareengineering.stackexchange.com/questions/18454/should-i-return-from-a-function-early-or-use-an-if-statement)). From 28650a7a5fb7f67b3b11d9f97283c41f66b1083b Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 7 Nov 2017 09:13:10 +1100 Subject: [PATCH 013/107] Fix typo in code style text --- en/contributing/code_style.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/contributing/code_style.md b/en/contributing/code_style.md index 2219dd7..85aeea9 100644 --- a/en/contributing/code_style.md +++ b/en/contributing/code_style.md @@ -5,7 +5,7 @@ This topic contains the DroneCore formatting and coding guidelines. > **Note** These guidelines are not written in stone! [Start a discussion](../README.md#getting-help) if you have suggestions for > improvement (the project will consider anything other than "matters of personal taste"). -## Formatting and wWite Space +## Formatting and White Space All **.cpp** and **.h** files should be formatted according to the [astyle](http://astyle.sourceforge.net/) settings defined by [astylerc](https://github.com/dronecore/DroneCore/blob/master/astylerc). From 08c74f106a38a1c688a5249a5676f95ae9fc3abe Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 7 Nov 2017 10:34:51 +1100 Subject: [PATCH 014/107] Add `make clean` to build instructions for external dir --- en/guide/dronecore_extensions.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/en/guide/dronecore_extensions.md b/en/guide/dronecore_extensions.md index fb91c09..f558aeb 100644 --- a/en/guide/dronecore_extensions.md +++ b/en/guide/dronecore_extensions.md @@ -77,12 +77,14 @@ To build *DroneCore* so that it includes the extension library, specify the top The line below shows how this is done for the [external_example](https://github.com/dronecore/DroneCore/tree/master/external_example) directory. ``` +make clean # This is required! make EXTERNAL_DIR=external_example ``` To build a parallel *DroneCore_Extensions* folder (from within the DroneCore directory) you would enter: ``` +make clean # This is required! make EXTERNAL_DIR=../DroneCore_Extensions ``` From d116372db56b63729fabc3460a79c69d7db4473a Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 7 Nov 2017 10:36:06 +1100 Subject: [PATCH 015/107] Add make clean before instruction for building extensions ... otherwise errors in invocation are not provided. --- en/contributing/build.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/en/contributing/build.md b/en/contributing/build.md index ae9d990..75794be 100644 --- a/en/contributing/build.md +++ b/en/contributing/build.md @@ -247,6 +247,7 @@ You can also build the image yourself using the [Dockerfile](https://github.com/ DroneCore can be extended with plugins and integration tests that are defined "out of tree". These are declared inside a parallel directory that is included into the DroneCore at compile time (by specifying `EXTERNAL_DIR` in the `make` command): ``` +make clean # This is required! make EXTERNAL_DIR=relative_path_to_external_directory ``` -See [DroneCore Extensions](../guide/dronecore_extensions.md) for more information. \ No newline at end of file +See [DroneCore Extensions](../guide/dronecore_extensions.md) for more information. From a8d757aec66ef998939d7137043b42253b271f56 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 7 Nov 2017 11:59:44 +1100 Subject: [PATCH 016/107] Add link checking via Travis --- .travis.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..a2d01e9 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,19 @@ +language: ruby +rvm: +- 2.2.2 + +install: +- npm install gitbook-cli -g +- gitbook install +- gitbook build +- gem install html-proofer + +script: + +- htmlproofer ./_book --empty-alt-ignore true --check-external-hash true + + + +env: + global: + - NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer From 5ba8bbb9346f12e568c5e4beca8c9867e5eaea75 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 7 Nov 2017 14:14:16 +1100 Subject: [PATCH 017/107] Use book variable github_branch to specify paths --- en/README.md | 6 +++--- en/contributing/code_style.md | 2 +- en/contributing/dev_logging.md | 2 +- en/contributing/documentation.md | 6 +++--- en/contributing/plugins.md | 32 +++++++++++++++----------------- en/examples/fly_mission.md | 6 +++--- en/examples/offboard_velocity.md | 6 +++--- en/examples/takeoff_and_land.md | 8 ++++---- en/getting_started/faq.md | 2 +- en/guide/dronecore_extensions.md | 4 ++-- en/guide/missions.md | 6 +++--- en/guide/offboard.md | 2 +- en/guide/taking_off_landing.md | 6 +++--- en/guide/telemetry.md | 8 ++++---- 14 files changed, 47 insertions(+), 49 deletions(-) diff --git a/en/README.md b/en/README.md index 360fee5..b8ec0d5 100644 --- a/en/README.md +++ b/en/README.md @@ -23,7 +23,7 @@ DroneCore is still in pre-alpha development. - Currently you can only develop in C++. - [gRPC](https://grpc.io/) is being investigated as a promising technology for writing the cross-platform wrappers. -To use DroneCore you will need to [build the C++ library](contributing/build.md). The [Guide](guide/README.md) explains how to write C++ DroneCore apps. A simple complete example can be found in [Takeoff and Land](examples/takeoff_and_land.md). +To use DroneCore you will need to [build the C++ library](contributing/build.md). The [Guide](guide/README.md) explains how to write C++ DroneCore apps. A number complete examples can be found [here](examples/README.md). ## Library Features @@ -63,7 +63,7 @@ The most important classes are: - [Offboard](/api_reference/classdronecore_1_1_offboard.md): Control a drone with velocity commands. - [Gimbal](/api_reference/classdronecore_1_1_gimbal.md): Control a gimbal. - [Logging](/api_reference/classdronecore_1_1_logging.md): Data logging and streaming from the vehicle. -- [include/device_plugin_container.h.in](https://github.com/dronecore/DroneCore/blob/master/include/device_plugin_container.h.in): Auto-generated file that is required for DroneCore plugin development - see [DevicePluginContainer](/api_reference/classdronecore_1_1_device_plugin_container.md). +- [include/device_plugin_container.h.in](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/include/device_plugin_container.h.in): Auto-generated file that is required for DroneCore plugin development - see [DevicePluginContainer](/api_reference/classdronecore_1_1_device_plugin_container.md). ## Getting Started @@ -95,5 +95,5 @@ The [Contributing](contributing/README.md) section contains everything you need ## License -* DroneCore is licensed under the permissive [BSD 3-clause](https://github.com/dronecore/DroneCore/blob/master/LICENSE.md). +* DroneCore is licensed under the permissive [BSD 3-clause](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/LICENSE.md). * This *DroneCore Developer Documentation* is licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) license. diff --git a/en/contributing/code_style.md b/en/contributing/code_style.md index 85aeea9..e1e0fac 100644 --- a/en/contributing/code_style.md +++ b/en/contributing/code_style.md @@ -7,7 +7,7 @@ This topic contains the DroneCore formatting and coding guidelines. ## Formatting and White Space -All **.cpp** and **.h** files should be formatted according to the [astyle](http://astyle.sourceforge.net/) settings defined by [astylerc](https://github.com/dronecore/DroneCore/blob/master/astylerc). +All **.cpp** and **.h** files should be formatted according to the [astyle](http://astyle.sourceforge.net/) settings defined by [astylerc](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/astylerc). To automatically fix the formatting, run the command: diff --git a/en/contributing/dev_logging.md b/en/contributing/dev_logging.md index da80fd3..eae92f1 100644 --- a/en/contributing/dev_logging.md +++ b/en/contributing/dev_logging.md @@ -9,7 +9,7 @@ The API methods display a custom message, prepending a timestamp and the type of ## Usage -The API is defined in [core/log.h](https://github.com/dronecore/DroneCore/blob/master/core/log.h) (and made available to integration tests via [core/integration_test_helper.h](https://github.com/dronecore/DroneCore/blob/master/core/integration_test_helper.h)). +The API is defined in [core/log.h](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/core/log.h) (and made available to integration tests via [core/integration_test_helper.h](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/core/integration_test_helper.h)). The API methods are called as shown below for `LogDebug()`, with the left shift operator (`<<`) used to append the message-specific text. diff --git a/en/contributing/documentation.md b/en/contributing/documentation.md index 0526a65..8fe85ae 100644 --- a/en/contributing/documentation.md +++ b/en/contributing/documentation.md @@ -51,7 +51,7 @@ For setup information see: [Gitbook toolchain](https://toolchain.gitbook.com/set ## API Reference -The C++ source code is annotated using comments using [Doxygen](https://www.stack.nl/~dimitri/doxygen/manual/index.html) syntax. You can extract the documentation to markdown files (one per class) when you [build the library](../contributing/build.md). +The C++ source code is annotated using comments using [Doxygen](http://doxygen.nl/manual/index.html) syntax. You can extract the documentation to markdown files (one per class) when you [build the library](../contributing/build.md). To create the reference markdown docs (on macOS or Linux) build with: ``` @@ -60,8 +60,8 @@ make docs The files are created in **/install/docs/markdown**. In order to include new API reference in the *DroneCore Guide* it must be manually added to the [Github repository](https://github.com/dronecore/docs/): -* Copy the files into the [docs/en/api_reference](https://github.com/dronecore/docs/tree/master/en/api_reference) folder -* *New* APIs should be added to appropriate sections in the [docs/en/SUMMARY.md](https://github.com/dronecore/docs/blob/master/en/SUMMARY.md), [docs/en/api_reference/README.md](https://github.com/dronecore/docs/blob/master/en/api_reference/README.md) and overview [docs/en/README.md](https://github.com/dronecore/docs/blob/master/en/README.md#api-overview). +* Copy the files into the [docs/en/api_reference](https://github.com/dronecore/docs/tree/{{ book.github_branch }}/en/api_reference) folder +* *New* APIs should be added to appropriate sections in the [docs/en/SUMMARY.md](https://github.com/dronecore/docs/blob/{{ book.github_branch }}/en/SUMMARY.md), [docs/en/api_reference/README.md](https://github.com/dronecore/docs/blob/{{ book.github_branch }}/en/api_reference/README.md) and overview [docs/en/README.md](https://github.com/dronecore/docs/blob/{{ book.github_branch }}/en/README.md#api-overview). > **Note** Extracting the API reference does not work automatically on Windows because the `make` toolchain is different. diff --git a/en/contributing/plugins.md b/en/contributing/plugins.md index f5fc4d2..07e8e96 100644 --- a/en/contributing/plugins.md +++ b/en/contributing/plugins.md @@ -1,8 +1,8 @@ # Writing Plugins -DroneCore is split into a [core](https://github.com/dronecore/DroneCore/tree/master/core) and [plugins](https://github.com/dronecore/DroneCore/tree/master/plugins). +DroneCore is split into a [core](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/core) and [plugins](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/plugins). -Plugins that are located in the *correct location* (a subfolder of **/plugins**) and have the *correct structure* are included at compile time. The *cmake* script [autogenerate_plugin_container.cmake](https://github.com/dronecore/DroneCore/blob/master/autogenerate_plugin_container.cmake) takes care of including the plugin folders and integration tests. +Plugins that are located in the *correct location* (a subfolder of **/plugins**) and have the *correct structure* are included at compile time. The *cmake* script [autogenerate_plugin_container.cmake](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/autogenerate_plugin_container.cmake) takes care of including the plugin folders and integration tests. > **Note** Plugins can also be defined in [DroneCore Extensions](../guide/dronecore_extensions.md). > These are defined and tested in exactly the same way as "standard" DroneCore plugins. @@ -45,11 +45,11 @@ Each plugin must have the same files/structure, as shown for the "example" plugi ## Create a Plugin -To create a new C++ plugin, duplicate either a [standard plugin](https://github.com/dronecore/DroneCore/tree/master/plugins) (e.g. -[Action](https://github.com/dronecore/DroneCore/tree/master/plugins/action), -[Telemetry](https://github.com/dronecore/DroneCore/tree/master/plugins/telemetry), etc.) or the [example](https://github.com/dronecore/DroneCore/tree/master/external_example/plugins/example/) plugin into the **plugins** directory (either in the DroneCore tree or a [DroneCore Extension](../guide/dronecore_extensions.md) folder). +To create a new C++ plugin, duplicate either a [standard plugin](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/plugins) (e.g. +[Action](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/plugins/action), +[Telemetry](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/plugins/telemetry), etc.) or the [example](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/external_example/plugins/example/) plugin into the **plugins** directory (either in the DroneCore tree or a [DroneCore Extension](../guide/dronecore_extensions.md) folder). -Modify the plugin as needed and update its [CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/master/external_example/plugins/example/CMakeLists.txt) as appropriate: +Modify the plugin as needed and update its [CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/external_example/plugins/example/CMakeLists.txt) as appropriate: * Modify plugin filenames as appropriate * Add additional libraries using the variable `additional_libs`: ``` @@ -59,18 +59,18 @@ Modify the plugin as needed and update its [CMakeLists.txt](https://github.com/d ``` set(additional_includes "include_dir" PARENT_SCOPE) ``` -* You can also add tests with `unittest_source_files`, as discussed in [Testing](../contributing/test.md#writing_tests). +* You can also add tests with `unittest_source_files`, as [discussed below](#adding_unit_tests). ## Plugin Code -The [standard plugins](https://github.com/dronecore/DroneCore/tree/master/plugins) can be reviewed for guidance on +The [standard plugins](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/plugins) can be reviewed for guidance on how to write plugin code, including how to send and process MAVLink messages. ## Test Code {#testing} -[Tests](../contributing/test.md#writing_tests) must be created for all new and updated plugin code. +Tests must be created for all new and updated plugin code. The tests should be exhaustive, and cover all aspects of using the plugin API. The [Google Test Primer](https://github.com/google/googletest/blob/master/googletest/docs/Primer.md) @@ -87,7 +87,7 @@ Unit tests are therefore considered optional! > **Tip** Comprehensive integration tests should be written instead, with the simulator providing appropriate MAVLink messages. -#### Adding Unit Tests +#### Adding Unit Tests {#adding_unit_tests} Unit tests are stored as separate files in the same directory as their associated source code. Often they test the implementation (rather than the public API), @@ -107,7 +107,7 @@ set(unittest_source_files ) ``` -> **Note** Unit tests for *core* functionality are added in the main [DroneCore/CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/master/CMakeLists.txt#L187) file. +> **Note** Unit tests for *core* functionality are added in the main [DroneCore/CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/CMakeLists.txt#L187) file. #### Unit Test Code @@ -115,7 +115,7 @@ set(unittest_source_files Unit tests typically include the file to be tested, **dronecore.h**, and **gtest.h**. There are no standard shared test unit resources so test functions are declared using `TEST`. All tests in a file should share the same test-case name (the first argument to `TEST`). -The skeleton [example plugin unit test](https://github.com/dronecore/DroneCore/blob/master/external_example/plugins/example/example_impl_test.cpp) is shown below: +The skeleton [example plugin unit test](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/external_example/plugins/example/example_impl_test.cpp) is shown below: ```cpp #include "example_impl.h" #include "dronecore.h" @@ -134,7 +134,7 @@ TEST(ExampleImpl, NoTest) -### Writing Integration Tests +### Writing Integration Tests {#integration_tests} DroneCore provides the `integration_tests_runner` application for running the integration tests and some helper code to make it easier to log tests and run them against the simulator. @@ -220,11 +220,9 @@ TEST_F(SitlTest, ExternalExampleHello) ``` - - ## Example Code -> **Note** It is quicker and easier to write and modify [integration tests](#test-code) than examples. +> **Note** It is quicker and easier to write and modify [integration tests](#integration_tests) than examples. > Do not write example code until the plugin has been accepted! A simple example should be written that demonstrates basic usage of its API by 3rd parties. @@ -239,7 +237,7 @@ can usefully be copied and reused by external developers. ### In-Source Comments -The public API must be fully documented using [Doxygen](https://www.stack.nl/~dimitri/doxygen/manual/docblocks.html) markup. +The public API must be fully documented using [Doxygen](http://doxygen.nl/manual/docblocks.html) markup. All items should minimally have a brief description (preceded by the `@brief` tag). > **Tip** The in-source comments will be compiled to markdown and included in the [API Reference](../api_reference/README.md). diff --git a/en/examples/fly_mission.md b/en/examples/fly_mission.md index 32ffd09..f1ef7ec 100644 --- a/en/examples/fly_mission.md +++ b/en/examples/fly_mission.md @@ -67,10 +67,10 @@ The operation of most of this code is discussed in the guide: [Missions](../guid ## Source code {#source_code} -> **Tip** The full source code for the example [can be found on Github here](https://github.com/dronecore/DroneCore/tree/master/example/fly_mission). +> **Tip** The full source code for the example [can be found on Github here](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/example/fly_mission). -[CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/master/example/fly_mission/CMakeLists.txt) +[CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/example/fly_mission/CMakeLists.txt) ```make cmake_minimum_required(VERSION 2.8.12) @@ -114,7 +114,7 @@ target_link_libraries(fly_mission ) ``` -[fly_mission.cpp](https://github.com/dronecore/DroneCore/blob/master/example/fly_mission/fly_mission.cpp) +[fly_mission.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/example/fly_mission/fly_mission.cpp) ```cpp // diff --git a/en/examples/offboard_velocity.md b/en/examples/offboard_velocity.md index 6ea855b..41c30b8 100644 --- a/en/examples/offboard_velocity.md +++ b/en/examples/offboard_velocity.md @@ -54,10 +54,10 @@ The operation of most of this code is discussed in the guide: [Offboard Control] ## Source code {#source_code} -> **Tip** The full source code for the example [can be found on Github here](https://github.com/dronecore/DroneCore/tree/master/example/offboard_velocity). +> **Tip** The full source code for the example [can be found on Github here](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/example/offboard_velocity). -[CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/master/example/offboard_velocity/CMakeLists.txt) +[CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/example/offboard_velocity/CMakeLists.txt) ```make cmake_minimum_required(VERSION 2.8.12) @@ -101,7 +101,7 @@ target_link_libraries(offboard ) ``` -[offboard_velocity.cpp](https://github.com/dronecore/DroneCore/blob/master/example/offboard_velocity/offboard_velocity.cpp) +[offboard_velocity.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/example/offboard_velocity/offboard_velocity.cpp) ```cpp /** diff --git a/en/examples/takeoff_and_land.md b/en/examples/takeoff_and_land.md index 90870a0..7b931ae 100644 --- a/en/examples/takeoff_and_land.md +++ b/en/examples/takeoff_and_land.md @@ -4,7 +4,7 @@ This simple example shows the basic use of many DroneCore features. It sets up a UDP connection, waits for a device to appear, arms it, and commands it to takeoff and then land again. While flying the vehicle receives telemetry. The example is implemented in C++ (only). -> **Tip** The full source code for the example [can be found here](https://github.com/dronecore/DroneCore/tree/master/example/takeoff_land). +> **Tip** The full source code for the example [can be found here](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/example/takeoff_land). ## Running the Example {#run_example} @@ -40,9 +40,9 @@ Finished... ## Source code {#source_code} -> **Tip** The full source code for the example [can be found on Github here](https://github.com/dronecore/DroneCore/tree/master/example/takeoff_land). +> **Tip** The full source code for the example [can be found on Github here](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/example/takeoff_land). -[CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/master/example/takeoff_land/CMakeLists.txt) +[CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/example/takeoff_land/CMakeLists.txt) ```make cmake_minimum_required(VERSION 2.8.12) @@ -86,7 +86,7 @@ target_link_libraries(takeoff_and_land ) ``` -[takeoff_and_land.cpp](https://github.com/dronecore/DroneCore/blob/master/example/takeoff_land/takeoff_and_land.cpp) +[takeoff_and_land.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/example/takeoff_land/takeoff_and_land.cpp) ```cpp // // Simple example to demonstrate how to use DroneCore. diff --git a/en/getting_started/faq.md b/en/getting_started/faq.md index 651f1bb..e144ee1 100644 --- a/en/getting_started/faq.md +++ b/en/getting_started/faq.md @@ -28,7 +28,7 @@ libCURL will be required to download the camera definition file which is referen ### How are plugins added? -Plugins need to have the correct structure and be placed in the [plugins directory](https://github.com/dronecore/DroneCore/tree/master/plugins). It is also possible to add external plugins which are outside of the DroneCore tree. For instructions see the [build docs](../contributing/build.md#build-with-external-directory-for-plugins-and-custom-integration_tests). +Plugins need to have the correct structure and be placed in the [plugins directory](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/plugins). It is also possible to add external plugins which are outside of the DroneCore tree. For instructions see the [build docs](../contributing/build.md#build-with-external-directory-for-plugins-and-custom-integration_tests). ### Can a plugin depend on another one? diff --git a/en/guide/dronecore_extensions.md b/en/guide/dronecore_extensions.md index f558aeb..d4e77e4 100644 --- a/en/guide/dronecore_extensions.md +++ b/en/guide/dronecore_extensions.md @@ -32,7 +32,7 @@ A simplified view of a "typical" extension directory is shown below (in this cas ## Create a DroneCore Extension Library -To create a new C++ DroneCore Extension Library, first copy [DroneCore/external_example](https://github.com/dronecore/DroneCore/tree/master/external_example) to the same folder level as the DroneCore directory. +To create a new C++ DroneCore Extension Library, first copy [DroneCore/external_example](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/external_example) to the same folder level as the DroneCore directory. Then rename the top level folder as desired. The *external_example* contains a single integration test (**hello_world.cpp**) and a single plugin (**/example**) @@ -74,7 +74,7 @@ Tests in extension libraries are written and run exactly the same as "normal" Dr To build *DroneCore* so that it includes the extension library, specify the top level directory `EXTERNAL_DIR` in the `make` command (only one external directory can be specified). -The line below shows how this is done for the [external_example](https://github.com/dronecore/DroneCore/tree/master/external_example) directory. +The line below shows how this is done for the [external_example](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/external_example) directory. ``` make clean # This is required! diff --git a/en/guide/missions.md b/en/guide/missions.md index b13a17e..a84d78e 100644 --- a/en/guide/missions.md +++ b/en/guide/missions.md @@ -201,6 +201,6 @@ At time of writing the Mission API does not provide takeoff, land or "return to * [Mission Flight Mode](https://docs.px4.io/en/flight_modes/mission.html) (PX4 User Guide) * [Fly Mission](../examples/fly_mission.md) (DroneCore Example) * Integration tests: - * [mission.cpp](https://github.com/dronecore/DroneCore/blob/master/integration_tests/mission.cpp) - * [mission_change_speed.cpp](https://github.com/dronecore/DroneCore/blob/master/integration_tests/mission_change_speed.cpp) - * [mission_survey.cpp](https://github.com/dronecore/DroneCore/blob/master/integration_tests/mission_survey.cpp) + * [mission.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/mission.cpp) + * [mission_change_speed.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/mission_change_speed.cpp) + * [mission_survey.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/mission_survey.cpp) diff --git a/en/guide/offboard.md b/en/guide/offboard.md index c314464..3369271 100644 --- a/en/guide/offboard.md +++ b/en/guide/offboard.md @@ -188,6 +188,6 @@ Additional information/examples for the Offboard API are linked below: * [Example: Offboard Velocity](../examples/offboard_velocity.md) * Integration tests: - * [offboard_velocity.cpp](https://github.com/dronecore/DroneCore/blob/master/integration_tests/offboard_velocity.cpp) + * [offboard_velocity.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/offboard_velocity.cpp) diff --git a/en/guide/taking_off_landing.md b/en/guide/taking_off_landing.md index 76b7e1b..0020cf9 100644 --- a/en/guide/taking_off_landing.md +++ b/en/guide/taking_off_landing.md @@ -207,7 +207,7 @@ Additional information/examples for the Action API are linked below: * [Example: Takeoff and Land](../examples/takeoff_and_land.md) * Integration tests: - * [simple_hover.cpp](https://github.com/dronecore/DroneCore/blob/master/integration_tests/simple_hover.cpp) - * [async_hover.cpp](https://github.com/dronecore/DroneCore/blob/master/integration_tests/async_hover.cpp) - * [takeoff_and_kill.cpp](https://github.com/dronecore/DroneCore/blob/master/integration_tests/takeoff_and_kill.cpp) + * [simple_hover.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/simple_hover.cpp) + * [async_hover.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/async_hover.cpp) + * [takeoff_and_kill.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/takeoff_and_kill.cpp) diff --git a/en/guide/telemetry.md b/en/guide/telemetry.md index 4d67197..3ab129c 100644 --- a/en/guide/telemetry.md +++ b/en/guide/telemetry.md @@ -151,8 +151,8 @@ Additional information/examples for the Telemetry API are linked below: * [DroneCore Examples](../examples/README.md) * Integration tests: - * [telemetry_async.cpp](https://github.com/dronecore/DroneCore/blob/master/integration_tests/telemetry_async.cpp) - * [telemetry_health.cpp](https://github.com/dronecore/DroneCore/blob/master/integration_tests/telemetry_health.cpp) - * [telemetry_modes.cpp](https://github.com/dronecore/DroneCore/blob/master/integration_tests/telemetry_modes.cpp) - * [telemetry_simple.cpp](https://github.com/dronecore/DroneCore/blob/master/integration_tests/telemetry_simple.cpp) + * [telemetry_async.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/telemetry_async.cpp) + * [telemetry_health.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/telemetry_health.cpp) + * [telemetry_modes.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/telemetry_modes.cpp) + * [telemetry_simple.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/telemetry_simple.cpp) From 0f393bf5f0df824c45ef73d7f98dc847019401e6 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 7 Nov 2017 14:31:44 +1100 Subject: [PATCH 018/107] Fix other broken links/anchors --- book.json | 3 +++ en/examples/README.md | 2 +- en/getting_started/faq.md | 2 +- en/guide/offboard.md | 4 ++-- en/guide/telemetry.md | 2 +- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/book.json b/book.json index 51ad517..d6181cf 100644 --- a/book.json +++ b/book.json @@ -13,6 +13,9 @@ "validate-links", "theme-dronecode@git+https://github.com/dronecode/theme-dronecode.git" ], + "variables": { + "github_branch": "develop" + }, "pluginsConfig": { "page-footer-ex":{ diff --git a/en/examples/README.md b/en/examples/README.md index 7005180..6fe00ef 100644 --- a/en/examples/README.md +++ b/en/examples/README.md @@ -1,6 +1,6 @@ # Examples -> **Tip** Information about *writing* example code is covered in the [Contributing > Writing Plugins](../contributing/plugins.md) (*plugin developers* should initially create [integration tests](../contributing/test.md#integration-tests) rather than examples for new code). +> **Tip** Information about *writing* example code is covered in the [Contributing > Writing Plugins](../contributing/plugins.md) (*plugin developers* should initially create [integration tests](../contributing/plugins.md#integration_tests) rather than examples for new code). This section contains examples showing how to use DroneCore. diff --git a/en/getting_started/faq.md b/en/getting_started/faq.md index e144ee1..beb3b44 100644 --- a/en/getting_started/faq.md +++ b/en/getting_started/faq.md @@ -28,7 +28,7 @@ libCURL will be required to download the camera definition file which is referen ### How are plugins added? -Plugins need to have the correct structure and be placed in the [plugins directory](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/plugins). It is also possible to add external plugins which are outside of the DroneCore tree. For instructions see the [build docs](../contributing/build.md#build-with-external-directory-for-plugins-and-custom-integration_tests). +Plugins need to have the correct structure and be placed in the [plugins directory](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/plugins). It is also possible to create [DroneCore Extensions](../guide/dronecore_extensions.md) that contain plugins outside of the DroneCore tree. ### Can a plugin depend on another one? diff --git a/en/guide/offboard.md b/en/guide/offboard.md index 3369271..5fcae15 100644 --- a/en/guide/offboard.md +++ b/en/guide/offboard.md @@ -20,7 +20,7 @@ Device &device = dc.device(); To use offboard mode you must first create a setpoint using either [set_velocity_ned()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a9e7f369a8f7459dc7705f4453a8c307d) or [set_velocity_body()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1ad9dc585be1bc2dba699cf089d4c274cc). You can use any setpoint you like - the vehicle will start acting on the current setpoint as soon as the mode starts. -After you have created a setpoint call [start()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a2b3aecd25645101a705cd1d80782311a) or [start_async()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a5dd9d18eedb0e4a8f1bbbeebf6f99aa8) to switch to offboard mode. +After you have created a setpoint call [start()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a658454f130f7b19d56f23347a448f1b9) or [start_async()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a5dd9d18eedb0e4a8f1bbbeebf6f99aa8) to switch to offboard mode. ```cpp // Create a setpoint before starting offboard mode (in this case a null setpoint) @@ -39,7 +39,7 @@ Above we use the synchronous API, and then use [Offboard::result_str()](../api_r You can change the setpoints as needed (new setpoints replace any old setpoints). -To stop offboard mode call [Offboard::stop()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a2cecfbeb40bcd1d314fcfb07eb4dcd60) or [stop_async()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1afbe6f50f63d3bc43acc4dfc2f797ca0a). +To stop offboard mode call [Offboard::stop()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1ae223c08f1ffc694b26d847cab7738406) or [stop_async()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1afbe6f50f63d3bc43acc4dfc2f797ca0a). DroneCore will then clear the current setpoint and put the vehicle into [Hold flight mode](https://docs.px4.io/en/flight_modes/hold.html). The synchronous API is used as shown below: diff --git a/en/guide/telemetry.md b/en/guide/telemetry.md index 3ab129c..c5c1cab 100644 --- a/en/guide/telemetry.md +++ b/en/guide/telemetry.md @@ -12,7 +12,7 @@ The `Telemetry` API provides methods to return the following types of informatio * [Position](../api_reference/structdronecore_1_1_telemetry_1_1_position.md) - latitude and longitude in degrees, and altitude relative to sea level and to the takeoff altitude. * [Battery](../api_reference/structdronecore_1_1_telemetry_1_1_battery.md) - voltage and percentage power remaining. -* [GroundSpeedNED](http://localhost:4000/en/api_reference/structdronecore_1_1_telemetry_1_1_ground_speed_n_e_d.md) - velocity components in NED coordinates. +* [GroundSpeedNED](../api_reference/structdronecore_1_1_telemetry_1_1_ground_speed_n_e_d.md) - velocity components in NED coordinates. * Vehicle attitude/orientation - as a [Quaternion](../api_reference/structdronecore_1_1_telemetry_1_1_quaternion.md) or [EulerAngle](../api_reference/structdronecore_1_1_telemetry_1_1_euler_angle.md) * [GPSInfo](../api_reference/structdronecore_1_1_telemetry_1_1_g_p_s_info.md) - type of fix, if any, and number of satellites. * [Health](../api_reference/structdronecore_1_1_telemetry_1_1_health.md) - calibration status of various sensors and confirmation that position estimates are good enough for position control. From f47e8f854367f18623449c616c9a1c6fbfb53db4 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 7 Nov 2017 14:57:40 +1100 Subject: [PATCH 019/107] Hide known-good link errors --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index a2d01e9..ee2c758 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ install: script: -- htmlproofer ./_book --empty-alt-ignore true --check-external-hash true +- htmlproofer ./_book --empty-alt-ignore true --check-external-hash true --url-ignore https://img.shields.io/badge/discuss-DroneCore-ff69b4.svg,https://grpc.io/ From b5fda8940bed822c2256e1e4664c76876f4f49ca Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 7 Nov 2017 15:01:03 +1100 Subject: [PATCH 020/107] Fix multiple url ignore syntax in travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ee2c758..754b949 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ install: script: -- htmlproofer ./_book --empty-alt-ignore true --check-external-hash true --url-ignore https://img.shields.io/badge/discuss-DroneCore-ff69b4.svg,https://grpc.io/ +- htmlproofer ./_book --empty-alt-ignore true --check-external-hash true --url-ignore 'https://img.shields.io/badge/discuss-DroneCore-ff69b4.svg,https://grpc.io/' From dcc81937ebc88438cea9e70c395f52632c4c1bf3 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 9 Nov 2017 09:15:17 +1100 Subject: [PATCH 021/107] Add libtinyxml2-dev dependency to build instructions --- 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 75794be..668e6b4 100644 --- a/en/contributing/build.md +++ b/en/contributing/build.md @@ -23,7 +23,7 @@ To build the *DroneCore* C++ Library on Linux (or macOS after installing the [pr 1. First install the dependencies ```bash sudo apt-get update -y - sudo apt-get install cmake build-essential colordiff astyle git libcurl4-openssl-dev doxygen -y + sudo apt-get install cmake build-essential colordiff astyle git libcurl4-openssl-dev libtinyxml2-dev doxygen -y ``` > **Note** If the build reports a missing dependency, confirm that the set above matches the requirements in the [Dockerfile](https://github.com/dronecore/DroneCore/blob/master/Dockerfile). From 4dcd412abc72b448e9260f81f5922ea776e5262f Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 9 Nov 2017 17:30:38 +1100 Subject: [PATCH 022/107] First draft of updates for #51 --- en/contributing/build.md | 66 ++++++++------- en/examples/README.md | 14 ++-- en/examples/fly_mission.md | 26 +----- en/examples/offboard_velocity.md | 24 +----- en/examples/takeoff_and_land.md | 24 +----- en/guide/toolchain.md | 135 +++++++++---------------------- 6 files changed, 85 insertions(+), 204 deletions(-) diff --git a/en/contributing/build.md b/en/contributing/build.md index 75794be..298c3d0 100644 --- a/en/contributing/build.md +++ b/en/contributing/build.md @@ -1,8 +1,13 @@ # Building DroneCore from Source -To build all of DroneCore from source you will first need to build the C++ library, and then any wrappers. The instructions below show how. +This section explains how to [build](#build_dronecore_cpp) and [install](#install-artifacts) the DroneCore C++ library from source (both "natively" and in docker) for all our target platforms. It also shows how to build DroneCore with extensions and build the API Reference documentation. -## Build the C++ Library + +## Build the C++ Library {#build_dronecore_cpp} + +This section explains how to build the DroneCore C++ library from source, +along with its unit and integration tests. +Build artifacts are created in the **build** subdirectory. ### macOS {#mac-os-x} @@ -43,7 +48,7 @@ To build the *DroneCore* C++ Library on Linux (or macOS after installing the [pr BUILD_TYPE=Release make ``` -1. (Optionally) "Install" DroneCore [as described below](#install-artifacts). This is required in order to build DroneCore applications, but not to run DroneCore test code. +1. (Optionally) "Install" DroneCore [as described below](#install-artifacts). This is required in order to build [DroneCore C++ apps](../guide/toolchain.md), but not to run DroneCore test code. 1. (Optionally) Build the API Reference documentation by calling: ```sh @@ -82,37 +87,43 @@ To build the *DroneCore* C++ Library on Windows: cmake --build . --config Release ``` -1. (Optionally) "Install" DroneCore [as described below](#install-artifacts). This is required in order to build DroneCore applications, but not to run DroneCore test code. +1. (Optionally) "Install" DroneCore [as described below](#install-artifacts). This is required in order to build [Dronecore C++ apps](../guide/toolchain.md), but not to run DroneCore test code. ## Install DroneCore {#install-artifacts} -In order to *use* DroneCore your C++ applications need to be able locate the DroneCore libraries and header files (see [Building C++ Apps](../guide/toolchain.md)). You can either install these to standard system locations or locally within the DroneCore directory. - -> **Tip** The example code assumes that DroneCore is installed locally. The example **CMakeLists.txt** file can easily be modified to find the system-wide installation. +*Installing* builds DroneCore **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)). DroneCore supports installation system-wide (recommended) or locally within the DroneCore tree. +> **Warning** System-wide installation is not yet supported on Windows (see [#155](https://github.com/dronecore/DroneCore/issues/155)) so you will need to [install DroneCore locally](#dronecore_local_install). +> +> Windows gurus, we'd [love your help](../README.md#getting-help) to implement this). -### System-wide Install +### System-wide Install {#dronecore_system_wide_install} -Installing DroneCore system-wide means that the files you need to build your apps are always in the same place, and your build definition files can be simpler because they do not need to consider relative locations. +System-wide installation copies DroneCore to the standard system-wide locations for your platform (On Ubuntu Linux this is **/usr/local/**). -> **Warning** System-wide install is not (yet) supported on Windows. If you're a Windows guru, we'd [love your help](../README.md#getting-help) to set this up. +> **Warning** System-wide installation overwrites any previously installed version of DroneCore. -To install the files system-wide: +To install DroneCore system-wide: ```sh -make clean #REQUIRED! -sudo INSTALL_PREFIX=/usr/local make default install +sudo make clean #REQUIRED! +sudo default install ``` -> **Note** System-wide install overwrites standard install locations. If you already have DroneCore installed through some other mechanism it will be replaced! +> **Tip** The `sudo` command is required (above) in order to copy or remove files in system directories. + +### Local Install {#dronecore_local_install} -### Local Install +Local installation copies DroneCore headers/library to a user-specified location in the DroneCore directory. -On Linux/macOS the DroneCore headers and static library can be installed locally into the folder **DroneCore/install/** using: +On Linux/macOS use the `INSTALL_PREFIX` variable to specify a path relative to the **DroneCore/build/** folder +(or an absolute path). +For example, to install into the **DroneCore/install/** folder you would call: ```sh -make default install +make clean #REQUIRED! +INSTALL_PREFIX=../../install make default install ``` On Windows specify `--target install` when building, as shown: @@ -121,11 +132,6 @@ cmake --build . --target install ``` -### Using the Compiled C++ Library - -The [Building C++ Apps](../guide/toolchain.md) topic explains how use the library in C++ apps. - - ## Build for Android > **Tip** You must first build the C++ Library (as shown above). @@ -142,14 +148,14 @@ Also, you need to set these three environment variables: E.g. you can add the lines below to your .bashrc, (or .zshrc for zshell users, or .profile): -``` +```sh export NDK_ROOT=$HOME/Android/android-ndk-r13 export ANDROID_TOOLCHAIN_CMAKE=$HOME/Android/android-ndk-r13/build/cmake/android.toolchain.cmake export ANDROID_CMAKE_BIN=$HOME/Android/Sdk/cmake/3.6.3155560/bin/cmake ``` Then you build for all Android architectures: -``` +```sh make android install ``` @@ -160,13 +166,13 @@ make android install To build for real iOS devices on macOS: -``` +```sh make ios install ``` Build for the iOS simulator on macOS: -``` +```sh make ios_simulator install ``` @@ -245,9 +251,11 @@ You can also build the image yourself using the [Dockerfile](https://github.com/ ## Build DroneCore Extensions {#dronecore_extensions} -DroneCore can be extended with plugins and integration tests that are defined "out of tree". These are declared inside a parallel directory that is included into the DroneCore at compile time (by specifying `EXTERNAL_DIR` in the `make` command): +DroneCore can be extended with plugins and integration tests that are defined "out of tree". These are declared inside a parallel directory that is included into the DroneCore at compile time (by specifying `EXTERNAL_DIR` in the `make` command). + +The commands to build and install DroneCore with an extension library are: ``` -make clean # This is required! -make EXTERNAL_DIR=relative_path_to_external_directory +sudo make clean # This is required! +sudo make EXTERNAL_DIR=relative_path_to_external_directory default install ``` See [DroneCore Extensions](../guide/dronecore_extensions.md) for more information. diff --git a/en/examples/README.md b/en/examples/README.md index 6fe00ef..bf64c03 100644 --- a/en/examples/README.md +++ b/en/examples/README.md @@ -45,13 +45,12 @@ To build the examples follow the instructions below, replacing *takeoff_and_land #### Linux -First [Build and install the DroneCore C++ Library](../contributing/build.md). -Make sure that you install the library and headers locally (rather than system-wide) using the command below: +First [Build and install the DroneCore C++ Library](../contributing/build.md) using the command below: ```sh -make default install +sudo make default install ``` -Then build and run the example: +Then build the example: ```sh cd example/takeoff_and_land/ mkdir build && cd build @@ -62,13 +61,13 @@ make #### Windows First [Build and install the DroneCore C++ Library](../contributing/build.md). -Make sure that you install the library and headers in the standard location: +Make sure that you install the library and headers in the standard location: ```sh cmake --build . --target install ``` -Build and run the example as shown below (in this case *takeoff_and_land*, but all the other examples are built and run in the same way): +Build the example as shown below (in this case *takeoff_and_land*, but all the other examples are built in the same way): ```sh cd example/takeoff_land/ mkdir build && cd build @@ -84,4 +83,7 @@ On all platform you can then run the new executable (from the **\build** directo ./takeoff_and_land ``` +> **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, and you will be able to observe behaviour through the DroneCore terminal, SITL terminal, and/or *QGroundControl*. \ No newline at end of file diff --git a/en/examples/fly_mission.md b/en/examples/fly_mission.md index f1ef7ec..e7a9319 100644 --- a/en/examples/fly_mission.md +++ b/en/examples/fly_mission.md @@ -81,36 +81,14 @@ if(NOT MSVC) add_definitions("-std=c++11 -Wall -Wextra -Werror") else() add_definitions("-std=c++11 -WX -W2") - set(platform_libs "Ws2_32.lib") endif() -# Add DEBUG define for Debug target -set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG") - -# This finds thread libs on Linux, Mac, and Windows. -find_package(Threads REQUIRED) - -# Not needed if DroneCore installed system-wide -include_directories( - ${CMAKE_SOURCE_DIR}/../../install/include -) - add_executable(fly_mission fly_mission.cpp ) -# Not needed if DroneCore installed system-wide -if(WINDOWS) - set(dronecore_lib "${CMAKE_SOURCE_DIR}/../../install/lib/dronecore.lib") -else() - set(dronecore_lib "${CMAKE_SOURCE_DIR}/../../install/lib/libdronecore.a") -endif() - target_link_libraries(fly_mission - ${dronecore_lib} # Remove/comment out this line if DroneCore used locally - # dronecore # Uncomment/add this line if DroneCore installed system-wide - ${CMAKE_THREAD_LIBS_INIT} - ${platform_libs} + dronecore ) ``` @@ -205,7 +183,7 @@ int main(int /*argc*/, char ** /*argv*/) mission_items.push_back( add_mission_item(47.398139363821485, 8.5453846156597137, 10.0f, 5.0f, true, - -46.0f, 0.0f, + -45.0f, 0.0f, MissionItem::CameraAction::START_VIDEO)); mission_items.push_back( diff --git a/en/examples/offboard_velocity.md b/en/examples/offboard_velocity.md index 41c30b8..9167072 100644 --- a/en/examples/offboard_velocity.md +++ b/en/examples/offboard_velocity.md @@ -68,36 +68,14 @@ if(NOT MSVC) add_definitions("-std=c++11 -Wall -Wextra -Werror") else() add_definitions("-std=c++11 -WX -W2") - set(platform_libs "Ws2_32.lib") endif() -# Add DEBUG define for Debug target -set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG") - -# This finds thread libs on Linux, Mac, and Windows. -find_package(Threads REQUIRED) - -# Not needed if DroneCore installed system-wide -include_directories( - ${CMAKE_SOURCE_DIR}/../../install/include -) - add_executable(offboard offboard_velocity.cpp ) -# Not needed if DroneCore installed system-wide -if(WINDOWS) - set(dronecore_lib "${CMAKE_SOURCE_DIR}/../../install/lib/dronecore.lib") -else() - set(dronecore_lib "${CMAKE_SOURCE_DIR}/../../install/lib/libdronecore.a") -endif() - target_link_libraries(offboard - ${dronecore_lib} # Remove/comment out this line if DroneCore used locally - # dronecore # Uncomment/add this line if DroneCore installed system-wide - ${CMAKE_THREAD_LIBS_INIT} - ${platform_libs} + dronecore ) ``` diff --git a/en/examples/takeoff_and_land.md b/en/examples/takeoff_and_land.md index 7b931ae..7c6c461 100644 --- a/en/examples/takeoff_and_land.md +++ b/en/examples/takeoff_and_land.md @@ -53,36 +53,14 @@ if(NOT MSVC) add_definitions("-std=c++11 -Wall -Wextra -Werror") else() add_definitions("-std=c++11 -WX -W2") - set(platform_libs "Ws2_32.lib") endif() -# Add DEBUG define for Debug target -set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG") - -# This finds thread libs on Linux, Mac, and Windows. -find_package(Threads REQUIRED) - -# Not needed if DroneCore installed system-wide -include_directories( - ${CMAKE_SOURCE_DIR}/../../install/include -) - add_executable(takeoff_and_land takeoff_and_land.cpp ) -# Not needed if DroneCore installed system-wide -if(WINDOWS) - set(dronecore_lib "${CMAKE_SOURCE_DIR}/../../install/lib/dronecore.lib") -else() - set(dronecore_lib "${CMAKE_SOURCE_DIR}/../../install/lib/libdronecore.a") -endif() - target_link_libraries(takeoff_and_land - ${dronecore_lib} # Remove/comment out this line if DroneCore used locally - # dronecore # Uncomment/add this line if DroneCore installed system-wide - ${CMAKE_THREAD_LIBS_INIT} - ${platform_libs} + dronecore ) ``` diff --git a/en/guide/toolchain.md b/en/guide/toolchain.md index ca97596..b4312b3 100644 --- a/en/guide/toolchain.md +++ b/en/guide/toolchain.md @@ -1,10 +1,10 @@ # Building C++ DroneCore Apps -DroneCore C++ apps are written in standard C++ (c++11) and can be built using your preferred build system, compiler and linker toolchain. The only requirements are: -- The build system must be able to locate the DroneCore headers and libraries (installed as described [here](../contributing/build.md#install-artifacts)). -- When using DroneCore you need to link to a thread library (e.g. *pthread* on a POSIX system). +DroneCore C++ apps are written in standard C++ (c++11) and can be built using your preferred build system, compiler and linker toolchain. +The only requirement is that the build system must be able to locate the DroneCore headers and libraries (installed as described [here](../contributing/build.md#install-artifacts)). -DroneCore itself uses the [cmake](https://cmake.org/) build system, and we recommend that you do too. CMake is an open-source, cross-platform toolchain that allows you to build your examples on macOS, Linux and Windows using the same build file definition. +DroneCore itself uses the [cmake](https://cmake.org/) build system, and we recommend that you do too. +*CMake* is an open-source, cross-platform toolchain that allows you to build your examples on macOS, Linux and Windows using the same build file definition. Below we explain how to set up a minimal build setup (**CMakeLists.txt**) file for your application. @@ -13,85 +13,80 @@ Below we explain how to set up a minimal build setup (**CMakeLists.txt**) file f *Cmake* uses a definition file named **CMakeLists.txt** to define the project. This specifies the name of the project, compiler flags for different platforms and targets, where to find dependencies (libraries and header files), source files to build, and the name of the generated binary. **CMakeLists.txt** is typically stored in the root directory of your app project. -The sections below show how you can set up the file for when DroneCore is installed system-wide or locally. +The sections below show how you can set up the file for when DroneCore is [installed system wide](../contributing/build.md#dronecore_system_wide_install) (the default) or [locally](../contributing/build.md#dronecore_local_install). +> **Warning** DroneCore system-wide installation is not yet supported on Windows (see [#155](https://github.com/dronecore/DroneCore/issues/155)). Instead build the app using a [local DroneCore installation](#dronecore_installed_locally). +> +> Windows gurus, we'd [love your help](../README.md#getting-help) to implement this). -### DroneCore Installed System-wide -> **Warning** System-wide install is not (yet) supported on Windows (if you're a Windows guru, we'd [love your help](../README.md#getting-help) to implement this). You will have to use install locally as shown in the following section. +### DroneCore Installed System-wide {#dronecore_installed_system} -A "template" **CMakeLists.txt** is shown below. Almost all of the above file is boilerplate - the only things you need to change are *your_project_name*, *your_executable_name* and *your_source_file*. +A "template" **CMakeLists.txt** is shown below. Most of file is boilerplate - the only things you need to change are *your_project_name*, *your_executable_name* and *your_source_file*. ```cmake cmake_minimum_required(VERSION 2.8.12) + +## Specify your project's name project(your_project_name) -# Add platform/compiler specific flags +# Enable strict handling of warnings if(NOT MSVC) add_definitions("-std=c++11 -Wall -Wextra -Werror") else() add_definitions("-std=c++11 -WX -W2") - set(platform_libs "Ws2_32.lib") endif() -# Add DEBUG define for Debug target -set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG") - -# This finds thread libs on Linux, Mac, and Windows. -find_package(Threads REQUIRED) - -# Specify your binary name, and list of source files used to create it. +# Specify your app's executable name, and list of source files used to create it. add_executable(your_executable_name your_source_file.cpp + # ... any other source files ) +# Specify your app's executable name and a list of linked libraries target_link_libraries(your_executable_name - dronecore # Link against library named dronecore in standard install location - ${CMAKE_THREAD_LIBS_INIT} # Link against thread library found using find_package() - ${platform_libs} # Variable containing all libraries that to link against for this platform (e.g. pthread). + dronecore #All apps link against dronecore library + # ... any other linked libraries ) ``` -> **Tip** The make file can be so minimal because the `target_link_libraries()` function has the `dronecore` line, which tells *cmake* that DroneCore's library and headers are in the standard location. +> **Note** The file format and required modifications are self-explanatory. +> If additional information is required see the [cmake documentation](https://cmake.org/cmake/help/latest/manual/cmake-commands.7.html). -We'll explain some of it in the next section. +### DroneCore Installed Locally {#dronecore_local_install} -### DroneCore Installed Locally +> **Tip** Where possible install Dronecore [system wide](../contributing/build.md#dronecore_system_wide_install) and follow the instructions in the [previous section](#dronecore_installed_system). -The **CMakeLists.txt** is more complicated when DroneCore is installed locally, because you need to specify where the build should find both headers and library files. +**CMakeLists.txt** is more complicated when DroneCore is [installed locally](../contributing/build.md#dronecore_local_install), because you need to specify where the build should find both headers and library files. The example file below assumes that DroneCore was installed locally into the directory **/install/**. The new lines are marked up using `# >>> ADDED` comments below. You have to change the same information as before: *your_project_name*, *your_executable_name* and *your_source_file*. You may also need to change the location of the headers/library files, depending on where your application is hosted relative to the **DroneCore** project root directory (this example assumes that your application is nested two levels deep, just like our example code). ```cmake cmake_minimum_required(VERSION 2.8.12) + +## Specify your project's name project(your_project_name) -# Add platform/compiler specific flags +# Enable strict handling of warnings if(NOT MSVC) add_definitions("-std=c++11 -Wall -Wextra -Werror") else() add_definitions("-std=c++11 -WX -W2") - set(platform_libs "Ws2_32.lib") endif() -# Add DEBUG define for Debug target -set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG") - -# This finds thread libs on Linux, Mac, and Windows. -find_package(Threads REQUIRED) - -# >>> ADDED +# >>> # Specify include directories include_directories( # Not needed if installed system-wide ${CMAKE_SOURCE_DIR}/../../install/include ) -# <<< +# >>> -# Specify your binary name, and list of source files used to create it. +# Specify your app's executable name, and list of source files used to create it. add_executable(your_executable_name your_source_file.cpp + # ... any other source files ) # >>> ADDED @@ -99,78 +94,20 @@ add_executable(your_executable_name if(WINDOWS) set(dronecore_lib "${CMAKE_SOURCE_DIR}/../../install/lib/dronecore.lib") else() - set(dronecore_lib "${CMAKE_SOURCE_DIR}/../../install/lib/libdronecore.a") + set(dronecore_lib "${CMAKE_SOURCE_DIR}/../../install/lib/libdronecore.so") endif() # <<< +# Specify your app's executable name and a list of linked libraries target_link_libraries(your_executable_name + # dronecore #Note, this is now commented out or removed + # >>> ADDED - # Add 'dronecore_lib' variable defining where the dronecore library can be found. + # Add 'dronecore_lib' variable defining where the DroneCore library can be found. ${dronecore_lib} # dronecore # Link against library named dronecore in standard install location # <<< - ${CMAKE_THREAD_LIBS_INIT} # Link against thread library found using find_package() - ${platform_libs} # Variable containing all libraries that to link against for this platform (e.g. pthread). -) -``` - - -The main elements of the file are described below: - -1. The first two lines of the file should specify the minimum compatible version of *cmake* and *your* project's name. - ```cmake - cmake_minimum_required(VERSION 2.8.12) - project(your_project_name) - ``` -1. The [add_definitions()](https://cmake.org/cmake/help/latest/command/add_definitions.html) and [set()](https://cmake.org/cmake/help/latest/command/set.html) are used to the define flags that are used in compilation on different platforms. In this case we enable strict handling of warnings and an MSVC specific library. - ```cmake - if(NOT MSVC) - add_definitions("-std=c++11 -Wall -Wextra -Werror") - else() - add_definitions("-std=c++11 -WX -W2") - set(platform_libs "Ws2_32.lib") - endif() - - # Add DEBUG define for Debug target - set(CMAKE_CXX_FLAGS_DEBUG "-DDEBUG") - ``` -1. The [find_package()](https://cmake.org/cmake/help/latest/command/find_package.html) command tells *cmake* to find a thread library on Linux, macOS, and Windows. Further down we add the found package to the libraries built into the project (see `${CMAKE_THREAD_LIBS_INIT}`): - ```cmake - find_package(Threads REQUIRED) - ``` - This is required in order to use DroneCore! - -1. The [include_directories()](https://cmake.org/cmake/help/latest/command/include_directories.html) tells *cmake* where to find locally installed header files (if DroneCore is installed globally this is not required). - ```cmake - include_directories( - # Not needed if installed system-wide - ${CMAKE_SOURCE_DIR}/../../install/include - ) - ``` - - > **Note** `CMAKE_SOURCE_DIR` is the directory in which **CMakeLists.txt** is stored, and provides a useful way of defining relative paths to the header files. This example assumes that your application is nested two levels deep, in order to access the include files installed locally to: **/Dronecore/install/include**. -1. The [add_executable()](https://cmake.org/cmake/help/latest/command/add_executable.html) command specifies the name for your generated executable and your source file(s). - ```cmake - add_executable(your_executable_name - your_source_file.cpp - ) - ``` -1. Here we define a variable for the location of the DroneCore library, depending on platform. As for the include files, this requires a relative path (to **DroneCore/install/lib/*). This is then used in the next step. - ```cmake - if(WINDOWS) - set(dronecore_lib "${CMAKE_SOURCE_DIR}/../../install/lib/dronecore.lib") - else() - set(dronecore_lib "${CMAKE_SOURCE_DIR}/../../install/lib/libdronecore.a") - endif() - ``` -1. The [target_link_libraries()](https://cmake.org/cmake/help/latest/command/target_link_libraries.html) command defines the libraries that your executable (`your_executable_name`) will link against. Here we use the `${dronecore_lib}` variable defined above. We comment out the `dronecore`, because the two definitions for libraries conflict. -```cmake -target_link_libraries(your_executable_name - ${dronecore_lib} - # If installed system-wide: - # dronecore - ${CMAKE_THREAD_LIBS_INIT} # Link against thread library found using find_package() - ${platform_libs} # Variable containing all libraries that to link against for this platform (e.g. pthread). + # ... any other linked libraries ) ``` From fd7ff91ed20b2c26ccf47f41d1b8ee555d30ee1d Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 13 Nov 2017 12:55:35 +1100 Subject: [PATCH 023/107] Fix bugs highlighted by julian --- en/contributing/build.md | 10 +++++---- en/examples/README.md | 2 ++ en/guide/dronecore_extensions.md | 13 +++++------- en/guide/toolchain.md | 36 +++++++++++++++++--------------- 4 files changed, 32 insertions(+), 29 deletions(-) diff --git a/en/contributing/build.md b/en/contributing/build.md index a240b69..367bac9 100644 --- a/en/contributing/build.md +++ b/en/contributing/build.md @@ -107,11 +107,12 @@ System-wide installation copies DroneCore to the standard system-wide locations To install DroneCore system-wide: ```sh -sudo make clean #REQUIRED! +make clean #REQUIRED! +make default sudo default install ``` -> **Tip** The `sudo` command is required (above) in order to copy or remove files in system directories. +> **Tip** The `sudo` command is required (above) in order to install files to system directories. ### Local Install {#dronecore_local_install} @@ -255,7 +256,8 @@ DroneCore can be extended with plugins and integration tests that are defined "o The commands to build and install DroneCore with an extension library are: ``` -sudo make clean # This is required! -sudo make EXTERNAL_DIR=relative_path_to_external_directory default install +make clean # This is required! +make default EXTERNAL_DIR=relative_path_to_external_directory +sudo make default install ``` See [DroneCore Extensions](../guide/dronecore_extensions.md) for more information. diff --git a/en/examples/README.md b/en/examples/README.md index bf64c03..7da2b6c 100644 --- a/en/examples/README.md +++ b/en/examples/README.md @@ -47,6 +47,8 @@ To build the examples follow the instructions below, replacing *takeoff_and_land First [Build and install the DroneCore C++ Library](../contributing/build.md) using the command below: ```sh +make clean +made default sudo make default install ``` diff --git a/en/guide/dronecore_extensions.md b/en/guide/dronecore_extensions.md index d4e77e4..d6b18a0 100644 --- a/en/guide/dronecore_extensions.md +++ b/en/guide/dronecore_extensions.md @@ -74,20 +74,17 @@ Tests in extension libraries are written and run exactly the same as "normal" Dr To build *DroneCore* so that it includes the extension library, specify the top level directory `EXTERNAL_DIR` in the `make` command (only one external directory can be specified). -The line below shows how this is done for the [external_example](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/external_example) directory. -``` -make clean # This is required! -make EXTERNAL_DIR=external_example -``` - -To build a parallel *DroneCore_Extensions* folder (from within the DroneCore directory) you would enter: +To build and install a parallel *DroneCore_Extensions* folder (from within the DroneCore directory) you would enter: ``` make clean # This is required! -make EXTERNAL_DIR=../DroneCore_Extensions +make default EXTERNAL_DIR=../DroneCore_Extensions +sudo make default install # sudo needed to install files into system directories. ``` +> **Tip** You can test this by copying the [DroneCore/external_example](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/external_example) directory as a peer of **DroneCore** and renaming it to *DroneCore_Extensions*. + +## Downloading Missions + +Use [Mission::download_mission_async()](../api_reference/classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a1bd15f508fe7da39b587a8e4d5e59ae2) to download a mission from the vehicle. The mission is downloaded as a vector of [MissionItem](../api_reference/classdronecore_1_1_mission_item.md) objects, that you can then view or manipulate as required. + +> **Note** Mission download will fail if the mission contains a command that is outside the [supported set](#supported_mission_commands). +> Missions created using *QGroundControl* are not guaranteed to successfully download! + +The example below shows how to download a mission: + +```cpp +// TBD +``` + ## Further Information From 6693ef1b0da365f1d72d5126d0a1d6a8c4b966b9 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 13 Nov 2017 21:12:51 +1100 Subject: [PATCH 025/107] Mission apiref updates --- en/api_reference/classdronecore_1_1_mission.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/en/api_reference/classdronecore_1_1_mission.md b/en/api_reference/classdronecore_1_1_mission.md index 01aed22..df357bf 100644 --- a/en/api_reference/classdronecore_1_1_mission.md +++ b/en/api_reference/classdronecore_1_1_mission.md @@ -14,7 +14,7 @@ Type | Description --- | --- enum [Result](#classdronecore_1_1_mission_1a529b17f5b63508494ca22fc247598cda) | Possible results returned for mission requests. std::function< void([Result](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a529b17f5b63508494ca22fc247598cda))> [result_callback_t](#classdronecore_1_1_mission_1a239f8d5853785d6ccf90c8c48b5ccf06) | Callback type for async mission calls. -std::function< void([Result](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a529b17f5b63508494ca22fc247598cda), std::vector< std::shared_ptr< [MissionItem](classdronecore_1_1_mission_item.md) > >)> [mission_items_and_result_callback_t](#classdronecore_1_1_mission_1a7cb36c0356a867e90f3c4c764d424d32) | Callback type for `download_mission_async` call to get mission items and result. +std::function< void([Result](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a529b17f5b63508494ca22fc247598cda), std::vector< std::shared_ptr< [MissionItem](classdronecore_1_1_mission_item.md) > >)> [mission_items_and_result_callback_t](#classdronecore_1_1_mission_1a7cb36c0356a867e90f3c4c764d424d32) | Callback type for [download_mission_async()](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a1bd15f508fe7da39b587a8e4d5e59ae2) call to get mission items and result. std::function< void(int current, int total)> [progress_callback_t](#classdronecore_1_1_mission_1aeda7795cd898008afc05b779f99b704b) | Callback type to receive mission progress. ## Public Member Functions @@ -102,7 +102,7 @@ typedef std::function >)> ``` -Callback type for `download_mission_async` call to get mission items and result. +Callback type for [download_mission_async()](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a1bd15f508fe7da39b587a8e4d5e59ae2) call to get mission items and result. ### typedef progress_callback_t {#classdronecore_1_1_mission_1aeda7795cd898008afc05b779f99b704b} @@ -168,7 +168,7 @@ void dronecore::Mission::download_mission_async(mission_items_and_result_callbac Downloads a vector of mission items from the device (asynchronous). -The mission items are downloaded from a drone. +The method will fail if any of the downloaded mission items are not supported by the [DroneCore](classdronecore_1_1_drone_core.md) API. **Parameters** @@ -182,7 +182,7 @@ void dronecore::Mission::start_mission_async(result_callback_t callback) Starts the mission (asynchronous). -Note that the mission must be uplaoded to the vehicle using [upload_mission_async()](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a414b5b6d0c66af695a725e92003872b5) before this method is called. +Note that the mission must be uploaded to the vehicle using [upload_mission_async()](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a414b5b6d0c66af695a725e92003872b5) before this method is called. **Parameters** @@ -196,7 +196,7 @@ void dronecore::Mission::pause_mission_async(result_callback_t callback) Pauses the mission (asynchronous). -Pausing the mission puts the vehicle into HOLD mode (See [https://docs.px4.io/en/flight_modes/hold.html](https://docs.px4.io/en/flight_modes/hold.html)). A multicopter should just hover at the spot while a fixedwing vehicle should loiter around the location where it paused. +Pausing the mission puts the vehicle into [HOLD mode](https://docs.px4.io/en/flight_modes/hold.html). A multicopter should just hover at the spot while a fixedwing vehicle should loiter around the location where it paused. **Parameters** @@ -213,7 +213,7 @@ Sets the mission item index to go to (asynchronous). By setting the current index to 0, the mission is restarted from the beginning. If it is set to a specific index of a mission item, the mission will be set to this item. -Note that this is not necessarily true for general missions using mavlink if loop counters are used. +Note that this is not necessarily true for general missions using MAVLink if loop counters are used. **Parameters** From 01d6d4dd8ac533467cbc5890f59b7f3fc3ecb5f2 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 14 Nov 2017 09:46:23 +1100 Subject: [PATCH 026/107] Add download mission example code --- en/guide/missions.md | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/en/guide/missions.md b/en/guide/missions.md index 27980f6..027824d 100644 --- a/en/guide/missions.md +++ b/en/guide/missions.md @@ -218,10 +218,41 @@ Use [Mission::download_mission_async()](../api_reference/classdronecore_1_1_miss > **Note** Mission download will fail if the mission contains a command that is outside the [supported set](#supported_mission_commands). > Missions created using *QGroundControl* are not guaranteed to successfully download! -The example below shows how to download a mission: +The code fragment below shows how to download a mission: ```cpp -// TBD +{ + std::cout << "Downloading mission." << std::endl; + + // Wrap download_mission_async() function using std::future. + struct PromiseResult { + Mission::Result mission_result; + std::vector> mission_items; + }; + + auto prom = std::make_shared>(); + auto future = prom->get_future(); + + device.mission().download_mission_async( + [prom](Mission::Result result, std::vector> mission_items_downloaded) { + PromiseResult promise_result {}; + promise_result.mission_result = result; + promise_result.mission_items = mission_items_downloaded; + prom->set_value(promise_result); + }); + + PromiseResult promise_result = future.get(); + + if (promise_result.mission_result != Mission::Result::SUCCESS) { + std::cout << "Mission download failed (" << Mission::result_str(promise_result.mission_result) + << "), exiting." << std::endl; + return 1; + } + + std::cout << "Mission downloaded (MissionItems: " + << promise_result.mission_items.size() + << ")" << std::endl; +} ``` From e93431589906ec302b7e053d7e082622706ad722 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 14 Nov 2017 09:48:04 +1100 Subject: [PATCH 027/107] Remove params to MAV_CMD_IMAGE_START_CAPTURE --- en/guide/missions.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/en/guide/missions.md b/en/guide/missions.md index 027824d..60bf2cc 100644 --- a/en/guide/missions.md +++ b/en/guide/missions.md @@ -14,8 +14,6 @@ The supported set is: * [MAV_CMD_DO_CHANGE_SPEED](http://mavlink.org/messages/common#MAV_CMD_DO_CHANGE_SPEED) * [MAV_CMD_DO_MOUNT_CONTROL](http://mavlink.org/messages/common#MAV_CMD_DO_MOUNT_CONTROL) * [MAV_CMD_IMAGE_START_CAPTURE](http://mavlink.org/messages/common#MAV_CMD_IMAGE_START_CAPTURE) -* [START_PHOTO_INTERVAL](http://mavlink.org/messages/common#START_PHOTO_INTERVAL) -* [TAKE_PHOTO](http://mavlink.org/messages/common#TAKE_PHOTO) * [MAV_CMD_IMAGE_STOP_CAPTURE](http://mavlink.org/messages/common#MAV_CMD_IMAGE_STOP_CAPTURE) * [MAV_CMD_VIDEO_START_CAPTURE](http://mavlink.org/messages/common#MAV_CMD_VIDEO_START_CAPTURE) * [MAV_CMD_VIDEO_STOP_CAPTURE](http://mavlink.org/messages/common#MAV_CMD_VIDEO_STOP_CAPTURE) From 379796d5a8472b8a0bb51d17b666058820ca03e8 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 14 Nov 2017 11:21:18 +1100 Subject: [PATCH 028/107] Clarify how to fix issue when shared library not found --- en/contributing/build.md | 11 ++++++++--- en/examples/README.md | 19 ++++++++++++++++++- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/en/contributing/build.md b/en/contributing/build.md index 367bac9..81f9663 100644 --- a/en/contributing/build.md +++ b/en/contributing/build.md @@ -92,7 +92,7 @@ To build the *DroneCore* C++ Library on Windows: ## Install DroneCore {#install-artifacts} -*Installing* builds DroneCore **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)). DroneCore supports installation system-wide (recommended) or locally within the DroneCore tree. +*Installing* builds DroneCore **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)). DroneCore supports installation system-wide by default. You can also install files locally/relative to the DroneCore tree if needed. > **Warning** System-wide installation is not yet supported on Windows (see [#155](https://github.com/dronecore/DroneCore/issues/155)) so you will need to [install DroneCore locally](#dronecore_local_install). > @@ -109,10 +109,15 @@ To install DroneCore system-wide: ```sh make clean #REQUIRED! make default -sudo default install +sudo make default install #sudo required to install files to system directories! ``` -> **Tip** The `sudo` command is required (above) in order to install files to system directories. +> **Tip** The first time you build DroneCore you may also need to [update the linker cache](http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html). +> On Ubuntu call the following: + ``` + sudo ldconfig + ``` + ### Local Install {#dronecore_local_install} diff --git a/en/examples/README.md b/en/examples/README.md index 7da2b6c..46936a3 100644 --- a/en/examples/README.md +++ b/en/examples/README.md @@ -88,4 +88,21 @@ On all platform you can then run the new executable (from the **\build** directo > **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, and you will be able to observe behaviour through the DroneCore terminal, SITL terminal, and/or *QGroundControl*. \ No newline at end of file +If you have already started the simulation the example code should connect to PX4, and you will be able to observe behaviour through the DroneCore terminal, SITL terminal, and/or *QGroundControl*. + +## Troubleshooting + +### Linux: Error loading shared libraries + +The following error is raised when you run an application/example on Linux and the DroneCore shared library cannot be found: + +``` +error while loading shared libraries: libdronecore.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. On Ubuntu call the following: +``` +sudo ldconfig +``` + +For more information/other Linux flavours see [Linux Documentation > Shared Libraries](http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html). From f805e7b79ef2e4ccebee3b13e4cb70cb80c79451 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Wed, 15 Nov 2017 11:20:01 +1100 Subject: [PATCH 029/107] Add example terminal output using current develop branch --- en/examples/fly_mission.md | 44 ++++++++++++++++++++++++++++--- en/examples/offboard_velocity.md | 24 +++++++++-------- en/examples/takeoff_and_land.md | 45 +++++++++++++++++++------------- 3 files changed, 81 insertions(+), 32 deletions(-) diff --git a/en/examples/fly_mission.md b/en/examples/fly_mission.md index e7a9319..72c5e20 100644 --- a/en/examples/fly_mission.md +++ b/en/examples/fly_mission.md @@ -7,15 +7,18 @@ This example shows how to create, upload, and run, pause, and restart missions u ## Running the Example {#run_example} -The example is built and run [as described here](/examples/README.md#trying_the_examples) (the standard way). +The example is built and run [as described here](../examples/README.md#trying_the_examples) (the standard way). The example terminal output should be similar to that shown below: -> **Note** This is for a release build of DroneCore. A debug build will display additional information from DroneCore. +> **Note** This is from a debug build of DroneCore. A release build will omit the "Debug" messages. ``` $ ./fly_mission Waiting to discover device... +[03:42:51|Info ] New device on: 127.0.0.1:14557 (udp_connection.cpp:210) +[03:42:51|Debug] MAVLink: info: [logger] file: rootfs/fs/microsd/log/2017-11-14/2 (device_impl.cpp:225) +[03:42:51|Debug] Discovered 4294967298 (dronecore_impl.cpp:234) Discovered device with UUID: 4294967298 Waiting for device to be ready ... @@ -23,11 +26,39 @@ Waiting for device to be ready Device ready Creating and uploading mission Uploading mission... +[03:43:07|Debug] Send mission item 0 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 1 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 2 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 3 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 4 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 5 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 6 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 7 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 8 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 9 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 10 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 11 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 12 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 13 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 14 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 15 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 16 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 17 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 18 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 19 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 20 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 21 (mission_impl.cpp:712) +[03:43:07|Debug] Send mission item 22 (mission_impl.cpp:712) +[03:43:07|Info ] Mission accepted (mission_impl.cpp:136) Mission uploaded. Arming... +[03:43:07|Debug] MAVLink: info: ARMED by arm/disarm component command (device_impl.cpp:225) Armed. Starting mission. Started mission. +[03:43:07|Debug] MAVLink: info: Executing mission. (device_impl.cpp:225) +[03:43:07|Debug] MAVLink: info: Takeoff to 10.0 meters above home. (device_impl.cpp:225) +[03:43:07|Debug] MAVLink: info: Takeoff detected (device_impl.cpp:225) Mission status update: 0 / 6 Mission status update: 0 / 6 Mission status update: 1 / 6 @@ -53,12 +84,19 @@ Mission status update: 4 / 6 Mission status update: 5 / 6 Mission status update: 5 / 6 Mission status update: 5 / 6 +Mission status update: 5 / 6 +[03:44:10|Debug] MAVLink: info: Mission finished, loitering. (device_impl.cpp:225) Mission status update: 6 / 6 Commanding RTL... Commanded RTL. +[03:44:10|Debug] MAVLink: info: RTL: return at 498 m (10 m above home) (device_impl.cpp:225) +[03:44:18|Debug] MAVLink: info: RTL: descend to 493 m (5 m above home) (device_impl.cpp:225) +[03:44:22|Debug] MAVLink: info: RTL: loiter 5.0s (device_impl.cpp:225) +[03:44:27|Debug] MAVLink: info: RTL: land at home (device_impl.cpp:225) +[03:44:40|Debug] MAVLink: info: Landing detected (device_impl.cpp:225) +[03:44:43|Debug] MAVLink: info: DISARMED by auto disarm on land (device_impl.cpp:225) Mission status update: 6 / 6 Disarmed, exiting. -... ``` ## How it works diff --git a/en/examples/offboard_velocity.md b/en/examples/offboard_velocity.md index 9167072..8f45721 100644 --- a/en/examples/offboard_velocity.md +++ b/en/examples/offboard_velocity.md @@ -7,32 +7,34 @@ This example shows how to how to control a vehicle in *Offboard mode* using velo ## Running the Example {#run_example} -The example is built and run [as described here](/examples/README.md#trying_the_examples) (the standard way). +The example is built and run [as described here](../examples/README.md#trying_the_examples) (the standard way). The example terminal output should be similar to that shown below: -> **Note** This is for a debug build of DroneCore. +> **Note** This is from a debug build of DroneCore. A release build will omit the "Debug" messages. ``` $ ./offboard +ubuntu@ubuntu:~/DroneCore/example/offboard_velocity/build$ ./offboard Wait for device to connect via heartbeat -[05:58:02|Info ] New device on: 127.0.0.1:14557 (udp_connection.cpp:210) -[05:58:02|Debug] MAVLink: info: [logger] file: rootfs/fs/microsd/log/2017-10-31/0 (device_impl.cpp:223) -[05:58:03|Debug] Discovered 4294967298 (dronecore_impl.cpp:234) +[03:48:52|Info ] New device on: 127.0.0.1:14557 (udp_connection.cpp:210) +[03:48:52|Debug] MAVLink: info: [logger] file: rootfs/fs/microsd/log/2017-11-14/2 (device_impl.cpp:225) +[03:48:53|Debug] Discovered 4294967298 (dronecore_impl.cpp:234) +Waiting for device to be ready +... Waiting for device to be ready Device is ready -[05:58:04|Debug] MAVLink: info: ARMED by arm/disarm component command (device_impl.cpp:223) Armed +[03:49:07|Debug] MAVLink: info: ARMED by arm/disarm component command (device_impl.cpp:225) In Air... -[05:58:04|Debug] MAVLink: info: Using minimum takeoff altitude: 2.50 m (device_impl.cpp:223) -[05:58:04|Debug] MAVLink: info: Takeoff detected (device_impl.cpp:223) -[05:58:04|Debug] MAVLink: critical: Using minimum takeoff altitude: 2.50 m (device_impl.cpp:223) +[03:49:07|Debug] MAVLink: info: Using minimum takeoff altitude: 2.50 m (device_impl.cpp:225) +[03:49:07|Debug] MAVLink: info: Takeoff detected (device_impl.cpp:225) +[03:49:07|Debug] MAVLink: critical: Using minimum takeoff altitude: 2.50 m (device_impl.cpp:225) [NED] Offboard started [NED] Turn to face East [NED] Go North and back South [NED] Turn to face West [NED] Go up 2 m/s, turn to face South -[05:58:26|Debug] MAVLink: emergency: Accel #1 fail: TOUT! (device_impl.cpp:223) [NED] Go down 1 m/s, turn to face North [NED] Offboard stopped [BODY] Offboard started @@ -44,7 +46,7 @@ In Air... [BODY] Fly a circle sideways [BODY] Wait for a bit [BODY] Offboard stopped -[05:59:28|Debug] MAVLink: info: Landing at current position (device_impl.cpp:223) +[03:50:31|Debug] MAVLink: info: Landing at current position (device_impl.cpp:225) Landed ``` diff --git a/en/examples/takeoff_and_land.md b/en/examples/takeoff_and_land.md index 7c6c461..a67c760 100644 --- a/en/examples/takeoff_and_land.md +++ b/en/examples/takeoff_and_land.md @@ -8,32 +8,41 @@ It sets up a UDP connection, waits for a device to appear, arms it, and commands ## Running the Example {#run_example} -The example is built and run [as described here](/examples/README.md#trying_the_examples) (the standard way). +The example is built and run [as described here](../examples/README.md#trying_the_examples) (the standard way). + +The example terminal output should be similar to that shown below: + +> **Note** This is from a debug build of DroneCore. A release build will omit the "Debug" messages. -The example terminal output is: ```sh $ ./takeoff_and_land Waiting to discover device... -Partner IP: 127.0.0.1:14557 +[03:34:57|Info ] New device on: 127.0.0.1:14557 (udp_connection.cpp:210) +[03:34:57|Debug] Discovered 4294967298 (dronecore_impl.cpp:234) Discovered device with UUID: 4294967298 Arming... Taking off... -Altitude: -0.042 m -Altitude: 0.054 m -Altitude: 0.989 m -Altitude: 2.128 m -Altitude: 2.434 m -Altitude: 2.446 m -Altitude: 2.408 m -Altitude: 2.377 m -Altitude: 2.369 m -Altitude: 2.374 m +[03:34:59|Debug] MAVLink: info: ARMED by arm/disarm component command (device_impl.cpp:225) +[03:34:59|Debug] MAVLink: info: Using minimum takeoff altitude: 2.50 m (device_impl.cpp:225) +[03:34:59|Debug] MAVLink: info: Takeoff detected (device_impl.cpp:225) +[03:34:59|Debug] MAVLink: critical: Using minimum takeoff altitude: 2.50 m (device_impl.cpp:225) +Altitude: 0 m +Altitude: 1.381 m +Altitude: 2.283 m +Altitude: 2.519 m +Altitude: 2.55 m +Altitude: 2.53 m +Altitude: 2.508 m +Altitude: 2.491 m +Altitude: 2.479 m +Altitude: 2.471 m Landing... -Altitude: 1.758 m -Altitude: 0.782 m -Altitude: -0.068 m -Altitude: -0.441 m -Altitude: -0.573 m +[03:35:09|Debug] MAVLink: info: Landing at current position (device_impl.cpp:225) +Altitude: 2.321 m +Altitude: 1.587 m +Altitude: 0.813 m +Altitude: 0.025 m +Altitude: -0.483 m Finished... ``` From c82d7c1116f411f473a9d761110f6b10f31d2ce9 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 16 Nov 2017 20:48:50 +1100 Subject: [PATCH 030/107] Tidy windows build instructions --- en/guide/toolchain.md | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/en/guide/toolchain.md b/en/guide/toolchain.md index 95e575f..83aca7d 100644 --- a/en/guide/toolchain.md +++ b/en/guide/toolchain.md @@ -118,7 +118,7 @@ target_link_libraries(your_executable_name This section assumes that you have already [built and installed the DroneCore C++ Library](../contributing/build.md) and that your example has a **CMakeLists.txt** in its root directory. -To create and run the app: +To create and run the app on Linux/macOS: 1. First create a build directory and run *cmake*: ```bash cd /path/to/your/application/ # Open a prompt and navigate to your application @@ -126,22 +126,26 @@ To create and run the app: cmake .. # Create make files for your current platform ``` > **Tip** Make files for release binaries are created by default. Use the flag `-DCMAKE_BUILD_TYPE=Debug` to build debug binaries: - ``` - cmake -DCMAKE_BUILD_TYPE=Debug .. - ``` + ``` + cmake -DCMAKE_BUILD_TYPE=Debug .. + ``` 1. Build the project - * Linux/macOS: - ```bash - make -j8 - ``` - * Windows: - ```bash - cmake --build . - ``` + ```bash + make -j8 + ``` 1. Execute the file (in your build directory): - ```bash - ./your_executable_name # Run your new executable - ``` + ```bash + ./your_executable_name # Run your new executable + ``` + +On Windows the commands are: +```bash +cd /path/to/your/application/ # Open a prompt and navigate to your application +mkdir build && cd build # Create a build directory and navigate into it +cmake .. -G "Visual Studio 15 2017 Win64" # Create make files for your current platform +cmake --build . # Build the file +./your_executable_name # Run your new executable +``` ## Useful Links From 6a4d2eccdf078631df98feb4417f1e20f86aaecc Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Fri, 17 Nov 2017 10:16:21 +1100 Subject: [PATCH 031/107] Remove -j8 for apps. Suggest use VS prompt for Windows --- en/guide/toolchain.md | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/en/guide/toolchain.md b/en/guide/toolchain.md index 83aca7d..b61979b 100644 --- a/en/guide/toolchain.md +++ b/en/guide/toolchain.md @@ -131,21 +131,23 @@ To create and run the app on Linux/macOS: ``` 1. Build the project ```bash - make -j8 + make ``` 1. Execute the file (in your build directory): ```bash ./your_executable_name # Run your new executable ``` -On Windows the commands are: -```bash -cd /path/to/your/application/ # Open a prompt and navigate to your application -mkdir build && cd build # Create a build directory and navigate into it -cmake .. -G "Visual Studio 15 2017 Win64" # Create make files for your current platform -cmake --build . # Build the file -./your_executable_name # Run your new executable -``` +To create and run the app on Windows: +1. Open the *VS2015 x64 Native Tools Command Prompt*. +1. Navigate to the app source directory and enter the commands as shown below: + ```bash + cd /path/to/your/application/ # Open a prompt and navigate to your application + mkdir build && cd build # Create a build directory and navigate into it + cmake .. -G "Visual Studio 15 2017 Win64" # Create make files for your current platform + cmake --build . # Build the file + ./your_executable_name # Run your new executable + ``` ## Useful Links From d8b05414ab0b538bcebaeb164ce77ea71988becc Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Fri, 17 Nov 2017 17:34:02 +1100 Subject: [PATCH 032/107] Add VTOL api ref update to Action api --- en/api_reference/classdronecore_1_1_action.md | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/en/api_reference/classdronecore_1_1_action.md b/en/api_reference/classdronecore_1_1_action.md index b986f08..5f979c5 100644 --- a/en/api_reference/classdronecore_1_1_action.md +++ b/en/api_reference/classdronecore_1_1_action.md @@ -35,12 +35,16 @@ Type | Name | Description [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [takeoff](#classdronecore_1_1_action_1ae159c78b1a4056137187dc6e6d878539) () const | Send command to *take off and hover* (synchronous). [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [land](#classdronecore_1_1_action_1ad1a50dd7bff99d3099916576efbf8cf6) () const | Send command to *land* at the current position (synchronous). [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [return_to_launch](#classdronecore_1_1_action_1a9af73101ce850e37cf7259dcdeda2eb9) () const | Send command to *return to the launch* (takeoff) position and *land* (asynchronous). +[Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [transition_to_fixedwing](#classdronecore_1_1_action_1a6f40384be0ad61a29b6e2fd0a0c86754) () const | Send command to transition the drone to fixedwing. +[Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [transition_to_multicopter](#classdronecore_1_1_action_1a0088dbe4c715e2bfbe805b89d28add5a) () const | Send command to transition the drone to multicopter. void | [arm_async](#classdronecore_1_1_action_1a1a27165400d2a8419c2d96a1c0f2aa78) (result_callback_t callback) | Send command to *arm* the drone (asynchronous). void | [disarm_async](#classdronecore_1_1_action_1acc0a17411a25f5641ae21046b459e79e) (result_callback_t callback) | Send command to *disarm* the drone (asynchronous). void | [kill_async](#classdronecore_1_1_action_1a1d7d09191d9319c7912962b2dd02caa7) (result_callback_t callback) | Send command to *kill* the drone (asynchronous). void | [takeoff_async](#classdronecore_1_1_action_1a2aec10a2b14f5e82f05edc6e2feac83e) (result_callback_t callback) | Send command to *take off and hover* (asynchronous). void | [land_async](#classdronecore_1_1_action_1a7f10240cde2ff237795e3688802d857b) (result_callback_t callback) | Send command to *land* at the current position (asynchronous). void | [return_to_launch_async](#classdronecore_1_1_action_1aa1253c356c7628d329dfa98d78eb39ee) (result_callback_t callback) | Send command to *return to the launch* (takeoff) position and *land* (asynchronous). +void | [transition_to_fixedwing_async](#classdronecore_1_1_action_1af5b02f05ffdc2e0787a7633410710d9d) (result_callback_t callback) | Send command to transition the drone to fixedwing (asynchronous). +void | [transition_to_multicopter_async](#classdronecore_1_1_action_1a053aa7430852a4200b201abda1b3b3e4) (result_callback_t callback) | Send command to transition the drone to multicopter (asynchronous). void | [set_takeoff_altitude](#classdronecore_1_1_action_1adc6f7f6668d3681afa4d820095154c9d) (float relative_altitude_m) | Set takeoff altitude above ground. float | [get_takeoff_altitude_m](#classdronecore_1_1_action_1a1888deebcc48d906c3c19473596e6fec) () const | Get the takeoff altitude. void | [set_max_speed](#classdronecore_1_1_action_1abc27410a9b2a938b21ab59c5ef9ee941) (float speed_m_s) | Set vehicle maximum speed. @@ -125,6 +129,8 @@ Possible results returned for commanded actions. `COMMAND_DENIED_LANDED_STATE_UNKNOWN` | Command refused because landed state is unknown. `COMMAND_DENIED_NOT_LANDED` | Command refused because vehicle not landed. `TIMEOUT` | Timeout waiting for command acknowledgement from vehicle. + `VTOL_TRANSITION_SUPPORT_UNKNOWN` | hybrid/VTOL transition refused because VTOL support is unknown. + `NO_VTOL_TRANSITION_SUPPORT` | Vehicle does not support hybrid/VTOL transitions. `UNKNOWN` | Unspecified error. ## Member Function Documentation @@ -217,6 +223,34 @@ This switches the drone into [RTL mode](https://docs.px4.io/en/flight_modes/rtl.  [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) - Result of request. +### transition_to_fixedwing() {#classdronecore_1_1_action_1a6f40384be0ad61a29b6e2fd0a0c86754} +```cpp +Result dronecore::Action::transition_to_fixedwing() const +``` + + +Send command to transition the drone to fixedwing. + +The associated action will only be executed for VTOL vehicles (on other vehicle types the command will fail with a Result). The command will succeed if called when the vehicle is already in fixedwing mode. + +**Returns** + + [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) - Result of request. + +### transition_to_multicopter() {#classdronecore_1_1_action_1a0088dbe4c715e2bfbe805b89d28add5a} +```cpp +Result dronecore::Action::transition_to_multicopter() const +``` + + +Send command to transition the drone to multicopter. + +The associated action will only be executed for VTOL vehicles (on other vehicle types the command will fail with a Result). The command will succeed if called when the vehicle is already in multicopter mode. + +**Returns** + + [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) - Result of request. + ### arm_async() {#classdronecore_1_1_action_1a1a27165400d2a8419c2d96a1c0f2aa78} ```cpp void dronecore::Action::arm_async(result_callback_t callback) @@ -304,6 +338,34 @@ This switches the drone into [RTL mode](https://docs.px4.io/en/flight_modes/rtl. * [result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) **callback** - Function to call with result of request. +### transition_to_fixedwing_async() {#classdronecore_1_1_action_1af5b02f05ffdc2e0787a7633410710d9d} +```cpp +void dronecore::Action::transition_to_fixedwing_async(result_callback_t callback) +``` + + +Send command to transition the drone to fixedwing (asynchronous). + +The associated action will only be executed for VTOL vehicles (on other vehicle types the command will fail with a Result). The command will succeed if called when the vehicle is already in fixedwing mode. + +**Parameters** + +* [result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) **callback** - Function to call with result of request. + +### transition_to_multicopter_async() {#classdronecore_1_1_action_1a053aa7430852a4200b201abda1b3b3e4} +```cpp +void dronecore::Action::transition_to_multicopter_async(result_callback_t callback) +``` + + +Send command to transition the drone to multicopter (asynchronous). + +The associated action will only be executed for VTOL vehicles (on other vehicle types the command will fail with a Result). The command will succeed if called when the vehicle is already in multicopter mode. + +**Parameters** + +* [result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) **callback** - Function to call with result of request. + ### set_takeoff_altitude() {#classdronecore_1_1_action_1adc6f7f6668d3681afa4d820095154c9d} ```cpp void dronecore::Action::set_takeoff_altitude(float relative_altitude_m) From 39e80c532e4d3dfda754e5cff5e017e45b87b8f7 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Fri, 17 Nov 2017 17:34:23 +1100 Subject: [PATCH 033/107] Api ref change to mission item. --- .../classdronecore_1_1_mission_item.md | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/en/api_reference/classdronecore_1_1_mission_item.md b/en/api_reference/classdronecore_1_1_mission_item.md index 7f14177..9d136f7 100644 --- a/en/api_reference/classdronecore_1_1_mission_item.md +++ b/en/api_reference/classdronecore_1_1_mission_item.md @@ -30,6 +30,7 @@ void | [set_relative_altitude](#classdronecore_1_1_mission_item_1afef21f3028edad void | [set_fly_through](#classdronecore_1_1_mission_item_1a63d73896635dc0af136a521cd35bf352) (bool fly_through) | Set the fly-through property of a mission item. void | [set_speed](#classdronecore_1_1_mission_item_1a37e43f748da4136c659419a4a2d84b0e) (float speed_m_s) | Set the speed to use after a mission item. void | [set_gimbal_pitch_and_yaw](#classdronecore_1_1_mission_item_1a10adfcff1e99ae937654786b767e5558) (float pitch_deg, float yaw_deg) | Set the pitch and yaw angle of a gimbal at that mission item. +void | [set_camera_action_delay](#classdronecore_1_1_mission_item_1ae3cbad3e497b9165b5b8e6e414a52385) (float delay_s) | Set a delay before executing camera action. void | [set_camera_action](#classdronecore_1_1_mission_item_1a8d0d8a5519783aaa272befd73e851896) (CameraAction action) | Set the camera action for a mission item. void | [set_camera_photo_interval](#classdronecore_1_1_mission_item_1a4ffe698b47c659aa8857725e94ad1f7c) (double interval_s) | Set the camera photo interval. double | [get_latitude_deg](#classdronecore_1_1_mission_item_1ad95d5d10d69bdb43321231c51dda1175) () const | Get the latitude of a mission item. @@ -37,6 +38,7 @@ double | [get_longitude_deg](#classdronecore_1_1_mission_item_1a9f76de6dbbcec326 float | [get_relative_altitude_m](#classdronecore_1_1_mission_item_1a22481d92a61136d42b5133b208e6cf0d) () const | Get the relative altitude of a mission item. bool | [get_fly_through](#classdronecore_1_1_mission_item_1afd92f9ab01d25c0d721b4249821b6da2) () const | Get the fly-through property of a mission item. float | [get_speed_m_s](#classdronecore_1_1_mission_item_1adc737b7be9b49cd0fe188763203aeae5) () const | Get the speed to be used after this mission item. +float | [get_camera_action_delay_s](#classdronecore_1_1_mission_item_1a620be1392d32343f624238301e968ee6) () const | Get the delay before executing camera action. [CameraAction](classdronecore_1_1_mission_item.md#classdronecore_1_1_mission_item_1a0cdd25121e5ed6930080ac022857887a) | [get_camera_action](#classdronecore_1_1_mission_item_1ae42a857f79b63c611f5a21fed2ea18fc) () const | Get the camera action set for this mission item. double | [get_camera_photo_interval_s](#classdronecore_1_1_mission_item_1adf38956d9ed1ef4e98a4d5a6b61eccd7) () const | Get the camera photo interval that was set for this mission item. const [MissionItem](classdronecore_1_1_mission_item.md) & | [operator=](#classdronecore_1_1_mission_item_1a8582ad72a3a8c20c87e8224ab10970c0) (const MissionItem &)=delete | Equality operator (object is not copyable). @@ -164,6 +166,20 @@ Set the pitch and yaw angle of a gimbal at that mission item. * float **pitch_deg** - The new pitch angle of the gimbal in degrees (0: horizontal, positive up, -90: vertical downward facing). * float **yaw_deg** - The new yaw angle of the gimbal in degrees (0: forward, positive clock-wise, 90: to the right). +### set_camera_action_delay() {#classdronecore_1_1_mission_item_1ae3cbad3e497b9165b5b8e6e414a52385} +```cpp +void dronecore::MissionItem::set_camera_action_delay(float delay_s) +``` + + +Set a delay before executing camera action. + +This can be used to wait for vehicle to slow down or a gimbal to arrive at the set orientation. + +**Parameters** + +* float **delay_s** - The time to wait for in seconds. + ### set_camera_action() {#classdronecore_1_1_mission_item_1a8d0d8a5519783aaa272befd73e851896} ```cpp void dronecore::MissionItem::set_camera_action(CameraAction action) @@ -256,6 +272,19 @@ Get the speed to be used after this mission item.  float - Speed in metres/second. +### get_camera_action_delay_s() {#classdronecore_1_1_mission_item_1a620be1392d32343f624238301e968ee6} +```cpp +float dronecore::MissionItem::get_camera_action_delay_s() const +``` + + +Get the delay before executing camera action. + + +**Returns** + + float - The delay in seconds. + ### get_camera_action() {#classdronecore_1_1_mission_item_1ae42a857f79b63c611f5a21fed2ea18fc} ```cpp CameraAction dronecore::MissionItem::get_camera_action() const From bfc21e7c39cc4800fb4c7de59968cf57212ca732 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 20 Nov 2017 11:05:29 +1100 Subject: [PATCH 034/107] Update suggested command prompt to VS2017 in app toolchain guide --- en/guide/toolchain.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/guide/toolchain.md b/en/guide/toolchain.md index b61979b..ba72e0c 100644 --- a/en/guide/toolchain.md +++ b/en/guide/toolchain.md @@ -139,7 +139,7 @@ To create and run the app on Linux/macOS: ``` To create and run the app on Windows: -1. Open the *VS2015 x64 Native Tools Command Prompt*. +1. Open the *VS2017 x64 Native Tools Command Prompt*. 1. Navigate to the app source directory and enter the commands as shown below: ```bash cd /path/to/your/application/ # Open a prompt and navigate to your application From ba8b11f6cc2422c5f5a75121e03727eafe7ea199 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 20 Nov 2017 11:43:35 +1100 Subject: [PATCH 035/107] Replace make docs with new build script --- en/contributing/build.md | 27 +++++++++++++++++++++------ en/contributing/documentation.md | 17 ++--------------- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/en/contributing/build.md b/en/contributing/build.md index 4b7face..be7588d 100644 --- a/en/contributing/build.md +++ b/en/contributing/build.md @@ -51,10 +51,6 @@ To build the *DroneCore* C++ Library on Linux (or macOS after installing the [pr 1. (Optionally) "Install" DroneCore [as described below](#install-artifacts). This is required in order to build [DroneCore C++ apps](../guide/toolchain.md), but not to run DroneCore test code. -1. (Optionally) Build the API Reference documentation by calling: - ```sh - make docs - ``` ### Windows @@ -222,8 +218,6 @@ The main steps are: make default install # Run code-style check make fix_style - # Build the docs - make docs # Clean the build make clean ``` @@ -271,3 +265,24 @@ make default EXTERNAL_DIR=relative_path_to_external_directory sudo make default install ``` See [DroneCore Extensions](../guide/dronecore_extensions.md) for more information. + + +## Build API Reference Documentation {#build_api_reference} + +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 +rm -R install # Required (remove previous install/docs) +make clean # Required (clean build) +./generate_docs.sh +``` +The files are created in **/install/docs/markdown**. + +> **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/dronecore/DroneCore/blob/develop/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**. + diff --git a/en/contributing/documentation.md b/en/contributing/documentation.md index 8fe85ae..b073c8f 100644 --- a/en/contributing/documentation.md +++ b/en/contributing/documentation.md @@ -51,22 +51,9 @@ For setup information see: [Gitbook toolchain](https://toolchain.gitbook.com/set ## API Reference -The C++ source code is annotated using comments using [Doxygen](http://doxygen.nl/manual/index.html) syntax. You can extract the documentation to markdown files (one per class) when you [build the library](../contributing/build.md). - -To create the reference markdown docs (on macOS or Linux) build with: -``` -make docs -``` -The files are created in **/install/docs/markdown**. +The C++ source code is annotated using comments using [Doxygen](http://doxygen.nl/manual/index.html) syntax. +You can extract the documentation to markdown files (one per class) on macOS or Linux using the instructions in [Building DroneCore from Source > Build API Reference Documentation](../contributing/build.md#build_api_reference). In order to include new API reference in the *DroneCore Guide* it must be manually added to the [Github repository](https://github.com/dronecore/docs/): * Copy the files into the [docs/en/api_reference](https://github.com/dronecore/docs/tree/{{ book.github_branch }}/en/api_reference) folder * *New* APIs should be added to appropriate sections in the [docs/en/SUMMARY.md](https://github.com/dronecore/docs/blob/{{ book.github_branch }}/en/SUMMARY.md), [docs/en/api_reference/README.md](https://github.com/dronecore/docs/blob/{{ book.github_branch }}/en/api_reference/README.md) and overview [docs/en/README.md](https://github.com/dronecore/docs/blob/{{ book.github_branch }}/en/README.md#api-overview). - -> **Note** Extracting the API reference does not work automatically on Windows because the `make` toolchain is different. - - -> **Note** The toolchain uses *DOxygen* to create an XML documentation in **/install/docs/xml**. -> The [generate_markdown_from_doxygen_xml.py](https://github.com/dronecore/DroneCore/blob/develop/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 9ed43e81eca25d238ffa1e3514c729685461561b Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 20 Nov 2017 11:55:16 +1100 Subject: [PATCH 036/107] Fix to broken link --- en/guide/toolchain.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/guide/toolchain.md b/en/guide/toolchain.md index ba72e0c..6313b11 100644 --- a/en/guide/toolchain.md +++ b/en/guide/toolchain.md @@ -15,7 +15,7 @@ Below we explain how to set up a minimal build setup (**CMakeLists.txt**) file f The sections below show how you can set up the file for when DroneCore is [installed system wide](../contributing/build.md#dronecore_system_wide_install) (the default) or [locally](../contributing/build.md#dronecore_local_install). -> **Warning** DroneCore system-wide installation is not yet supported on Windows (see [#155](https://github.com/dronecore/DroneCore/issues/155)). Instead build the app using a [local DroneCore installation](#dronecore_installed_locally). +> **Warning** DroneCore system-wide installation is not yet supported on Windows (see [#155](https://github.com/dronecore/DroneCore/issues/155)). Instead build the app using a [local DroneCore installation](#dronecore_local_install). > > Windows gurus, we'd [love your help](../README.md#getting-help) to implement this). From 6bc57a40c541cf623e839fa64fba8065419233d6 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 21 Nov 2017 17:36:17 +1100 Subject: [PATCH 037/107] Add example doc, update api ref, add vtol summary --- ...transition_vtol_fixed_wing_example_qgc.png | Bin 0 -> 1088770 bytes en/SUMMARY.md | 2 + en/api_reference/classdronecore_1_1_action.md | 8 +- .../classdronecore_1_1_drone_core.md | 4 +- en/api_reference/classdronecore_1_1_gimbal.md | 2 +- .../classdronecore_1_1_logging.md | 2 +- .../classdronecore_1_1_mission.md | 6 +- .../classdronecore_1_1_telemetry.md | 2 +- en/examples/README.md | 17 +- en/examples/transition_vtol_fixed_wing.md | 242 ++++++++++++++++++ en/guide/taking_off_landing.md | 26 +- en/guide/vtol.md | 39 +++ 12 files changed, 330 insertions(+), 20 deletions(-) create mode 100644 assets/examples/transition_vtol_fixed_wing/transition_vtol_fixed_wing_example_qgc.png create mode 100644 en/examples/transition_vtol_fixed_wing.md create mode 100644 en/guide/vtol.md diff --git a/assets/examples/transition_vtol_fixed_wing/transition_vtol_fixed_wing_example_qgc.png b/assets/examples/transition_vtol_fixed_wing/transition_vtol_fixed_wing_example_qgc.png new file mode 100644 index 0000000000000000000000000000000000000000..e4b29257e5784df07deff074faa539cb38aa8db3 GIT binary patch literal 1088770 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 z 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

%3zCf+P!c11B3=G4UI*Jr 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

+B*0rchAq&3&+1{D}RPtPB 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

;cUJKw^?<$s2XPJGwNOc) zkr&D`WdTdv&T}Rxdz&w9yn)V@54?;v7y3;mrsslrLxM81u<>!9)} zhi~AM_OzfJk4ee%1_#+(DQVN|`-Ru6>9jkrB6a2}i0Gn7&4<+7r$cNI5Yluwyn3=l#X#1 z&Ljl|6xDZZdN(vO>a?DrR{2Hgp>JucjgtUL<(b73UB9HOjI_7nSG1#g&b|ATI{LRh zS6&70xcAy^DGP0APWj^U3pwGH!Wr(&xP$i?rn%D3yu-_anOnPFkB->rnDE9J#)hsa z^rvEcd?MPLJMq#hZ^oi{EVJX(1^TBxKqTt~twHlNj(@yFKI*o@Ix;#cd`m?fS8m4* zHjfovYOKW;4h=$&;2Yk33^HYtHBR$D{@`7%i%tVS{ZBbb4}t(=og&YSzxvxcU|f-0 zpg+#)W{vXzJV~jT9mUXESNn@c1d3|ekHg*pB`@HvKU(MhP}vv?7+;Zr;Ylc=^e4YL zM}I*uTa-eEqDG%>i9hmwY<$c-0-2HD>~F%Ph2;luK#`W!RQ{k8X1ova(82qFQz5vA zM=}<`Z<*Y%+qb@f-hnH!i*iyKeKsU7%rC{nOj_5k~U#zCeD|JLSXjAlCPL zZvOHoOpl{M>Jf~7G4{S{TRgA5ONqreRxE1*hiImvpV3ay4sK{ zxFLT^vQhn2SJ9rpauS@s8o$%`M1`L|!x7(Wot{M3J_I)kUw zuoHh^5v2bvBa$fnq1XQ*||SZ5@>IR6ar{_dB%W2UN9G2fzpC1 z<|cTMmbwx7)`Pl2VL}Az?EF+G>c#i24|P;>l#GN=ZVqDs%16~;^w`%xkje;5ad~Ma zX7A35Sz*^ z{mCB`NMGXjD3o@Vb|h{lzH-m=<893UkLUx1%`^s%35Ez7Y@)+bjuf&>ds(+AflT;- z^5V5`${*Zg;6lNn9u_33vcNTOL?s#-l_1D^H`ey}WCqa(+J}|QaZm>aGdfcGcR(+uNrJaUD1#{|Zp;C3?eUg`J>Tf6mg)PS<(YypYzc$UO zw}hjqkS6bdPcoZE-po95JQ{{t1WNcB9~YPr$Rqh^Wu#Dfpu%yOA}EpvS71sXQP+ZR zd`I5&4dZ9&qw;OGUEdfFc>}*o4<_o9`S2{2G134#;Fz20QJz{zz3dqP{S?C(M!?*+E z<-O8odrG>bK_YN)RR2>iW`wCXePr(kwW&{StJQ=b8cVz%3pk-D1hGKRhF{EF`4kBC zu{WLrgiMJN57Y+95mppYazr0K(h-B8>S?30B5k6k`CI*|GQeqOIxr$|Wm%W$gNo^W zwk`Pv%YQMQQC z9y84tLO9N|IW(+(L)pPV#?lnh;X#NT1dK!%qD|x=Xm?G0=AGa%wg~R@hv@@YsII_^ zwmB9YGIT25rO0<_OooQ>W|2(5M2A`iBCydWJBy2&^qXglA>;>7&#|9-SR&sOF|zQ? zOLmCRlnTdV1o?qUEciR)8a$El$@{OUzo-WaIvc`qB$*8wf)DK?S3xz~MG1lteb3|z z{l!?vxAYfj=u7sIz?%gALD}Yg6;JWF0nVuM^v^21d41KBAuK^4PaE4+4lO1fyq`K0 z*b&GB+y+08qu_h)^9o)${^dPzM0PSAg5Q*_{JoUUd{F%$o>P|iKy#(Pi($szrpgJq zmnB~Cp0!mrq-E39HI0|dmRAM~;TfV2^>BC9BY@`t3Tt2 z>c~BT-;7~%QhHLJ6^s<&mCSUq+cz=_<5$UxcJVoVQw%W4pHrqx*$3!U^g{Y$q3{RN z5KF!f3V3Z08l$Jw&)|bmuoHifQT_4V#=((O`ad2x+g<|rQTPOOaDQ0Vc)-$%8#k_d zvse^&o_X|0AyA5u2mr)Cawo|Q3HPF>5N`A_DeOBjH@h28{^Bpk4-IG9uI_=D`Qd*% ze(?j_aqZSlT>P0|i_f0jh}qWZ`0TI$bX?HjeeNfJJ%0A_JymEgp8BQVh@U)<`wPUN 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ȣriZ;%Gmq}}zQMa=e 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�lr7Jl#>pf@-rjEl3Ns4Ux8)b6TA+rGJpsj^!7^$ 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%0AE_7P&WOMD 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�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≀T^6;R(7pJu6?# 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

r5t#M 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�nSwm} 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�QsFCAVR3kReOwL;&L@f?s3K6t;MpaaL9JGVo(=iM}t<9_L)&l{TTU~|FA z{&~O<1lIZ*MR|;_8NRCAUUj6-fmizUspnS1+)qE8CGyYW#HUAhbrFj*P!GJ7f619R za(9)b>SG@1z;xQ!e$_UOe2}*NCt;-*-K%W*hOz`_M_2N;C;ta&4rJvVj^wi%9@?vz&ghLvvaCq-1zkiAapYw#HRI5J6{q(p5x8+IQ>QD4+oi_#^ zvJ3yXf6o_OczPU@+z2JPmidu=v*`ljfB;8UDV*A)g$ESMTq2{e8wM>(|}? z=0NZKWB=Gcw*7Pe+&{Pdga6<^xc#^OTmP-?zy4qUuWx_jZ~TqeLNlrK;fEh?|AYU* z|6u!P|Ji@G@xS-q`|lN>!V%5VFCp*N-N)fYn|VIn{-uBAhuhD7dAsSzpMT}w{PFg0 z{GFfmS}1gZt$ghULqUNA2u1QD0@HOzxpw13Sc<_jg}6UTDGG|S9fK5O%m_O}Kt;!K z7?dHj=ZRu`)d6=e&+D{nxn_2GMgWJokKte_jRN9O&2qmPA&zi-5k%Fw zGXpj6FV6iqVo6W=E(Mm_^K5XS9uaPq0lC@%H-xBf@j($-3rQRoC|~4O7!ZbII5Q~cUkVdC zV2uFKxkgDG*FC~PyBMyP!FQ#^J_!}ld@%W)cg8(} zslur=e5=lidmWWG=m6f72`v>Mxwj0Q^$G@j8tycJa{kB432l4u}9CNaG!2>?>vfu zGtZwtPdnn^KZ&Du|K77W?wo!GVrqYxvcGyO`QJ?W5f)F(>cQ6xQiLrFkLbK@$^9{| z=h^C`js|$TVOjY>Ir@y)6!}YE%^7}O@z;fxmpH~iEB}>zo~{1UG?NUN^RLI(!j5}o zIF=qwIOla9@?&V1dJ$2Prt8b!f*o@+~o zIW!y_JE~inWmXbSG;+Nn1PCNq{Nvu@n;Gn6Fr%AC0ayfh@=MQwvU|B5`prO(F+1Oa zCSS}Lb*4Cmk!8nt0Dj5iB_Gkz|07-!%Ond%VfD??OY*GE z?Q-Otyk(%sXYlRIIAG*h^;8ma*dN!K|E^j6=0RG($>;p*+eg^QiJyqKc_12Cx% zjqvLcpQ|tVIl=VgZ2ESrTP+FI(hjt?uLLi_+l$C#JPuxM?!ZK3;&P_^3|bBz@tA!c zIQ0f<;&kiR(xpu0tg_HmU+|36Zb|69yZ72IJZ0czy;=cA?GfP$+@nK>e+1=nFc`NZ z6Tb>i-b=jOHqhgjqrcvM=bg%QIIxUdT6BOkx@wkmhpXU$z6sy7A63_I+{1%)+Bq|v z8ZofY*J<}!qMo9|`vz_de42fKlKx>8oxT7MbW3#l39r)8$yPvFC6Yc!W`w7;ar(mG z4PDqGi)YvxU40cE>7+(*Mb?9X%pD$>L9OCv*-k0v6&oPU)9+`8_c+Uu3EC_zTCttH z{&wbU>>-Xjaq(906&9vWta4&N0 ztLcq_88)!5G~A4{{_)43Y(M?!PrIc17eD`H^uUewIj=>L#cbH}Z~0igsvlkH zELHUxINhN$9r1%%?wRS1d`(7XnhBRv>8o@b=e^vUXRAH0#}y87zT&S7htF18wET5> zRz0iE*VC;sUXLv^&*e#L(~oTG92p*4-##fn{Nay^$I(kk&z1}k22*75#1)QP>uj#n zlYbL?E$51CMRGMZKApci?vqqIMow2ACe4Cd0__wwb&;H)_pa0MN<(*a&$bipo+~5A{f8;;A{RjS||GDkE z|GvUnf~5In2iRTn3EpQAHcY!hkVrS|->5CJd|0 zqhMxZG_xO!rnRhU%B^B*{4ziWWD(=-=gI-Ra>3O)qNFX2Q&p7^=Qu}17=lxd+Cou{ z;VS4b6UJEH=0GvRN&8N)0} z&AaU%y#KB3d*A)-&1c{`o0WPO-bx?13T@yA{ovzgZ7(0@ zc^y?S=Fcl5RGEH&hb&1pGdQ2t!FxC&@Z?$X6#~L3Szu2Et9dMKy?N_qjMIB9gClOa zG6c@dVCbX)0UrNYI_-!dm4mKAahD@}dGC}=eHmAKL&i9N z6zBO#@_MH2_@0n#yA#Pn>AQ1&@Ce_lZ?+b21V8PgbudQ$-;Yy=$13NO(uQVTv6Q~H zX5@W-Y?fCioeeY%_yvb#llNOc`}E`O7r*#<4f*0KFraBe`B;BmvU-<8Ne7;itjC;? zJpMwFTQ>I zW}KPFrPYZzN_e8PtSR3B(4`o5AAazy?a8CZX~(CPTLur`fA9T%*ImJAyLNRRYR(L8 zc{TVoK%if7oIJ%-UO%ft5AS&>t%suz={kK~-~KYjG+Ht8M$Z_K<`BOK9js)a!@N@Q z#m$>BKtC@{T5fO_GLP=%c!qbSCD-Vw&f=%eM_$Kx^f0{i+Nog z3V5N@%{LmH?Yn_3wASuf25-L_ zY!IG=id5{~ZgS%JK1ke69h0`a6S_`bysI?0!PoGOH|IXtrhI8_NZ9w$>tI%v_v+a(UdOY!puVkN4ZO;b7cSI2 zhT$9Kp{^nb>~uaFSba$MjU8n_nR&H<4m6O1SC!S(gL|K6{EBn|f z-q$yyf8)j%+ucXEwx=&2wGW_!K^eJf&!FS(sGzklG6)`_W^k$eI--etmBrf}rtiS7 zWA7zV9ge0CY$<2yqE}*5CnSw@Q};ZRUSG2}4*KXP1_nR+_D9>dKl~_m#kuV#Km74_ z^Tw^dYLgrRbjna(ogF_%6@jyDO6>jE)4477L67rn$pkRiBolqC$}kwpLBA2%_RGk) zPd@pqU$*i6c>VWjWU$pnUFWjy36%KK|!r{Hc`>zMEfZMTfB^=hV;tH#*b#Ilw@(Sx7yF8W!$ z_hSos#p?S%_~G{V{^rGXgvd^gO9>qyhXOWc_HavgqLP>P36f)*387}4nxam&gN6d5pEKc`|m{fb>)2X zefNIzdfWCrepC3>`^D_9+`n}3^!EF|=j$|c|NruT|C8;X`Dgx_?T0`7;r54r_it^V z-*~kBSN_R=a(m~Ucea1(pZ>3HzxVrpZTp}9FaM?O@_C>8jGeW^fL9;JFZd7qhyPRC zM<0FEvi|vh{-59e@qhdu-+u4+esBAS{-J+p`yc<0|Hs>3`)hx#_x=n2<^S6DAN;Go zJ$cC}8FU))5J>0insI?qbfiT%fP-C%I(@l6d2;QU7{R>+xaYG0kMFrY+9 zsLPylUm1kuECIDajhTqU_ZCO6EWvKpgF#Hmar|fGTFq%|(4q4%3Y5Y4Gy7!5%zJpx z9zWmSco}CTio)l8&PG|DF?f)+)#Oaae;Fg-tKjSFuYE6+ku$gv34`Lk$Zus8z=YJa zf5H-Yb>azlLPhzBXl9g`v7ys~RXG(-UnhO?bg*D|+VKDx;`th}i}*;|QOaPcLx`7R z$a99g@}TqgJ@-6w5B&(G;xgrRCSIK>OC4ZflrUnw&x#H<$KtFoayTiH1*Gjo9O1_g zEir#o=lS7-2%tE~&z?N*yQr2ETQ<*Oej4Y<=k^+cJWBQGJ<8N6)Un%XW@KG3)AjB< z?{>)?Ly(bd^CAwH?qG(}d+LuK2A8q_gU-P8ytD83EP=_<47=I$xKW`~jNa!q|M{x3 zMc!d&gbx4suKXJ*|I5Jtw6S@gGfrbncg9|M3|op}@5E6Y_|o-KW~(jhdU!V}%A+d` zfAlQJ6%WHvo|f#g{&EKom-qH|H?oFPMvh_Q?R5CnY6Z@h^5&B|+B|(gU!>fU zDKzq)=WIBo%ql+eD#_JI4tlSh)NP+i8iNYH*L&gOrS0;Snc=Z|=1KVf-o1xuyA7`F z{c%Z4L;El5T;p%E?v`!^v_1>g63uklsB_-{QJ+bBgyq!k9WU4Emj*|2Pt);o@8=o} zItkg>L9!)d^*=JEv=45Q(Y2tx@Wj!vVcEi&2p`&8eu2IOI6tQ2ezR~5A5Xb&L|I-6 zUaoEzFI>o_op~8RXSQ3nZv`Ju3rFQLxKo!f{et{4gT+CA8NA&~JEmWwU1eO6N4EN= z_1Vt0`|5=IHhnWoYqtIR^|$3Jym)NkBU!_LGi%`)UIhausO?TW=+4F8T3H;ZH9Y3I zYtQLMdcrK}8rWXXy^k&!h@f-GC^+W)6-#KEbkZ^cPgEyO`wecLkE3Qli;?ENc<@(d zB;pTsk!k&uR~&}VKK(56CVDx1*x7$&21oiDonYh6Pd@#$FlY{(k&)hQ*Y0U=3|BDi z_Q1jsIlta**E5R5#Nsyh*Fdp!o@fte(4f`Yc-Dq$7t$xrU%0fLIejj$>6hZEJfDG6 zgQiv%$cGoEPs}EhXrVoHH@f4g@>OsPest8fHPa5ZWosBzBPNvV6_pu$dz$pKQ6kzj z>?|#>a^{N6{A!nZWivqQpbbm<;l4_;Gb_!*tx-){b4 zoNg|LpS(_VnthSu**JxqQgqZFONBrG?DNtazZbVjyLcJ_&~nLNxN+OHes04^t8UnG zY>ASLC$-vmR!5PqR?l`{x#wC^nyIC zZ|@7a>Oh&-^bFR)*{mwLSEs#sTSnkzZzgv3y0WUxIVw|9ZCdgd!Pc|sdwbovj~@6B z{m2_Dyu5N^vY`WKbXV%+T(LiH-MYJd8fX5~(Cv#GH%hyQap=22Y2d6=uOkSDIN4=T zKjo_KToj}5slTm=-txC?X{Te`eT=`u^TTl5#)&Je^TYhYVVd&6Ue{q6hiMMah1Z|2 z;GS}nXN8RwQwHndX}$K4L_4pOFJ#V6tAz5>LAk4?Y4v`#!;<()s^*(#`e*yMReFg{ zr`_6@w9TGdIIoWqCtr9X@@dgYs%8tF=vDUAlCi>3Um}=Vin0^i&sGGRD97NpdGee7 zIe4F^6LP2Lz22W4cQQu>ycXB}e+NQg{KkOhd!PLc;xSCW8h`!sKRx^#|Id%Nf9jw5 zr?H@DyUt*gEN2Y>Jf+rRKH{0m(s|Ni^$Z-4u5|LyJH{DTLnXUbi& zZ3RyLfAydIC$@{*kGKEsfA_z;{iFZrKf3)R|HwbGy?gf4?VtE3{)z1`{Dr^Jl_Jw$ z_kJtm5%JyF3tb4q9Lq>?Z_?zLoJh)XtCHOrMqZ36dzlFH6kZ)DWyKln?88AM@YN%~ z@;g(qD>4RwSfv)lr0!LY<;*XlV5f{J$N31#V}cO+;yCD{dPhL4`wXCdS}2OQ%TLXa z#*md};Y0-Ej;;z@ie7X+&xbfGEWx2p#*wnE2C!k;xzpzwDT)$e@660xn^t_)8K-?V zE(y95XzXs)Ow-bll1Cl-lsHrvJT92kPvA3@K;~XY2$QDIg0mV^p_eo@G!G1`w4kMy zruq5Lkcdi3zP;SQf;O|%ehdps1JP_b?}sCK>KCd2)z^W77}crDpvsdt?Dy|Ji18Su znIk9OH}1QVB5AM|CxRohocBAoV?e~Q74O`NV2*>^ff=*fabg&5tuv8AWt?-~A%$TG zkEK(1p|jdi%INA-Fg_>8xbJLd6z4tglKZkw`D{El%Qge^%iuds z)z@EhtYR3Zsq6lU@PgUpV6XS)-R0S^&c=xWDfL*E${{jXHAXju!{K)Xn*plDZ{jkx z4te4K+uonW{aNL9GI4misG~RLC^SgaZ z?h8|5`Mk0*`L@yN5ihccA31wIDHsR)#PJ%!)j^R>c%$#g=Ck~^#L?l7DQ1?#hR?~~ z?5iFfS0PL^FlqU{y{JA>bMoYwIPV-shi4s#4$@}jJ0R?IjgM3tgTr7Tyl`^hO@U|u zHwGHw2ST%50}MVc#SO7X=kXSlgue&^y}ys zcraMPQRKAZ4fp6(8Yh;%4ZD20!-Hu<{{o9Je1firJ8<^eYgf7i`)G76T%9;|a!xXj zJdzy&JTvQ#N5h{CpVV)=0zJiXuZ}^31Z`ymRgR*QEFZS==}73J4`JBJ?>Qacnf9ay zyWXm5ooe9o*7M18*A*(xl11M;_+)3{nlhZ!x-GhD6KT(Li0~V+;C9j@C9% z)xLRczkJH}94&PE+cpUBnb|`t^>9oaVrD-rXU@HuJv`oafHi;c0S<=mhh}r*j4J!| znKPYncleVwo8@vKmO6{11aNpqb}D^4v{&*xheLJ3gQe2wAPxLk>0$ea^BWA-piB3# zcR#)X{m{NM@dlm7(Koo2BB~!4yH-eX+~Hc#9`B07w4-BQ9;I6hFn3BG<&iydK@X$CE;mr zJSI!z)EOn{tAf#cpT%vn=cg-p+ixX0|0=EMJMh5|{nA)mg-$7_?bP1s&Ku~|o%+Vw z$xD^s)ol=N%dpXO7bd?;m*n4Q(j=d0tozT#K+^yJenav4L&CiK`;S{c`3K`49)A5d zKUx0U|NLKB{*8a*-&p>_U-%2l*S0kP1zqb7M|9k)9a_{OdEKl$Jz2(pU`9EL% z@h|_&|8n%?^rfX$aKDA$|NY-z{;PlXi+yG*i~~}wmV$45D%76H-=+hb`*AuOGqS=~ zuz*+?gi@xoHf37noPdeO&=?0=MVQoHH$`lt)m3hJr`+i%$7pcalO=$nd>cbjiqf{e zbYA*o%%`kvHbjn`2m;1-%@ z!$!fg+g<&flFYT6$gRHC##-RaYWkz@B6b{yLb1&a_h!}I>9~xWN*{aqq9dI%|yH-3d)$zLB+rdpF6Ax zJa``O)JO|#_!(~0g%6F~&P>?z@UX!fJfg(lEA`r2*^@yzQ!mDun$zLuz0bqVQdSC` zGtYUNS<;}TX@i=!n_(ER0`t(CBe8wG06vAG-)dx)Hp9OoOFF>m_&nS25Q@s#XM3X{ z?GKCSw?$zqbIUKy7Lp@v#6!Ez-0;-eA-7ERO`Z7o#K}|5IdW|>>FGR|8{U`V-2PJNkMKn2J(ye5dDs%e5+q9QR8?xT~}E~Jg;;a@a5c}s59Rg zPw!V*$M1Ls?l&Whfoj>QnM^ZoU5=J#^um?bUt7NL_FJ7<;Wz}sbnr))^A|3~nZJ;G zGpoaINYw!zhhYUjqW#t#vQA$Cj6ut0 z@7^(3X7<;~@H5!T8B>-v)3crr&rg1Q2ghUdN3W)x${(X1{)cx0Xd&6?mCJ;@+ju}w z2HpAQTW>92`r?%%ABOr+Nsy#`Le&N+b-Gu48D)}E)5vbTOjxp1;M`}kqnw~OmR|FjJ?)UB;n zf@rwkLd%S7bTHw#ua+EM?%bWT1n5Rivu6f;IBI5CIc7BsQ@;8}PYpaG8A3PW4yW*V zDUOM9IOrdL{PFVPhac8(U}#i+0xFtLpBqOo_!zme_33e)eEeng!`V0*;L)#?U*deX z%?Tr4GcdM2+i0V$$W4a9tbH6#Fh3TxA@N>h&FT6#t~*;{zT3~^E4^P@#bjkw_%rZ0 zIe%uAXB7_FVzj5$I;evaeKop_9uYUVlv%z>oUg~s()mpfO@1&r>%k}1=;p{-SWA7I z4pY|fGC3Qk7+*Ss-t36YHW(a_4zk>LXb;zGf0S}NK#_Ym+vShl{$;b@ zn!fsN^w*@HJcI9{r~COmdFI;7XF}8EDh*pgn;l^0P&(;v2bY`Pn6w5<1}9tG%HQhT z>Lt_O>x1BaH*HFhCUNTB%`ec!oV_bou5`xjPyC5Lk?T)}R$p1(dh?Cwzw@;bmB~?m z@4fez58nG=`RK!sx}@GW`_aZ=V;%8?t!#Pf)ElS?4`>WD2Zc#9G#T2&fpnjId)xK- zxZ!>8{pZ6EdM0T1hQkd%8;-W}Hd)-u4|~H__UG&Hn=U3RWPpC&;f1xWJ0a<{6WscEx~P1gB>hZxWRSd*E!UP~ zLZCDphrcWP_T#DXR~n;3Y6H};gxm2^=#SE@QCrY)Kq+lfMtz~$-Mi2CK>V5T!}0MC zF8sr&;|~kJ{kvC}KmSkt^UKfv?9VQL=`a1I<>k}wEvHV-!L|73&;1wPER5vl)QQ8( zr;$hYibHUPjVJa7P5Ml`en1nq_paUJe)O_KhZwMky03fv&{s$J(1>*$7YBx=x&RYF zvLr1A<2W{)Q5?n(Gdn=y__0IF=@8>wbHWB^ z!RP*$DQ92GJ9unWp%_{RV^}acDgw$&zT}M!($7{sPDlSZID7(shtrhFW9W<*IEnrI)BZUa z?umo(Qub3yM4c(d{zr~4;rFh4(U38;%&+CSrT4*+&fW>0B0h=U2<>%(ly&$;c?Y#I z$|=0^bYJoT18(B5><|9zZ*}O~lSeN*tNrjEZ#D`#e}}`D`_iFDJub%r)0q=Tmoq1i zEoV=iSl)i?%5w4CndNwlxaScd2ag?s3-}2R>}#e(Eq8wK@Ie&%{T}9IH2c$Q*O&Lx zA%6VnwdLlm7;Z7r(v-%Bfddb|umnE58SSdYRd{2F43BiAb5L5G_(N}q>ay{`1C)_3 zI8U2VDeW0XHW*`{jMI_l+q-DVFt885hdBj@_Jwu}G1dyN1R14Apeanl4;x)|ga)qC zQKYu~YMsNkK+b=7VCQc)P)cn@(v)s_iDl}XsXGOL1x%b(?NrtnT+`lJYB(L3ws82& zQrqjv0KM-d>^PF!zH4>0V`>EqkQq4B`M@fU>~gT&;qjR{7+!RkoY@nfT|69xV|&Wk zQ)iZgDXTNH`wvC-kLEgiU#shKe;~SW|7yHierTq<-`Ic2uss&q&%SUx%_)El-&{W8 zpv}nb!9$j?#uz`6^ohr#$WNU1b$^Q zP-fLcjLR2zI!=ajCk(hjW_gj!o5d21Mn4JG4OFJz$hG@>kDZLuad|m*;#6_|;fJ3D zx5vW+2bb@C_ucTwgXsR?Du1>fq3z*Z$+P9bmwdA~jw-{&NVY=>dstLzNwSoqtuL07 zarAt_!q+P}q@RBD>EiGvfAlQ;q_4aaXBR%{y@PO=a((J*e_-~F+-^09 zPPpeBg47-2q&?B0VMg+Rm+>QmZe~+Mi|{hpw&KW^AN{btRzH06`pv>%knj4n8_TsA z>rVoUZxX-tg)hc1cqP1lFgnp7dw3#^>tIfp#9*j+DDNHec`~?cAD?HPnN3}AsPBCC zWCjnHrv{IYC+(T#oW1=CWSjo^`IlsL9_M7R~(VMZzCLlwj zC+ISL3Yn@N30(9z$J+giRWC3s+fSHrPZ?Ij&?5#+>Kuk@+D68L+{(Q^WtIqsZvr2? z;_%Vbq(4tQbJpzT>G09v$nO2*HxRePkoP&gN#o$Rp5~rtpczk)6LyEeGApTUS-N%W zepf>oNbSr$+UCAGlHN{R4L}eNhOU`^J(EG%Zf^p6SU4y0_$nthe#i*NgKO5`wYdi?la_0O^6^uUqC zI4-ekqTtd$gzus+3|JX-X*}Y~3x_L1rC0vy;03=OpwgFDr-weV0UkWLzr6p+yUWe{ zH<4;P{bt}pL?_r2J` zkAr8ttV2~u@&_)w0>0T6s!Xr(ar8m-EP$)WwJrSL>g6xIR+P=aumQSDuUzbkBDNT( z+rSe1-@bdNc?>>Xe)Y<7KC*uPl6ZMJbN)j3=XiL8(w;#wTQ>|kiVwoW_o5T-hyNah zhh8ua4ut<=OPMBmu05gop~J_j&)9VaF*_iZV8B5mhb|*~{HBO=GYw4) z4ko<>6TKgMWcupuT`$li&H8L_oRafL$nv{+rO$7JE1R88pY~Z2?T^iU<;^cFr_Y>^ z-hR0J?Z5qt%LgBQQayL*;F0imzE?H?H1Bq!(>(DZ2YfP4-hflXJnyp#0x(|PElK~qxOkz|oV#eYE`KPyZ98&9DE;|GQriyZ`h=XYl`>f9HR-{9}LW?d3PW`RVen z{cHbPm)-x&PrMcwLX*T&xTD8+@24Yr)LG~0z@s!Q$Be)`rF(xoO7Tz(2MS(CGX^u^ zbJ8rMCCnJd>ws$v(Ea=Ek29KOM$Am|zH}f5m(!<@H0t!(GW+AG?Te#UrH`=*T!45I z6~``_``>B-X5ld&Hd&)IgOifXoeHh3PXg{Ls-J(bP}O(!sDSR z)uS=8kEdflbbzN&?9YsloyW!@6*8gl;NJv z`02r5C&``%*Bo0)Kt~V0j_60AUq)$Qvb4I!(6b;6V{qDC(F|i!2(D_Eru*+=vBMc5 zWl&A0N|4PiF<^pMc^fINsR}bC|wp=Vj7AAS7M^1XMzzx@7pzq@?+@h8hIr+SAEA4Db|Jb1R;b%Jr=c=9BM-J{eE>!~LY z2fs016RTViIrthT#2*r-&d@_19W-Gd%u{#Ko8F6+=!w*tqgt>eV_eFbX{0<6!T77rLyN2x>IMKVQ4Y{ zSNr#wX+0KwaWeYi%yRtb>G0fv7+H*Ya+o?I2l)9Voe=$Z{M5na%!Q-N*~Am44=tz8 zM)#dRwwyd0{dqX@u>aBWZ2$db|Iu*x@u>47Pr~mHm*w!Y<#^JbICpG05J%)u z$8l+cukhIZ;E9vS2xsJXWlJ1L2RU-uIZ1;e zu&22XgDpqWFC7dmjinwA&Cr<>@31*~n6u3h63zH=xXoTV#~=+`j)b319Gh>wI}pkq zZoFWyfPQ|KvhM~zx9>h!Zr-`K+=%0RH%{+EPA1(OzT2Pjj>I9HftKj6;K~XA2Ac_l zZ>!_i&Y&h5SQ@E{&Xpqiz;9nQcp5{>8{2~(g;zOn96*EXmcu%b@7A5W%fZ7(V;G)a z&Yiy)xj7X*&k#)?9fR~pBDo&*gTKjk+7o!51aAgC?%jFNL4p^d?Kqjy`_BW%J_9WV zvcjj~`+a#nj{d{tdK~s!H*X}Zf%qfK**L}*FZ%RY4PLy>D>D)-7kK z42Xdni4z~kCULsG@5(>CAN{Wbi%s$(@?*PGzW}l3oA2buSv(S_+Ms%hc#=K{KkZ}C z=UE31!`t14(4 zq|Kp+zWSiaiuApQay970fwuw(Ec*TqsOpm2gl{?FTpGv|nHDKE4%c zeYm_l5}1Q$6x{yc&%khF4FifX{Fku7P`B#_A7hjM4`+T`|5d<2UtG=MKt>~G!edQrwwVj}0%sa#BRQfyl9VUqX z;ojK+H*PwuKR6Do$4{MEF28nVdFRVtS-$=!e`@*iSASx8>zywyufO(Mx2m8cUC~d7 zUc0fp|Iw$*yB~bAy!X+y<-@DDmTPw&Ew>*&kAo0ijqE)$uxdcHF?@y&;V1mZJ^^6B z&3`P1mC42RnfpyvJ5f>Wug~(k&vL&->6N$Rtmn6K(zO2Gxvua0%_PWL?)uk!sjG5a zyMRvh#U&Or+~Xe;M8W^j8Tr9E_iHJUTQyz&@*^-S*;Xb`0KUtLL3E5?kb2 zhGBeGK3hK$zdVhuGq_p1pRJklaQm}uGI830 z8x5kGn6O3DDk6MOPAelTTpd7z`$X3{gJbBp8&<^p|4~4fA1#b-C{o&vHRkv4eB;yQ z-}<-yt;+L%@E`mKU2!G;_HY08@^^pzqpp1W_P4*?6>MhO|Fi$>KU@C#U;pbpc^+@` zlU{}gdx_It2af$i)i82nDe3LIn+FN5V^l;L5^qyvw?h)p|b zquD)>?osd*d$S!2?;$WnhotWa+%fo{a(H8;8)18%_h1H#x`pB*^@)JX%%Fgg`WQ%Q z1lsffpWxnL?M5RrJe-@^ir~{h>!)Z^&*OATMwTtbo!J&J&Y+6JL{6VR)8(Duu~g{( z-FtDI??+KT=`8KjINO#qKaY|*96X*sdt&**8}@{qODBA8xp4mc@~8gPPcN@ryrflu z@p<>Lo=lmj$boTK;{9}(AAI!T^4;%$fBDY$z8}Z^ljZu&+co-qXPY6;nZv48ZmaPD z4;_3#%iy=OBrBfby`SpSafiP?OACCnr5nS2PJ~rV$_YNi8u&4aj-K3C#o%O8PAbon zacsbZ5lW$pcm;3ccLN!P56RI>$FvzrVA<%LIt^@qWs3zfz~Cu#-sSkByl?9+aM&Q~_Q!+^DK^;{g0*I$2QxpU)APx7SzpF~H1Q<}Cv z@B?L*VUv-R6| zGXo8NGm8%%$50Djfq{M?CsqyVTsc&CZ~IpDt?0tp^3$2vq?5j*;i&_x98vtF4Q6i6 zpF0=WqNi^=|6yiFj~YPZU_D~Egs0LzpQm&N#2l&^2j@xX9jEF=3|0POXV}AMNL#e; zC;M@>_dQ!qpLnsn^Y)uPOv$YCd+&eHZ7w~`F?7NcR+Nm<5S4!E-h6v`<nY=9+F*(L#Tcbz!}93I(a{Fg z&jb@-|KH)S-$Z08_Sz-zMgi*curf%pc$;)KLa;uap37pG+v++L+fpD_sP?T zm7T|N#P6rBhmY=cFpjFQqA0mS=L0n;^(!xfUju1m#etm+%oE`edxH-ij=ZNM*tQdO zl};*ygK?tB)(kSBLv4W2(7Oj#rqJKf_YQZwbt4YYC)bw`97tY)DB>m&{eKNB+rw^1r-%@rz%K?mM*n?l*or2BrOxFSB}mc-e50< zI-Jq!=Cr#`d*Fhrwl9B-O#{ErqTkH6e|r6s<)f={ejeOe?mtRD90v*C@7E^;H}viF zAJccZ`n^3D`YaKBx8R+q{{GH8xM>7W^nrY3V(-`V(zPySZuxU%i?y%w=Y5`4G31(G z!9(7Mr|9}<#^vz7)BP&KPyWQ8=++$HPXErgzq7pi{da@^U_!)vDZZj!EHx* zB7a@c6g}rx9yY=;KsOjSIO)JH%MY*EGRi)((x=-zLK9m$Y-{M(Wzr5?{^(ZU;%7tY zj~?8+n=U6dO8DnaWZg1wpARMX25Hr6+5J&xw8WlrwhH;jpZY@WH~G^(i_Q*=oZt>F zmd6Ly&(m)Up7{-zTa^A8J)rGt+P&$}RGJRXl_=8embrz>)p{>%sV48>Pd)CFxcaN| z9vR2;2Tz<`PG5SxCw0I7-UrLy{ky-q{K~KVYV?gSU)gF9tdg_ffZi=#(&pOFd!iMiSa4>f_`F896x#}{9=`-l{lfN9+^*)whBYvl$|&E1)%jRpzV(y zHeCE@K|SK%U-)5lYS9l0zwtXCMb3_`zdjpYz4S7U{ng0x>FQxyCGB5-^61v`-~4ZU zy?oF2HB28DsQCU*{$JlM4FAl3<%`kzN0)!^|MDvxd^>gY#qt;bYd^L8JOBH?+3hm6 zvHj2gmA|m!J2GUc{Ilct%j}qC_V|r3QEUWxMr_jQ@rv@Cuvr3YFB-wIRJsZw6;cjH zm@M7mR4G&Z>|X1Y;Qm5%ac1GdSz#P9IJ0w<#ilq21?8WZ`z>I24B0YU-jqAcGwCRz zwjmu*jl;a^>|TVVOXb6$oR11Ap$cOjJcL2PxyJB_xWg~v&U8)QRKE zl~*q>U;p~omal*H>lL7FPptYBtYd{A8O%0*dhP1+?)&f7VgK&;zFX(xT9lc6l@H^b zSq5#1tU$rffY6H1p+se(040_uCpj#)&hlmH0Y_s<;^|2@9on4StUY8P{Ek+f-WmW& zh*y$M`Wemk4iDv09svvfg}b4D9_$3aYqS*x<;;8V_OP0iH=W^R8khr5V) zGx{NA=Gr_{Y@ylG;RBibe;%km|M#kFGw5Au5LtvLd(k)naP0Gc3K^J(mldQw9nbdN zU~qQ8V>R@rdb%TRa+h|wr|TFjXV1pS56`I|OiqUftNgCzk=!V)122j8`reF#bj<-G zj~>=}C$9!BIQ+I+z(+q>7nsPKWyl@q3fLR|$txOb2q$C5hzt&Dtf0U5$uomsqX*mY z1O~SDgC8$wCwMuJn_*$*{bBHEsquq{aZ>4*7!GD1EgL5H4y5Xy^>tuj93y4yuhZTd z;fC%^^lfG%?9sxJ)&0v`Z=Q~Gd}Vp{wToRA_~@|#wa3e$BlH9FWN^-T6&uR1>Ik3b zky-fEko1g31Bbq!&9M$_2J(VG4ydg>=g;{R%fT484>}Wd4)sOcB(6f)*f+A>IO%*Zv?rVTt={OTVFVTv8PFY`the-aps+8mNpw)w*Pw$M1>~< zjM1H?`K(l8%+qV-GyPZK?MfPbPH=~G2G-`hfLT$%34|kjPN!Ms>R?8^$?5DNQz_@- zg^T6Cdoj{K{^S$mV2f=O?TeF_1Nh)UocYvi^+i8bNS;%^dhmw+j_$>u21*Pflm`M! zAPx^kzgG{(@jP}m&g}8d#y*R)#$dHl>gu&mgUefa7H2Jer*j%EUb@&puNkBhBQN2Z z=@U8at3D%#xvxG6PUtM<7zBA@Mm)xDo&Vs-Rol!6jeZz8<$&l9^c(B|vZ0?cuzTTx zgW1lPFHf9|@pI~A@_hs%zwsj(5*g`8<8U zhX$hOedp@$Ggn2s-_4It4K5uzcr-@x>v7&+>sJ`wefQlC8e5GzIARmC83%{xCMc%` zYI`AE>k>WHX0!{KVHu zyd1s(|H$qx_S@z?VW+)`@(A+yz0nZAZ@?!ha$8+(XdH}JLo{!2YT*#QT2S0NXY&Qkm7 z&%qQNg%0{(I`l+zqJdqjk}4PUS)$@bkL(oO`>}yJ-m|4uIdpfOc7uAM({^B|LdJLM z&EO^1`T^u2yyjVL2B0NwI@rDTAKZVWxNBb)Jm|AhLdyi1$R<6MwrEc@QQmD4)T*5N zCp9?~x8Hkk^&^Cq^~VZ-y!0EWd*krcXXDUv-tRPJjhA0JvAprxk;XT#9L@D;uW!9^ zEVjw9hfRyGhYcjfS6Fn{rT|+b-H=_mTZl{4bgP; zH3ZWbOUM{MHC7TICu)q5I^RXMPlv&vvu7j_qHP2pP|C%GA_9A6CPpEaK-$Z-)5+IC zhuDeI0K>ZqX^lV3>3yEL_DKNBzbfs-cCLxj$tq`r4=G5i)4wDSP)4z;N}4us#c?lB6M&YTcI2uf?4DqT3wL3C z58@qIRJ=B}cp;uxbcpM|vYYrHmz{du5;Imdu6%K=Iki(YW4ox{`0q30ZqIXoG91a$n7 zS1Edx6Zrv~_Gt&bb?w^qIB?gN>){cj_M8>zH~`~tSWRNoA1yg*X~Sx8L2=IqDg6gl zX$*W0FN96fhG3-k+rTB>s+{77yb!I#kQd51VB@^gUHD4p{w!sMcT=yGOLbJ1z!xK& zlf+n?)f_Xs*gdq3crP@FLaLLMN;+tv8t9Qs~7O?Pa4H%d6qz+tFn z|M7@zLGpmFpDQ|YFmf@v_}rLZu9)&Lkvuocq;$NlZQ!%-Uc$#p0o+R@K5zi+NBlfV}QA* z;in%!54ffG&jn{E?4zz@>fObQ)tA|Lc3qK3W+gq4pU7!9#R@2aDoZ zZ$>Tt8XZmUR@ul^Uh1YgBY~WBf*|j}<_gc#{?Mm37Wp2dxswqF3StA%1qQDTSQmHC z(jPll<7seWk8;wQ`GrSmd?xYDH{Mvj@P%>M9fFG%H*Q?-Kn^-vhOOV}_M*yOL9Xlr zdHUK3^yL=t1)b)wltr)y4{ms zNOekYKF`}G`jTv={H+e}^eaO9n6_$KHvcPYXftWqZHHr{oL=7fqVpmys(Sg(cfQk4 zBBH-a<&*~xl2v@7|5Jw8>eu_>i+MIS3S>>)9^wabQT=n~TxH%i6yMbs-OpDnhVRgy z&H=wkGVPY`z1S?at%PmrsGq-ZzPgYcDDzbGnpJvus5n)5-GVmm4SRprCQ7J2T505&{L;A>!6NPrTRA)BJ<&nq){*wh zAD9bZ;vT3{HhAC$p9Q~Zur}kv(Zl3|y&1!zc~+yPj(eB~8?>@0ZbWK_oX$>1 zYFV9GN(UM+JQ%2!`Y?hmm$yF#Q(``c1GSv|#<*rJ7*(#MpvyfYGb;OD)3%5FoXU7vG819jgKD4pcQ2u~CVm@Us_#8?@igV(msK2TUu#Fl6u ziQ_&Dnp#)+NU@2jsJ{oPy{3KJ?E01@z=uNluYxlSJkL|6Z+g=L%3;8CDSU+NWt{dd zw+*g2X?b6#OxWt*!dge$S{Q~o09qV?MFFU`D#%fIO|m{8yrC7xy|hR=gEMt10-*Qp zWDVZkhx)iL&m4*2m3r&6 z#At!18d8saFWtdc_VT>kQP3TgPN%jxYQBU0#+56bf$#|xh72byNNU5Qo|bQZ>s!k= zzWI&i_rCReT^j#!4110kN8YDxD9Fy9StW3E4DrqROD%~nJ1C_C)i(I-iPOcW6w>S} z(=G`FT&`g5v*L&n?$17-zr0Ib-jNvsv2`S95_APuGUOkp9S&C~abvvg_jJSqQ|n2b zC41g&5g(+U)G7L1SQ0zH5PG7KdRoQ$PC5@f-#Vc@S<6d(Ygvu0P#XEy*aj%j@6=U( z^>iHMIYmA)nGVbBD800GXisBo;8T3hNX2tP2WC=VakuILLgaqKC!Xb82q#V*UyjDf zo>d>p0Z>3K>?5<<7meDPb>9s)3-d|%g+pZ@pzT2%fX4i*Er~4<4BtY>GHk2bMT;a;Ov(>+RM5C0G#GYL_t(C61OcTL(`PYIZx#HFswNv zI!Yo*kNDkX=x9@!lzw&EyHbjC#RxSp3n$KMfG24uMw$y}2NS|~-4Cbi=%`>hI^)3d zr7vHI!*D8cd$3!4Zr{GS&hD4$e&X(OX*|MK=bUn*~W^2ycU=4lMy)60bz+O}5EF?h%6^eKH4>FMGs_(n_p zqvzWyFLX&miWmGp1K?vgM`BuT5teth@R)6%e%4-heeAI=i?z3%({v#Cwxk*z@js`` zfDv7%-yS{*zXu*|2D83y2CMXi;GX{O#EGMMexfr(m9xA*cji*cvpvq1g-1O*!P50> z*FFs|K1jNQ%f(kN)N$t|jDd;A=q!Co`u5P23|7z4&k6V&F7Q$?xR`CnzxdK`&u4Hb z*A-W3ettzSgnsm{_TXJkHiHvA&91Xw$fENlw6QD5l1~2*H)cxl0Gy-WsnaJH=Rg?D z@N7;g>zw5*QF_Z%0D`@uUn=*%|u1zBH2=0 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 **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. @@ -25,12 +28,12 @@ In order to test them, first start PX4 in SITL (Simulation), optionally start *Q 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). -Once the simulator is installed, it can be started from the PX4 /Firmware directory using the command: +> **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 multicopter simulation can be started from the PX4 **/Firmware** directory using the command: * jMAVSim: `make posix_sitl_default jmavsim` * Gazebo: `make posix_sitl_default gazebo` -> **Note** Windows is not recommended for PX4/DroneCore development - by preference you should use a dual-boot Linux computer, or run both simulated PX4 and DroneCore in a virtual machine. - ### Using QGroundControl diff --git a/en/examples/transition_vtol_fixed_wing.md b/en/examples/transition_vtol_fixed_wing.md new file mode 100644 index 0000000..50139b3 --- /dev/null +++ b/en/examples/transition_vtol_fixed_wing.md @@ -0,0 +1,242 @@ +# Example: VTOL Transitions + +This example shows how you can use DroneCore to transition between VTOL copter and fixed-wing modes (and back). + +![VTOL Transition QGC Screenshot](../../assets/examples/transition_vtol_fixed_wing/transition_vtol_fixed_wing_example_qgc.png) + + +## Running the Example {#run_example} + +The example must be run against a VTOL aircraft. Otherwise the example is built and run [in the standard way](../examples/README.md#trying_the_examples). + +> **Tip** Instructions for running the Gazebo simulator for a standard VTOL can be found here: [PX4 Development Guide > Gazebo Simulation](https://dev.px4.io/en/simulation/gazebo.html#standard-vtol). jMAVSim does not support VTOL simulation. + +The example terminal output for a debug build of DroneCore should be similar to that shown below (a release build will omit the "Debug" messages): + +``` +$ ./transition_vtol_fixed_wing +Waiting to discover device... +[10:24:42|Info ] New device on: 127.0.0.1:14557 (udp_connection.cpp:210) +[10:24:42|Debug] MAVLink: info: [logger] file: rootfs/fs/microsd/log/2017-11-21/0 (device_impl.cpp:229) +[10:24:42|Debug] MAVLink: info: Landing detected (device_impl.cpp:229) +[10:24:43|Debug] Discovered 4294967298 (dronecore_impl.cpp:234) +Discovered device with UUID: 4294967298 +Arming... +Taking off... +[10:24:44|Debug] MAVLink: info: ARMED by arm/disarm component command (device_impl.cpp:229) +[10:24:44|Debug] MAVLink: info: Using minimum takeoff altitude: 10.00 m (device_impl.cpp:229) +[10:24:44|Debug] MAVLink: info: Takeoff detected (device_impl.cpp:229) +[10:24:44|Debug] MAVLink: critical: Using minimum takeoff altitude: 10.00 m (device_impl.cpp:229) +Altitude: 0.079 m +Altitude: 0.507 m +... +Altitude: 10.254 m +Transition to fixedwing... +Altitude: 10.263 m +... +Altitude: 20.72 m +Altitude: 24.616 m +Altitude: 22.262 m +Transition back to multicopter... +Altitude: 17.083 m +... +Return to launch... +Altitude: 11.884 m +[10:25:09|Debug] MAVLink: info: RTL: climb to 518 m (29 m above home) (device_impl.cpp:229) +Altitude: 13.61 m +... +Altitude: 27.489 m +Altitude: 28.892 m +[10:25:18|Debug] MAVLink: info: RTL: return at 517 m (29 m above home) (device_impl.cpp:229) +Altitude: 29.326 m +Altitude: 29.33 m +... +Altitude: 29.323 m +Altitude: 29.357 m +Landing... +[10:25:29|Debug] MAVLink: info: Landing at current position (device_impl.cpp:229) +Altitude: 29.199 m +Altitude: 28.722 m +Altitude: 28.189 m +Altitude: 27.62 m +Finished... +``` + +## How it works + +The operation of most of this code is discussed in the guide: [Takeoff and Landing (and other actions)](../guide/taking_off_landing.md#transition_vtol). + +## Source code {#source_code} + +> **Tip** The full source code for the example [can be found on Github here](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/example/transition_vtol_fixed_wing). + + +[CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/example/transition_vtol_fixed_wing/CMakeLists.txt) + +```make +cmake_minimum_required(VERSION 2.8.12) + +project(transition_vtol_fixed_wing) + +if(NOT MSVC) + add_definitions("-std=c++11 -Wall -Wextra -Werror") +else() + add_definitions("-std=c++11 -WX -W2") +endif() + +add_executable(transition_vtol_fixed_wing + transition_vtol_fixed_wing.cpp +) + +target_link_libraries(transition_vtol_fixed_wing + dronecore +) +``` + +[fly_mission.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/example/transition_vtol_fixed_wing/transition_vtol_fixed_wing.cpp) + +```cpp +#include +#include +#include +#include +#include + +using std::this_thread::sleep_for; +using std::chrono::milliseconds; +using namespace dronecore; + +#define ERROR_CONSOLE_TEXT "\033[31m" //Turn text on console red +#define TELEMETRY_CONSOLE_TEXT "\033[34m" //Turn text on console blue +#define NORMAL_CONSOLE_TEXT "\033[0m" //Restore normal console colour + +int main(int /*argc*/, char ** /*argv*/) +{ + DroneCore dc; + + bool discovered_device = false; + + DroneCore::ConnectionResult connection_result = dc.add_udp_connection(); + + if (connection_result != DroneCore::ConnectionResult::SUCCESS) { + std::cout << ERROR_CONSOLE_TEXT << "Connection failed: " + << DroneCore::connection_result_str(connection_result) + << NORMAL_CONSOLE_TEXT << std::endl; + return 1; + } + + std::cout << "Waiting to discover device..." << std::endl; + dc.register_on_discover([&discovered_device](uint64_t uuid) { + std::cout << "Discovered device with UUID: " << uuid << std::endl; + discovered_device = true; + }); + + // We usually receive heartbeats at 1Hz, therefore we should find a device after around 2 seconds. + std::this_thread::sleep_for(std::chrono::seconds(2)); + + if (!discovered_device) { + std::cout << ERROR_CONSOLE_TEXT << "No device found, exiting." << NORMAL_CONSOLE_TEXT << std::endl; + return 1; + } + + // We don't need to specify the UUID if it's only one device anyway. + // If there were multiple, we could specify it with: + // dc.device(uint64_t uuid); + Device &device = dc.device(); + + // We want to listen to the altitude of the drone at 1 Hz. + const Telemetry::Result set_rate_result = dc.device().telemetry().set_rate_position(1.0); + if (set_rate_result != Telemetry::Result::SUCCESS) { + std::cout << ERROR_CONSOLE_TEXT << "Setting rate failed:" << Telemetry::result_str( + set_rate_result) << NORMAL_CONSOLE_TEXT << std::endl; + return 1; + } + + + // Set up callback to monitor altitude while the vehicle is in flight + device.telemetry().position_async([](Telemetry::Position position) { + std::cout << TELEMETRY_CONSOLE_TEXT // set to blue + << "Altitude: " << position.relative_altitude_m << " m" + << NORMAL_CONSOLE_TEXT // set to default color again + << std::endl; + }); + + + // Check if vehicle is ready to arm + if (device.telemetry().health_all_ok() != true) { + std::cout << ERROR_CONSOLE_TEXT << "Vehicle not ready to arm" << NORMAL_CONSOLE_TEXT << std::endl; + return 1; + } + + // Arm vehicle + std::cout << "Arming..." << std::endl; + const Action::Result arm_result = device.action().arm(); + + if (arm_result != Action::Result::SUCCESS) { + std::cout << ERROR_CONSOLE_TEXT << "Arming failed:" << Action::result_str( + arm_result) << NORMAL_CONSOLE_TEXT << std::endl; + return 1; + } + + // Take off + std::cout << "Taking off..." << std::endl; + const Action::Result takeoff_result = device.action().takeoff(); + if (takeoff_result != Action::Result::SUCCESS) { + std::cout << ERROR_CONSOLE_TEXT << "Takeoff failed:" << Action::result_str( + takeoff_result) << NORMAL_CONSOLE_TEXT << std::endl; + return 1; + } + + // Wait + std::this_thread::sleep_for(std::chrono::seconds(10)); + + std::cout << "Transition to fixedwing..." << std::endl; + const Action::Result fw_result = device.action().transition_to_fixedwing(); + + if (fw_result != Action::Result::SUCCESS) { + std::cout << ERROR_CONSOLE_TEXT << "Transition to fixed wing failed: " << Action::result_str( + fw_result) << NORMAL_CONSOLE_TEXT << std::endl; + //return 1; + } + + // Wait + std::this_thread::sleep_for(std::chrono::seconds(10)); + + std::cout << "Transition back to multicopter..." << std::endl; + const Action::Result mc_result = device.action().transition_to_multicopter(); + if (mc_result != Action::Result::SUCCESS) { + std::cout << ERROR_CONSOLE_TEXT << "Transition to multi copter failed:" << Action::result_str( + mc_result) << NORMAL_CONSOLE_TEXT << std::endl; + // return 1; + } + + // Wait + std::this_thread::sleep_for(std::chrono::seconds(5)); + + // Return to launch + std::cout << "Return to launch..." << std::endl; + const Action::Result rtl_result = device.action().return_to_launch(); + if (rtl_result != Action::Result::SUCCESS) { + std::cout << ERROR_CONSOLE_TEXT << "Returning to launch failed:" << Action::result_str( + rtl_result) << NORMAL_CONSOLE_TEXT << std::endl; + // return 1; + } + + // Wait + std::this_thread::sleep_for(std::chrono::seconds(20)); + + // Land + std::cout << "Landing..." << std::endl; + const Action::Result land_result = device.action().land(); + if (land_result != Action::Result::SUCCESS) { + std::cout << ERROR_CONSOLE_TEXT << "Land failed:" << Action::result_str( + land_result) << NORMAL_CONSOLE_TEXT << std::endl; + // return 1; + } + + // We are relying on auto-disarming but let's keep watching the telemetry for a bit longer. + std::this_thread::sleep_for(std::chrono::seconds(5)); + std::cout << "Finished..." << std::endl; + return 0; +} +``` diff --git a/en/guide/taking_off_landing.md b/en/guide/taking_off_landing.md index 0020cf9..d266e7c 100644 --- a/en/guide/taking_off_landing.md +++ b/en/guide/taking_off_landing.md @@ -1,6 +1,6 @@ # Take-off and Landing (and Other Actions) -DroneCore provides the [Action](../api_reference/classdronecore_1_1_action.md) class for commanding the vehicle to arm, takeoff, land, return home and land, and disarm. +DroneCore provides the [Action](../api_reference/classdronecore_1_1_action.md) class for commanding the vehicle to arm, takeoff, land, return home and land, disarm, kill and transition between VTOL modes. Most of the methods have both synchronous and asynchronous versions. The methods send commands to a vehicle, and return/complete with the vehicle's response. It is important to understand that a successful response indicates whether or not the vehicle intends to act on the command, not that it has finished the action (e.g. arming, landing, taking off etc.). @@ -201,13 +201,37 @@ You can get/set the normal horizontal velocity used in *Return mode*, *Hold mode > **Note** These methods get/set the [MPC_XY_CRUISE](https://dev.px4.io/en/advanced/parameter_reference.html#MPC_XY_CRUISE) parameter. They are used in the same way as the other `Action` methods. + +## Switch Between VTOL Modes {#transition_vtol} + +DroneCore provides methods to transition between VTOL fixed wing and multicopter modes (and back), with both synchronous and asynchronous versions: +* [transition_to_fixedwing()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a6f40384be0ad61a29b6e2fd0a0c86754), [transition_to_multicopter](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a0088dbe4c715e2bfbe805b89d28add5a), +* [transition_to_fixedwing_async()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1af5b02f05ffdc2e0787a7633410710d9d), [transition_to_multicopter_async()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a053aa7430852a4200b201abda1b3b3e4) + +The associated action will only be executed for VTOL vehicles (on other vehicle types the command will fail with a `Result` of `VTOL_TRANSITION_SUPPORT_UNKNOWN` or `NO_VTOL_TRANSITION_SUPPORT`). The command will succeed if called when the vehicle is already in the mode. + +The code fragment below shows how to call the synchronous action to transition to fixed wing, +and to print the result of the call (the other synchronous method is used in the same way). + +```cpp +const Action::Result fw_result = device.action().transition_to_fixedwing(); + +if (fw_result != Action::Result::SUCCESS) { + std::cout << "Transition to fixed wing failed: " + << Action::result_str(fw_result) << std::endl; +} +``` + + ## Further Information Additional information/examples for the Action API are linked below: * [Example: Takeoff and Land](../examples/takeoff_and_land.md) +* [Example: VTOL Transitions](../examples/transition_vtol_fixed_wing.md) * Integration tests: * [simple_hover.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/simple_hover.cpp) * [async_hover.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/async_hover.cpp) * [takeoff_and_kill.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/takeoff_and_kill.cpp) + * [transition_multicopter_fixedwing.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/transition_multicopter_fixedwing.cpp) diff --git a/en/guide/vtol.md b/en/guide/vtol.md new file mode 100644 index 0000000..f146a79 --- /dev/null +++ b/en/guide/vtol.md @@ -0,0 +1,39 @@ +# VTOL Support + +DroneCore has basic support for VTOL vehicles. + +> **Note** Most design and test effort has gone into multicopter support. +> [Get in touch](../README.md#getting-help) if you would like to help enhance the VTOL/Fixed-wing experience! + +## Supported Functionality + +Much of the functionality in DroneCore is generic, and useful on all vehicle types. +At time of writing the only *VTOL-specific* functionality is the ability to +[transition to fixed wing mode (and back)](../guide/taking_off_landing.html#transition_vtol). + +This allows users to: + +- Take off and land in *multicopter* mode +- Fly in multicopter mode or transition and fly in fixed wing mode. +- Fly missions in the currently mode when the mission is started. +- Use the camera/gimbal and other generic features. + + +## Remaining Work + +Known omissions: +- Takeoff and landing is not supported in missions. +- VTOL takeoff in fixed wing mode is not supported. +- More research is required to confirm that no other VTOL APIs are required. +- VTOL specific testing needs to be considered and implemented. + + +## Further Information + +Additional information/examples are linked below: + +* [Guide: Taking Off and Landing > Transition to fixed wing mode](../guide/taking_off_landing.html#transition_vtol). +* [Example: VTOL Transitions](../examples/transition_vtol_fixed_wing.md) +* Integration tests: + * [transition_multicopter_fixedwing.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/transition_multicopter_fixedwing.cpp) + From d147c859a8fc48bd6a163e486b2ff94d4f9547ae Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Wed, 22 Nov 2017 10:10:49 +1100 Subject: [PATCH 038/107] Update deviceplugincontainer apiref --- .../classdronecore_1_1_device_plugin_container.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/en/api_reference/classdronecore_1_1_device_plugin_container.md b/en/api_reference/classdronecore_1_1_device_plugin_container.md index 96bd81e..570b0df 100644 --- a/en/api_reference/classdronecore_1_1_device_plugin_container.md +++ b/en/api_reference/classdronecore_1_1_device_plugin_container.md @@ -15,7 +15,7 @@ The content of the [DevicePluginContainer](classdronecore_1_1_device_plugin_cont Type | Name | Description ---: | --- | --- -| [DevicePluginContainer](#classdronecore_1_1_device_plugin_container_1af4c0f2facc64a99818737971f7f1cc77) (const DevicePluginContainer &)=delete | +| [DevicePluginContainer](#classdronecore_1_1_device_plugin_container_1af4c0f2facc64a99818737971f7f1cc77) (const DevicePluginContainer &)=delete | Copy constructor (object is not copyable). [Action](classdronecore_1_1_action.md) & | [action](#classdronecore_1_1_device_plugin_container_1aea48bd55b1ace227ebb56690794c2192) () | [Gimbal](classdronecore_1_1_gimbal.md) & | [gimbal](#classdronecore_1_1_device_plugin_container_1a2fce9f439c565af9a8510c5746c728f0) () | [Info](classdronecore_1_1_info.md) & | [info](#classdronecore_1_1_device_plugin_container_1a1509e3d7a469cbc3e33471138b1f4dc7) () | @@ -23,7 +23,7 @@ Type | Name | Description [Mission](classdronecore_1_1_mission.md) & | [mission](#classdronecore_1_1_device_plugin_container_1a8a05778326d0ef4c74146bc42fdcb52d) () | [Offboard](classdronecore_1_1_offboard.md) & | [offboard](#classdronecore_1_1_device_plugin_container_1a63193bd25273bbda48665e12e012f478) () | [Telemetry](classdronecore_1_1_telemetry.md) & | [telemetry](#classdronecore_1_1_device_plugin_container_1a9b119348d0f5195c9b0919fbe6196b14) () | -const [DevicePluginContainer](classdronecore_1_1_device_plugin_container.md) & | [operator=](#classdronecore_1_1_device_plugin_container_1abb90ffceec0873823fb78067d8d6e385) (const DevicePluginContainer &)=delete | +const [DevicePluginContainer](classdronecore_1_1_device_plugin_container.md) & | [operator=](#classdronecore_1_1_device_plugin_container_1abb90ffceec0873823fb78067d8d6e385) (const DevicePluginContainer &)=delete | Equality operator (object is not copyable). ## Constructor & Destructor Documentation @@ -35,6 +35,9 @@ dronecore::DevicePluginContainer::DevicePluginContainer(const DevicePluginContai ``` +Copy constructor (object is not copyable). + + **Parameters** * const [DevicePluginContainer](classdronecore_1_1_device_plugin_container.md) & - @@ -132,6 +135,9 @@ const DevicePluginContainer& dronecore::DevicePluginContainer::operator=(const D ``` +Equality operator (object is not copyable). + + **Parameters** * const [DevicePluginContainer](classdronecore_1_1_device_plugin_container.md) & - From 6dce32591821be693f9b830af219778b0b432219 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Wed, 22 Nov 2017 10:56:19 +1100 Subject: [PATCH 039/107] Update VTOL info in line with feedback --- en/examples/transition_vtol_fixed_wing.md | 2 +- en/guide/taking_off_landing.md | 4 ++-- en/guide/vtol.md | 17 +++++++++-------- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/en/examples/transition_vtol_fixed_wing.md b/en/examples/transition_vtol_fixed_wing.md index 50139b3..f209c25 100644 --- a/en/examples/transition_vtol_fixed_wing.md +++ b/en/examples/transition_vtol_fixed_wing.md @@ -64,7 +64,7 @@ Finished... ## How it works -The operation of most of this code is discussed in the guide: [Takeoff and Landing (and other actions)](../guide/taking_off_landing.md#transition_vtol). +The operation of the transition code is discussed in the guide: [Takeoff and Landing (and other actions)](../guide/taking_off_landing.md#transition_vtol). ## Source code {#source_code} diff --git a/en/guide/taking_off_landing.md b/en/guide/taking_off_landing.md index d266e7c..cc592f5 100644 --- a/en/guide/taking_off_landing.md +++ b/en/guide/taking_off_landing.md @@ -204,8 +204,8 @@ You can get/set the normal horizontal velocity used in *Return mode*, *Hold mode ## Switch Between VTOL Modes {#transition_vtol} -DroneCore provides methods to transition between VTOL fixed wing and multicopter modes (and back), with both synchronous and asynchronous versions: -* [transition_to_fixedwing()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a6f40384be0ad61a29b6e2fd0a0c86754), [transition_to_multicopter](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a0088dbe4c715e2bfbe805b89d28add5a), +DroneCore provides methods to transition between VTOL fixed wing and multicopter modes, with both synchronous and asynchronous versions: +* [transition_to_fixedwing()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a6f40384be0ad61a29b6e2fd0a0c86754), [transition_to_multicopter()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a0088dbe4c715e2bfbe805b89d28add5a) * [transition_to_fixedwing_async()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1af5b02f05ffdc2e0787a7633410710d9d), [transition_to_multicopter_async()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a053aa7430852a4200b201abda1b3b3e4) The associated action will only be executed for VTOL vehicles (on other vehicle types the command will fail with a `Result` of `VTOL_TRANSITION_SUPPORT_UNKNOWN` or `NO_VTOL_TRANSITION_SUPPORT`). The command will succeed if called when the vehicle is already in the mode. diff --git a/en/guide/vtol.md b/en/guide/vtol.md index f146a79..33b1db4 100644 --- a/en/guide/vtol.md +++ b/en/guide/vtol.md @@ -8,21 +8,22 @@ DroneCore has basic support for VTOL vehicles. ## Supported Functionality Much of the functionality in DroneCore is generic, and useful on all vehicle types. -At time of writing the only *VTOL-specific* functionality is the ability to -[transition to fixed wing mode (and back)](../guide/taking_off_landing.html#transition_vtol). +At time of writing the only *VTOL-specific* functionality are the actions to +[transition between fixed wing and copter modes](../guide/taking_off_landing.md#transition_vtol). -This allows users to: +DroneCore can command VTOL vehicles to: -- Take off and land in *multicopter* mode -- Fly in multicopter mode or transition and fly in fixed wing mode. -- Fly missions in the currently mode when the mission is started. +- Take off and land in *multicopter* mode. +- Fly in multicopter mode and transition to fly in fixed wing mode. +- Fly missions, using the transition actions to switch between fixed wing after takeoff and back to copter before landing. - Use the camera/gimbal and other generic features. ## Remaining Work Known omissions: -- Takeoff and landing is not supported in missions. + +- You can't include the transition to/from fixed wing in the mission itself, but have to use the transition actions. - VTOL takeoff in fixed wing mode is not supported. - More research is required to confirm that no other VTOL APIs are required. - VTOL specific testing needs to be considered and implemented. @@ -32,7 +33,7 @@ Known omissions: Additional information/examples are linked below: -* [Guide: Taking Off and Landing > Transition to fixed wing mode](../guide/taking_off_landing.html#transition_vtol). +* [Guide: Taking Off and Landing > Transition to fixed wing mode](../guide/taking_off_landing.md#transition_vtol) * [Example: VTOL Transitions](../examples/transition_vtol_fixed_wing.md) * Integration tests: * [transition_multicopter_fixedwing.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/transition_multicopter_fixedwing.cpp) From f531b226c4e4b1157ad062084611729116a9ffeb Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 28 Nov 2017 13:14:58 +1100 Subject: [PATCH 040/107] Update Windows app build instructions following retesting --- en/examples/README.md | 24 +++++++++++++++++------- en/guide/toolchain.md | 12 ++++++++---- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/en/examples/README.md b/en/examples/README.md index b5886e2..4d3c8b1 100644 --- a/en/examples/README.md +++ b/en/examples/README.md @@ -48,7 +48,7 @@ To build the examples follow the instructions below, replacing *takeoff_and_land #### Linux -First [Build and install the DroneCore C++ Library](../contributing/build.md) using the command below: +First [Build and install the DroneCore C++ Library](../contributing/build.md) system-wide using the command below: ```sh make clean made default @@ -65,29 +65,39 @@ make #### Windows -First [Build and install the DroneCore C++ Library](../contributing/build.md). -Make sure that you install the library and headers in the standard location: +First [Build and install the DroneCore C++ Library](../contributing/build.md#windows). +Make sure that you [install the library and headers locally](../contributing/build.md#dronecore_local_install) in the standard location: ```sh cmake --build . --target install ``` -Build the example as shown below (in this case *takeoff_and_land*, but all the other examples are built in the same way): +Modify the example as described in [Building C++ Apps > DroneCore Installed Locally](../guide/toolchain.md#dronecore_local_install) (this is required for Windows). + +Build the example as described in [Building C++ Apps](../guide/toolchain.md#windows). Below we show how for the *takeoff_and_land* example, but all the other examples are built in the same way: ```sh -cd example/takeoff_land/ +cd example/takeoff_and_land/ mkdir build && cd build +cmake .. -G "Visual Studio 15 2017 Win64" cmake --build . +.\Debug\takeoff_and_land.exe ``` -> **Note** The debug binary for the example is stored under \Debug folder. +> **Note** The debug binary for the example is stored under **\Debug** folder. ### Running the Examples {#running_the_examples} -On all platform you can then run the new executable (from the **\build** directory): +On Linux/macOS you can then run the new executable (from the **\build** directory): ```sh ./takeoff_and_land ``` +For Windows you launch the file from the **\build\Debug\** directory: +```sh +.\Debug\takeoff_and_land.exe +``` + + > **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()`. diff --git a/en/guide/toolchain.md b/en/guide/toolchain.md index 6313b11..c6922a2 100644 --- a/en/guide/toolchain.md +++ b/en/guide/toolchain.md @@ -15,7 +15,7 @@ Below we explain how to set up a minimal build setup (**CMakeLists.txt**) file f The sections below show how you can set up the file for when DroneCore is [installed system wide](../contributing/build.md#dronecore_system_wide_install) (the default) or [locally](../contributing/build.md#dronecore_local_install). -> **Warning** DroneCore system-wide installation is not yet supported on Windows (see [#155](https://github.com/dronecore/DroneCore/issues/155)). Instead build the app using a [local DroneCore installation](#dronecore_local_install). +> **Warning** DroneCore system-wide installation is not supported on Windows (see [#155](https://github.com/dronecore/DroneCore/issues/155)). Instead build the app using a [local DroneCore installation](#dronecore_local_install). > > Windows gurus, we'd [love your help](../README.md#getting-help) to implement this). @@ -56,11 +56,11 @@ target_link_libraries(your_executable_name ### DroneCore Installed Locally {#dronecore_local_install} -> **Tip** Where possible install Dronecore [system wide](../contributing/build.md#dronecore_system_wide_install) and follow the instructions in the [previous section](#dronecore_installed_system). +> **Tip** Where possible install Dronecore [system wide](../contributing/build.md#dronecore_system_wide_install) and follow the instructions in the [previous section](#dronecore_installed_system). You will need to install locally on Windows. **CMakeLists.txt** is more complicated when DroneCore is [installed locally](../contributing/build.md#dronecore_local_install), because you need to specify where the build should find both headers and library files *relative to your current directory*. -The changes to the file (with respect to the previous version) are shown below. You have to change the same information as before: *your_project_name*, *your_executable_name* and *your_source_file*. +The changes to the file (with respect to the previous version) are shown below. You have to change the same information as before: *your_project_name*, *your_executable_name* and *your_source_file*. > **Note** The example file below assumes that DroneCore was installed locally into the directory **DroneCore/install/** and that the application is nested two levels deep (at the same level as the DroneCore example code). @@ -118,6 +118,8 @@ target_link_libraries(your_executable_name This section assumes that you have already [built and installed the DroneCore C++ Library](../contributing/build.md) and that your example has a **CMakeLists.txt** in its root directory. +### Linux/macOS + To create and run the app on Linux/macOS: 1. First create a build directory and run *cmake*: ```bash @@ -138,6 +140,8 @@ To create and run the app on Linux/macOS: ./your_executable_name # Run your new executable ``` +### Windows + To create and run the app on Windows: 1. Open the *VS2017 x64 Native Tools Command Prompt*. 1. Navigate to the app source directory and enter the commands as shown below: @@ -146,7 +150,7 @@ To create and run the app on Windows: mkdir build && cd build # Create a build directory and navigate into it cmake .. -G "Visual Studio 15 2017 Win64" # Create make files for your current platform cmake --build . # Build the file - ./your_executable_name # Run your new executable + .\Debug\your_executable_name.exe # Run your new executable ``` From 97cbaede499f37b0c08013c1e63f72ce0a765a10 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 4 Dec 2017 12:45:17 +1100 Subject: [PATCH 041/107] Update API reference following addition of follow_me and with some script fixes --- en/SUMMARY.md | 3 + en/api_reference/README.md | 3 + en/api_reference/classdronecore_1_1_action.md | 2 +- en/api_reference/classdronecore_1_1_device.md | 13 + ...ssdronecore_1_1_device_plugin_container.md | 13 + .../classdronecore_1_1_drone_core.md | 2 +- .../classdronecore_1_1_follow_me.md | 273 ++++++++++++++++++ en/api_reference/classdronecore_1_1_gimbal.md | 2 +- en/api_reference/classdronecore_1_1_info.md | 4 +- .../classdronecore_1_1_logging.md | 2 +- .../classdronecore_1_1_mission.md | 2 +- .../classdronecore_1_1_mission_item.md | 2 +- .../classdronecore_1_1_offboard.md | 2 +- .../classdronecore_1_1_telemetry.md | 17 +- ...tructdronecore_1_1_follow_me_1_1_config.md | 178 ++++++++++++ ...ecore_1_1_follow_me_1_1_target_location.md | 87 ++++++ .../structdronecore_1_1_info_1_1_product.md | 11 +- .../structdronecore_1_1_info_1_1_version.md | 32 +- ...1_1_offboard_1_1_velocity_body_yawspeed.md | 11 +- ...ore_1_1_offboard_1_1_velocity_n_e_d_yaw.md | 11 +- ...ructdronecore_1_1_telemetry_1_1_battery.md | 5 +- ...dronecore_1_1_telemetry_1_1_euler_angle.md | 8 +- ...tdronecore_1_1_telemetry_1_1_g_p_s_info.md | 5 +- ...re_1_1_telemetry_1_1_ground_speed_n_e_d.md | 8 +- ...tructdronecore_1_1_telemetry_1_1_health.md | 20 +- ...uctdronecore_1_1_telemetry_1_1_position.md | 11 +- ...tdronecore_1_1_telemetry_1_1_quaternion.md | 11 +- ...tdronecore_1_1_telemetry_1_1_r_c_status.md | 8 +- 28 files changed, 639 insertions(+), 107 deletions(-) create mode 100644 en/api_reference/classdronecore_1_1_follow_me.md create mode 100644 en/api_reference/structdronecore_1_1_follow_me_1_1_config.md create mode 100644 en/api_reference/structdronecore_1_1_follow_me_1_1_target_location.md diff --git a/en/SUMMARY.md b/en/SUMMARY.md index 76110b2..f3ba776 100644 --- a/en/SUMMARY.md +++ b/en/SUMMARY.md @@ -41,6 +41,9 @@ * [struct VelocityBodyYawspeed](api_reference/structdronecore_1_1_offboard_1_1_velocity_body_yawspeed.md) * [struct VelocityNEDYaw](api_reference/structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw.md) * [class Gimbal](api_reference/classdronecore_1_1_gimbal.md) + * [class FollowMe](api_reference/classdronecore_1_1_follow_me.md) + * [struct Config](api_reference/structdronecore_1_1_follow_me_1_1_config.md) + * [struct TargetLocation ](api_reference/structdronecore_1_1_follow_me_1_1_target_location.md) * [class Logging](api_reference/classdronecore_1_1_logging.md) * [class DevicePluginContainer](api_reference/classdronecore_1_1_device_plugin_container.md) * [Contributing](contributing/README.md) diff --git a/en/api_reference/README.md b/en/api_reference/README.md index 74a1378..b102051 100644 --- a/en/api_reference/README.md +++ b/en/api_reference/README.md @@ -21,5 +21,8 @@ * [struct VelocityBodyYawspeed](structdronecore_1_1_offboard_1_1_velocity_body_yawspeed.md) * [struct VelocityNEDYaw](structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw.md) * [class Gimbal](classdronecore_1_1_gimbal.md) +* [class FollowMe](classdronecore_1_1_follow_me.md) + * [struct Config](structdronecore_1_1_follow_me_1_1_config.md) + * [struct TargetLocation ](structdronecore_1_1_follow_me_1_1_target_location.md) * [class Logging](classdronecore_1_1_logging.md) * [class DevicePluginContainer](classdronecore_1_1_device_plugin_container.md) \ No newline at end of file diff --git a/en/api_reference/classdronecore_1_1_action.md b/en/api_reference/classdronecore_1_1_action.md index aaf0296..d515a99 100644 --- a/en/api_reference/classdronecore_1_1_action.md +++ b/en/api_reference/classdronecore_1_1_action.md @@ -119,7 +119,7 @@ Callback type for asynchronous [Action](classdronecore_1_1_action.md) calls. Possible results returned for commanded actions. - Value | Description +Value | Description --- | --- `SUCCESS` | Success. The action command was accepted by the vehicle. `NO_DEVICE` | No device is connected error. diff --git a/en/api_reference/classdronecore_1_1_device.md b/en/api_reference/classdronecore_1_1_device.md index 86f69ae..e17110d 100644 --- a/en/api_reference/classdronecore_1_1_device.md +++ b/en/api_reference/classdronecore_1_1_device.md @@ -27,6 +27,7 @@ Type | Name | Description | [Device](#classdronecore_1_1_device_1aa64ba685fe110fcb0a8e1b92156f144b) (DeviceImpl *impl) | Constructor (internal use only). | [~Device](#classdronecore_1_1_device_1a65c697e12eed30109074e18a9cfdc836) () | Destructor (internal use only). [Action](classdronecore_1_1_action.md) & | [action](#classdronecore_1_1_device_plugin_container_1aea48bd55b1ace227ebb56690794c2192) () | +[FollowMe](classdronecore_1_1_follow_me.md) & | [follow_me](#classdronecore_1_1_device_plugin_container_1ae13164c3bb59230c559341b8506c5e03) () | [Gimbal](classdronecore_1_1_gimbal.md) & | [gimbal](#classdronecore_1_1_device_plugin_container_1a2fce9f439c565af9a8510c5746c728f0) () | [Info](classdronecore_1_1_info.md) & | [info](#classdronecore_1_1_device_plugin_container_1a1509e3d7a469cbc3e33471138b1f4dc7) () | [Logging](classdronecore_1_1_logging.md) & | [logging](#classdronecore_1_1_device_plugin_container_1a0551f966021bdbd9e41700232c33d379) () | @@ -77,6 +78,18 @@ Getter for [Action](classdronecore_1_1_action.md) plugin.  [Action](classdronecore_1_1_action.md) & - a reference to the action plugin instance +### follow_me() {#classdronecore_1_1_device_plugin_container_1ae13164c3bb59230c559341b8506c5e03} +```cpp +FollowMe& dronecore::DevicePluginContainer::follow_me() +``` + + +Getter for [FollowMe](classdronecore_1_1_follow_me.md) plugin. + +**Returns** + + [FollowMe](classdronecore_1_1_follow_me.md) & - a reference to the follow_me plugin instance + ### gimbal() {#classdronecore_1_1_device_plugin_container_1a2fce9f439c565af9a8510c5746c728f0} ```cpp Gimbal& dronecore::DevicePluginContainer::gimbal() diff --git a/en/api_reference/classdronecore_1_1_device_plugin_container.md b/en/api_reference/classdronecore_1_1_device_plugin_container.md index 570b0df..110dcf9 100644 --- a/en/api_reference/classdronecore_1_1_device_plugin_container.md +++ b/en/api_reference/classdronecore_1_1_device_plugin_container.md @@ -17,6 +17,7 @@ Type | Name | Description ---: | --- | --- | [DevicePluginContainer](#classdronecore_1_1_device_plugin_container_1af4c0f2facc64a99818737971f7f1cc77) (const DevicePluginContainer &)=delete | Copy constructor (object is not copyable). [Action](classdronecore_1_1_action.md) & | [action](#classdronecore_1_1_device_plugin_container_1aea48bd55b1ace227ebb56690794c2192) () | +[FollowMe](classdronecore_1_1_follow_me.md) & | [follow_me](#classdronecore_1_1_device_plugin_container_1ae13164c3bb59230c559341b8506c5e03) () | [Gimbal](classdronecore_1_1_gimbal.md) & | [gimbal](#classdronecore_1_1_device_plugin_container_1a2fce9f439c565af9a8510c5746c728f0) () | [Info](classdronecore_1_1_info.md) & | [info](#classdronecore_1_1_device_plugin_container_1a1509e3d7a469cbc3e33471138b1f4dc7) () | [Logging](classdronecore_1_1_logging.md) & | [logging](#classdronecore_1_1_device_plugin_container_1a0551f966021bdbd9e41700232c33d379) () | @@ -57,6 +58,18 @@ Getter for [Action](classdronecore_1_1_action.md) plugin.  [Action](classdronecore_1_1_action.md) & - a reference to the action plugin instance +### follow_me() {#classdronecore_1_1_device_plugin_container_1ae13164c3bb59230c559341b8506c5e03} +```cpp +FollowMe& dronecore::DevicePluginContainer::follow_me() +``` + + +Getter for [FollowMe](classdronecore_1_1_follow_me.md) plugin. + +**Returns** + + [FollowMe](classdronecore_1_1_follow_me.md) & - a reference to the follow_me plugin instance + ### gimbal() {#classdronecore_1_1_device_plugin_container_1a2fce9f439c565af9a8510c5746c728f0} ```cpp Gimbal& dronecore::DevicePluginContainer::gimbal() diff --git a/en/api_reference/classdronecore_1_1_drone_core.md b/en/api_reference/classdronecore_1_1_drone_core.md index 9e687c8..ee1aac7 100644 --- a/en/api_reference/classdronecore_1_1_drone_core.md +++ b/en/api_reference/classdronecore_1_1_drone_core.md @@ -99,7 +99,7 @@ Result type returned when adding a connection. **Note**: [DroneCore](classdronecore_1_1_drone_core.md) does not throw exceptions. Instead a result of this type will be returned when you add a connection: [add_udp_connection()](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1ae4d3a7e5cc46d9570beaafdb5f19a1a8). - Value | Description +Value | Description --- | --- `SUCCESS` | Connection succeeded. `TIMEOUT` | Connection timed out. diff --git a/en/api_reference/classdronecore_1_1_follow_me.md b/en/api_reference/classdronecore_1_1_follow_me.md new file mode 100644 index 0000000..46733f1 --- /dev/null +++ b/en/api_reference/classdronecore_1_1_follow_me.md @@ -0,0 +1,273 @@ +# dronecore::FollowMe Class Reference +`#include: follow_me.h` + +---- + + +This class enables vehicle tracking of a specified target (typically a ground station carried by a user). + + +The API is used to supply both the position(s) for the target and the relative follow position of the vehicle. Applications must get target position information from the underlying platform (or some other source). + + +**See Also:** +- [Follow Me Mode](https://docs.px4.io/en/flight_modes/follow_me.html) (PX4 User Guide) + + +## Data Structures + + +struct [Config](structdronecore_1_1_follow_me_1_1_config.md) + +struct [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) + +## Public Types + + +Type | Description +--- | --- +enum [Result](#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) | Results of [FollowMe](classdronecore_1_1_follow_me.md) operations. + +## Public Member Functions + + +Type | Name | Description +---: | --- | --- +| [FollowMe](#classdronecore_1_1_follow_me_1a4fb2ce15bde7d521644dc0835cf217e1) (FollowMeImpl *impl) | Constructor (internal use only). +| [~FollowMe](#classdronecore_1_1_follow_me_1a66ffe3c9652bc08a2766f211592316ac) () | Destructor (internal use only). +| [FollowMe](#classdronecore_1_1_follow_me_1a54589c314eeba131aca1c4c56d4b15e3) (const FollowMe &)=delete | Copy constructor (object is not copyable). +const [Config](structdronecore_1_1_follow_me_1_1_config.md) & | [get_config](#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5) () const | Gets current [FollowMe](classdronecore_1_1_follow_me.md) configuration. +bool | [set_config](#classdronecore_1_1_follow_me_1a4b92c3a042911dd9bdb378c686458a34) (const Config &config) | Applies [FollowMe](classdronecore_1_1_follow_me.md) configuration by sending it to device. +bool | [is_active](#classdronecore_1_1_follow_me_1a467349820ac5f42cc388228c399a93ef) () const | Checks whether [FollowMe](classdronecore_1_1_follow_me.md) is active. +void | [set_curr_target_location](#classdronecore_1_1_follow_me_1afb8c24ed93421e904b0f528569c7699a) (const TargetLocation &location) | Sets current location of the moving target App can obtain location of the moving target from Location framework of the underlying platform. +void | [get_last_location](#classdronecore_1_1_follow_me_1ab68273d5ace65ee953afa1797ae49e7c) (TargetLocation &last_location) | Returns the most recent location of the target. +[FollowMe::Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) | [start](#classdronecore_1_1_follow_me_1a694749d43d527f85584df25a49b05ccf) () const | Starts [FollowMe](classdronecore_1_1_follow_me.md) mode. +[FollowMe::Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) | [stop](#classdronecore_1_1_follow_me_1a6394507b0fb96bceebe6efd17f0529ce) () const | Stops [FollowMe](classdronecore_1_1_follow_me.md) mode. +const [FollowMe](classdronecore_1_1_follow_me.md) & | [operator=](#classdronecore_1_1_follow_me_1accb454508e051d79b2943ba469958f9e) (const FollowMe &)=delete | Equality operator (object is not copyable). + +## Static Public Member Functions + + +Type | Name | Description +---: | --- | --- +std::string | [result_str](#classdronecore_1_1_follow_me_1a50d848b1c7b00e40343b8d62593ca307) (Result result) | Returns English string for [FollowMe](classdronecore_1_1_follow_me.md) error codes. + + +## Constructor & Destructor Documentation + + +### FollowMe() {#classdronecore_1_1_follow_me_1a4fb2ce15bde7d521644dc0835cf217e1} +```cpp +dronecore::FollowMe::FollowMe(FollowMeImpl *impl) +``` + + +Constructor (internal use only). + + +**Parameters** + +* FollowMeImpl * **impl** - Private internal implementation. + +### ~FollowMe() {#classdronecore_1_1_follow_me_1a66ffe3c9652bc08a2766f211592316ac} +```cpp +dronecore::FollowMe::~FollowMe() +``` + + +Destructor (internal use only). + + +### FollowMe() {#classdronecore_1_1_follow_me_1a54589c314eeba131aca1c4c56d4b15e3} +```cpp +dronecore::FollowMe::FollowMe(const FollowMe &)=delete +``` + + +Copy constructor (object is not copyable). + + +**Parameters** + +* const [FollowMe](classdronecore_1_1_follow_me.md) & - + +## Member Enumeration Documentation + + +### enum Result {#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02} + + +Results of [FollowMe](classdronecore_1_1_follow_me.md) operations. + + +Value | Description +--- | --- + `SUCCESS` | Request succeeded. + `NO_DEVICE` | No device connected. + `CONNECTION_ERROR` | Connection error. + `BUSY` | Vehicle busy. + `COMMAND_DENIED` | Command denied. + `TIMEOUT` | Request timeout. + `NOT_ACTIVE` | [FollowMe](classdronecore_1_1_follow_me.md) is not activated. + `UNKNOWN` | Unknown error. + +**See Also:** +- [result_str()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a50d848b1c7b00e40343b8d62593ca307) + + +## Member Function Documentation + + +### get_config() {#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5} +```cpp +const Config& dronecore::FollowMe::get_config() const +``` + + +Gets current [FollowMe](classdronecore_1_1_follow_me.md) configuration. + + +**Returns** + + const [Config](structdronecore_1_1_follow_me_1_1_config.md) & - Current [FollowMe](classdronecore_1_1_follow_me.md) configuration. + +**See Also:** +- [set_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a4b92c3a042911dd9bdb378c686458a34) + + +### set_config() {#classdronecore_1_1_follow_me_1a4b92c3a042911dd9bdb378c686458a34} +```cpp +bool dronecore::FollowMe::set_config(const Config &config) +``` + + +Applies [FollowMe](classdronecore_1_1_follow_me.md) configuration by sending it to device. + + +**Parameters** + +* const [Config](structdronecore_1_1_follow_me_1_1_config.md) & **config** - [FollowMe](classdronecore_1_1_follow_me.md) configuration to be applied. + +**Returns** + + bool - `true` if configuration is applied successfully, `false` if config values are out-of-range. In case of failure, last configuration is preserved. + +**See Also:** +- [get_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5) + + +### is_active() {#classdronecore_1_1_follow_me_1a467349820ac5f42cc388228c399a93ef} +```cpp +bool dronecore::FollowMe::is_active() const +``` + + +Checks whether [FollowMe](classdronecore_1_1_follow_me.md) is active. + + +**Returns** + + bool - `true` if [FollowMe](classdronecore_1_1_follow_me.md) is active, `false` otherwise. + +### set_curr_target_location() {#classdronecore_1_1_follow_me_1afb8c24ed93421e904b0f528569c7699a} +```cpp +void dronecore::FollowMe::set_curr_target_location(const TargetLocation &location) +``` + + +Sets current location of the moving target App can obtain location of the moving target from Location framework of the underlying platform. + +**Notes:** + + +The following links provide information about location services on different platforms: +

+ +**Parameters** + +* const [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & **location** - Current location of the target. + +**See Also:** +- [get_last_location()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1ab68273d5ace65ee953afa1797ae49e7c) + + +### get_last_location() {#classdronecore_1_1_follow_me_1ab68273d5ace65ee953afa1797ae49e7c} +```cpp +void dronecore::FollowMe::get_last_location(TargetLocation &last_location) +``` + + +Returns the most recent location of the target. + + +**Parameters** + +* [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & **last_location** - Last location to be filled. + +**See Also:** +- [set_curr_target_location()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1afb8c24ed93421e904b0f528569c7699a) + + +### start() {#classdronecore_1_1_follow_me_1a694749d43d527f85584df25a49b05ccf} +```cpp +FollowMe::Result dronecore::FollowMe::start() const +``` + + +Starts [FollowMe](classdronecore_1_1_follow_me.md) mode. + + +**Returns** + + [FollowMe::Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) - [FollowMe::Result::SUCCESS](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02ad0749aaba8b833466dfcbb0428e4f89c) if succeeded, error otherwise. + +### stop() {#classdronecore_1_1_follow_me_1a6394507b0fb96bceebe6efd17f0529ce} +```cpp +FollowMe::Result dronecore::FollowMe::stop() const +``` + + +Stops [FollowMe](classdronecore_1_1_follow_me.md) mode. + + +**Returns** + + [FollowMe::Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) - [FollowMe::Result::SUCCESS](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02ad0749aaba8b833466dfcbb0428e4f89c) if succeeded, error otherwise. See [FollowMe::Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) for error codes. + +### operator=() {#classdronecore_1_1_follow_me_1accb454508e051d79b2943ba469958f9e} +```cpp +const FollowMe& dronecore::FollowMe::operator=(const FollowMe &)=delete +``` + + +Equality operator (object is not copyable). + + +**Parameters** + +* const [FollowMe](classdronecore_1_1_follow_me.md) & - + +**Returns** + + const [FollowMe](classdronecore_1_1_follow_me.md) & - + +### result_str() {#classdronecore_1_1_follow_me_1a50d848b1c7b00e40343b8d62593ca307} +```cpp +static std::string dronecore::FollowMe::result_str(Result result) +``` + + +Returns English string for [FollowMe](classdronecore_1_1_follow_me.md) error codes. + + +**Parameters** + +* [Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) **result** - [Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) code. + +**Returns** + + std::string - Returns std::string describing error code. \ No newline at end of file diff --git a/en/api_reference/classdronecore_1_1_gimbal.md b/en/api_reference/classdronecore_1_1_gimbal.md index 36598a9..7f75841 100644 --- a/en/api_reference/classdronecore_1_1_gimbal.md +++ b/en/api_reference/classdronecore_1_1_gimbal.md @@ -98,7 +98,7 @@ Callback type for asynchronous [Gimbal](classdronecore_1_1_gimbal.md) calls. Possible results returned for gimbal commands. - Value | Description +Value | Description --- | --- `SUCCESS` | Success. The gimbal command was accepted. `ERROR` | Error. An error occured sending the command. diff --git a/en/api_reference/classdronecore_1_1_info.md b/en/api_reference/classdronecore_1_1_info.md index f12798d..e118dbf 100644 --- a/en/api_reference/classdronecore_1_1_info.md +++ b/en/api_reference/classdronecore_1_1_info.md @@ -31,7 +31,7 @@ const [Info](classdronecore_1_1_info.md) & | [operator=](#classdronecore_1_1_inf ## Static Public Attributes -static const unsigned [GIT_HASH_STR_LEN](#classdronecore_1_1_info_1aae671143f80e43d2f431e7fe0d3774fd)= 17 - Length of git hash strings. +static const unsigned [GIT_HASH_STR_LEN](#classdronecore_1_1_info_1aae671143f80e43d2f431e7fe0d3774fd) = 17 - Length of git hash strings. ## Constructor & Destructor Documentation @@ -151,7 +151,7 @@ Equality operator (object is not copyable). ### GIT_HASH_STR_LEN {#classdronecore_1_1_info_1aae671143f80e43d2f431e7fe0d3774fd} ```cpp -const unsigned dronecore::Info::GIT_HASH_STR_LEN= 17 +const unsigned dronecore::Info::GIT_HASH_STR_LEN ``` diff --git a/en/api_reference/classdronecore_1_1_logging.md b/en/api_reference/classdronecore_1_1_logging.md index 9f7d39c..35f9110 100644 --- a/en/api_reference/classdronecore_1_1_logging.md +++ b/en/api_reference/classdronecore_1_1_logging.md @@ -100,7 +100,7 @@ Callback type for logging requests. Results for logging requests. - Value | Description +Value | Description --- | --- `SUCCESS` | Request succeeded. `NO_DEVICE` | No device connected. diff --git a/en/api_reference/classdronecore_1_1_mission.md b/en/api_reference/classdronecore_1_1_mission.md index 9e64279..2f5cca9 100644 --- a/en/api_reference/classdronecore_1_1_mission.md +++ b/en/api_reference/classdronecore_1_1_mission.md @@ -130,7 +130,7 @@ The mission is finished if current == total. Possible results returned for mission requests. - Value | Description +Value | Description --- | --- `SUCCESS` | Request succeeded. `ERROR` | Error. diff --git a/en/api_reference/classdronecore_1_1_mission_item.md b/en/api_reference/classdronecore_1_1_mission_item.md index 9d136f7..df3e519 100644 --- a/en/api_reference/classdronecore_1_1_mission_item.md +++ b/en/api_reference/classdronecore_1_1_mission_item.md @@ -87,7 +87,7 @@ Copy constructor (object is not copyable). Possible camera actions at a mission item. - Value | Description +Value | Description --- | --- `TAKE_PHOTO` | Take single photo. `START_PHOTO_INTERVAL` | Start capturing photos at regular intervals - see [set_camera_photo_interval()](classdronecore_1_1_mission_item.md#classdronecore_1_1_mission_item_1a4ffe698b47c659aa8857725e94ad1f7c). diff --git a/en/api_reference/classdronecore_1_1_offboard.md b/en/api_reference/classdronecore_1_1_offboard.md index dc7bbc4..d4b2e0b 100644 --- a/en/api_reference/classdronecore_1_1_offboard.md +++ b/en/api_reference/classdronecore_1_1_offboard.md @@ -116,7 +116,7 @@ Callback type for offboard requests. Results for offboard requests. - Value | Description +Value | Description --- | --- `SUCCESS` | Request succeeded. `NO_DEVICE` | No device connected. diff --git a/en/api_reference/classdronecore_1_1_telemetry.md b/en/api_reference/classdronecore_1_1_telemetry.md index 7543a56..ceb4052 100644 --- a/en/api_reference/classdronecore_1_1_telemetry.md +++ b/en/api_reference/classdronecore_1_1_telemetry.md @@ -110,7 +110,7 @@ const [Telemetry](classdronecore_1_1_telemetry.md) & | [operator=](#classdroneco Type | Name | Description ---: | --- | --- -const char * | [flight_mode_str](#classdronecore_1_1_telemetry_1ada1428856268d876b22d5d4dabdea8bd) (FlightMode flight_mode) | Get a human readable English string for a flight mode. +std::string | [flight_mode_str](#classdronecore_1_1_telemetry_1a84a33ee3ce1a95a97dd66c66d821b512) (FlightMode flight_mode) | Get a human readable English string for a flight mode. const char * | [result_str](#classdronecore_1_1_telemetry_1a05c6355b7f8743250b2a7a611ea5fb4a) (Result result) | Get human-readable English string for [Telemetry::Result](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a5bfab85edb7c160e156133a9643964bc). @@ -313,7 +313,7 @@ Callback type for health status updates. **Parameters** -* **health_all_ok** - +* **health_all_ok** - If all health flags are ok. ### typedef rc_status_callback_t {#classdronecore_1_1_telemetry_1a7bbe1360883d5d1f124096e94576e4c3} @@ -339,7 +339,7 @@ Flight modes. For more information about flight modes, check out [https://docs.px4.io/en/config/flight_mode.html](https://docs.px4.io/en/config/flight_mode.html). - Value | Description +Value | Description --- | --- `READY` | Armed and ready to take off. `TAKEOFF` | Taking off. @@ -348,6 +348,7 @@ For more information about flight modes, check out [https://docs.px4.io/en/confi `RETURN_TO_LAUNCH` | Returning to launch position (then landing). `LAND` | Landing. `OFFBOARD` | [Offboard](classdronecore_1_1_offboard.md) mode. + `FOLLOW_ME` | [FollowMe](classdronecore_1_1_follow_me.md) mode. `UNKNOWN` | Mode not known. ### enum Result {#classdronecore_1_1_telemetry_1a5bfab85edb7c160e156133a9643964bc} @@ -356,7 +357,7 @@ For more information about flight modes, check out [https://docs.px4.io/en/confi Results enum for telemetry requests. - Value | Description +Value | Description --- | --- `SUCCESS` | Request succeeded. `NO_DEVICE` | No device connected. @@ -828,7 +829,7 @@ Returns true if the overall health is ok (synchronous). **Returns** - bool - true if all individual health flags are true. + bool - True if all health flags are OK. ### rc_status() {#classdronecore_1_1_telemetry_1a1f60325b7b4b31c5c02baafd025e7bf0} ```cpp @@ -1059,9 +1060,9 @@ Equality operator (object is not copyable).  const [Telemetry](classdronecore_1_1_telemetry.md) & - -### flight_mode_str() {#classdronecore_1_1_telemetry_1ada1428856268d876b22d5d4dabdea8bd} +### flight_mode_str() {#classdronecore_1_1_telemetry_1a84a33ee3ce1a95a97dd66c66d821b512} ```cpp -static const char* dronecore::Telemetry::flight_mode_str(FlightMode flight_mode) +static std::string dronecore::Telemetry::flight_mode_str(FlightMode flight_mode) ``` @@ -1074,7 +1075,7 @@ Get a human readable English string for a flight mode. **Returns** - const char * - + std::string - ### result_str() {#classdronecore_1_1_telemetry_1a05c6355b7f8743250b2a7a611ea5fb4a} ```cpp diff --git a/en/api_reference/structdronecore_1_1_follow_me_1_1_config.md b/en/api_reference/structdronecore_1_1_follow_me_1_1_config.md new file mode 100644 index 0000000..a040a06 --- /dev/null +++ b/en/api_reference/structdronecore_1_1_follow_me_1_1_config.md @@ -0,0 +1,178 @@ +# dronecore::FollowMe::Config Struct Reference +`#include: follow_me.h` + +---- + + +[FollowMe](classdronecore_1_1_follow_me.md) Configuration. + + +**See Also:** +- [get_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5), [set_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a4b92c3a042911dd9bdb378c686458a34) +- [Parameter Reference](https://docs.px4.io/en/advanced_config/parameter_reference.html#follow-target) (PX4 User Guide) + + +## Public Types + + +Type | Description +--- | --- +enum [FollowDirection](#structdronecore_1_1_follow_me_1_1_config_1a048f9f74309c17027c37eadc4dcb2c1a) | Relative position of following vehicle. + +## Data Fields + + +float [min_height_m](#structdronecore_1_1_follow_me_1_1_config_1a62c100d4dc35e3731f3b5d62fb5baad9) = 8.0f - Min follow height, in meters. + +float [follow_dist_m](#structdronecore_1_1_follow_me_1_1_config_1ab0e453d6b18cf602548cd63636b103ea) = 8.0f - Horizontal follow distance to target, in meters. + +[FollowDirection](structdronecore_1_1_follow_me_1_1_config.md#structdronecore_1_1_follow_me_1_1_config_1a048f9f74309c17027c37eadc4dcb2c1a) [follow_direction](#structdronecore_1_1_follow_me_1_1_config_1a920f7acca4b5e717c9ead1bb89f9d538) = [FollowDirection::BEHIND](structdronecore_1_1_follow_me_1_1_config.md#structdronecore_1_1_follow_me_1_1_config_1a048f9f74309c17027c37eadc4dcb2c1aaef9c2aaa3392278b1fe2fa46124350a9) - Relative position of the following vehicle. + +float [responsiveness](#structdronecore_1_1_follow_me_1_1_config_1a836c1179788d24861642bb45b28dc7fe) = 0.5f - Responsiveness, Range (0.0-1.0) + +## Static Public Attributes + + +static constexpr const float [MIN_HEIGHT_M](#structdronecore_1_1_follow_me_1_1_config_1a4bc3dee9ca74031a3ac1a8dea2df12d4) = 8.0f - Min follow height, in meters. + + +static constexpr const float [MIN_FOLLOW_DIST_M](#structdronecore_1_1_follow_me_1_1_config_1a92f039f840aa3adad740fe048697ce9f) = 1.0f - Min follow distance, in meters. + + +static constexpr const float [MIN_RESPONSIVENESS](#structdronecore_1_1_follow_me_1_1_config_1ac73d36213f4ac6505ec2d44ad4fd2b4e) = 0.f - Min responsiveness. + + +static constexpr const float [MAX_RESPONSIVENESS](#structdronecore_1_1_follow_me_1_1_config_1afcdf2d6e55dd9da59a05fb5dbcbeab49) = 1.0f - Max responsiveness. + + +## Static Public Member Functions + + +Type | Name | Description +---: | --- | --- +std::string | [to_str](#structdronecore_1_1_follow_me_1_1_config_1a025a841e75b66541ef029d8f837886ad) (FollowDirection direction) | Human-readable string for enum [FollowDirection](structdronecore_1_1_follow_me_1_1_config.md#structdronecore_1_1_follow_me_1_1_config_1a048f9f74309c17027c37eadc4dcb2c1a). + + +## Member Enumeration Documentation + + +### enum FollowDirection {#structdronecore_1_1_follow_me_1_1_config_1a048f9f74309c17027c37eadc4dcb2c1a} + + +Relative position of following vehicle. + + +Value | Description +--- | --- + `FRONT_RIGHT` | Follow from front right. + `BEHIND` | Follow from behind. + `FRONT` | Follow from front. + `FRONT_LEFT` | Follow from front left. + `NONE` | + +**See Also:** +- [to_str()](structdronecore_1_1_follow_me_1_1_config.md#structdronecore_1_1_follow_me_1_1_config_1a025a841e75b66541ef029d8f837886ad) + + +## Member Function Documentation + + +### to_str() {#structdronecore_1_1_follow_me_1_1_config_1a025a841e75b66541ef029d8f837886ad} +```cpp +static std::string dronecore::FollowMe::Config::to_str(FollowDirection direction) +``` + + +Human-readable string for enum [FollowDirection](structdronecore_1_1_follow_me_1_1_config.md#structdronecore_1_1_follow_me_1_1_config_1a048f9f74309c17027c37eadc4dcb2c1a). + + +**Parameters** + +* [FollowDirection](structdronecore_1_1_follow_me_1_1_config.md#structdronecore_1_1_follow_me_1_1_config_1a048f9f74309c17027c37eadc4dcb2c1a) **direction** - Follow direction + +**Returns** + + std::string - std::string representing given direction + +## Field Documentation + + +### MIN_HEIGHT_M {#structdronecore_1_1_follow_me_1_1_config_1a4bc3dee9ca74031a3ac1a8dea2df12d4} + +```cpp +constexpr const float dronecore::FollowMe::Config::MIN_HEIGHT_M +``` + + +Min follow height, in meters. + + +### MIN_FOLLOW_DIST_M {#structdronecore_1_1_follow_me_1_1_config_1a92f039f840aa3adad740fe048697ce9f} + +```cpp +constexpr const float dronecore::FollowMe::Config::MIN_FOLLOW_DIST_M +``` + + +Min follow distance, in meters. + + +### MIN_RESPONSIVENESS {#structdronecore_1_1_follow_me_1_1_config_1ac73d36213f4ac6505ec2d44ad4fd2b4e} + +```cpp +constexpr const float dronecore::FollowMe::Config::MIN_RESPONSIVENESS +``` + + +Min responsiveness. + + +### MAX_RESPONSIVENESS {#structdronecore_1_1_follow_me_1_1_config_1afcdf2d6e55dd9da59a05fb5dbcbeab49} + +```cpp +constexpr const float dronecore::FollowMe::Config::MAX_RESPONSIVENESS +``` + + +Max responsiveness. + + +### min_height_m {#structdronecore_1_1_follow_me_1_1_config_1a62c100d4dc35e3731f3b5d62fb5baad9} + +```cpp +float dronecore::FollowMe::Config::min_height_m +``` + + +Min follow height, in meters. + + +### follow_dist_m {#structdronecore_1_1_follow_me_1_1_config_1ab0e453d6b18cf602548cd63636b103ea} + +```cpp +float dronecore::FollowMe::Config::follow_dist_m +``` + + +Horizontal follow distance to target, in meters. + + +### follow_direction {#structdronecore_1_1_follow_me_1_1_config_1a920f7acca4b5e717c9ead1bb89f9d538} + +```cpp +FollowDirection dronecore::FollowMe::Config::follow_direction= FollowDirection::BEHIND +``` + + +Relative position of the following vehicle. + + +### responsiveness {#structdronecore_1_1_follow_me_1_1_config_1a836c1179788d24861642bb45b28dc7fe} + +```cpp +float dronecore::FollowMe::Config::responsiveness +``` + + +Responsiveness, Range (0.0-1.0) + diff --git a/en/api_reference/structdronecore_1_1_follow_me_1_1_target_location.md b/en/api_reference/structdronecore_1_1_follow_me_1_1_target_location.md new file mode 100644 index 0000000..dbee037 --- /dev/null +++ b/en/api_reference/structdronecore_1_1_follow_me_1_1_target_location.md @@ -0,0 +1,87 @@ +# dronecore::FollowMe::TargetLocation Struct Reference +`#include: follow_me.h` + +---- + + +Geographical location of the target in motion. + + +## Data Fields + + +double [latitude_deg](#structdronecore_1_1_follow_me_1_1_target_location_1ac72a8c07f80193744bdcf15fcae35bf1) - Latitude, in degrees. + +double [longitude_deg](#structdronecore_1_1_follow_me_1_1_target_location_1a58b20bd3ee555b011f3b6527d1d4df76) - Longitude, in degrees. + +double [absolute_altitude_m](#structdronecore_1_1_follow_me_1_1_target_location_1aaa45138d11d62d2de241b2d9a9287800) - AMSL, in meters. + +float [velocity_x_m_s](#structdronecore_1_1_follow_me_1_1_target_location_1addfea8f66ffdd7508d9ce6cc03d93c99) - X-velocity in m/s. + +float [velocity_y_m_s](#structdronecore_1_1_follow_me_1_1_target_location_1aa94e7d6449aaf6b8292798c3a0d2331f) - Y-velocity in m/s. + +float [velocity_z_m_s](#structdronecore_1_1_follow_me_1_1_target_location_1ac754c4808d1d188afbdb66c761a4812a) - Z-velocity in m/s. + + +## Field Documentation + + +### latitude_deg {#structdronecore_1_1_follow_me_1_1_target_location_1ac72a8c07f80193744bdcf15fcae35bf1} + +```cpp +double dronecore::FollowMe::TargetLocation::latitude_deg +``` + + +Latitude, in degrees. + + +### longitude_deg {#structdronecore_1_1_follow_me_1_1_target_location_1a58b20bd3ee555b011f3b6527d1d4df76} + +```cpp +double dronecore::FollowMe::TargetLocation::longitude_deg +``` + + +Longitude, in degrees. + + +### absolute_altitude_m {#structdronecore_1_1_follow_me_1_1_target_location_1aaa45138d11d62d2de241b2d9a9287800} + +```cpp +double dronecore::FollowMe::TargetLocation::absolute_altitude_m +``` + + +AMSL, in meters. + + +### velocity_x_m_s {#structdronecore_1_1_follow_me_1_1_target_location_1addfea8f66ffdd7508d9ce6cc03d93c99} + +```cpp +float dronecore::FollowMe::TargetLocation::velocity_x_m_s +``` + + +X-velocity in m/s. + + +### velocity_y_m_s {#structdronecore_1_1_follow_me_1_1_target_location_1aa94e7d6449aaf6b8292798c3a0d2331f} + +```cpp +float dronecore::FollowMe::TargetLocation::velocity_y_m_s +``` + + +Y-velocity in m/s. + + +### velocity_z_m_s {#structdronecore_1_1_follow_me_1_1_target_location_1ac754c4808d1d188afbdb66c761a4812a} + +```cpp +float dronecore::FollowMe::TargetLocation::velocity_z_m_s +``` + + +Z-velocity in m/s. + diff --git a/en/api_reference/structdronecore_1_1_info_1_1_product.md b/en/api_reference/structdronecore_1_1_info_1_1_product.md index 2c1f0d1..f6673d7 100644 --- a/en/api_reference/structdronecore_1_1_info_1_1_product.md +++ b/en/api_reference/structdronecore_1_1_info_1_1_product.md @@ -10,16 +10,13 @@ Type containing device product information. ## Data Fields - int [vendor_id](#structdronecore_1_1_info_1_1_product_1a6e65d6271113bc484ce5a979b200deaa) - ID of board vendor. +int [vendor_id](#structdronecore_1_1_info_1_1_product_1a6e65d6271113bc484ce5a979b200deaa) - ID of board vendor. +char [vendor_name](#structdronecore_1_1_info_1_1_product_1aa4087d0be4f4f55d2a017ab794bdec12) - Name of vendor. - char [vendor_name](#structdronecore_1_1_info_1_1_product_1aa4087d0be4f4f55d2a017ab794bdec12) - Name of vendor. +int [product_id](#structdronecore_1_1_info_1_1_product_1a1194de2d7f34e3f001ae060d425b4dba) - ID of product. - - int [product_id](#structdronecore_1_1_info_1_1_product_1a1194de2d7f34e3f001ae060d425b4dba) - ID of product. - - - char [product_name](#structdronecore_1_1_info_1_1_product_1a8522bb729957f8353ff2e5f98c398082) - Name of product. +char [product_name](#structdronecore_1_1_info_1_1_product_1a8522bb729957f8353ff2e5f98c398082) - Name of product. ## Field Documentation diff --git a/en/api_reference/structdronecore_1_1_info_1_1_version.md b/en/api_reference/structdronecore_1_1_info_1_1_version.md index 272b7de..ab732a8 100644 --- a/en/api_reference/structdronecore_1_1_info_1_1_version.md +++ b/en/api_reference/structdronecore_1_1_info_1_1_version.md @@ -10,37 +10,27 @@ Type containing device version information. ## Data Fields - int [flight_sw_major](#structdronecore_1_1_info_1_1_version_1a0a293bf0af198c159579553e2f432273) - Flight software major version. +int [flight_sw_major](#structdronecore_1_1_info_1_1_version_1a0a293bf0af198c159579553e2f432273) - Flight software major version. +int [flight_sw_minor](#structdronecore_1_1_info_1_1_version_1a86a6071b87c322bd0f11095dbd699dbe) - Flight software minor version. - int [flight_sw_minor](#structdronecore_1_1_info_1_1_version_1a86a6071b87c322bd0f11095dbd699dbe) - Flight software minor version. +int [flight_sw_patch](#structdronecore_1_1_info_1_1_version_1a1a11c82ab2eff8c0fca34754bcb438a4) - Flight software patch version. +int [flight_sw_vendor_major](#structdronecore_1_1_info_1_1_version_1a7d43147c496489330cffc2e5712b2623) - Flight software vendor major version. - int [flight_sw_patch](#structdronecore_1_1_info_1_1_version_1a1a11c82ab2eff8c0fca34754bcb438a4) - Flight software patch version. +int [flight_sw_vendor_minor](#structdronecore_1_1_info_1_1_version_1ad9120586b64d290b4156cb6af3ee0c0c) - Flight software vendor minor version. +int [flight_sw_vendor_patch](#structdronecore_1_1_info_1_1_version_1a1bf6eea00d9d49b8cb4dfda3941ca78f) - Flight software vendor patch version. - int [flight_sw_vendor_major](#structdronecore_1_1_info_1_1_version_1a7d43147c496489330cffc2e5712b2623) - Flight software vendor major version. +char [flight_sw_git_hash](#structdronecore_1_1_info_1_1_version_1a8c364f7cefd0f52550f652a3ea6b33c3) - Flight software git hash as string. +int [os_sw_major](#structdronecore_1_1_info_1_1_version_1a2ec6ae5aeaa7c54aa26049ff1a6da4df) - Operating system software major version. - int [flight_sw_vendor_minor](#structdronecore_1_1_info_1_1_version_1ad9120586b64d290b4156cb6af3ee0c0c) - Flight software vendor minor version. +int [os_sw_minor](#structdronecore_1_1_info_1_1_version_1af4538d5ced28d06a753a6cecfaa893a5) - Operating system software minor version. +int [os_sw_patch](#structdronecore_1_1_info_1_1_version_1af2260db6b07544fb2287b5b7a82b1e36) - Operating system software patch version. - int [flight_sw_vendor_patch](#structdronecore_1_1_info_1_1_version_1a1bf6eea00d9d49b8cb4dfda3941ca78f) - Flight software vendor patch version. - - - char [flight_sw_git_hash](#structdronecore_1_1_info_1_1_version_1a8c364f7cefd0f52550f652a3ea6b33c3) - Flight software git hash as string. - - - int [os_sw_major](#structdronecore_1_1_info_1_1_version_1a2ec6ae5aeaa7c54aa26049ff1a6da4df) - Operating system software major version. - - - int [os_sw_minor](#structdronecore_1_1_info_1_1_version_1af4538d5ced28d06a753a6cecfaa893a5) - Operating system software minor version. - - - int [os_sw_patch](#structdronecore_1_1_info_1_1_version_1af2260db6b07544fb2287b5b7a82b1e36) - Operating system software patch version. - - - char [os_sw_git_hash](#structdronecore_1_1_info_1_1_version_1a0466e10843ca6a745c39f254ef08cf0f) - Operating system software git hash as string. +char [os_sw_git_hash](#structdronecore_1_1_info_1_1_version_1a0466e10843ca6a745c39f254ef08cf0f) - Operating system software git hash as string. ## Field Documentation diff --git a/en/api_reference/structdronecore_1_1_offboard_1_1_velocity_body_yawspeed.md b/en/api_reference/structdronecore_1_1_offboard_1_1_velocity_body_yawspeed.md index 393a13b..423ff6a 100644 --- a/en/api_reference/structdronecore_1_1_offboard_1_1_velocity_body_yawspeed.md +++ b/en/api_reference/structdronecore_1_1_offboard_1_1_velocity_body_yawspeed.md @@ -10,16 +10,13 @@ Type for velocity commands in body coordinates (forward, right, down and yaw ang ## Data Fields - float [forward_m_s](#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1a133a610b901d4146872f8a7b41699636) - Velocity forward in metres/second. +float [forward_m_s](#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1a133a610b901d4146872f8a7b41699636) - Velocity forward in metres/second. +float [right_m_s](#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1ae761aeeda4c129520cba653c02aeace1) - Velocity right in metres/secon.d. - float [right_m_s](#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1ae761aeeda4c129520cba653c02aeace1) - Velocity right in metres/secon.d. +float [down_m_s](#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1a8df8b128b12830c9736bd00e355f57a7) - Velocity down in metres/second. - - float [down_m_s](#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1a8df8b128b12830c9736bd00e355f57a7) - Velocity down in metres/second. - - - float [yawspeed_deg_s](#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1a6858130475964eb2d5c5a4236b7f1e31) - Yaw angular rate in degrees/second (positive for clock-wise looking from above). +float [yawspeed_deg_s](#structdronecore_1_1_offboard_1_1_velocity_body_yawspeed_1a6858130475964eb2d5c5a4236b7f1e31) - Yaw angular rate in degrees/second (positive for clock-wise looking from above). ## Field Documentation diff --git a/en/api_reference/structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw.md b/en/api_reference/structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw.md index 356b7d5..da847c5 100644 --- a/en/api_reference/structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw.md +++ b/en/api_reference/structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw.md @@ -10,16 +10,13 @@ Type for Velocity commands in NED (North East Down) coordinates and yaw. ## Data Fields - float [north_m_s](#structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw_1a16f62616bb348d64216ef62c48825023) - Velocity North in metres/second. +float [north_m_s](#structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw_1a16f62616bb348d64216ef62c48825023) - Velocity North in metres/second. +float [east_m_s](#structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw_1aaafed7010b4bd12d4f09edb74718ff00) - Velocity East in metres/second. - float [east_m_s](#structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw_1aaafed7010b4bd12d4f09edb74718ff00) - Velocity East in metres/second. +float [down_m_s](#structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw_1ab66e5ab2b2f5d3021b43ed305b8d600d) - Velocity Down in metres/second. - - float [down_m_s](#structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw_1ab66e5ab2b2f5d3021b43ed305b8d600d) - Velocity Down in metres/second. - - - float [yaw_deg](#structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw_1a7b19107af4d46135d55f779909ea73f4) - Yaw in degrees (0 North, positive is clock-wise looking from above). +float [yaw_deg](#structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw_1a7b19107af4d46135d55f779909ea73f4) - Yaw in degrees (0 North, positive is clock-wise looking from above). ## Field Documentation diff --git a/en/api_reference/structdronecore_1_1_telemetry_1_1_battery.md b/en/api_reference/structdronecore_1_1_telemetry_1_1_battery.md index 6cfd633..ab6ac75 100644 --- a/en/api_reference/structdronecore_1_1_telemetry_1_1_battery.md +++ b/en/api_reference/structdronecore_1_1_telemetry_1_1_battery.md @@ -10,10 +10,9 @@ ## Data Fields - float [voltage_v](#structdronecore_1_1_telemetry_1_1_battery_1aa011a5e9134228e64d2d84f544be8450) - Voltage in volts. +float [voltage_v](#structdronecore_1_1_telemetry_1_1_battery_1aa011a5e9134228e64d2d84f544be8450) - Voltage in volts. - - float [remaining_percent](#structdronecore_1_1_telemetry_1_1_battery_1a8bdad4d3f77f6fc93fdcfe55b6a49ec0) - Estimated battery percentage remaining (range: 0.0 to 1.0). +float [remaining_percent](#structdronecore_1_1_telemetry_1_1_battery_1a8bdad4d3f77f6fc93fdcfe55b6a49ec0) - Estimated battery percentage remaining (range: 0.0 to 1.0). ## Field Documentation diff --git a/en/api_reference/structdronecore_1_1_telemetry_1_1_euler_angle.md b/en/api_reference/structdronecore_1_1_telemetry_1_1_euler_angle.md index c9ed0ee..8456073 100644 --- a/en/api_reference/structdronecore_1_1_telemetry_1_1_euler_angle.md +++ b/en/api_reference/structdronecore_1_1_telemetry_1_1_euler_angle.md @@ -16,13 +16,11 @@ For more info see [https://en.wikipedia.org/wiki/Euler_angles](https://en.wikipe ## Data Fields - float [roll_deg](#structdronecore_1_1_telemetry_1_1_euler_angle_1a489b9c6636c3a8e392775e9892fc860d) - Roll angle in degrees, positive is banking to the right. +float [roll_deg](#structdronecore_1_1_telemetry_1_1_euler_angle_1a489b9c6636c3a8e392775e9892fc860d) - Roll angle in degrees, positive is banking to the right. +float [pitch_deg](#structdronecore_1_1_telemetry_1_1_euler_angle_1a0798653095d534ead5fdb22e1988b334) - Pitch angle in degrees, positive is pitching nose up. - float [pitch_deg](#structdronecore_1_1_telemetry_1_1_euler_angle_1a0798653095d534ead5fdb22e1988b334) - Pitch angle in degrees, positive is pitching nose up. - - - float [yaw_deg](#structdronecore_1_1_telemetry_1_1_euler_angle_1a6830955c231cfe2f9ea40f3b425f3149) - Yaw angle in degrees, positive is clock-wise seen from above. +float [yaw_deg](#structdronecore_1_1_telemetry_1_1_euler_angle_1a6830955c231cfe2f9ea40f3b425f3149) - Yaw angle in degrees, positive is clock-wise seen from above. ## Field Documentation diff --git a/en/api_reference/structdronecore_1_1_telemetry_1_1_g_p_s_info.md b/en/api_reference/structdronecore_1_1_telemetry_1_1_g_p_s_info.md index ab404f1..f6d1ef8 100644 --- a/en/api_reference/structdronecore_1_1_telemetry_1_1_g_p_s_info.md +++ b/en/api_reference/structdronecore_1_1_telemetry_1_1_g_p_s_info.md @@ -10,10 +10,9 @@ GPS information type. ## Data Fields - int [num_satellites](#structdronecore_1_1_telemetry_1_1_g_p_s_info_1acd6f37d3b511a6aae5895303fe61dc86) - Number of visible satellites used for solution. +int [num_satellites](#structdronecore_1_1_telemetry_1_1_g_p_s_info_1acd6f37d3b511a6aae5895303fe61dc86) - Number of visible satellites used for solution. - - int [fix_type](#structdronecore_1_1_telemetry_1_1_g_p_s_info_1acc9d81d4b884bb2b229fe68d0c36f6cc) - Fix type (0: no GPS, 1: no fix, 2: 2D fix, 3: 3D fix, 4: DGPS fix, 5: RTK float, 6: RTK fixed). +int [fix_type](#structdronecore_1_1_telemetry_1_1_g_p_s_info_1acc9d81d4b884bb2b229fe68d0c36f6cc) - Fix type (0: no GPS, 1: no fix, 2: 2D fix, 3: 3D fix, 4: DGPS fix, 5: RTK float, 6: RTK fixed). ## Field Documentation diff --git a/en/api_reference/structdronecore_1_1_telemetry_1_1_ground_speed_n_e_d.md b/en/api_reference/structdronecore_1_1_telemetry_1_1_ground_speed_n_e_d.md index 68cb8ad..d1c1a17 100644 --- a/en/api_reference/structdronecore_1_1_telemetry_1_1_ground_speed_n_e_d.md +++ b/en/api_reference/structdronecore_1_1_telemetry_1_1_ground_speed_n_e_d.md @@ -13,13 +13,11 @@ The ground speed is represented in the NED (North East Down) frame and in metres ## Data Fields - float [velocity_north_m_s](#structdronecore_1_1_telemetry_1_1_ground_speed_n_e_d_1ad8522faaa977abf925cb519f6c00b126) - Velocity in North direction in metres/second. +float [velocity_north_m_s](#structdronecore_1_1_telemetry_1_1_ground_speed_n_e_d_1ad8522faaa977abf925cb519f6c00b126) - Velocity in North direction in metres/second. +float [velocity_east_m_s](#structdronecore_1_1_telemetry_1_1_ground_speed_n_e_d_1a542cba7e296b1deae7b28b0c2ec69172) - Velocity in East direction in metres/second. - float [velocity_east_m_s](#structdronecore_1_1_telemetry_1_1_ground_speed_n_e_d_1a542cba7e296b1deae7b28b0c2ec69172) - Velocity in East direction in metres/second. - - - float [velocity_down_m_s](#structdronecore_1_1_telemetry_1_1_ground_speed_n_e_d_1ad88b00135b9eab248168ef44206bafa2) - Velocity in Down direction in metres/second. +float [velocity_down_m_s](#structdronecore_1_1_telemetry_1_1_ground_speed_n_e_d_1ad88b00135b9eab248168ef44206bafa2) - Velocity in Down direction in metres/second. ## Field Documentation diff --git a/en/api_reference/structdronecore_1_1_telemetry_1_1_health.md b/en/api_reference/structdronecore_1_1_telemetry_1_1_health.md index e16ddb1..c417a26 100644 --- a/en/api_reference/structdronecore_1_1_telemetry_1_1_health.md +++ b/en/api_reference/structdronecore_1_1_telemetry_1_1_health.md @@ -10,25 +10,19 @@ Various health flags. ## Data Fields - bool [gyrometer_calibration_ok](#structdronecore_1_1_telemetry_1_1_health_1a20d42a65fe962216969dc8eef6a221a8) - true if the gyrometer is calibrated. +bool [gyrometer_calibration_ok](#structdronecore_1_1_telemetry_1_1_health_1a20d42a65fe962216969dc8eef6a221a8) - true if the gyrometer is calibrated. +bool [accelerometer_calibration_ok](#structdronecore_1_1_telemetry_1_1_health_1aca75d649d8caf7004f42bd418a407cbc) - true if the accelerometer is calibrated. - bool [accelerometer_calibration_ok](#structdronecore_1_1_telemetry_1_1_health_1aca75d649d8caf7004f42bd418a407cbc) - true if the accelerometer is calibrated. +bool [magnetometer_calibration_ok](#structdronecore_1_1_telemetry_1_1_health_1a30651ed802acff96c88365fb2ca9fc5c) - true if the magnetometer is calibrated. +bool [level_calibration_ok](#structdronecore_1_1_telemetry_1_1_health_1a470b87fb4865c89fb225dda1c77d6db6) - true if the vehicle has a valid level calibration. - bool [magnetometer_calibration_ok](#structdronecore_1_1_telemetry_1_1_health_1a30651ed802acff96c88365fb2ca9fc5c) - true if the magnetometer is calibrated. +bool [local_position_ok](#structdronecore_1_1_telemetry_1_1_health_1a54a4cacaf2ae764857165dd1077d6c91) - true if the local position estimate is good enough to fly in a position control mode. +bool [global_position_ok](#structdronecore_1_1_telemetry_1_1_health_1a5f02efb9cc25a6db1ee2b9d70149ba6f) - true if the global position estimate is good enough to fly in a position controlled mode. - bool [level_calibration_ok](#structdronecore_1_1_telemetry_1_1_health_1a470b87fb4865c89fb225dda1c77d6db6) - true if the vehicle has a valid level calibration. - - - bool [local_position_ok](#structdronecore_1_1_telemetry_1_1_health_1a54a4cacaf2ae764857165dd1077d6c91) - true if the local position estimate is good enough to fly in a position control mode. - - - bool [global_position_ok](#structdronecore_1_1_telemetry_1_1_health_1a5f02efb9cc25a6db1ee2b9d70149ba6f) - true if the global position estimate is good enough to fly in a position controlled mode. - - - bool [home_position_ok](#structdronecore_1_1_telemetry_1_1_health_1a3736323422843fb5e37b988a95d5575a) - true if the home position has been initialized properly. +bool [home_position_ok](#structdronecore_1_1_telemetry_1_1_health_1a3736323422843fb5e37b988a95d5575a) - true if the home position has been initialized properly. ## Field Documentation diff --git a/en/api_reference/structdronecore_1_1_telemetry_1_1_position.md b/en/api_reference/structdronecore_1_1_telemetry_1_1_position.md index 6d92199..6885154 100644 --- a/en/api_reference/structdronecore_1_1_telemetry_1_1_position.md +++ b/en/api_reference/structdronecore_1_1_telemetry_1_1_position.md @@ -10,16 +10,13 @@ ## Data Fields - double [latitude_deg](#structdronecore_1_1_telemetry_1_1_position_1a2a7a8c2dad6ba9b9c87943d1f576ec85) - Latitude in degrees (range: -90 to +90) +double [latitude_deg](#structdronecore_1_1_telemetry_1_1_position_1a2a7a8c2dad6ba9b9c87943d1f576ec85) - Latitude in degrees (range: -90 to +90) +double [longitude_deg](#structdronecore_1_1_telemetry_1_1_position_1ab8eee2ace418fc56b629d6956ca3175e) - Longitude in degrees (range: -180 to 180) - double [longitude_deg](#structdronecore_1_1_telemetry_1_1_position_1ab8eee2ace418fc56b629d6956ca3175e) - Longitude in degrees (range: -180 to 180) +float [absolute_altitude_m](#structdronecore_1_1_telemetry_1_1_position_1a5458086b2edf9f5906de214023ff323b) - Altitude AMSL (above mean sea level) in metres. - - float [absolute_altitude_m](#structdronecore_1_1_telemetry_1_1_position_1a5458086b2edf9f5906de214023ff323b) - Altitude AMSL (above mean sea level) in metres. - - - float [relative_altitude_m](#structdronecore_1_1_telemetry_1_1_position_1aa21d2f8a0b17986eadc52d7b3552417e) - Altitude relative to takeoff altitude in metres. +float [relative_altitude_m](#structdronecore_1_1_telemetry_1_1_position_1aa21d2f8a0b17986eadc52d7b3552417e) - Altitude relative to takeoff altitude in metres. ## Field Documentation diff --git a/en/api_reference/structdronecore_1_1_telemetry_1_1_quaternion.md b/en/api_reference/structdronecore_1_1_telemetry_1_1_quaternion.md index 561d08c..39eda4b 100644 --- a/en/api_reference/structdronecore_1_1_telemetry_1_1_quaternion.md +++ b/en/api_reference/structdronecore_1_1_telemetry_1_1_quaternion.md @@ -16,16 +16,13 @@ For more info see: [https://en.wikipedia.org/wiki/Quaternion](https://en.wikiped ## Data Fields - float [w](#structdronecore_1_1_telemetry_1_1_quaternion_1a12be6e522e43d9324374c9dab7d6edd7) - [Quaternion](structdronecore_1_1_telemetry_1_1_quaternion.md) entry 0 also denoted as a. +float [w](#structdronecore_1_1_telemetry_1_1_quaternion_1a12be6e522e43d9324374c9dab7d6edd7) - [Quaternion](structdronecore_1_1_telemetry_1_1_quaternion.md) entry 0 also denoted as a. +float [x](#structdronecore_1_1_telemetry_1_1_quaternion_1a56268f65ba13f25a5b78f71caf916713) - [Quaternion](structdronecore_1_1_telemetry_1_1_quaternion.md) entry 1 also denoted as b. - float [x](#structdronecore_1_1_telemetry_1_1_quaternion_1a56268f65ba13f25a5b78f71caf916713) - [Quaternion](structdronecore_1_1_telemetry_1_1_quaternion.md) entry 1 also denoted as b. +float [y](#structdronecore_1_1_telemetry_1_1_quaternion_1acf5cf9a0fe694a6b216ba28b67d5f1e5) - [Quaternion](structdronecore_1_1_telemetry_1_1_quaternion.md) entry 2 also denoted as c. - - float [y](#structdronecore_1_1_telemetry_1_1_quaternion_1acf5cf9a0fe694a6b216ba28b67d5f1e5) - [Quaternion](structdronecore_1_1_telemetry_1_1_quaternion.md) entry 2 also denoted as c. - - - float [z](#structdronecore_1_1_telemetry_1_1_quaternion_1af49090794007a961eaff0221a9c7c65f) - [Quaternion](structdronecore_1_1_telemetry_1_1_quaternion.md) entry 3 also denoted as d. +float [z](#structdronecore_1_1_telemetry_1_1_quaternion_1af49090794007a961eaff0221a9c7c65f) - [Quaternion](structdronecore_1_1_telemetry_1_1_quaternion.md) entry 3 also denoted as d. ## Field Documentation diff --git a/en/api_reference/structdronecore_1_1_telemetry_1_1_r_c_status.md b/en/api_reference/structdronecore_1_1_telemetry_1_1_r_c_status.md index bd9ad36..b0b6a84 100644 --- a/en/api_reference/structdronecore_1_1_telemetry_1_1_r_c_status.md +++ b/en/api_reference/structdronecore_1_1_telemetry_1_1_r_c_status.md @@ -10,13 +10,11 @@ Remote control status type. ## Data Fields - bool [available_once](#structdronecore_1_1_telemetry_1_1_r_c_status_1a5e1c0486417223de1fda90cb539393f1) - true if an RC signal has been available once. +bool [available_once](#structdronecore_1_1_telemetry_1_1_r_c_status_1a5e1c0486417223de1fda90cb539393f1) - true if an RC signal has been available once. +bool [available](#structdronecore_1_1_telemetry_1_1_r_c_status_1a541a4647f92a7cdb219cee7cca6963c9) - true if the RC signal is available now. - bool [available](#structdronecore_1_1_telemetry_1_1_r_c_status_1a541a4647f92a7cdb219cee7cca6963c9) - true if the RC signal is available now. - - - float [signal_strength_percent](#structdronecore_1_1_telemetry_1_1_r_c_status_1ae050460c05ddf6e48a4e58e7134dad53) - Signal strength as a percentage (range: 0 to 100). +float [signal_strength_percent](#structdronecore_1_1_telemetry_1_1_r_c_status_1ae050460c05ddf6e48a4e58e7134dad53) - Signal strength as a percentage (range: 0 to 100). ## Field Documentation From 2e67f9eba169ff27a85bb687553906a616e71bba Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 4 Dec 2017 14:56:41 +1100 Subject: [PATCH 042/107] Create follow me guide --- en/SUMMARY.md | 1 + en/guide/follow_me.md | 75 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 en/guide/follow_me.md diff --git a/en/SUMMARY.md b/en/SUMMARY.md index f3ba776..036b3d3 100644 --- a/en/SUMMARY.md +++ b/en/SUMMARY.md @@ -11,6 +11,7 @@ * [Taking Off and Landing](guide/taking_off_landing.md) * [Missions](guide/missions.md) * [Offboard Control](guide/offboard.md) + * [Follow Me](guide/follow_me.md) * [VTOL Support](guide/vtol.md) * [Building C++ Apps](guide/toolchain.md) * [DroneCore Extensions](guide/dronecore_extensions.md) diff --git a/en/guide/follow_me.md b/en/guide/follow_me.md new file mode 100644 index 0000000..9aedc01 --- /dev/null +++ b/en/guide/follow_me.md @@ -0,0 +1,75 @@ +# Follow Me + +The [Follow Me](../api_reference/classdronecore_1_1_follow_me.md) class is used to engage the PX4 [Follow Me Mode](https://docs.px4.io/en/flight_modes/follow_me.html) (multicopter only). In this mode a copter will automatically yaw to face and follow a user at a specified position and distance. + +The API is used to supply the position(s) for the [target](../api_reference/structdronecore_1_1_follow_me_1_1_target_location.md) and the relative [follow position](../api_reference/structdronecore_1_1_follow_me_1_1_config.md) of the vehicle. Applications must get target position information from the underlying platform (or some other source). The location APIs for supported platforms are listed below: +- Android: [Location](https://developer.android.com/reference/android/location/Location.html) +- Apple: [Core Location Framework](https://developer.apple.com/documentation/corelocation) +- Windows: [Windows.Devices.Geolocation](https://docs.microsoft.com/en-us/uwp/api/Windows.Devices.Geolocation) + + +## Set the Follow Configuration + +By default the vehicle will follow directly behind the target at a height and distance of 8 metres. +You can (optionally) call [set_config()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a4b92c3a042911dd9bdb378c686458a34) at any time to specify a different height, follow distance, relative position (front left/right/centre or behind) and responsiveness to target movements. + +The code fragment below shows how to set the configuration: +```cpp +// configure follow me behaviour +FollowMe::Config config; +config.min_height_m = 12.f; // Minimum height +config.follow_dist_m = 20.f; // Follow distance +config.responsiveness = 0.2f; // Higher responsiveness +config.follow_direction = FollowMe::Config::FollowDirection::FRONT; //Follow from front-centre + +// Apply configuration +bool configured = device.follow_me().set_config(config); +if (configured) { + // handle config failure + std::cout << "Configuration failed" << std::endl; +} +``` + +The [get_config()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5) method is provided to get the current configuration: +```cpp +auto curr_config = device.follow_me().get_config(); +``` + +## Following a Target + +To start and stop following a target, call [start()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a694749d43d527f85584df25a49b05ccf) and [stop()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a6394507b0fb96bceebe6efd17f0529ce), respectively. + +In between the calls, use [set_curr_target_location()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1afb8c24ed93421e904b0f528569c7699a) to set the target position for the vehicle to follow. +DroneCore automatically resends the last set position at the rate required by the autopilot, but this can be overridden by setting the location at another rate. + +> **Note** The API does not automatically get the position of the device running the DroneCore. The client app must fetch this using OS-specific methods and pass them to the `FollowMe` class. + +```cpp +// Start following +FollowMe::Result follow_me_result = device.follow_me().start(); +if (follow_me_result != FollowMe::Result::SUCCESS) { + // handle start failure (in this case print error) + std::cout << "Failed to start following:" << FollowMe::result_str(follow_me_result) << std::endl; +} + +// ... Get target position from underlying platform or wherever and supply to vehicle +// Here we just show one point being set. Minimum values specified in the configuration are respected. +follow_me.set_curr_target_location({ 47.39776569, 8.54553292, 9.0, 0.f, 0.f, 0.f }); + +// Stop following +follow_me_result = device.follow_me().stop(); +if (follow_me_result != FollowMe::Result::SUCCESS) { + // handle stop failure (in this case print error) + std::cout << "Failed to stop following:" << FollowMe::result_str(follow_me_result) << std::endl; +} +``` + +The last location that was set can be retrieved using [get_last_location()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1ab68273d5ace65ee953afa1797ae49e7c). + + +## Further Information + +Additional information/examples for the Follow Me API are linked below: + +* Integration tests: + * [follow_me.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/follow_me.cpp) From d3c4ffb457fad5f9245d84ce292820dd786a6ea8 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 4 Dec 2017 17:20:57 +1100 Subject: [PATCH 043/107] Add enable/disable to plugin guide --- en/contributing/plugins.md | 48 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/en/contributing/plugins.md b/en/contributing/plugins.md index 07e8e96..e252d3c 100644 --- a/en/contributing/plugins.md +++ b/en/contributing/plugins.md @@ -68,6 +68,54 @@ The [standard plugins](https://github.com/dronecore/DroneCore/tree/{{ book.githu how to write plugin code, including how to send and process MAVLink messages. +### Plugin Enable/Disable + +DroneCore provides virtual methods that a plugin should implement allow DroneCore to better manage resources. For example, to prevent callback being created before the `Device` is instantiated, or messages being sent when a vehicle is not connected. + +Plugin authors should provide an implementation class that derives from `PluginImplBase` (**core/plugin_impl_base.h**) and implements the following pure virtual methods: +* [init()](#init)/[deinit()](#deinit): These are called when a device is created and just before it is destroyed. These should be used for setting up and cleaning everything that depends on having the `Device` instantiated. This includes calls that set up callbacks. +* [enable()](#enable)/[disable()](#disable): These are called when a vehicle is discovered or has timed out. They should be used for managing resources needed to access a connected device/vehicle (e.g. getting a parameter or changing a setting). + + +> **Note** The methods are currently optional. For a transitional period, runtime warnings will be displayed if the methods are not implemented. + +Additional detail is provided for methods below. + + +##### init() {#init} +```cpp +virtual void init() = 0 +``` + +The `init()` method is called when a plugin is instantiated. This happens when a `Device` is constructed (this does not mean that the device actually exists and is connected - it might just be an empty dummy device). + +Plugins should do initialization steps with other parts of DroneCore at this state, e.g. set up callbacks with `_parent` (`DeviceImpl`). + +##### deinit() {#deinit} +```cpp +virtual void deinit() = 0 +``` +The `deinit()` method is called before a plugin is destroyed. This usually happens only at the very end, when a DroneCore instance is destroyed. + +Plugins should cleanup anything that was set up during `init()`. + +##### enable() {#enable} +```cpp +virtual void enable() = 0 +``` +The `enable()` method is called when a device is discovered (connected). Plugins should do all initialization/configuration steps that require a device to be connected. For example, setting/getting parameters. + +If any threads, call_every or timeouts are needed, they can be started in this method. + +##### disable() {#disable} +```cpp +virtual void disable() = 0 +``` +The `disable()` method is called when a device has timed out. The method is also called before `deinit()` is called to stop any devices with active plugins from communicating (in order to prevent warnings and errors because communication to the device no longer works). + +If any threads, call_every, or timeouts are running, they should be stopped in this method. + + ## Test Code {#testing} Tests must be created for all new and updated plugin code. From 93666b346e95fe40bf0528c45064719c9dd656b5 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 5 Dec 2017 12:20:04 +1100 Subject: [PATCH 044/107] Remove enable is optional note. Make clear should derive from plugin base --- en/contributing/plugins.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/en/contributing/plugins.md b/en/contributing/plugins.md index e252d3c..c8729e7 100644 --- a/en/contributing/plugins.md +++ b/en/contributing/plugins.md @@ -68,16 +68,20 @@ The [standard plugins](https://github.com/dronecore/DroneCore/tree/{{ book.githu how to write plugin code, including how to send and process MAVLink messages. +### Plugin Base Class + +All plugins should derive their implementation from `PluginImplBase` (**core/plugin_impl_base.h**) and override virtual methods as needed. + + ### Plugin Enable/Disable DroneCore provides virtual methods that a plugin should implement allow DroneCore to better manage resources. For example, to prevent callback being created before the `Device` is instantiated, or messages being sent when a vehicle is not connected. -Plugin authors should provide an implementation class that derives from `PluginImplBase` (**core/plugin_impl_base.h**) and implements the following pure virtual methods: +Plugin authors should provide an implementation of the following `PluginImplBase` pure virtual methods: * [init()](#init)/[deinit()](#deinit): These are called when a device is created and just before it is destroyed. These should be used for setting up and cleaning everything that depends on having the `Device` instantiated. This includes calls that set up callbacks. * [enable()](#enable)/[disable()](#disable): These are called when a vehicle is discovered or has timed out. They should be used for managing resources needed to access a connected device/vehicle (e.g. getting a parameter or changing a setting). - -> **Note** The methods are currently optional. For a transitional period, runtime warnings will be displayed if the methods are not implemented. +The [external example](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/external_example) provides a minimal implementation. Additional detail is provided for methods below. From 5a458ffda286a68b12e407b79bfbbbd81f3b46dd Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 5 Dec 2017 14:39:07 +1100 Subject: [PATCH 045/107] Specify that update rate of followme is constant 1Hz --- en/guide/follow_me.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/en/guide/follow_me.md b/en/guide/follow_me.md index 9aedc01..5f4f5e2 100644 --- a/en/guide/follow_me.md +++ b/en/guide/follow_me.md @@ -39,8 +39,8 @@ auto curr_config = device.follow_me().get_config(); To start and stop following a target, call [start()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a694749d43d527f85584df25a49b05ccf) and [stop()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a6394507b0fb96bceebe6efd17f0529ce), respectively. -In between the calls, use [set_curr_target_location()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1afb8c24ed93421e904b0f528569c7699a) to set the target position for the vehicle to follow. -DroneCore automatically resends the last set position at the rate required by the autopilot, but this can be overridden by setting the location at another rate. +After starting, use [set_curr_target_location()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1afb8c24ed93421e904b0f528569c7699a) to set the target position for the vehicle to follow. +DroneCore automatically resends the last set position at the rate required by the autopilot/flight mode (1 Hz). > **Note** The API does not automatically get the position of the device running the DroneCore. The client app must fetch this using OS-specific methods and pass them to the `FollowMe` class. From a020b589996d42cab6a35c2b7e5b77c10a5cdd5e Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 7 Dec 2017 10:19:44 +1100 Subject: [PATCH 046/107] Clarify mode on stopping, and when to set position. --- en/guide/follow_me.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/en/guide/follow_me.md b/en/guide/follow_me.md index 5f4f5e2..bdaba8d 100644 --- a/en/guide/follow_me.md +++ b/en/guide/follow_me.md @@ -37,12 +37,11 @@ auto curr_config = device.follow_me().get_config(); ## Following a Target -To start and stop following a target, call [start()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a694749d43d527f85584df25a49b05ccf) and [stop()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a6394507b0fb96bceebe6efd17f0529ce), respectively. +To start and stop following a target, call [start()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a694749d43d527f85584df25a49b05ccf) and [stop()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a6394507b0fb96bceebe6efd17f0529ce), respectively - `start()` puts the vehicle into [Follow-Me mode](https://docs.px4.io/en/flight_modes/follow_me.html) and `stop()` puts it into [Hold mode](https://docs.px4.io/en/flight_modes/hold.html). -After starting, use [set_curr_target_location()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1afb8c24ed93421e904b0f528569c7699a) to set the target position for the vehicle to follow. -DroneCore automatically resends the last set position at the rate required by the autopilot/flight mode (1 Hz). +Use [set_curr_target_location()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1afb8c24ed93421e904b0f528569c7699a) to set the target position(s) for the vehicle to follow (the app typically passes its host's current position, which it would obtain using OS-specific methods). This can be called at any time, but messages will only be sent once following is started. DroneCore automatically resends the last set position at the rate required by the autopilot/flight mode (1 Hz). -> **Note** The API does not automatically get the position of the device running the DroneCore. The client app must fetch this using OS-specific methods and pass them to the `FollowMe` class. +> **Note** Typically you would call `set_curr_target_location()` before or shortly after starting the mode. If you call `start()` without having set any target location, or if the connection is broken, the vehicle will climb to minimum altitude (if needed) and remain in the mode waiting for messages. ```cpp // Start following @@ -52,10 +51,12 @@ if (follow_me_result != FollowMe::Result::SUCCESS) { std::cout << "Failed to start following:" << FollowMe::result_str(follow_me_result) << std::endl; } + // ... Get target position from underlying platform or wherever and supply to vehicle // Here we just show one point being set. Minimum values specified in the configuration are respected. follow_me.set_curr_target_location({ 47.39776569, 8.54553292, 9.0, 0.f, 0.f, 0.f }); + // Stop following follow_me_result = device.follow_me().stop(); if (follow_me_result != FollowMe::Result::SUCCESS) { @@ -64,7 +65,8 @@ if (follow_me_result != FollowMe::Result::SUCCESS) { } ``` -The last location that was set can be retrieved using [get_last_location()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1ab68273d5ace65ee953afa1797ae49e7c). +The last location that was set can be retrieved using [get_last_location()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1ab68273d5ace65ee953afa1797ae49e7c). Before a target position is first set this API will return `Nan`. + ## Further Information From 132130b0a03c82d8b40199bf4c5b43a36f47ed93 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 7 Dec 2017 10:43:48 +1100 Subject: [PATCH 047/107] Add information about message logging --- en/contributing/dev_logging.md | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/en/contributing/dev_logging.md b/en/contributing/dev_logging.md index eae92f1..2eea00e 100644 --- a/en/contributing/dev_logging.md +++ b/en/contributing/dev_logging.md @@ -1,13 +1,15 @@ # Plugin/Test Logging -DroneCore provides an API that developers can use for console logging in plugins and integration tests. +DroneCore provides an API that developers can use for console logging in plugins and integration tests. Basic [message logging](#message_logging) can be enabled by building with a specific `#define`. + + +## Plugin Log API The API methods display a custom message, prepending a timestamp and the type of log message (e.g. debug) and appending the origin of the message (file and line number). > **Tip** The API should be considered "internal". It is not exported, or intended, for use in Dronecore apps (and we do not commit to maintaining compatibility in future versions). - -## Usage +### Usage The API is defined in [core/log.h](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/core/log.h) (and made available to integration tests via [core/integration_test_helper.h](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/core/integration_test_helper.h)). @@ -19,7 +21,7 @@ The API methods are called as shown below for `LogDebug()`, with the left shift LogDebug() << "command unsupported (" << something.mavlink_command << ")."; ``` -## Log Methods +### Log Methods Function | Description | Example --- | --- | --- @@ -27,3 +29,12 @@ Function | Description | Example `LogInfo()` | Information messages.
For reporting progress and status. | [04:55:08|Error] `This is an information message (test_file.cpp:26)` `LogWarn()` | Warning messages.
For reporting when vehicle not acting as commanded (e.g. rejecting commands). | [04:55:08|Error] `This is a warning message (test_file.cpp:26)` `LogErr()` | Error messages.
For reporting errors in DroneCore behaviour (e.g. communication link issues/retry failures). | [04:55:08|Error] `This is an error message (test_file.cpp:26)` + + +## Message Logging {#message_logging} + +Basic logging is defined in source for both incoming (handled/ignored) and sent MAVLink messages. + +This functionality is disabled by default, and available only in debug builds. To enable the logs, set `#define MESSAGE_DEBUGGING 1` in [core/device_impl.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/core/device_impl.cpp) + + \ No newline at end of file From 6db923d29406cc890caf44686dc9206ba68d28eb Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 18 Dec 2017 17:39:29 +1100 Subject: [PATCH 048/107] update FollowMe API reference in line with DroneCore issue 199 --- .../classdronecore_1_1_follow_me.md | 40 ++++++++++--------- ...tructdronecore_1_1_follow_me_1_1_config.md | 2 +- ...ecore_1_1_follow_me_1_1_target_location.md | 2 +- 3 files changed, 24 insertions(+), 20 deletions(-) diff --git a/en/api_reference/classdronecore_1_1_follow_me.md b/en/api_reference/classdronecore_1_1_follow_me.md index 46733f1..0810e0d 100644 --- a/en/api_reference/classdronecore_1_1_follow_me.md +++ b/en/api_reference/classdronecore_1_1_follow_me.md @@ -37,10 +37,10 @@ Type | Name | Description | [~FollowMe](#classdronecore_1_1_follow_me_1a66ffe3c9652bc08a2766f211592316ac) () | Destructor (internal use only). | [FollowMe](#classdronecore_1_1_follow_me_1a54589c314eeba131aca1c4c56d4b15e3) (const FollowMe &)=delete | Copy constructor (object is not copyable). const [Config](structdronecore_1_1_follow_me_1_1_config.md) & | [get_config](#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5) () const | Gets current [FollowMe](classdronecore_1_1_follow_me.md) configuration. -bool | [set_config](#classdronecore_1_1_follow_me_1a4b92c3a042911dd9bdb378c686458a34) (const Config &config) | Applies [FollowMe](classdronecore_1_1_follow_me.md) configuration by sending it to device. +[Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) | [set_config](#classdronecore_1_1_follow_me_1aedf746d4a0eebdaaddc3d1ba0aeb6720) (const Config &config) | Applies [FollowMe](classdronecore_1_1_follow_me.md) configuration by sending it to device. bool | [is_active](#classdronecore_1_1_follow_me_1a467349820ac5f42cc388228c399a93ef) () const | Checks whether [FollowMe](classdronecore_1_1_follow_me.md) is active. -void | [set_curr_target_location](#classdronecore_1_1_follow_me_1afb8c24ed93421e904b0f528569c7699a) (const TargetLocation &location) | Sets current location of the moving target App can obtain location of the moving target from Location framework of the underlying platform. -void | [get_last_location](#classdronecore_1_1_follow_me_1ab68273d5ace65ee953afa1797ae49e7c) (TargetLocation &last_location) | Returns the most recent location of the target. +void | [set_target_location](#classdronecore_1_1_follow_me_1a1220596b8bb51d2ca52248a92e300ad5) (const TargetLocation &location) | Sets location of the moving target. +const [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & | [get_last_location](#classdronecore_1_1_follow_me_1a16da2bf7d0384e2bff4440600b523f8c) () const | Returns the last location of the target. [FollowMe::Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) | [start](#classdronecore_1_1_follow_me_1a694749d43d527f85584df25a49b05ccf) () const | Starts [FollowMe](classdronecore_1_1_follow_me.md) mode. [FollowMe::Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) | [stop](#classdronecore_1_1_follow_me_1a6394507b0fb96bceebe6efd17f0529ce) () const | Stops [FollowMe](classdronecore_1_1_follow_me.md) mode. const [FollowMe](classdronecore_1_1_follow_me.md) & | [operator=](#classdronecore_1_1_follow_me_1accb454508e051d79b2943ba469958f9e) (const FollowMe &)=delete | Equality operator (object is not copyable). @@ -109,6 +109,7 @@ Value | Description `COMMAND_DENIED` | Command denied. `TIMEOUT` | Request timeout. `NOT_ACTIVE` | [FollowMe](classdronecore_1_1_follow_me.md) is not activated. + `SET_CONFIG_FAILED` | Failed to set [FollowMe](classdronecore_1_1_follow_me.md) configuration. `UNKNOWN` | Unknown error. **See Also:** @@ -132,12 +133,12 @@ Gets current [FollowMe](classdronecore_1_1_follow_me.md) configuration.  const [Config](structdronecore_1_1_follow_me_1_1_config.md) & - Current [FollowMe](classdronecore_1_1_follow_me.md) configuration. **See Also:** -- [set_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a4b92c3a042911dd9bdb378c686458a34) +- [set_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aedf746d4a0eebdaaddc3d1ba0aeb6720) -### set_config() {#classdronecore_1_1_follow_me_1a4b92c3a042911dd9bdb378c686458a34} +### set_config() {#classdronecore_1_1_follow_me_1aedf746d4a0eebdaaddc3d1ba0aeb6720} ```cpp -bool dronecore::FollowMe::set_config(const Config &config) +Result dronecore::FollowMe::set_config(const Config &config) ``` @@ -150,7 +151,7 @@ Applies [FollowMe](classdronecore_1_1_follow_me.md) configuration by sending it **Returns** - bool - `true` if configuration is applied successfully, `false` if config values are out-of-range. In case of failure, last configuration is preserved. + [Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) - [FollowMe::Result::SUCCESS](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02ad0749aaba8b833466dfcbb0428e4f89c) if configuration is applied successfully, [FollowMe::Result::SET_CONFIG_FAILED](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02a93093f549a7c46c8f91528870edbe9e6) on failure. In case of failure, last configuration is preserved. **See Also:** - [get_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5) @@ -169,13 +170,16 @@ Checks whether [FollowMe](classdronecore_1_1_follow_me.md) is active.  bool - `true` if [FollowMe](classdronecore_1_1_follow_me.md) is active, `false` otherwise. -### set_curr_target_location() {#classdronecore_1_1_follow_me_1afb8c24ed93421e904b0f528569c7699a} +### set_target_location() {#classdronecore_1_1_follow_me_1a1220596b8bb51d2ca52248a92e300ad5} ```cpp -void dronecore::FollowMe::set_curr_target_location(const TargetLocation &location) +void dronecore::FollowMe::set_target_location(const TargetLocation &location) ``` -Sets current location of the moving target App can obtain location of the moving target from Location framework of the underlying platform. +Sets location of the moving target. + +An app can obtain the location of the moving target from Location framework of the underlying platform. + **Notes:** @@ -189,27 +193,27 @@ The following links provide information about location services on different pla **Parameters** -* const [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & **location** - Current location of the target. +* const [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & **location** - Location of the moving target. **See Also:** -- [get_last_location()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1ab68273d5ace65ee953afa1797ae49e7c) +- [get_last_location()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a16da2bf7d0384e2bff4440600b523f8c) -### get_last_location() {#classdronecore_1_1_follow_me_1ab68273d5ace65ee953afa1797ae49e7c} +### get_last_location() {#classdronecore_1_1_follow_me_1a16da2bf7d0384e2bff4440600b523f8c} ```cpp -void dronecore::FollowMe::get_last_location(TargetLocation &last_location) +const TargetLocation& dronecore::FollowMe::get_last_location() const ``` -Returns the most recent location of the target. +Returns the last location of the target. -**Parameters** +**Returns** -* [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & **last_location** - Last location to be filled. + const [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & - Last location of the target. **See Also:** -- [set_curr_target_location()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1afb8c24ed93421e904b0f528569c7699a) +- [set_target_location()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a1220596b8bb51d2ca52248a92e300ad5) ### start() {#classdronecore_1_1_follow_me_1a694749d43d527f85584df25a49b05ccf} diff --git a/en/api_reference/structdronecore_1_1_follow_me_1_1_config.md b/en/api_reference/structdronecore_1_1_follow_me_1_1_config.md index a040a06..e9fc29c 100644 --- a/en/api_reference/structdronecore_1_1_follow_me_1_1_config.md +++ b/en/api_reference/structdronecore_1_1_follow_me_1_1_config.md @@ -8,7 +8,7 @@ **See Also:** -- [get_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5), [set_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a4b92c3a042911dd9bdb378c686458a34) +- [get_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5), [set_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aedf746d4a0eebdaaddc3d1ba0aeb6720) - [Parameter Reference](https://docs.px4.io/en/advanced_config/parameter_reference.html#follow-target) (PX4 User Guide) diff --git a/en/api_reference/structdronecore_1_1_follow_me_1_1_target_location.md b/en/api_reference/structdronecore_1_1_follow_me_1_1_target_location.md index dbee037..5ee6dff 100644 --- a/en/api_reference/structdronecore_1_1_follow_me_1_1_target_location.md +++ b/en/api_reference/structdronecore_1_1_follow_me_1_1_target_location.md @@ -4,7 +4,7 @@ ---- -Geographical location of the target in motion. +Type for geographical location of the target being followed. ## Data Fields From 66220f561c94a4f453e1247a1fa0c6ffaf8952e3 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 18 Dec 2017 17:56:24 +1100 Subject: [PATCH 049/107] Update guide in line with API ref update --- en/guide/follow_me.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/en/guide/follow_me.md b/en/guide/follow_me.md index bdaba8d..e9a51aa 100644 --- a/en/guide/follow_me.md +++ b/en/guide/follow_me.md @@ -11,7 +11,7 @@ The API is used to supply the position(s) for the [target](../api_reference/stru ## Set the Follow Configuration By default the vehicle will follow directly behind the target at a height and distance of 8 metres. -You can (optionally) call [set_config()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a4b92c3a042911dd9bdb378c686458a34) at any time to specify a different height, follow distance, relative position (front left/right/centre or behind) and responsiveness to target movements. +You can (optionally) call [set_config()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aedf746d4a0eebdaaddc3d1ba0aeb6720) at any time to specify a different height, follow distance, relative position (front left/right/centre or behind) and responsiveness to target movements. The code fragment below shows how to set the configuration: ```cpp @@ -23,10 +23,10 @@ config.responsiveness = 0.2f; // Higher responsiveness config.follow_direction = FollowMe::Config::FollowDirection::FRONT; //Follow from front-centre // Apply configuration -bool configured = device.follow_me().set_config(config); -if (configured) { - // handle config failure - std::cout << "Configuration failed" << std::endl; +FollowMe::Result config_result = device.follow_me().set_config(config); +if (config_result != FollowMe::Result::SUCCESS) { + // handle config-setting failure (in this case print error) + std::cout << "Setting configuration failed:" << FollowMe::result_str(config_result) << std::endl; } ``` @@ -39,9 +39,9 @@ auto curr_config = device.follow_me().get_config(); To start and stop following a target, call [start()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a694749d43d527f85584df25a49b05ccf) and [stop()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a6394507b0fb96bceebe6efd17f0529ce), respectively - `start()` puts the vehicle into [Follow-Me mode](https://docs.px4.io/en/flight_modes/follow_me.html) and `stop()` puts it into [Hold mode](https://docs.px4.io/en/flight_modes/hold.html). -Use [set_curr_target_location()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1afb8c24ed93421e904b0f528569c7699a) to set the target position(s) for the vehicle to follow (the app typically passes its host's current position, which it would obtain using OS-specific methods). This can be called at any time, but messages will only be sent once following is started. DroneCore automatically resends the last set position at the rate required by the autopilot/flight mode (1 Hz). +Use [set_target_location()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a1220596b8bb51d2ca52248a92e300ad5) to set the target position(s) for the vehicle to follow (the app typically passes its host's current position, which it would obtain using OS-specific methods). This can be called at any time, but messages will only be sent once following is started. DroneCore automatically resends the last set position at the rate required by the autopilot/flight mode (1 Hz). -> **Note** Typically you would call `set_curr_target_location()` before or shortly after starting the mode. If you call `start()` without having set any target location, or if the connection is broken, the vehicle will climb to minimum altitude (if needed) and remain in the mode waiting for messages. +> **Note** Typically you would call `set_target_location()` before or shortly after starting the mode. If you call `start()` without having set any target location, or if the connection is broken, the vehicle will climb to minimum altitude (if needed) and remain in the mode waiting for messages. ```cpp // Start following @@ -54,7 +54,7 @@ if (follow_me_result != FollowMe::Result::SUCCESS) { // ... Get target position from underlying platform or wherever and supply to vehicle // Here we just show one point being set. Minimum values specified in the configuration are respected. -follow_me.set_curr_target_location({ 47.39776569, 8.54553292, 9.0, 0.f, 0.f, 0.f }); +follow_me.set_target_location({ 47.39776569, 8.54553292, 9.0, 0.f, 0.f, 0.f }); // Stop following @@ -65,7 +65,7 @@ if (follow_me_result != FollowMe::Result::SUCCESS) { } ``` -The last location that was set can be retrieved using [get_last_location()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1ab68273d5ace65ee953afa1797ae49e7c). Before a target position is first set this API will return `Nan`. +The last location that was set can be retrieved using [get_last_location()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a16da2bf7d0384e2bff4440600b523f8c). Before a target position is first set this API will return `Nan`. From bce1dee3e78d1b7cb3aa2318c66883522f4a31c6 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 19 Dec 2017 14:11:45 +1100 Subject: [PATCH 050/107] Fix set_target_...() usage in example --- en/guide/follow_me.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/en/guide/follow_me.md b/en/guide/follow_me.md index e9a51aa..46f81fe 100644 --- a/en/guide/follow_me.md +++ b/en/guide/follow_me.md @@ -52,9 +52,9 @@ if (follow_me_result != FollowMe::Result::SUCCESS) { } -// ... Get target position from underlying platform or wherever and supply to vehicle -// Here we just show one point being set. Minimum values specified in the configuration are respected. -follow_me.set_target_location({ 47.39776569, 8.54553292, 9.0, 0.f, 0.f, 0.f }); +// Get target position from underlying platform and supply to vehicle. +// For this example we just show one point being set (instead of a stream). +follow_me.set_target_location({ 47.39776569, 8.54553292, 0.f, 0.f, 0.f, 0.f }); // Stop following From 54cc436094ddd2117dcc63dd8f5d171b1c9799f9 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 8 Jan 2018 11:11:11 +1100 Subject: [PATCH 051/107] Update integration/unit test docs --- en/contributing/plugins.md | 10 +++++----- en/contributing/test.md | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/en/contributing/plugins.md b/en/contributing/plugins.md index c8729e7..fc42dbd 100644 --- a/en/contributing/plugins.md +++ b/en/contributing/plugins.md @@ -145,7 +145,7 @@ Unit tests are stored as separate files in the same directory as their associate Often they test the implementation (rather than the public API), and hence are named with the suffix **_impl_test.cpp**. -In order to include a test in the DroneCore unit test program (`unit_tests_runner`), +In order to include a test in the DroneCore unit test program (`dronecore-unittests`), its file name must be added to the `$unittest_source_files` variable in the plugin **CMakeLists.txt** file (you can add multiple files). @@ -188,7 +188,7 @@ TEST(ExampleImpl, NoTest) ### Writing Integration Tests {#integration_tests} -DroneCore provides the `integration_tests_runner` application for running the integration tests and +DroneCore provides the `dronecore-integrationtests` application for running the integration tests and some helper code to make it easier to log tests and run them against the simulator. > **Tip** Check out the [Google Test Primer](https://github.com/google/googletest/blob/master/googletest/docs/Primer.md) @@ -198,12 +198,12 @@ some helper code to make it easier to log tests and run them against the simulat #### Adding Integration Tests -In order to run an integration test it needs to be added to the `integration_tests_runner` program. +In order to run an integration test it needs to be added to the `dronecore-integrationtests` program. Integration tests for core functionality and plugins delivered by the project -are stored in [DroneCore/integration_tests](https://github.com/dronecore/DroneCore/tree/develop/integration_tests). +are stored in [DroneCore/integration_tests](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/integration_tests). The files are added to the test program in that folder's -[CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/master/integration_tests/CMakeLists.txt#L12) file: +[CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/CMakeLists.txt) file: ```cmake list(APPEND integration_tests diff --git a/en/contributing/test.md b/en/contributing/test.md index 10cdef7..c5107c0 100644 --- a/en/contributing/test.md +++ b/en/contributing/test.md @@ -41,7 +41,7 @@ cd wherever/DroneCore/ AUTOSTART_SITL=1 make run_integration_tests ``` -To run the tests without the 3D viewer (gzclient), use: +To run the tests without the 3D viewer (*gzclient*), use: ``` AUTOSTART_SITL=1 HEADLESS=1 make run_integration_tests @@ -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_runner --gtest_filter="SitlTest.TelemetryAsync" +make && build/default/dronecore-integrationtests --gtest_filter="SitlTest.TelemetryAsync" ``` @@ -76,15 +76,15 @@ make && build/default/integration_tests_runner --gtest_filter="SitlTest.Telemetr To list all integration tests: ``` -make && build/default/integration_tests_runner --gtest_list_tests +make && build/default/dronecore-integrationtests --gtest_list_tests ``` To run a single integration test: ``` -make && build/default/integration_tests_runner --gtest_filter="SitlTest.TelemetryAsync" +make && build/default/dronecore-integrationtests --gtest_filter="SitlTest.TelemetryAsync" ``` To run all telemetry tests: ``` -make && build/default/integration_tests_runner --gtest_filter="SitlTest.Telemetry*" +make && build/default/dronecore-integrationtests --gtest_filter="SitlTest.Telemetry*" ``` From 618c751568b0bdf57afa08990409acd30e0825f3 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Wed, 31 Jan 2018 15:48:47 +1100 Subject: [PATCH 052/107] Add FollowMe to API Overview --- en/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/en/README.md b/en/README.md index b8ec0d5..12f3cac 100644 --- a/en/README.md +++ b/en/README.md @@ -62,6 +62,7 @@ The most important classes are: - [Mission](/api_reference/classdronecore_1_1_mission.md): Waypoint mission creation and upload/download. Missions are created from [MissionItem](/api_reference/classdronecore_1_1_mission_item.md) objects. - [Offboard](/api_reference/classdronecore_1_1_offboard.md): Control a drone with velocity commands. - [Gimbal](/api_reference/classdronecore_1_1_gimbal.md): Control a gimbal. +- [FollowMe](/api_reference/classdronecore_1_1_follow_me.md): Drone tracks a position supplied by DroneCore. - [Logging](/api_reference/classdronecore_1_1_logging.md): Data logging and streaming from the vehicle. - [include/device_plugin_container.h.in](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/include/device_plugin_container.h.in): Auto-generated file that is required for DroneCore plugin development - see [DevicePluginContainer](/api_reference/classdronecore_1_1_device_plugin_container.md). From 19524e7d92bc65593c228d17f2e6e4684a9c9fd2 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Wed, 31 Jan 2018 16:50:27 +1100 Subject: [PATCH 053/107] API reference updates --- en/api_reference/classdronecore_1_1_device.md | 66 +++++++++---------- ...ssdronecore_1_1_device_plugin_container.md | 66 +++++++++---------- .../classdronecore_1_1_follow_me.md | 37 +++++------ ...tructdronecore_1_1_follow_me_1_1_config.md | 2 +- ...ecore_1_1_follow_me_1_1_target_location.md | 2 +- 5 files changed, 86 insertions(+), 87 deletions(-) diff --git a/en/api_reference/classdronecore_1_1_device.md b/en/api_reference/classdronecore_1_1_device.md index e17110d..ded2052 100644 --- a/en/api_reference/classdronecore_1_1_device.md +++ b/en/api_reference/classdronecore_1_1_device.md @@ -26,14 +26,14 @@ Type | Name | Description ---: | --- | --- | [Device](#classdronecore_1_1_device_1aa64ba685fe110fcb0a8e1b92156f144b) (DeviceImpl *impl) | Constructor (internal use only). | [~Device](#classdronecore_1_1_device_1a65c697e12eed30109074e18a9cfdc836) () | Destructor (internal use only). -[Action](classdronecore_1_1_action.md) & | [action](#classdronecore_1_1_device_plugin_container_1aea48bd55b1ace227ebb56690794c2192) () | -[FollowMe](classdronecore_1_1_follow_me.md) & | [follow_me](#classdronecore_1_1_device_plugin_container_1ae13164c3bb59230c559341b8506c5e03) () | -[Gimbal](classdronecore_1_1_gimbal.md) & | [gimbal](#classdronecore_1_1_device_plugin_container_1a2fce9f439c565af9a8510c5746c728f0) () | [Info](classdronecore_1_1_info.md) & | [info](#classdronecore_1_1_device_plugin_container_1a1509e3d7a469cbc3e33471138b1f4dc7) () | [Logging](classdronecore_1_1_logging.md) & | [logging](#classdronecore_1_1_device_plugin_container_1a0551f966021bdbd9e41700232c33d379) () | -[Mission](classdronecore_1_1_mission.md) & | [mission](#classdronecore_1_1_device_plugin_container_1a8a05778326d0ef4c74146bc42fdcb52d) () | -[Offboard](classdronecore_1_1_offboard.md) & | [offboard](#classdronecore_1_1_device_plugin_container_1a63193bd25273bbda48665e12e012f478) () | [Telemetry](classdronecore_1_1_telemetry.md) & | [telemetry](#classdronecore_1_1_device_plugin_container_1a9b119348d0f5195c9b0919fbe6196b14) () | +[FollowMe](classdronecore_1_1_follow_me.md) & | [follow_me](#classdronecore_1_1_device_plugin_container_1ae13164c3bb59230c559341b8506c5e03) () | +[Action](classdronecore_1_1_action.md) & | [action](#classdronecore_1_1_device_plugin_container_1aea48bd55b1ace227ebb56690794c2192) () | +[Gimbal](classdronecore_1_1_gimbal.md) & | [gimbal](#classdronecore_1_1_device_plugin_container_1a2fce9f439c565af9a8510c5746c728f0) () | +[Offboard](classdronecore_1_1_offboard.md) & | [offboard](#classdronecore_1_1_device_plugin_container_1a63193bd25273bbda48665e12e012f478) () | +[Mission](classdronecore_1_1_mission.md) & | [mission](#classdronecore_1_1_device_plugin_container_1a8a05778326d0ef4c74146bc42fdcb52d) () | ## Constructor & Destructor Documentation @@ -66,77 +66,77 @@ The destructor of [Device](classdronecore_1_1_device.md) does not need to be cal ## Member Function Documentation -### action() {#classdronecore_1_1_device_plugin_container_1aea48bd55b1ace227ebb56690794c2192} +### info() {#classdronecore_1_1_device_plugin_container_1a1509e3d7a469cbc3e33471138b1f4dc7} ```cpp -Action& dronecore::DevicePluginContainer::action() +Info& dronecore::DevicePluginContainer::info() ``` -Getter for [Action](classdronecore_1_1_action.md) plugin. +Getter for [Info](classdronecore_1_1_info.md) plugin. **Returns** - [Action](classdronecore_1_1_action.md) & - a reference to the action plugin instance + [Info](classdronecore_1_1_info.md) & - a reference to the info plugin instance -### follow_me() {#classdronecore_1_1_device_plugin_container_1ae13164c3bb59230c559341b8506c5e03} +### logging() {#classdronecore_1_1_device_plugin_container_1a0551f966021bdbd9e41700232c33d379} ```cpp -FollowMe& dronecore::DevicePluginContainer::follow_me() +Logging& dronecore::DevicePluginContainer::logging() ``` -Getter for [FollowMe](classdronecore_1_1_follow_me.md) plugin. +Getter for [Logging](classdronecore_1_1_logging.md) plugin. **Returns** - [FollowMe](classdronecore_1_1_follow_me.md) & - a reference to the follow_me plugin instance + [Logging](classdronecore_1_1_logging.md) & - a reference to the logging plugin instance -### gimbal() {#classdronecore_1_1_device_plugin_container_1a2fce9f439c565af9a8510c5746c728f0} +### telemetry() {#classdronecore_1_1_device_plugin_container_1a9b119348d0f5195c9b0919fbe6196b14} ```cpp -Gimbal& dronecore::DevicePluginContainer::gimbal() +Telemetry& dronecore::DevicePluginContainer::telemetry() ``` -Getter for [Gimbal](classdronecore_1_1_gimbal.md) plugin. +Getter for [Telemetry](classdronecore_1_1_telemetry.md) plugin. **Returns** - [Gimbal](classdronecore_1_1_gimbal.md) & - a reference to the gimbal plugin instance + [Telemetry](classdronecore_1_1_telemetry.md) & - a reference to the telemetry plugin instance -### info() {#classdronecore_1_1_device_plugin_container_1a1509e3d7a469cbc3e33471138b1f4dc7} +### follow_me() {#classdronecore_1_1_device_plugin_container_1ae13164c3bb59230c559341b8506c5e03} ```cpp -Info& dronecore::DevicePluginContainer::info() +FollowMe& dronecore::DevicePluginContainer::follow_me() ``` -Getter for [Info](classdronecore_1_1_info.md) plugin. +Getter for [FollowMe](classdronecore_1_1_follow_me.md) plugin. **Returns** - [Info](classdronecore_1_1_info.md) & - a reference to the info plugin instance + [FollowMe](classdronecore_1_1_follow_me.md) & - a reference to the follow_me plugin instance -### logging() {#classdronecore_1_1_device_plugin_container_1a0551f966021bdbd9e41700232c33d379} +### action() {#classdronecore_1_1_device_plugin_container_1aea48bd55b1ace227ebb56690794c2192} ```cpp -Logging& dronecore::DevicePluginContainer::logging() +Action& dronecore::DevicePluginContainer::action() ``` -Getter for [Logging](classdronecore_1_1_logging.md) plugin. +Getter for [Action](classdronecore_1_1_action.md) plugin. **Returns** - [Logging](classdronecore_1_1_logging.md) & - a reference to the logging plugin instance + [Action](classdronecore_1_1_action.md) & - a reference to the action plugin instance -### mission() {#classdronecore_1_1_device_plugin_container_1a8a05778326d0ef4c74146bc42fdcb52d} +### gimbal() {#classdronecore_1_1_device_plugin_container_1a2fce9f439c565af9a8510c5746c728f0} ```cpp -Mission& dronecore::DevicePluginContainer::mission() +Gimbal& dronecore::DevicePluginContainer::gimbal() ``` -Getter for [Mission](classdronecore_1_1_mission.md) plugin. +Getter for [Gimbal](classdronecore_1_1_gimbal.md) plugin. **Returns** - [Mission](classdronecore_1_1_mission.md) & - a reference to the mission plugin instance + [Gimbal](classdronecore_1_1_gimbal.md) & - a reference to the gimbal plugin instance ### offboard() {#classdronecore_1_1_device_plugin_container_1a63193bd25273bbda48665e12e012f478} ```cpp @@ -150,14 +150,14 @@ Getter for [Offboard](classdronecore_1_1_offboard.md) plugin.  [Offboard](classdronecore_1_1_offboard.md) & - a reference to the offboard plugin instance -### telemetry() {#classdronecore_1_1_device_plugin_container_1a9b119348d0f5195c9b0919fbe6196b14} +### mission() {#classdronecore_1_1_device_plugin_container_1a8a05778326d0ef4c74146bc42fdcb52d} ```cpp -Telemetry& dronecore::DevicePluginContainer::telemetry() +Mission& dronecore::DevicePluginContainer::mission() ``` -Getter for [Telemetry](classdronecore_1_1_telemetry.md) plugin. +Getter for [Mission](classdronecore_1_1_mission.md) plugin. **Returns** - [Telemetry](classdronecore_1_1_telemetry.md) & - a reference to the telemetry plugin instance \ No newline at end of file + [Mission](classdronecore_1_1_mission.md) & - a reference to the mission plugin instance \ No newline at end of file diff --git a/en/api_reference/classdronecore_1_1_device_plugin_container.md b/en/api_reference/classdronecore_1_1_device_plugin_container.md index 110dcf9..7367687 100644 --- a/en/api_reference/classdronecore_1_1_device_plugin_container.md +++ b/en/api_reference/classdronecore_1_1_device_plugin_container.md @@ -16,14 +16,14 @@ The content of the [DevicePluginContainer](classdronecore_1_1_device_plugin_cont Type | Name | Description ---: | --- | --- | [DevicePluginContainer](#classdronecore_1_1_device_plugin_container_1af4c0f2facc64a99818737971f7f1cc77) (const DevicePluginContainer &)=delete | Copy constructor (object is not copyable). -[Action](classdronecore_1_1_action.md) & | [action](#classdronecore_1_1_device_plugin_container_1aea48bd55b1ace227ebb56690794c2192) () | -[FollowMe](classdronecore_1_1_follow_me.md) & | [follow_me](#classdronecore_1_1_device_plugin_container_1ae13164c3bb59230c559341b8506c5e03) () | -[Gimbal](classdronecore_1_1_gimbal.md) & | [gimbal](#classdronecore_1_1_device_plugin_container_1a2fce9f439c565af9a8510c5746c728f0) () | [Info](classdronecore_1_1_info.md) & | [info](#classdronecore_1_1_device_plugin_container_1a1509e3d7a469cbc3e33471138b1f4dc7) () | [Logging](classdronecore_1_1_logging.md) & | [logging](#classdronecore_1_1_device_plugin_container_1a0551f966021bdbd9e41700232c33d379) () | -[Mission](classdronecore_1_1_mission.md) & | [mission](#classdronecore_1_1_device_plugin_container_1a8a05778326d0ef4c74146bc42fdcb52d) () | -[Offboard](classdronecore_1_1_offboard.md) & | [offboard](#classdronecore_1_1_device_plugin_container_1a63193bd25273bbda48665e12e012f478) () | [Telemetry](classdronecore_1_1_telemetry.md) & | [telemetry](#classdronecore_1_1_device_plugin_container_1a9b119348d0f5195c9b0919fbe6196b14) () | +[FollowMe](classdronecore_1_1_follow_me.md) & | [follow_me](#classdronecore_1_1_device_plugin_container_1ae13164c3bb59230c559341b8506c5e03) () | +[Action](classdronecore_1_1_action.md) & | [action](#classdronecore_1_1_device_plugin_container_1aea48bd55b1ace227ebb56690794c2192) () | +[Gimbal](classdronecore_1_1_gimbal.md) & | [gimbal](#classdronecore_1_1_device_plugin_container_1a2fce9f439c565af9a8510c5746c728f0) () | +[Offboard](classdronecore_1_1_offboard.md) & | [offboard](#classdronecore_1_1_device_plugin_container_1a63193bd25273bbda48665e12e012f478) () | +[Mission](classdronecore_1_1_mission.md) & | [mission](#classdronecore_1_1_device_plugin_container_1a8a05778326d0ef4c74146bc42fdcb52d) () | const [DevicePluginContainer](classdronecore_1_1_device_plugin_container.md) & | [operator=](#classdronecore_1_1_device_plugin_container_1abb90ffceec0873823fb78067d8d6e385) (const DevicePluginContainer &)=delete | Equality operator (object is not copyable). @@ -46,77 +46,77 @@ Copy constructor (object is not copyable). ## Member Function Documentation -### action() {#classdronecore_1_1_device_plugin_container_1aea48bd55b1ace227ebb56690794c2192} +### info() {#classdronecore_1_1_device_plugin_container_1a1509e3d7a469cbc3e33471138b1f4dc7} ```cpp -Action& dronecore::DevicePluginContainer::action() +Info& dronecore::DevicePluginContainer::info() ``` -Getter for [Action](classdronecore_1_1_action.md) plugin. +Getter for [Info](classdronecore_1_1_info.md) plugin. **Returns** - [Action](classdronecore_1_1_action.md) & - a reference to the action plugin instance + [Info](classdronecore_1_1_info.md) & - a reference to the info plugin instance -### follow_me() {#classdronecore_1_1_device_plugin_container_1ae13164c3bb59230c559341b8506c5e03} +### logging() {#classdronecore_1_1_device_plugin_container_1a0551f966021bdbd9e41700232c33d379} ```cpp -FollowMe& dronecore::DevicePluginContainer::follow_me() +Logging& dronecore::DevicePluginContainer::logging() ``` -Getter for [FollowMe](classdronecore_1_1_follow_me.md) plugin. +Getter for [Logging](classdronecore_1_1_logging.md) plugin. **Returns** - [FollowMe](classdronecore_1_1_follow_me.md) & - a reference to the follow_me plugin instance + [Logging](classdronecore_1_1_logging.md) & - a reference to the logging plugin instance -### gimbal() {#classdronecore_1_1_device_plugin_container_1a2fce9f439c565af9a8510c5746c728f0} +### telemetry() {#classdronecore_1_1_device_plugin_container_1a9b119348d0f5195c9b0919fbe6196b14} ```cpp -Gimbal& dronecore::DevicePluginContainer::gimbal() +Telemetry& dronecore::DevicePluginContainer::telemetry() ``` -Getter for [Gimbal](classdronecore_1_1_gimbal.md) plugin. +Getter for [Telemetry](classdronecore_1_1_telemetry.md) plugin. **Returns** - [Gimbal](classdronecore_1_1_gimbal.md) & - a reference to the gimbal plugin instance + [Telemetry](classdronecore_1_1_telemetry.md) & - a reference to the telemetry plugin instance -### info() {#classdronecore_1_1_device_plugin_container_1a1509e3d7a469cbc3e33471138b1f4dc7} +### follow_me() {#classdronecore_1_1_device_plugin_container_1ae13164c3bb59230c559341b8506c5e03} ```cpp -Info& dronecore::DevicePluginContainer::info() +FollowMe& dronecore::DevicePluginContainer::follow_me() ``` -Getter for [Info](classdronecore_1_1_info.md) plugin. +Getter for [FollowMe](classdronecore_1_1_follow_me.md) plugin. **Returns** - [Info](classdronecore_1_1_info.md) & - a reference to the info plugin instance + [FollowMe](classdronecore_1_1_follow_me.md) & - a reference to the follow_me plugin instance -### logging() {#classdronecore_1_1_device_plugin_container_1a0551f966021bdbd9e41700232c33d379} +### action() {#classdronecore_1_1_device_plugin_container_1aea48bd55b1ace227ebb56690794c2192} ```cpp -Logging& dronecore::DevicePluginContainer::logging() +Action& dronecore::DevicePluginContainer::action() ``` -Getter for [Logging](classdronecore_1_1_logging.md) plugin. +Getter for [Action](classdronecore_1_1_action.md) plugin. **Returns** - [Logging](classdronecore_1_1_logging.md) & - a reference to the logging plugin instance + [Action](classdronecore_1_1_action.md) & - a reference to the action plugin instance -### mission() {#classdronecore_1_1_device_plugin_container_1a8a05778326d0ef4c74146bc42fdcb52d} +### gimbal() {#classdronecore_1_1_device_plugin_container_1a2fce9f439c565af9a8510c5746c728f0} ```cpp -Mission& dronecore::DevicePluginContainer::mission() +Gimbal& dronecore::DevicePluginContainer::gimbal() ``` -Getter for [Mission](classdronecore_1_1_mission.md) plugin. +Getter for [Gimbal](classdronecore_1_1_gimbal.md) plugin. **Returns** - [Mission](classdronecore_1_1_mission.md) & - a reference to the mission plugin instance + [Gimbal](classdronecore_1_1_gimbal.md) & - a reference to the gimbal plugin instance ### offboard() {#classdronecore_1_1_device_plugin_container_1a63193bd25273bbda48665e12e012f478} ```cpp @@ -130,17 +130,17 @@ Getter for [Offboard](classdronecore_1_1_offboard.md) plugin.  [Offboard](classdronecore_1_1_offboard.md) & - a reference to the offboard plugin instance -### telemetry() {#classdronecore_1_1_device_plugin_container_1a9b119348d0f5195c9b0919fbe6196b14} +### mission() {#classdronecore_1_1_device_plugin_container_1a8a05778326d0ef4c74146bc42fdcb52d} ```cpp -Telemetry& dronecore::DevicePluginContainer::telemetry() +Mission& dronecore::DevicePluginContainer::mission() ``` -Getter for [Telemetry](classdronecore_1_1_telemetry.md) plugin. +Getter for [Mission](classdronecore_1_1_mission.md) plugin. **Returns** - [Telemetry](classdronecore_1_1_telemetry.md) & - a reference to the telemetry plugin instance + [Mission](classdronecore_1_1_mission.md) & - a reference to the mission plugin instance ### operator=() {#classdronecore_1_1_device_plugin_container_1abb90ffceec0873823fb78067d8d6e385} ```cpp diff --git a/en/api_reference/classdronecore_1_1_follow_me.md b/en/api_reference/classdronecore_1_1_follow_me.md index 0810e0d..5c3cb5e 100644 --- a/en/api_reference/classdronecore_1_1_follow_me.md +++ b/en/api_reference/classdronecore_1_1_follow_me.md @@ -37,10 +37,10 @@ Type | Name | Description | [~FollowMe](#classdronecore_1_1_follow_me_1a66ffe3c9652bc08a2766f211592316ac) () | Destructor (internal use only). | [FollowMe](#classdronecore_1_1_follow_me_1a54589c314eeba131aca1c4c56d4b15e3) (const FollowMe &)=delete | Copy constructor (object is not copyable). const [Config](structdronecore_1_1_follow_me_1_1_config.md) & | [get_config](#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5) () const | Gets current [FollowMe](classdronecore_1_1_follow_me.md) configuration. -[Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) | [set_config](#classdronecore_1_1_follow_me_1aedf746d4a0eebdaaddc3d1ba0aeb6720) (const Config &config) | Applies [FollowMe](classdronecore_1_1_follow_me.md) configuration by sending it to device. +bool | [set_config](#classdronecore_1_1_follow_me_1a4b92c3a042911dd9bdb378c686458a34) (const Config &config) | Applies [FollowMe](classdronecore_1_1_follow_me.md) configuration by sending it to device. bool | [is_active](#classdronecore_1_1_follow_me_1a467349820ac5f42cc388228c399a93ef) () const | Checks whether [FollowMe](classdronecore_1_1_follow_me.md) is active. -void | [set_target_location](#classdronecore_1_1_follow_me_1a1220596b8bb51d2ca52248a92e300ad5) (const TargetLocation &location) | Sets location of the moving target. -const [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & | [get_last_location](#classdronecore_1_1_follow_me_1a16da2bf7d0384e2bff4440600b523f8c) () const | Returns the last location of the target. +void | [set_curr_target_location](#classdronecore_1_1_follow_me_1afb8c24ed93421e904b0f528569c7699a) (const TargetLocation &location) | Sets current location of the moving target. +void | [get_last_location](#classdronecore_1_1_follow_me_1ab68273d5ace65ee953afa1797ae49e7c) (TargetLocation &last_location) | Returns the most recent location of the target. [FollowMe::Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) | [start](#classdronecore_1_1_follow_me_1a694749d43d527f85584df25a49b05ccf) () const | Starts [FollowMe](classdronecore_1_1_follow_me.md) mode. [FollowMe::Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) | [stop](#classdronecore_1_1_follow_me_1a6394507b0fb96bceebe6efd17f0529ce) () const | Stops [FollowMe](classdronecore_1_1_follow_me.md) mode. const [FollowMe](classdronecore_1_1_follow_me.md) & | [operator=](#classdronecore_1_1_follow_me_1accb454508e051d79b2943ba469958f9e) (const FollowMe &)=delete | Equality operator (object is not copyable). @@ -109,7 +109,6 @@ Value | Description `COMMAND_DENIED` | Command denied. `TIMEOUT` | Request timeout. `NOT_ACTIVE` | [FollowMe](classdronecore_1_1_follow_me.md) is not activated. - `SET_CONFIG_FAILED` | Failed to set [FollowMe](classdronecore_1_1_follow_me.md) configuration. `UNKNOWN` | Unknown error. **See Also:** @@ -133,12 +132,12 @@ Gets current [FollowMe](classdronecore_1_1_follow_me.md) configuration.  const [Config](structdronecore_1_1_follow_me_1_1_config.md) & - Current [FollowMe](classdronecore_1_1_follow_me.md) configuration. **See Also:** -- [set_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aedf746d4a0eebdaaddc3d1ba0aeb6720) +- [set_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a4b92c3a042911dd9bdb378c686458a34) -### set_config() {#classdronecore_1_1_follow_me_1aedf746d4a0eebdaaddc3d1ba0aeb6720} +### set_config() {#classdronecore_1_1_follow_me_1a4b92c3a042911dd9bdb378c686458a34} ```cpp -Result dronecore::FollowMe::set_config(const Config &config) +bool dronecore::FollowMe::set_config(const Config &config) ``` @@ -151,7 +150,7 @@ Applies [FollowMe](classdronecore_1_1_follow_me.md) configuration by sending it **Returns** - [Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) - [FollowMe::Result::SUCCESS](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02ad0749aaba8b833466dfcbb0428e4f89c) if configuration is applied successfully, [FollowMe::Result::SET_CONFIG_FAILED](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02a93093f549a7c46c8f91528870edbe9e6) on failure. In case of failure, last configuration is preserved. + bool - `true` if configuration is applied successfully, `false` if config values are out-of-range. In case of failure, last configuration is preserved. **See Also:** - [get_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5) @@ -170,13 +169,13 @@ Checks whether [FollowMe](classdronecore_1_1_follow_me.md) is active.  bool - `true` if [FollowMe](classdronecore_1_1_follow_me.md) is active, `false` otherwise. -### set_target_location() {#classdronecore_1_1_follow_me_1a1220596b8bb51d2ca52248a92e300ad5} +### set_curr_target_location() {#classdronecore_1_1_follow_me_1afb8c24ed93421e904b0f528569c7699a} ```cpp -void dronecore::FollowMe::set_target_location(const TargetLocation &location) +void dronecore::FollowMe::set_curr_target_location(const TargetLocation &location) ``` -Sets location of the moving target. +Sets current location of the moving target. An app can obtain the location of the moving target from Location framework of the underlying platform. @@ -193,27 +192,27 @@ The following links provide information about location services on different pla **Parameters** -* const [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & **location** - Location of the moving target. +* const [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & **location** - Current location of the target. **See Also:** -- [get_last_location()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a16da2bf7d0384e2bff4440600b523f8c) +- [get_last_location()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1ab68273d5ace65ee953afa1797ae49e7c) -### get_last_location() {#classdronecore_1_1_follow_me_1a16da2bf7d0384e2bff4440600b523f8c} +### get_last_location() {#classdronecore_1_1_follow_me_1ab68273d5ace65ee953afa1797ae49e7c} ```cpp -const TargetLocation& dronecore::FollowMe::get_last_location() const +void dronecore::FollowMe::get_last_location(TargetLocation &last_location) ``` -Returns the last location of the target. +Returns the most recent location of the target. -**Returns** +**Parameters** - const [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & - Last location of the target. +* [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & **last_location** - Last location to be filled. **See Also:** -- [set_target_location()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a1220596b8bb51d2ca52248a92e300ad5) +- [set_curr_target_location()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1afb8c24ed93421e904b0f528569c7699a) ### start() {#classdronecore_1_1_follow_me_1a694749d43d527f85584df25a49b05ccf} diff --git a/en/api_reference/structdronecore_1_1_follow_me_1_1_config.md b/en/api_reference/structdronecore_1_1_follow_me_1_1_config.md index e9fc29c..a040a06 100644 --- a/en/api_reference/structdronecore_1_1_follow_me_1_1_config.md +++ b/en/api_reference/structdronecore_1_1_follow_me_1_1_config.md @@ -8,7 +8,7 @@ **See Also:** -- [get_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5), [set_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aedf746d4a0eebdaaddc3d1ba0aeb6720) +- [get_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5), [set_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a4b92c3a042911dd9bdb378c686458a34) - [Parameter Reference](https://docs.px4.io/en/advanced_config/parameter_reference.html#follow-target) (PX4 User Guide) diff --git a/en/api_reference/structdronecore_1_1_follow_me_1_1_target_location.md b/en/api_reference/structdronecore_1_1_follow_me_1_1_target_location.md index 5ee6dff..dbee037 100644 --- a/en/api_reference/structdronecore_1_1_follow_me_1_1_target_location.md +++ b/en/api_reference/structdronecore_1_1_follow_me_1_1_target_location.md @@ -4,7 +4,7 @@ ---- -Type for geographical location of the target being followed. +Geographical location of the target in motion. ## Data Fields From 781e121f721b43efca8e7e392f18a7b465debabe Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Wed, 31 Jan 2018 17:00:13 +1100 Subject: [PATCH 054/107] Fix broken internal link to API ref --- en/guide/follow_me.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/guide/follow_me.md b/en/guide/follow_me.md index 46f81fe..fa95d1f 100644 --- a/en/guide/follow_me.md +++ b/en/guide/follow_me.md @@ -65,7 +65,7 @@ if (follow_me_result != FollowMe::Result::SUCCESS) { } ``` -The last location that was set can be retrieved using [get_last_location()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a16da2bf7d0384e2bff4440600b523f8c). Before a target position is first set this API will return `Nan`. +The last location that was set can be retrieved using [get_last_location()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1ab68273d5ace65ee953afa1797ae49e7c). Before a target position is first set this API will return `Nan`. From 021618f3de225654569002e866066e803e8491b1 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 1 Feb 2018 09:53:01 +1100 Subject: [PATCH 055/107] Fix API ref and broken link --- .../classdronecore_1_1_follow_me.md | 37 ++++++++++--------- .../classdronecore_1_1_offboard.md | 4 +- .../classdronecore_1_1_telemetry.md | 4 +- ...tructdronecore_1_1_follow_me_1_1_config.md | 8 ++-- ...ecore_1_1_follow_me_1_1_target_location.md | 2 +- en/contributing/build.md | 4 +- 6 files changed, 30 insertions(+), 29 deletions(-) diff --git a/en/api_reference/classdronecore_1_1_follow_me.md b/en/api_reference/classdronecore_1_1_follow_me.md index 5c3cb5e..0810e0d 100644 --- a/en/api_reference/classdronecore_1_1_follow_me.md +++ b/en/api_reference/classdronecore_1_1_follow_me.md @@ -37,10 +37,10 @@ Type | Name | Description | [~FollowMe](#classdronecore_1_1_follow_me_1a66ffe3c9652bc08a2766f211592316ac) () | Destructor (internal use only). | [FollowMe](#classdronecore_1_1_follow_me_1a54589c314eeba131aca1c4c56d4b15e3) (const FollowMe &)=delete | Copy constructor (object is not copyable). const [Config](structdronecore_1_1_follow_me_1_1_config.md) & | [get_config](#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5) () const | Gets current [FollowMe](classdronecore_1_1_follow_me.md) configuration. -bool | [set_config](#classdronecore_1_1_follow_me_1a4b92c3a042911dd9bdb378c686458a34) (const Config &config) | Applies [FollowMe](classdronecore_1_1_follow_me.md) configuration by sending it to device. +[Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) | [set_config](#classdronecore_1_1_follow_me_1aedf746d4a0eebdaaddc3d1ba0aeb6720) (const Config &config) | Applies [FollowMe](classdronecore_1_1_follow_me.md) configuration by sending it to device. bool | [is_active](#classdronecore_1_1_follow_me_1a467349820ac5f42cc388228c399a93ef) () const | Checks whether [FollowMe](classdronecore_1_1_follow_me.md) is active. -void | [set_curr_target_location](#classdronecore_1_1_follow_me_1afb8c24ed93421e904b0f528569c7699a) (const TargetLocation &location) | Sets current location of the moving target. -void | [get_last_location](#classdronecore_1_1_follow_me_1ab68273d5ace65ee953afa1797ae49e7c) (TargetLocation &last_location) | Returns the most recent location of the target. +void | [set_target_location](#classdronecore_1_1_follow_me_1a1220596b8bb51d2ca52248a92e300ad5) (const TargetLocation &location) | Sets location of the moving target. +const [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & | [get_last_location](#classdronecore_1_1_follow_me_1a16da2bf7d0384e2bff4440600b523f8c) () const | Returns the last location of the target. [FollowMe::Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) | [start](#classdronecore_1_1_follow_me_1a694749d43d527f85584df25a49b05ccf) () const | Starts [FollowMe](classdronecore_1_1_follow_me.md) mode. [FollowMe::Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) | [stop](#classdronecore_1_1_follow_me_1a6394507b0fb96bceebe6efd17f0529ce) () const | Stops [FollowMe](classdronecore_1_1_follow_me.md) mode. const [FollowMe](classdronecore_1_1_follow_me.md) & | [operator=](#classdronecore_1_1_follow_me_1accb454508e051d79b2943ba469958f9e) (const FollowMe &)=delete | Equality operator (object is not copyable). @@ -109,6 +109,7 @@ Value | Description `COMMAND_DENIED` | Command denied. `TIMEOUT` | Request timeout. `NOT_ACTIVE` | [FollowMe](classdronecore_1_1_follow_me.md) is not activated. + `SET_CONFIG_FAILED` | Failed to set [FollowMe](classdronecore_1_1_follow_me.md) configuration. `UNKNOWN` | Unknown error. **See Also:** @@ -132,12 +133,12 @@ Gets current [FollowMe](classdronecore_1_1_follow_me.md) configuration.  const [Config](structdronecore_1_1_follow_me_1_1_config.md) & - Current [FollowMe](classdronecore_1_1_follow_me.md) configuration. **See Also:** -- [set_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a4b92c3a042911dd9bdb378c686458a34) +- [set_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aedf746d4a0eebdaaddc3d1ba0aeb6720) -### set_config() {#classdronecore_1_1_follow_me_1a4b92c3a042911dd9bdb378c686458a34} +### set_config() {#classdronecore_1_1_follow_me_1aedf746d4a0eebdaaddc3d1ba0aeb6720} ```cpp -bool dronecore::FollowMe::set_config(const Config &config) +Result dronecore::FollowMe::set_config(const Config &config) ``` @@ -150,7 +151,7 @@ Applies [FollowMe](classdronecore_1_1_follow_me.md) configuration by sending it **Returns** - bool - `true` if configuration is applied successfully, `false` if config values are out-of-range. In case of failure, last configuration is preserved. + [Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) - [FollowMe::Result::SUCCESS](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02ad0749aaba8b833466dfcbb0428e4f89c) if configuration is applied successfully, [FollowMe::Result::SET_CONFIG_FAILED](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02a93093f549a7c46c8f91528870edbe9e6) on failure. In case of failure, last configuration is preserved. **See Also:** - [get_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5) @@ -169,13 +170,13 @@ Checks whether [FollowMe](classdronecore_1_1_follow_me.md) is active.  bool - `true` if [FollowMe](classdronecore_1_1_follow_me.md) is active, `false` otherwise. -### set_curr_target_location() {#classdronecore_1_1_follow_me_1afb8c24ed93421e904b0f528569c7699a} +### set_target_location() {#classdronecore_1_1_follow_me_1a1220596b8bb51d2ca52248a92e300ad5} ```cpp -void dronecore::FollowMe::set_curr_target_location(const TargetLocation &location) +void dronecore::FollowMe::set_target_location(const TargetLocation &location) ``` -Sets current location of the moving target. +Sets location of the moving target. An app can obtain the location of the moving target from Location framework of the underlying platform. @@ -192,27 +193,27 @@ The following links provide information about location services on different pla **Parameters** -* const [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & **location** - Current location of the target. +* const [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & **location** - Location of the moving target. **See Also:** -- [get_last_location()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1ab68273d5ace65ee953afa1797ae49e7c) +- [get_last_location()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a16da2bf7d0384e2bff4440600b523f8c) -### get_last_location() {#classdronecore_1_1_follow_me_1ab68273d5ace65ee953afa1797ae49e7c} +### get_last_location() {#classdronecore_1_1_follow_me_1a16da2bf7d0384e2bff4440600b523f8c} ```cpp -void dronecore::FollowMe::get_last_location(TargetLocation &last_location) +const TargetLocation& dronecore::FollowMe::get_last_location() const ``` -Returns the most recent location of the target. +Returns the last location of the target. -**Parameters** +**Returns** -* [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & **last_location** - Last location to be filled. + const [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & - Last location of the target. **See Also:** -- [set_curr_target_location()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1afb8c24ed93421e904b0f528569c7699a) +- [set_target_location()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a1220596b8bb51d2ca52248a92e300ad5) ### start() {#classdronecore_1_1_follow_me_1a694749d43d527f85584df25a49b05ccf} diff --git a/en/api_reference/classdronecore_1_1_offboard.md b/en/api_reference/classdronecore_1_1_offboard.md index d4b2e0b..8a203b4 100644 --- a/en/api_reference/classdronecore_1_1_offboard.md +++ b/en/api_reference/classdronecore_1_1_offboard.md @@ -45,7 +45,7 @@ void | [start_async](#classdronecore_1_1_offboard_1a5dd9d18eedb0e4a8f1bbbeebf6f9 void | [stop_async](#classdronecore_1_1_offboard_1afbe6f50f63d3bc43acc4dfc2f797ca0a) (result_callback_t callback) | Stop offboard control (asynchronous). bool | [is_active](#classdronecore_1_1_offboard_1a44d9284ef03c8cf6f37a77b2f3cadaf0) () const | Check if offboard control is active. void | [set_velocity_ned](#classdronecore_1_1_offboard_1a9e7f369a8f7459dc7705f4453a8c307d) (VelocityNEDYaw velocity_ned_yaw) | Set the velocity in NED coordinates and yaw. -void | [set_velocity_body](#classdronecore_1_1_offboard_1ad9dc585be1bc2dba699cf089d4c274cc) (VelocityBodyYawspeed velocity_body_yawspeed) | Set the velocity body coordinates coordinates and yaw angular rate. +void | [set_velocity_body](#classdronecore_1_1_offboard_1ad9dc585be1bc2dba699cf089d4c274cc) (VelocityBodyYawspeed velocity_body_yawspeed) | Set the velocity body coordinates and yaw angular rate. const [Offboard](classdronecore_1_1_offboard.md) & | [operator=](#classdronecore_1_1_offboard_1aa6bf966e606cdd361364791d06aca977) (const Offboard &)=delete | Equality operator (object is not copyable). ## Static Public Member Functions @@ -219,7 +219,7 @@ void dronecore::Offboard::set_velocity_body(VelocityBodyYawspeed velocity_body_y ``` -Set the velocity body coordinates coordinates and yaw angular rate. +Set the velocity body coordinates and yaw angular rate. **Parameters** diff --git a/en/api_reference/classdronecore_1_1_telemetry.md b/en/api_reference/classdronecore_1_1_telemetry.md index ceb4052..154e4dd 100644 --- a/en/api_reference/classdronecore_1_1_telemetry.md +++ b/en/api_reference/classdronecore_1_1_telemetry.md @@ -99,7 +99,7 @@ void | [camera_attitude_euler_angle_async](#classdronecore_1_1_telemetry_1a35b05 void | [ground_speed_ned_async](#classdronecore_1_1_telemetry_1a954e95659c2890e0277664910fce9c34) (ground_speed_ned_callback_t callback) | Subscribe to ground speed (NED) updates (asynchronous). void | [gps_info_async](#classdronecore_1_1_telemetry_1afa05293d3d370ef90c5a291a22036a6e) (gps_info_callback_t callback) | Subscribe to GPS information updates (asynchronous). void | [battery_async](#classdronecore_1_1_telemetry_1a58bf2de73fbd609460398157dc8ffdd5) (battery_callback_t callback) | Subscribe to battery status updates (asynchronous). -void | [flight_mode_async](#classdronecore_1_1_telemetry_1ac8842dec06db4bd54c8c2ba2deb0d34a) (flight_mode_callback_t callback) | Subscribe to battery status updates (asynchronous). +void | [flight_mode_async](#classdronecore_1_1_telemetry_1ac8842dec06db4bd54c8c2ba2deb0d34a) (flight_mode_callback_t callback) | Subscribe to flight mode updates (asynchronous). void | [health_async](#classdronecore_1_1_telemetry_1a69675f46ba188d07d2e7edc110fbd2e9) (health_callback_t callback) | Subscribe to health status updates (asynchronous). void | [health_all_ok_async](#classdronecore_1_1_telemetry_1a83b384cd04b2ed17db805cfad8bafab5) (health_all_ok_callback_t callback) | Subscribe to overall health status updates (asynchronous). void | [rc_status_async](#classdronecore_1_1_telemetry_1a8f49537ae4c176a3e952247d60e82cd9) (rc_status_callback_t callback) | Subscribe to RC status updates (asynchronous). @@ -994,7 +994,7 @@ void dronecore::Telemetry::flight_mode_async(flight_mode_callback_t callback) ``` -Subscribe to battery status updates (asynchronous). +Subscribe to flight mode updates (asynchronous). Note that flight mode updates are limited to 1Hz. diff --git a/en/api_reference/structdronecore_1_1_follow_me_1_1_config.md b/en/api_reference/structdronecore_1_1_follow_me_1_1_config.md index a040a06..753c442 100644 --- a/en/api_reference/structdronecore_1_1_follow_me_1_1_config.md +++ b/en/api_reference/structdronecore_1_1_follow_me_1_1_config.md @@ -8,7 +8,7 @@ **See Also:** -- [get_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5), [set_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a4b92c3a042911dd9bdb378c686458a34) +- [get_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5), [set_config()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aedf746d4a0eebdaaddc3d1ba0aeb6720) - [Parameter Reference](https://docs.px4.io/en/advanced_config/parameter_reference.html#follow-target) (PX4 User Guide) @@ -24,7 +24,7 @@ enum [FollowDirection](#structdronecore_1_1_follow_me_1_1_config_1a048f9f74309c1 float [min_height_m](#structdronecore_1_1_follow_me_1_1_config_1a62c100d4dc35e3731f3b5d62fb5baad9) = 8.0f - Min follow height, in meters. -float [follow_dist_m](#structdronecore_1_1_follow_me_1_1_config_1ab0e453d6b18cf602548cd63636b103ea) = 8.0f - Horizontal follow distance to target, in meters. +float [follow_distance_m](#structdronecore_1_1_follow_me_1_1_config_1a933c0af8cf3df4bca0a34176f09c4fb8) = 8.0f - Horizontal follow distance to target, in meters. [FollowDirection](structdronecore_1_1_follow_me_1_1_config.md#structdronecore_1_1_follow_me_1_1_config_1a048f9f74309c17027c37eadc4dcb2c1a) [follow_direction](#structdronecore_1_1_follow_me_1_1_config_1a920f7acca4b5e717c9ead1bb89f9d538) = [FollowDirection::BEHIND](structdronecore_1_1_follow_me_1_1_config.md#structdronecore_1_1_follow_me_1_1_config_1a048f9f74309c17027c37eadc4dcb2c1aaef9c2aaa3392278b1fe2fa46124350a9) - Relative position of the following vehicle. @@ -147,10 +147,10 @@ float dronecore::FollowMe::Config::min_height_m Min follow height, in meters. -### follow_dist_m {#structdronecore_1_1_follow_me_1_1_config_1ab0e453d6b18cf602548cd63636b103ea} +### follow_distance_m {#structdronecore_1_1_follow_me_1_1_config_1a933c0af8cf3df4bca0a34176f09c4fb8} ```cpp -float dronecore::FollowMe::Config::follow_dist_m +float dronecore::FollowMe::Config::follow_distance_m ``` diff --git a/en/api_reference/structdronecore_1_1_follow_me_1_1_target_location.md b/en/api_reference/structdronecore_1_1_follow_me_1_1_target_location.md index dbee037..5ee6dff 100644 --- a/en/api_reference/structdronecore_1_1_follow_me_1_1_target_location.md +++ b/en/api_reference/structdronecore_1_1_follow_me_1_1_target_location.md @@ -4,7 +4,7 @@ ---- -Geographical location of the target in motion. +Type for geographical location of the target being followed. ## Data Fields diff --git a/en/contributing/build.md b/en/contributing/build.md index be7588d..fe3cf79 100644 --- a/en/contributing/build.md +++ b/en/contributing/build.md @@ -30,7 +30,7 @@ To build the *DroneCore* C++ Library on Linux (or macOS after installing the [pr sudo apt-get update -y sudo apt-get install cmake build-essential colordiff astyle git libcurl4-openssl-dev libtinyxml2-dev doxygen -y ``` - > **Note** If the build reports a missing dependency, confirm that the set above matches the requirements in the [Dockerfile](https://github.com/dronecore/DroneCore/blob/master/Dockerfile). + > **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/dronecore/DroneCore/tree/develop/docker). 1. Clone the [DroneCore repository](https://github.com/dronecore/DroneCore) (or your fork) and update the submodules: ```sh @@ -56,7 +56,7 @@ To build the *DroneCore* C++ Library on Linux (or macOS after installing the [pr To build the library in Windows, you need: -- [Build Tools for Visual Studio 2017](https://www.visualstudio.com/downloads/#build-tools-for-visual-studio-2017): Download and install (only the "Visual C+ Build Tools" are needed from installer). +- [Build Tools for Visual Studio 2017](https://www.visualstudio.com/downloads/#58852): Download and install (only the "Visual C+ Build Tools" are needed from installer). - [cmake](https://cmake.org/download/): Download the installer and run it. Make sure to tick "add to PATH" during the installation. - [curl](https://curl.haxx.se/): Download the source, extract and build it, and make the directory of the header files available as described below. From ec6d5620b9f9c215a2ae73cfbddf026ac030da7e Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 5 Feb 2018 10:41:41 +1100 Subject: [PATCH 056/107] Update example docs --- en/examples/fly_mission.md | 37 ++++++++----- en/examples/offboard_velocity.md | 66 ++++++++++++++--------- en/examples/takeoff_and_land.md | 25 ++++++--- en/examples/transition_vtol_fixed_wing.md | 32 +++++++---- 4 files changed, 103 insertions(+), 57 deletions(-) diff --git a/en/examples/fly_mission.md b/en/examples/fly_mission.md index 72c5e20..d29af0a 100644 --- a/en/examples/fly_mission.md +++ b/en/examples/fly_mission.md @@ -119,6 +119,8 @@ if(NOT MSVC) add_definitions("-std=c++11 -Wall -Wextra -Werror") else() add_definitions("-std=c++11 -WX -W2") + include_directories(${CMAKE_SOURCE_DIR}/../../install/include) + link_directories(${CMAKE_SOURCE_DIR}/../../install/lib) endif() add_executable(fly_mission @@ -127,6 +129,9 @@ add_executable(fly_mission target_link_libraries(fly_mission dronecore + dronecore_action + dronecore_mission + dronecore_telemetry ) ``` @@ -139,11 +144,14 @@ target_link_libraries(fly_mission // Author: Julian Oes , Shakthi Prashanth // +#include #include -#include +#include +#include #include -#include #include +#include +#include using namespace dronecore; @@ -193,8 +201,11 @@ int main(int /*argc*/, char ** /*argv*/) // If there were multiple, we could specify it with: // dc.device(uint64_t uuid); Device &device = dc.device(); + std::shared_ptr action = std::make_shared(&device); + std::shared_ptr mission = std::make_shared(&device); + std::shared_ptr telemetry = std::make_shared(&device); - while (!device.telemetry().health_all_ok()) { + while (!telemetry->health_all_ok()) { std::cout << "Waiting for device to be ready" << std::endl; std::this_thread::sleep_for(std::chrono::seconds(1)); } @@ -247,11 +258,11 @@ int main(int /*argc*/, char ** /*argv*/) { std::cout << "Uploading mission..." << std::endl; - // We only have the send_mission function asynchronous for now, so we wrap it using + // We only have the upload_mission function asynchronous for now, so we wrap it using // std::future. auto prom = std::make_shared>(); auto future_result = prom->get_future(); - device.mission().send_mission_async( + mission->upload_mission_async( mission_items, [prom](Mission::Result result) { prom->set_value(result); }); @@ -265,7 +276,7 @@ int main(int /*argc*/, char ** /*argv*/) } std::cout << "Arming..." << std::endl; - const Action::Result arm_result = device.action().arm(); + const Action::Result arm_result = action->arm(); if (arm_result != Action::Result::SUCCESS) { std::cout << "Arming failed (" << Action::result_str(arm_result) << "), exiting." << std::endl; return 1; @@ -275,7 +286,7 @@ int main(int /*argc*/, char ** /*argv*/) std::atomic want_to_pause {false}; // Before starting the mission, we want to be sure to subscribe to the mission progress. - device.mission().subscribe_progress( + mission->subscribe_progress( [&want_to_pause](int current, int total) { std::cout << "Mission status update: " << current << " / " << total << std::endl; @@ -290,7 +301,7 @@ int main(int /*argc*/, char ** /*argv*/) std::cout << "Starting mission." << std::endl; auto prom = std::make_shared>(); auto future_result = prom->get_future(); - device.mission().start_mission_async( + mission->start_mission_async( [prom](Mission::Result result) { prom->set_value(result); std::cout << "Started mission." << std::endl; @@ -312,7 +323,7 @@ int main(int /*argc*/, char ** /*argv*/) auto future_result = prom->get_future(); std::cout << "Pausing mission..." << std::endl; - device.mission().pause_mission_async( + mission->pause_mission_async( [prom](Mission::Result result) { prom->set_value(result); }); @@ -334,7 +345,7 @@ int main(int /*argc*/, char ** /*argv*/) auto future_result = prom->get_future(); std::cout << "Resuming mission..." << std::endl; - device.mission().start_mission_async( + mission->start_mission_async( [prom](Mission::Result result) { prom->set_value(result); }); @@ -347,14 +358,14 @@ int main(int /*argc*/, char ** /*argv*/) } } - while (!device.mission().mission_finished()) { + while (!mission->mission_finished()) { std::this_thread::sleep_for(std::chrono::seconds(1)); } { // We are done, and can do RTL to go home. std::cout << "Commanding RTL..." << std::endl; - const Action::Result result = device.action().return_to_launch(); + const Action::Result result = action->return_to_launch(); if (result != Action::Result::SUCCESS) { std::cout << "Failed to command RTL (" << Action::result_str(result) << ")" << std::endl; } else { @@ -365,7 +376,7 @@ int main(int /*argc*/, char ** /*argv*/) // We need to wait a bit, otherwise the armed state might not be correct yet. std::this_thread::sleep_for(std::chrono::seconds(2)); - while (device.telemetry().armed()) { + while (telemetry->armed()) { // Wait until we're done. std::this_thread::sleep_for(std::chrono::seconds(1)); } diff --git a/en/examples/offboard_velocity.md b/en/examples/offboard_velocity.md index 8f45721..f83dbb2 100644 --- a/en/examples/offboard_velocity.md +++ b/en/examples/offboard_velocity.md @@ -70,6 +70,9 @@ if(NOT MSVC) add_definitions("-std=c++11 -Wall -Wextra -Werror") else() add_definitions("-std=c++11 -WX -W2") + add_definitions("-D_USE_MATH_DEFINES") # For M_PI + include_directories(${CMAKE_SOURCE_DIR}/../../install/include) + link_directories(${CMAKE_SOURCE_DIR}/../../install/lib) endif() add_executable(offboard @@ -78,6 +81,9 @@ add_executable(offboard target_link_libraries(offboard dronecore + dronecore_action + dronecore_offboard + dronecore_telemetry ) ``` @@ -93,11 +99,14 @@ target_link_libraries(offboard * @date 2017-10-17 */ -#include -#include -#include #include +#include +#include #include +#include +#include +#include +#include using namespace dronecore; using std::this_thread::sleep_for; @@ -152,16 +161,18 @@ inline void offboard_log(const std::string &offb_mode, const std::string msg) */ bool offb_ctrl_ned(Device &device) { + std::shared_ptr offboard = std::make_shared(&device); + const std::string offb_mode = "NED"; // Send it once before starting offboard, otherwise it will be rejected. - device.offboard().set_velocity_ned({0.0f, 0.0f, 0.0f, 0.0f}); + offboard->set_velocity_ned({0.0f, 0.0f, 0.0f, 0.0f}); - Offboard::Result offboard_result = device.offboard().start(); + Offboard::Result offboard_result = offboard->start(); offboard_error_exit(offboard_result, "Offboard start failed"); offboard_log(offb_mode, "Offboard started"); offboard_log(offb_mode, "Turn to face East"); - device.offboard().set_velocity_ned({0.0f, 0.0f, 0.0f, 90.0f}); + offboard->set_velocity_ned({0.0f, 0.0f, 0.0f, 90.0f}); sleep_for(seconds(1)); // Let yaw settle. { @@ -172,26 +183,26 @@ bool offb_ctrl_ned(Device &device) offboard_log(offb_mode, "Go North and back South"); for (unsigned i = 0; i < steps; ++i) { float vx = 5.0f * sinf(i * step_size); - device.offboard().set_velocity_ned({vx, 0.0f, 0.0f, 90.0f}); + offboard->set_velocity_ned({vx, 0.0f, 0.0f, 90.0f}); sleep_for(milliseconds(10)); } } offboard_log(offb_mode, "Turn to face West"); - device.offboard().set_velocity_ned({0.0f, 0.0f, 0.0f, 270.0f}); + offboard->set_velocity_ned({0.0f, 0.0f, 0.0f, 270.0f}); sleep_for(seconds(2)); offboard_log(offb_mode, "Go up 2 m/s, turn to face South"); - device.offboard().set_velocity_ned({0.0f, 0.0f, -2.0f, 180.0f}); + offboard->set_velocity_ned({0.0f, 0.0f, -2.0f, 180.0f}); sleep_for(seconds(4)); offboard_log(offb_mode, "Go down 1 m/s, turn to face North"); - device.offboard().set_velocity_ned({0.0f, 0.0f, 1.0f, 0.0f}); + offboard->set_velocity_ned({0.0f, 0.0f, 1.0f, 0.0f}); sleep_for(seconds(4)); // Now, stop offboard mode. - offboard_result = device.offboard().stop(); + offboard_result = offboard->stop(); offboard_error_exit(offboard_result, "Offboard stop failed: "); offboard_log(offb_mode, "Offboard stopped"); @@ -205,44 +216,46 @@ bool offb_ctrl_ned(Device &device) */ bool offb_ctrl_body(Device &device) { + std::shared_ptr offboard = std::make_shared(&device); + const std::string offb_mode = "BODY"; // Send it once before starting offboard, otherwise it will be rejected. - device.offboard().set_velocity_body({0.0f, 0.0f, 0.0f, 0.0f}); + offboard->set_velocity_body({0.0f, 0.0f, 0.0f, 0.0f}); - Offboard::Result offboard_result = device.offboard().start(); + Offboard::Result offboard_result = offboard->start(); offboard_error_exit(offboard_result, "Offboard start failed: "); offboard_log(offb_mode, "Offboard started"); offboard_log(offb_mode, "Turn clock-wise and climb"); - device.offboard().set_velocity_body({0.0f, 0.0f, -1.0f, 60.0f}); + offboard->set_velocity_body({0.0f, 0.0f, -1.0f, 60.0f}); sleep_for(seconds(5)); offboard_log(offb_mode, "Turn back anti-clockwise"); - device.offboard().set_velocity_body({0.0f, 0.0f, 0.0f, -60.0f}); + offboard->set_velocity_body({0.0f, 0.0f, 0.0f, -60.0f}); sleep_for(seconds(5)); offboard_log(offb_mode, "Wait for a bit"); - device.offboard().set_velocity_body({0.0f, 0.0f, 0.0f, 0.0f}); + offboard->set_velocity_body({0.0f, 0.0f, 0.0f, 0.0f}); sleep_for(seconds(2)); offboard_log(offb_mode, "Fly a circle"); - device.offboard().set_velocity_body({5.0f, 0.0f, 0.0f, 30.0f}); + offboard->set_velocity_body({5.0f, 0.0f, 0.0f, 30.0f}); sleep_for(seconds(15)); offboard_log(offb_mode, "Wait for a bit"); - device.offboard().set_velocity_body({0.0f, 0.0f, 0.0f, 0.0f}); + offboard->set_velocity_body({0.0f, 0.0f, 0.0f, 0.0f}); sleep_for(seconds(5)); offboard_log(offb_mode, "Fly a circle sideways"); - device.offboard().set_velocity_body({0.0f, -5.0f, 0.0f, 30.0f}); + offboard->set_velocity_body({0.0f, -5.0f, 0.0f, 30.0f}); sleep_for(seconds(15)); offboard_log(offb_mode, "Wait for a bit"); - device.offboard().set_velocity_body({0.0f, 0.0f, 0.0f, 0.0f}); + offboard->set_velocity_body({0.0f, 0.0f, 0.0f, 0.0f}); sleep_for(seconds(8)); - offboard_result = device.offboard().stop(); + offboard_result = offboard->stop(); offboard_error_exit(offboard_result, "Offboard stop failed: "); offboard_log(offb_mode, "Offboard stopped"); @@ -264,18 +277,21 @@ int main(int, char **) // Device got discovered. Device &device = dc.device(); + std::shared_ptr action = std::make_shared(&device); + std::shared_ptr offboard = std::make_shared(&device); + std::shared_ptr telemetry = std::make_shared(&device); - while (!device.telemetry().health_all_ok()) { + while (!telemetry->health_all_ok()) { std::cout << "Waiting for device to be ready" << std::endl; sleep_for(seconds(1)); } std::cout << "Device is ready" << std::endl; - Action::Result arm_result = device.action().arm(); + Action::Result arm_result = action->arm(); action_error_exit(arm_result, "Arming failed"); std::cout << "Armed" << std::endl; - Action::Result takeoff_result = device.action().takeoff(); + Action::Result takeoff_result = action->takeoff(); action_error_exit(takeoff_result, "Takeoff failed"); std::cout << "In Air..." << std::endl; sleep_for(seconds(5)); @@ -292,7 +308,7 @@ int main(int, char **) return EXIT_FAILURE; } - const Action::Result land_result = device.action().land(); + const Action::Result land_result = action->land(); action_error_exit(land_result, "Landing failed"); // We are relying on auto-disarming but let's keep watching the telemetry for a bit longer. diff --git a/en/examples/takeoff_and_land.md b/en/examples/takeoff_and_land.md index a67c760..fdc06fb 100644 --- a/en/examples/takeoff_and_land.md +++ b/en/examples/takeoff_and_land.md @@ -62,6 +62,8 @@ if(NOT MSVC) add_definitions("-std=c++11 -Wall -Wextra -Werror") else() add_definitions("-std=c++11 -WX -W2") + include_directories(${CMAKE_SOURCE_DIR}/../../install/include) + link_directories(${CMAKE_SOURCE_DIR}/../../install/lib) endif() add_executable(takeoff_and_land @@ -70,6 +72,8 @@ add_executable(takeoff_and_land target_link_libraries(takeoff_and_land dronecore + dronecore_telemetry + dronecore_action ) ``` @@ -80,11 +84,13 @@ target_link_libraries(takeoff_and_land // // Author: Julian Oes +#include +#include +#include #include +#include #include #include -#include -#include using namespace dronecore; @@ -126,8 +132,11 @@ int main(int /*argc*/, char ** /*argv*/) // dc.device(uint64_t uuid); Device &device = dc.device(); + auto telemetry = std::make_shared(&device); + auto action = std::make_shared(&device); + // We want to listen to the altitude of the drone at 1 Hz. - const Telemetry::Result set_rate_result = dc.device().telemetry().set_rate_position(1.0); + const Telemetry::Result set_rate_result = telemetry->set_rate_position(1.0); if (set_rate_result != Telemetry::Result::SUCCESS) { std::cout << ERROR_CONSOLE_TEXT << "Setting rate failed:" << Telemetry::result_str( set_rate_result) << NORMAL_CONSOLE_TEXT << std::endl; @@ -136,7 +145,7 @@ int main(int /*argc*/, char ** /*argv*/) // Set up callback to monitor altitude while the vehicle is in flight - device.telemetry().position_async([](Telemetry::Position position) { + telemetry->position_async([](Telemetry::Position position) { std::cout << TELEMETRY_CONSOLE_TEXT // set to blue << "Altitude: " << position.relative_altitude_m << " m" << NORMAL_CONSOLE_TEXT // set to default color again @@ -145,14 +154,14 @@ int main(int /*argc*/, char ** /*argv*/) // Check if vehicle is ready to arm - if (device.telemetry().health_all_ok() != true) { + if (telemetry->health_all_ok() != true) { std::cout << ERROR_CONSOLE_TEXT << "Vehicle not ready to arm" << NORMAL_CONSOLE_TEXT << std::endl; return 1; } // Arm vehicle std::cout << "Arming..." << std::endl; - const Action::Result arm_result = device.action().arm(); + const Action::Result arm_result = action->arm(); if (arm_result != Action::Result::SUCCESS) { std::cout << ERROR_CONSOLE_TEXT << "Arming failed:" << Action::result_str( @@ -162,7 +171,7 @@ int main(int /*argc*/, char ** /*argv*/) // Take off std::cout << "Taking off..." << std::endl; - const Action::Result takeoff_result = device.action().takeoff(); + const Action::Result takeoff_result = action->takeoff(); if (takeoff_result != Action::Result::SUCCESS) { std::cout << ERROR_CONSOLE_TEXT << "Takeoff failed:" << Action::result_str( takeoff_result) << NORMAL_CONSOLE_TEXT << std::endl; @@ -173,7 +182,7 @@ int main(int /*argc*/, char ** /*argv*/) std::this_thread::sleep_for(std::chrono::seconds(10)); std::cout << "Landing..." << std::endl; - const Action::Result land_result = device.action().land(); + const Action::Result land_result = action->land(); if (land_result != Action::Result::SUCCESS) { std::cout << ERROR_CONSOLE_TEXT << "Land failed:" << Action::result_str( land_result) << NORMAL_CONSOLE_TEXT << std::endl; diff --git a/en/examples/transition_vtol_fixed_wing.md b/en/examples/transition_vtol_fixed_wing.md index f209c25..42c3d29 100644 --- a/en/examples/transition_vtol_fixed_wing.md +++ b/en/examples/transition_vtol_fixed_wing.md @@ -82,6 +82,8 @@ if(NOT MSVC) add_definitions("-std=c++11 -Wall -Wextra -Werror") else() add_definitions("-std=c++11 -WX -W2") + include_directories(${CMAKE_SOURCE_DIR}/../../install/include) + link_directories(${CMAKE_SOURCE_DIR}/../../install/lib) endif() add_executable(transition_vtol_fixed_wing @@ -90,17 +92,22 @@ add_executable(transition_vtol_fixed_wing target_link_libraries(transition_vtol_fixed_wing dronecore + dronecore_action + dronecore_telemetry ) ``` [fly_mission.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/example/transition_vtol_fixed_wing/transition_vtol_fixed_wing.cpp) ```cpp + +#include +#include +#include #include +#include #include #include -#include -#include using std::this_thread::sleep_for; using std::chrono::milliseconds; @@ -143,9 +150,10 @@ int main(int /*argc*/, char ** /*argv*/) // If there were multiple, we could specify it with: // dc.device(uint64_t uuid); Device &device = dc.device(); + std::shared_ptr telemetry = std::make_shared(&device); // We want to listen to the altitude of the drone at 1 Hz. - const Telemetry::Result set_rate_result = dc.device().telemetry().set_rate_position(1.0); + const Telemetry::Result set_rate_result = telemetry->set_rate_position(1.0); if (set_rate_result != Telemetry::Result::SUCCESS) { std::cout << ERROR_CONSOLE_TEXT << "Setting rate failed:" << Telemetry::result_str( set_rate_result) << NORMAL_CONSOLE_TEXT << std::endl; @@ -154,7 +162,7 @@ int main(int /*argc*/, char ** /*argv*/) // Set up callback to monitor altitude while the vehicle is in flight - device.telemetry().position_async([](Telemetry::Position position) { + telemetry->position_async([](Telemetry::Position position) { std::cout << TELEMETRY_CONSOLE_TEXT // set to blue << "Altitude: " << position.relative_altitude_m << " m" << NORMAL_CONSOLE_TEXT // set to default color again @@ -163,14 +171,16 @@ int main(int /*argc*/, char ** /*argv*/) // Check if vehicle is ready to arm - if (device.telemetry().health_all_ok() != true) { + if (telemetry->health_all_ok() != true) { std::cout << ERROR_CONSOLE_TEXT << "Vehicle not ready to arm" << NORMAL_CONSOLE_TEXT << std::endl; return 1; } + std::shared_ptr action = std::make_shared(&device); + // Arm vehicle std::cout << "Arming..." << std::endl; - const Action::Result arm_result = device.action().arm(); + const Action::Result arm_result = action->arm(); if (arm_result != Action::Result::SUCCESS) { std::cout << ERROR_CONSOLE_TEXT << "Arming failed:" << Action::result_str( @@ -180,7 +190,7 @@ int main(int /*argc*/, char ** /*argv*/) // Take off std::cout << "Taking off..." << std::endl; - const Action::Result takeoff_result = device.action().takeoff(); + const Action::Result takeoff_result = action->takeoff(); if (takeoff_result != Action::Result::SUCCESS) { std::cout << ERROR_CONSOLE_TEXT << "Takeoff failed:" << Action::result_str( takeoff_result) << NORMAL_CONSOLE_TEXT << std::endl; @@ -191,7 +201,7 @@ int main(int /*argc*/, char ** /*argv*/) std::this_thread::sleep_for(std::chrono::seconds(10)); std::cout << "Transition to fixedwing..." << std::endl; - const Action::Result fw_result = device.action().transition_to_fixedwing(); + const Action::Result fw_result = action->transition_to_fixedwing(); if (fw_result != Action::Result::SUCCESS) { std::cout << ERROR_CONSOLE_TEXT << "Transition to fixed wing failed: " << Action::result_str( @@ -203,7 +213,7 @@ int main(int /*argc*/, char ** /*argv*/) std::this_thread::sleep_for(std::chrono::seconds(10)); std::cout << "Transition back to multicopter..." << std::endl; - const Action::Result mc_result = device.action().transition_to_multicopter(); + const Action::Result mc_result = action->transition_to_multicopter(); if (mc_result != Action::Result::SUCCESS) { std::cout << ERROR_CONSOLE_TEXT << "Transition to multi copter failed:" << Action::result_str( mc_result) << NORMAL_CONSOLE_TEXT << std::endl; @@ -215,7 +225,7 @@ int main(int /*argc*/, char ** /*argv*/) // Return to launch std::cout << "Return to launch..." << std::endl; - const Action::Result rtl_result = device.action().return_to_launch(); + const Action::Result rtl_result = action->return_to_launch(); if (rtl_result != Action::Result::SUCCESS) { std::cout << ERROR_CONSOLE_TEXT << "Returning to launch failed:" << Action::result_str( rtl_result) << NORMAL_CONSOLE_TEXT << std::endl; @@ -227,7 +237,7 @@ int main(int /*argc*/, char ** /*argv*/) // Land std::cout << "Landing..." << std::endl; - const Action::Result land_result = device.action().land(); + const Action::Result land_result = action->land(); if (land_result != Action::Result::SUCCESS) { std::cout << ERROR_CONSOLE_TEXT << "Land failed:" << Action::result_str( land_result) << NORMAL_CONSOLE_TEXT << std::endl; From e2494166e1f29c2993407f88c9ecadef8ec1c531 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 5 Feb 2018 10:48:18 +1100 Subject: [PATCH 057/107] Update build docs clean instructions --- 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 3fe7bbc..ee6a648 100644 --- a/en/contributing/build.md +++ b/en/contributing/build.md @@ -298,7 +298,7 @@ The C++ source code is annotated using comments using [Doxygen](http://doxygen.n Extract the documentation to markdown files (one per class) on macOS or Linux using the commands: ```bash rm -R install # Required (remove previous install/docs) -make clean # Required (clean build) +make distclean # Required (clean build) ./generate_docs.sh ``` The files are created in **/install/docs/markdown**. From db5c75d84f401f2e7497eb14d6ebf6bca802354d Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 5 Feb 2018 10:58:54 +1100 Subject: [PATCH 058/107] Update API Ref. Remove DevicePluginContainer toc --- en/SUMMARY.md | 1 - en/api_reference/README.md | 3 +- en/api_reference/classdronecore_1_1_action.md | 8 +- en/api_reference/classdronecore_1_1_device.md | 571 ++++++++++++++++-- .../classdronecore_1_1_follow_me.md | 8 +- en/api_reference/classdronecore_1_1_gimbal.md | 8 +- en/api_reference/classdronecore_1_1_info.md | 8 +- .../classdronecore_1_1_logging.md | 8 +- .../classdronecore_1_1_mission.md | 8 +- .../classdronecore_1_1_offboard.md | 8 +- .../classdronecore_1_1_telemetry.md | 8 +- 11 files changed, 544 insertions(+), 95 deletions(-) diff --git a/en/SUMMARY.md b/en/SUMMARY.md index 036b3d3..458329a 100644 --- a/en/SUMMARY.md +++ b/en/SUMMARY.md @@ -46,7 +46,6 @@ * [struct Config](api_reference/structdronecore_1_1_follow_me_1_1_config.md) * [struct TargetLocation ](api_reference/structdronecore_1_1_follow_me_1_1_target_location.md) * [class Logging](api_reference/classdronecore_1_1_logging.md) - * [class DevicePluginContainer](api_reference/classdronecore_1_1_device_plugin_container.md) * [Contributing](contributing/README.md) * [Building Source](contributing/build.md) * [Testing](contributing/test.md) diff --git a/en/api_reference/README.md b/en/api_reference/README.md index b102051..94aae6a 100644 --- a/en/api_reference/README.md +++ b/en/api_reference/README.md @@ -24,5 +24,4 @@ * [class FollowMe](classdronecore_1_1_follow_me.md) * [struct Config](structdronecore_1_1_follow_me_1_1_config.md) * [struct TargetLocation ](structdronecore_1_1_follow_me_1_1_target_location.md) -* [class Logging](classdronecore_1_1_logging.md) -* [class DevicePluginContainer](classdronecore_1_1_device_plugin_container.md) \ No newline at end of file +* [class Logging](classdronecore_1_1_logging.md) \ No newline at end of file diff --git a/en/api_reference/classdronecore_1_1_action.md b/en/api_reference/classdronecore_1_1_action.md index d515a99..f65bcb0 100644 --- a/en/api_reference/classdronecore_1_1_action.md +++ b/en/api_reference/classdronecore_1_1_action.md @@ -26,7 +26,7 @@ std::function< void([Result](classdronecore_1_1_action.md#classdronecore_1_1_act Type | Name | Description ---: | --- | --- -| [Action](#classdronecore_1_1_action_1a4d54f66fbb7629198d5d2f5f261261c0) (ActionImpl *impl) | Constructor (internal use only). +| [Action](#classdronecore_1_1_action_1a9fd3af84d59048b3c787ed0c5644ed07) (Device *device) | Constructor (internal use only). | [~Action](#classdronecore_1_1_action_1a6bb0301fecf66d75ca3b27bda25af7f2) () | Destructor (internal use only). | [Action](#classdronecore_1_1_action_1ae48b0e06ca2b4b7544a10c7734a03f63) (const Action &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [arm](#classdronecore_1_1_action_1a8b8631ea15655f0c922a9ba7d2e1c72c) () const | Send command to *arm* the drone (synchronous). @@ -62,9 +62,9 @@ const char * | [result_str](#classdronecore_1_1_action_1a1fefb474ee36cb15fe31b42 ## Constructor & Destructor Documentation -### Action() {#classdronecore_1_1_action_1a4d54f66fbb7629198d5d2f5f261261c0} +### Action() {#classdronecore_1_1_action_1a9fd3af84d59048b3c787ed0c5644ed07} ```cpp -dronecore::Action::Action(ActionImpl *impl) +dronecore::Action::Action(Device *device) ``` @@ -73,7 +73,7 @@ Constructor (internal use only). **Parameters** -* ActionImpl * **impl** - Private internal implementation. +* [Device](classdronecore_1_1_device.md) * **device** - ### ~Action() {#classdronecore_1_1_action_1a6bb0301fecf66d75ca3b27bda25af7f2} ```cpp diff --git a/en/api_reference/classdronecore_1_1_device.md b/en/api_reference/classdronecore_1_1_device.md index ded2052..9547469 100644 --- a/en/api_reference/classdronecore_1_1_device.md +++ b/en/api_reference/classdronecore_1_1_device.md @@ -1,57 +1,96 @@ # dronecore::Device Class Reference -`#include: device.h` +`#include: UNKNOWN` ---- -A [Device](classdronecore_1_1_device.md) represents a vehicle such as a drone or robot. +## Data Structures -A device can consist of multiple components such as an autopilot with a gimbal and camera. +struct [MavlinkHandlerTableEntry](structdronecore_1_1_device_1_1_mavlink_handler_table_entry.md) +## Public Types -This class is derived from [DevicePluginContainer](classdronecore_1_1_device_plugin_container.md), which provides methods to access plugin classes like [Action](classdronecore_1_1_action.md), [Telemetry](classdronecore_1_1_telemetry.md), [Info](classdronecore_1_1_info.md), [Logging](classdronecore_1_1_logging.md), [Offboard](classdronecore_1_1_offboard.md) and [Mission](classdronecore_1_1_mission.md) (for example, using [DroneCore::device()](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a5bac6e419e56a1f77a51adef98e94e7c).[action()](classdronecore_1_1_device_plugin_container.md#classdronecore_1_1_device_plugin_container_1aea48bd55b1ace227ebb56690794c2192)...). +Type | Description +--- | --- +enum [FlightMode](#classdronecore_1_1_device_1abe2b638e92f46ad3bdc124429a5929e8) | +std::function< void(const mavlink_message_t &)> [mavlink_message_handler_t](#classdronecore_1_1_device_1a1bca06c484ee8a4f18f0371a2a492e7b) | +std::function< void(MavlinkCommands::Result, float)> [command_result_callback_t](#classdronecore_1_1_device_1a6ee9b5b6b3d40554ced23537168d801e) | +std::function< void(bool success)> [success_t](#classdronecore_1_1_device_1aa90d45a543d894492d30618438e5ced4) | +std::function< void(bool success, float value)> [get_param_float_callback_t](#classdronecore_1_1_device_1a8eabc97aec9a0ac69f79df2caabd8687) | +std::function< void(bool success, int32_t value)> [get_param_int_callback_t](#classdronecore_1_1_device_1a38ead6807abd7c8d72a8cf3909b4560d) | -**NOTE** The content of [DevicePluginContainer](classdronecore_1_1_device_plugin_container.md), and hence the available accessors, are auto-generated at compile time. - - -[Device](classdronecore_1_1_device.md) objects are not created or destroyed directly by API consumers. They are accessed using, for example, [DroneCore::device()](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a5bac6e419e56a1f77a51adef98e94e7c) and cleaned up when [DroneCore](classdronecore_1_1_drone_core.md) is destroyed. +## Public Member Functions -## Public Member Functions +Type | Name | Description +---: | --- | --- +| [Device](#classdronecore_1_1_device_1af07b4defa38736ce928377af2f31fb6e) (DroneCoreImpl *parent, uint8_t target_system_id) | +| [~Device](#classdronecore_1_1_device_1a65c697e12eed30109074e18a9cfdc836) () | +| [Device](#classdronecore_1_1_device_1acf95b02d5d1d705ce3dc1438786e0c91) (const Device &)=delete | +void | [process_mavlink_message](#classdronecore_1_1_device_1a7324f5f4cc1f7bce40a2e8c237f1212e) (const mavlink_message_t &message) | +void | [register_mavlink_message_handler](#classdronecore_1_1_device_1aa7ae3afa910a2043185e319cfaaa4196) (uint16_t msg_id, mavlink_message_handler_t callback, const void *cookie) | +void | [unregister_all_mavlink_message_handlers](#classdronecore_1_1_device_1a7fd2014818f2e41cc93b6c31d259f21c) (const void *cookie) | +void | [register_timeout_handler](#classdronecore_1_1_device_1afc704e09b8331cdd36341a1ffd331c11) (std::function< void()> callback, double duration_s, void **cookie) | +void | [refresh_timeout_handler](#classdronecore_1_1_device_1ad7d945426276c079ffc9d173583d1427) (const void *cookie) | +void | [unregister_timeout_handler](#classdronecore_1_1_device_1a95673878b3a69db3817def10310a565d) (const void *cookie) | +void | [add_call_every](#classdronecore_1_1_device_1a466bede03fdf9be31cefb206ef561114) (std::function< void()> callback, float interval_s, void **cookie) | +void | [change_call_every](#classdronecore_1_1_device_1aed059a1d5a9f2ee4e11963e5d371577c) (float interval_s, const void *cookie) | +void | [reset_call_every](#classdronecore_1_1_device_1a38c719f6ccadf6a17e61c47c14cdf234) (const void *cookie) | +void | [remove_call_every](#classdronecore_1_1_device_1a5a101b41ec651a6a764a01d3208934e2) (const void *cookie) | +bool | [send_message](#classdronecore_1_1_device_1a9d09cd1b8b9689080337f7efd9e9d77d) (const mavlink_message_t &message) | +MavlinkCommands::Result | [send_command_with_ack](#classdronecore_1_1_device_1afcc8c11d47f681c41705d82ee3cd74ea) (uint16_t command, const MavlinkCommands::Params ¶ms, uint8_t component_id=0) | +void | [send_command_with_ack_async](#classdronecore_1_1_device_1a0ef6cf5c11820fb2ae00bd96f9abd4de) (uint16_t command, const MavlinkCommands::Params ¶ms, command_result_callback_t callback, uint8_t component_id=0) | +MavlinkCommands::Result | [set_msg_rate](#classdronecore_1_1_device_1af10ca5a146f0129c51566486a20d98ed) (uint16_t message_id, double rate_hz, uint8_t component_id=0) | +void | [set_msg_rate_async](#classdronecore_1_1_device_1ad3af9775d80d5301c19808822da6f9aa) (uint16_t message_id, double rate_hz, command_result_callback_t callback, uint8_t component_id=0) | +void | [request_autopilot_version](#classdronecore_1_1_device_1abd185340eaad71374b8f8647a5594502) () | +uint64_t | [get_target_uuid](#classdronecore_1_1_device_1a54bdadb4e8e52c9d159099749c29b7b4) () const | +uint8_t | [get_target_system_id](#classdronecore_1_1_device_1a55d2b2b871b2435420885b9594ca5b9b) () const | +uint8_t | [get_target_component_id](#classdronecore_1_1_device_1a41f2b9cf224c09d0c17081620ac201c5) () const | +void | [set_target_system_id](#classdronecore_1_1_device_1a01f14b9dffc35b045bbfe76f411c84f8) (uint8_t system_id) | +bool | [target_supports_mission_int](#classdronecore_1_1_device_1afbe6f90ecace24d8b7081a01be3686c3) () const | +bool | [is_armed](#classdronecore_1_1_device_1ad8b067dc607c3fd7bd86c2961409ce60) () const | +void | [set_param_float_async](#classdronecore_1_1_device_1a1b784f4c51451f23cb978b1982ead1bf) (const std::string &name, float value, success_t callback) | +void | [set_param_int_async](#classdronecore_1_1_device_1aa8fe748620f9934df97582943b20b372) (const std::string &name, int32_t value, success_t callback) | +void | [set_param_ext_float_async](#classdronecore_1_1_device_1a46ca0087cd5135a12a9f163455876fe2) (const std::string &name, float value, success_t callback) | +void | [set_param_ext_int_async](#classdronecore_1_1_device_1ab494873b3e6e99706c89c669d867c0bf) (const std::string &name, int32_t value, success_t callback) | +MavlinkCommands::Result | [set_flight_mode](#classdronecore_1_1_device_1acafac8ecf0801045ad894e80bcd9d9a8) (FlightMode mode) | +void | [set_flight_mode_async](#classdronecore_1_1_device_1a56d240c32839524470a8784f5c72e8a0) (FlightMode mode, command_result_callback_t callback) | +void | [get_param_float_async](#classdronecore_1_1_device_1a48dbd54b03ad86c9784dfac75274713f) (const std::string &name, get_param_float_callback_t callback) | +void | [get_param_int_async](#classdronecore_1_1_device_1a682a74475e24cac262ac90b18e5dd49a) (const std::string &name, get_param_int_callback_t callback) | +void | [get_param_ext_float_async](#classdronecore_1_1_device_1a6050f2993f78689c778cdb4240bb3606) (const std::string &name, get_param_float_callback_t callback) | +void | [get_param_ext_int_async](#classdronecore_1_1_device_1a7b4050c8aa12e198d99b23be4f281c7f) (const std::string &name, get_param_int_callback_t callback) | +bool | [is_connected](#classdronecore_1_1_device_1afac855ffb266017d932c4060140af717) () const | +Time & | [get_time](#classdronecore_1_1_device_1a6009c92dbd4ffd14367ad4ee1d4b3054) () | +void | [register_plugin](#classdronecore_1_1_device_1a7622b2667c5454c490a0d6722f738ec3) (PluginImplBase *plugin_impl) | +void | [unregister_plugin](#classdronecore_1_1_device_1aac00d6ae3d53154900785b882df5edf4) (PluginImplBase *plugin_impl) | +void | [lock_communication](#classdronecore_1_1_device_1a15d93e6a12f2208f8fa56466b7f2f819) () | +void | [unlock_communication](#classdronecore_1_1_device_1a801aab463023eb3e64670c86349fa54c) () | +const [Device](classdronecore_1_1_device.md) & | [operator=](#classdronecore_1_1_device_1ad03d3cdf0aaa8e4cb21becb6c7806c33) (const Device &)=delete | + +## Static Public Member Functions Type | Name | Description ---: | --- | --- -| [Device](#classdronecore_1_1_device_1aa64ba685fe110fcb0a8e1b92156f144b) (DeviceImpl *impl) | Constructor (internal use only). -| [~Device](#classdronecore_1_1_device_1a65c697e12eed30109074e18a9cfdc836) () | Destructor (internal use only). -[Info](classdronecore_1_1_info.md) & | [info](#classdronecore_1_1_device_plugin_container_1a1509e3d7a469cbc3e33471138b1f4dc7) () | -[Logging](classdronecore_1_1_logging.md) & | [logging](#classdronecore_1_1_device_plugin_container_1a0551f966021bdbd9e41700232c33d379) () | -[Telemetry](classdronecore_1_1_telemetry.md) & | [telemetry](#classdronecore_1_1_device_plugin_container_1a9b119348d0f5195c9b0919fbe6196b14) () | -[FollowMe](classdronecore_1_1_follow_me.md) & | [follow_me](#classdronecore_1_1_device_plugin_container_1ae13164c3bb59230c559341b8506c5e03) () | -[Action](classdronecore_1_1_action.md) & | [action](#classdronecore_1_1_device_plugin_container_1aea48bd55b1ace227ebb56690794c2192) () | -[Gimbal](classdronecore_1_1_gimbal.md) & | [gimbal](#classdronecore_1_1_device_plugin_container_1a2fce9f439c565af9a8510c5746c728f0) () | -[Offboard](classdronecore_1_1_offboard.md) & | [offboard](#classdronecore_1_1_device_plugin_container_1a63193bd25273bbda48665e12e012f478) () | -[Mission](classdronecore_1_1_mission.md) & | [mission](#classdronecore_1_1_device_plugin_container_1a8a05778326d0ef4c74146bc42fdcb52d) () | +uint8_t | [get_own_system_id](#classdronecore_1_1_device_1ab598504aa60a5acf830161daf8eed908) () | +uint8_t | [get_own_component_id](#classdronecore_1_1_device_1aa6dc1543b0ae9439a6bacca0dc9c52e6) () | ## Constructor & Destructor Documentation -### Device() {#classdronecore_1_1_device_1aa64ba685fe110fcb0a8e1b92156f144b} +### Device() {#classdronecore_1_1_device_1af07b4defa38736ce928377af2f31fb6e} ```cpp -dronecore::Device::Device(DeviceImpl *impl) +dronecore::Device::Device(DroneCoreImpl *parent, uint8_t target_system_id) ``` -Constructor (internal use only). - -This constructor does not need to be called by any consumer of the API. - **Parameters** -* DeviceImpl * **impl** - The underlying device implementation. +* DroneCoreImpl * **parent** - +* uint8_t **target_system_id** - ### ~Device() {#classdronecore_1_1_device_1a65c697e12eed30109074e18a9cfdc836} ```cpp @@ -59,105 +98,517 @@ dronecore::Device::~Device() ``` -Destructor (internal use only). +### Device() {#classdronecore_1_1_device_1acf95b02d5d1d705ce3dc1438786e0c91} +```cpp +dronecore::Device::Device(const Device &)=delete +``` + + +**Parameters** + +* const [Device](classdronecore_1_1_device.md) & - + +## Member Typdef Documentation + + +### typedef mavlink_message_handler_t {#classdronecore_1_1_device_1a1bca06c484ee8a4f18f0371a2a492e7b} + +```cpp +typedef std::function dronecore::Device::mavlink_message_handler_t +``` + + +### typedef command_result_callback_t {#classdronecore_1_1_device_1a6ee9b5b6b3d40554ced23537168d801e} + +```cpp +typedef std::function dronecore::Device::command_result_callback_t +``` + + +### typedef success_t {#classdronecore_1_1_device_1aa90d45a543d894492d30618438e5ced4} + +```cpp +typedef std::function dronecore::Device::success_t +``` + + +### typedef get_param_float_callback_t {#classdronecore_1_1_device_1a8eabc97aec9a0ac69f79df2caabd8687} + +```cpp +typedef std::function dronecore::Device::get_param_float_callback_t +``` -The destructor of [Device](classdronecore_1_1_device.md) does not need to be called by any consumer of the API. + +### typedef get_param_int_callback_t {#classdronecore_1_1_device_1a38ead6807abd7c8d72a8cf3909b4560d} + +```cpp +typedef std::function dronecore::Device::get_param_int_callback_t +``` + + +## Member Enumeration Documentation + + +### enum FlightMode {#classdronecore_1_1_device_1abe2b638e92f46ad3bdc124429a5929e8} + + +Value | Description +--- | --- + `HOLD` | + `RETURN_TO_LAUNCH` | + `TAKEOFF` | + `LAND` | + `MISSION` | + `FOLLOW_ME` | + `OFFBOARD` | ## Member Function Documentation -### info() {#classdronecore_1_1_device_plugin_container_1a1509e3d7a469cbc3e33471138b1f4dc7} +### process_mavlink_message() {#classdronecore_1_1_device_1a7324f5f4cc1f7bce40a2e8c237f1212e} +```cpp +void dronecore::Device::process_mavlink_message(const mavlink_message_t &message) +``` + + +**Parameters** + +* const mavlink_message_t & **message** - + +### register_mavlink_message_handler() {#classdronecore_1_1_device_1aa7ae3afa910a2043185e319cfaaa4196} +```cpp +void dronecore::Device::register_mavlink_message_handler(uint16_t msg_id, mavlink_message_handler_t callback, const void *cookie) +``` + + +**Parameters** + +* uint16_t **msg_id** - +* mavlink_message_handler_t **callback** - +* const void * **cookie** - + +### unregister_all_mavlink_message_handlers() {#classdronecore_1_1_device_1a7fd2014818f2e41cc93b6c31d259f21c} +```cpp +void dronecore::Device::unregister_all_mavlink_message_handlers(const void *cookie) +``` + + +**Parameters** + +* const void * **cookie** - + +### register_timeout_handler() {#classdronecore_1_1_device_1afc704e09b8331cdd36341a1ffd331c11} +```cpp +void dronecore::Device::register_timeout_handler(std::function< void()> callback, double duration_s, void **cookie) +``` + + +**Parameters** + +* std::function< void()> **callback** - +* double **duration_s** - +* void ** **cookie** - + +### refresh_timeout_handler() {#classdronecore_1_1_device_1ad7d945426276c079ffc9d173583d1427} +```cpp +void dronecore::Device::refresh_timeout_handler(const void *cookie) +``` + + +**Parameters** + +* const void * **cookie** - + +### unregister_timeout_handler() {#classdronecore_1_1_device_1a95673878b3a69db3817def10310a565d} +```cpp +void dronecore::Device::unregister_timeout_handler(const void *cookie) +``` + + +**Parameters** + +* const void * **cookie** - + +### add_call_every() {#classdronecore_1_1_device_1a466bede03fdf9be31cefb206ef561114} +```cpp +void dronecore::Device::add_call_every(std::function< void()> callback, float interval_s, void **cookie) +``` + + +**Parameters** + +* std::function< void()> **callback** - +* float **interval_s** - +* void ** **cookie** - + +### change_call_every() {#classdronecore_1_1_device_1aed059a1d5a9f2ee4e11963e5d371577c} +```cpp +void dronecore::Device::change_call_every(float interval_s, const void *cookie) +``` + + +**Parameters** + +* float **interval_s** - +* const void * **cookie** - + +### reset_call_every() {#classdronecore_1_1_device_1a38c719f6ccadf6a17e61c47c14cdf234} +```cpp +void dronecore::Device::reset_call_every(const void *cookie) +``` + + +**Parameters** + +* const void * **cookie** - + +### remove_call_every() {#classdronecore_1_1_device_1a5a101b41ec651a6a764a01d3208934e2} +```cpp +void dronecore::Device::remove_call_every(const void *cookie) +``` + + +**Parameters** + +* const void * **cookie** - + +### send_message() {#classdronecore_1_1_device_1a9d09cd1b8b9689080337f7efd9e9d77d} +```cpp +bool dronecore::Device::send_message(const mavlink_message_t &message) +``` + + +**Parameters** + +* const mavlink_message_t & **message** - + +**Returns** + + bool - + +### send_command_with_ack() {#classdronecore_1_1_device_1afcc8c11d47f681c41705d82ee3cd74ea} +```cpp +MavlinkCommands::Result dronecore::Device::send_command_with_ack(uint16_t command, const MavlinkCommands::Params ¶ms, uint8_t component_id=0) +``` + + +**Parameters** + +* uint16_t **command** - +* const MavlinkCommands::Params & **params** - +* uint8_t **component_id** - + +**Returns** + + MavlinkCommands::Result - + +### send_command_with_ack_async() {#classdronecore_1_1_device_1a0ef6cf5c11820fb2ae00bd96f9abd4de} +```cpp +void dronecore::Device::send_command_with_ack_async(uint16_t command, const MavlinkCommands::Params ¶ms, command_result_callback_t callback, uint8_t component_id=0) +``` + + +**Parameters** + +* uint16_t **command** - +* const MavlinkCommands::Params & **params** - +* command_result_callback_t **callback** - +* uint8_t **component_id** - + +### set_msg_rate() {#classdronecore_1_1_device_1af10ca5a146f0129c51566486a20d98ed} ```cpp -Info& dronecore::DevicePluginContainer::info() +MavlinkCommands::Result dronecore::Device::set_msg_rate(uint16_t message_id, double rate_hz, uint8_t component_id=0) ``` -Getter for [Info](classdronecore_1_1_info.md) plugin. +**Parameters** + +* uint16_t **message_id** - +* double **rate_hz** - +* uint8_t **component_id** - **Returns** - [Info](classdronecore_1_1_info.md) & - a reference to the info plugin instance + MavlinkCommands::Result - + +### set_msg_rate_async() {#classdronecore_1_1_device_1ad3af9775d80d5301c19808822da6f9aa} +```cpp +void dronecore::Device::set_msg_rate_async(uint16_t message_id, double rate_hz, command_result_callback_t callback, uint8_t component_id=0) +``` + + +**Parameters** + +* uint16_t **message_id** - +* double **rate_hz** - +* command_result_callback_t **callback** - +* uint8_t **component_id** - -### logging() {#classdronecore_1_1_device_plugin_container_1a0551f966021bdbd9e41700232c33d379} +### request_autopilot_version() {#classdronecore_1_1_device_1abd185340eaad71374b8f8647a5594502} ```cpp -Logging& dronecore::DevicePluginContainer::logging() +void dronecore::Device::request_autopilot_version() ``` -Getter for [Logging](classdronecore_1_1_logging.md) plugin. +### get_target_uuid() {#classdronecore_1_1_device_1a54bdadb4e8e52c9d159099749c29b7b4} +```cpp +uint64_t dronecore::Device::get_target_uuid() const +``` + **Returns** - [Logging](classdronecore_1_1_logging.md) & - a reference to the logging plugin instance + uint64_t - -### telemetry() {#classdronecore_1_1_device_plugin_container_1a9b119348d0f5195c9b0919fbe6196b14} +### get_target_system_id() {#classdronecore_1_1_device_1a55d2b2b871b2435420885b9594ca5b9b} ```cpp -Telemetry& dronecore::DevicePluginContainer::telemetry() +uint8_t dronecore::Device::get_target_system_id() const ``` -Getter for [Telemetry](classdronecore_1_1_telemetry.md) plugin. +**Returns** + + uint8_t - + +### get_target_component_id() {#classdronecore_1_1_device_1a41f2b9cf224c09d0c17081620ac201c5} +```cpp +uint8_t dronecore::Device::get_target_component_id() const +``` + **Returns** - [Telemetry](classdronecore_1_1_telemetry.md) & - a reference to the telemetry plugin instance + uint8_t - -### follow_me() {#classdronecore_1_1_device_plugin_container_1ae13164c3bb59230c559341b8506c5e03} +### set_target_system_id() {#classdronecore_1_1_device_1a01f14b9dffc35b045bbfe76f411c84f8} ```cpp -FollowMe& dronecore::DevicePluginContainer::follow_me() +void dronecore::Device::set_target_system_id(uint8_t system_id) ``` -Getter for [FollowMe](classdronecore_1_1_follow_me.md) plugin. +**Parameters** + +* uint8_t **system_id** - + +### target_supports_mission_int() {#classdronecore_1_1_device_1afbe6f90ecace24d8b7081a01be3686c3} +```cpp +bool dronecore::Device::target_supports_mission_int() const +``` + **Returns** - [FollowMe](classdronecore_1_1_follow_me.md) & - a reference to the follow_me plugin instance + bool - -### action() {#classdronecore_1_1_device_plugin_container_1aea48bd55b1ace227ebb56690794c2192} +### is_armed() {#classdronecore_1_1_device_1ad8b067dc607c3fd7bd86c2961409ce60} ```cpp -Action& dronecore::DevicePluginContainer::action() +bool dronecore::Device::is_armed() const ``` -Getter for [Action](classdronecore_1_1_action.md) plugin. +**Returns** + + bool - + +### set_param_float_async() {#classdronecore_1_1_device_1a1b784f4c51451f23cb978b1982ead1bf} +```cpp +void dronecore::Device::set_param_float_async(const std::string &name, float value, success_t callback) +``` + + +**Parameters** + +* const std::string & **name** - +* float **value** - +* success_t **callback** - + +### set_param_int_async() {#classdronecore_1_1_device_1aa8fe748620f9934df97582943b20b372} +```cpp +void dronecore::Device::set_param_int_async(const std::string &name, int32_t value, success_t callback) +``` + + +**Parameters** + +* const std::string & **name** - +* int32_t **value** - +* success_t **callback** - + +### set_param_ext_float_async() {#classdronecore_1_1_device_1a46ca0087cd5135a12a9f163455876fe2} +```cpp +void dronecore::Device::set_param_ext_float_async(const std::string &name, float value, success_t callback) +``` + + +**Parameters** + +* const std::string & **name** - +* float **value** - +* success_t **callback** - + +### set_param_ext_int_async() {#classdronecore_1_1_device_1ab494873b3e6e99706c89c669d867c0bf} +```cpp +void dronecore::Device::set_param_ext_int_async(const std::string &name, int32_t value, success_t callback) +``` + + +**Parameters** + +* const std::string & **name** - +* int32_t **value** - +* success_t **callback** - + +### set_flight_mode() {#classdronecore_1_1_device_1acafac8ecf0801045ad894e80bcd9d9a8} +```cpp +MavlinkCommands::Result dronecore::Device::set_flight_mode(FlightMode mode) +``` + + +**Parameters** + +* FlightMode **mode** - **Returns** - [Action](classdronecore_1_1_action.md) & - a reference to the action plugin instance + MavlinkCommands::Result - -### gimbal() {#classdronecore_1_1_device_plugin_container_1a2fce9f439c565af9a8510c5746c728f0} +### set_flight_mode_async() {#classdronecore_1_1_device_1a56d240c32839524470a8784f5c72e8a0} ```cpp -Gimbal& dronecore::DevicePluginContainer::gimbal() +void dronecore::Device::set_flight_mode_async(FlightMode mode, command_result_callback_t callback) ``` -Getter for [Gimbal](classdronecore_1_1_gimbal.md) plugin. +**Parameters** + +* FlightMode **mode** - +* command_result_callback_t **callback** - + +### get_param_float_async() {#classdronecore_1_1_device_1a48dbd54b03ad86c9784dfac75274713f} +```cpp +void dronecore::Device::get_param_float_async(const std::string &name, get_param_float_callback_t callback) +``` + + +**Parameters** + +* const std::string & **name** - +* get_param_float_callback_t **callback** - + +### get_param_int_async() {#classdronecore_1_1_device_1a682a74475e24cac262ac90b18e5dd49a} +```cpp +void dronecore::Device::get_param_int_async(const std::string &name, get_param_int_callback_t callback) +``` + + +**Parameters** + +* const std::string & **name** - +* get_param_int_callback_t **callback** - + +### get_param_ext_float_async() {#classdronecore_1_1_device_1a6050f2993f78689c778cdb4240bb3606} +```cpp +void dronecore::Device::get_param_ext_float_async(const std::string &name, get_param_float_callback_t callback) +``` + + +**Parameters** + +* const std::string & **name** - +* get_param_float_callback_t **callback** - + +### get_param_ext_int_async() {#classdronecore_1_1_device_1a7b4050c8aa12e198d99b23be4f281c7f} +```cpp +void dronecore::Device::get_param_ext_int_async(const std::string &name, get_param_int_callback_t callback) +``` + + +**Parameters** + +* const std::string & **name** - +* get_param_int_callback_t **callback** - + +### is_connected() {#classdronecore_1_1_device_1afac855ffb266017d932c4060140af717} +```cpp +bool dronecore::Device::is_connected() const +``` + + +**Returns** + + bool - + +### get_time() {#classdronecore_1_1_device_1a6009c92dbd4ffd14367ad4ee1d4b3054} +```cpp +Time& dronecore::Device::get_time() +``` + **Returns** - [Gimbal](classdronecore_1_1_gimbal.md) & - a reference to the gimbal plugin instance + Time & - + +### register_plugin() {#classdronecore_1_1_device_1a7622b2667c5454c490a0d6722f738ec3} +```cpp +void dronecore::Device::register_plugin(PluginImplBase *plugin_impl) +``` + + +**Parameters** + +* PluginImplBase * **plugin_impl** - + +### unregister_plugin() {#classdronecore_1_1_device_1aac00d6ae3d53154900785b882df5edf4} +```cpp +void dronecore::Device::unregister_plugin(PluginImplBase *plugin_impl) +``` + + +**Parameters** + +* PluginImplBase * **plugin_impl** - -### offboard() {#classdronecore_1_1_device_plugin_container_1a63193bd25273bbda48665e12e012f478} +### lock_communication() {#classdronecore_1_1_device_1a15d93e6a12f2208f8fa56466b7f2f819} ```cpp -Offboard& dronecore::DevicePluginContainer::offboard() +void dronecore::Device::lock_communication() ``` -Getter for [Offboard](classdronecore_1_1_offboard.md) plugin. +### unlock_communication() {#classdronecore_1_1_device_1a801aab463023eb3e64670c86349fa54c} +```cpp +void dronecore::Device::unlock_communication() +``` + + +### operator=() {#classdronecore_1_1_device_1ad03d3cdf0aaa8e4cb21becb6c7806c33} +```cpp +const Device& dronecore::Device::operator=(const Device &)=delete +``` + + +**Parameters** + +* const [Device](classdronecore_1_1_device.md) & - **Returns** - [Offboard](classdronecore_1_1_offboard.md) & - a reference to the offboard plugin instance + const [Device](classdronecore_1_1_device.md) & - -### mission() {#classdronecore_1_1_device_plugin_container_1a8a05778326d0ef4c74146bc42fdcb52d} +### get_own_system_id() {#classdronecore_1_1_device_1ab598504aa60a5acf830161daf8eed908} ```cpp -Mission& dronecore::DevicePluginContainer::mission() +static uint8_t dronecore::Device::get_own_system_id() ``` -Getter for [Mission](classdronecore_1_1_mission.md) plugin. +**Returns** + + uint8_t - + +### get_own_component_id() {#classdronecore_1_1_device_1aa6dc1543b0ae9439a6bacca0dc9c52e6} +```cpp +static uint8_t dronecore::Device::get_own_component_id() +``` + **Returns** - [Mission](classdronecore_1_1_mission.md) & - a reference to the mission plugin instance \ No newline at end of file + uint8_t - \ No newline at end of file diff --git a/en/api_reference/classdronecore_1_1_follow_me.md b/en/api_reference/classdronecore_1_1_follow_me.md index 0810e0d..88d6d1c 100644 --- a/en/api_reference/classdronecore_1_1_follow_me.md +++ b/en/api_reference/classdronecore_1_1_follow_me.md @@ -33,7 +33,7 @@ enum [Result](#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) Type | Name | Description ---: | --- | --- -| [FollowMe](#classdronecore_1_1_follow_me_1a4fb2ce15bde7d521644dc0835cf217e1) (FollowMeImpl *impl) | Constructor (internal use only). +| [FollowMe](#classdronecore_1_1_follow_me_1a2d3cbcee491efa09392e6333ae77926c) (Device *device) | Constructor (internal use only). | [~FollowMe](#classdronecore_1_1_follow_me_1a66ffe3c9652bc08a2766f211592316ac) () | Destructor (internal use only). | [FollowMe](#classdronecore_1_1_follow_me_1a54589c314eeba131aca1c4c56d4b15e3) (const FollowMe &)=delete | Copy constructor (object is not copyable). const [Config](structdronecore_1_1_follow_me_1_1_config.md) & | [get_config](#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5) () const | Gets current [FollowMe](classdronecore_1_1_follow_me.md) configuration. @@ -56,9 +56,9 @@ std::string | [result_str](#classdronecore_1_1_follow_me_1a50d848b1c7b00e40343b8 ## Constructor & Destructor Documentation -### FollowMe() {#classdronecore_1_1_follow_me_1a4fb2ce15bde7d521644dc0835cf217e1} +### FollowMe() {#classdronecore_1_1_follow_me_1a2d3cbcee491efa09392e6333ae77926c} ```cpp -dronecore::FollowMe::FollowMe(FollowMeImpl *impl) +dronecore::FollowMe::FollowMe(Device *device) ``` @@ -67,7 +67,7 @@ Constructor (internal use only). **Parameters** -* FollowMeImpl * **impl** - Private internal implementation. +* [Device](classdronecore_1_1_device.md) * **device** - ### ~FollowMe() {#classdronecore_1_1_follow_me_1a66ffe3c9652bc08a2766f211592316ac} ```cpp diff --git a/en/api_reference/classdronecore_1_1_gimbal.md b/en/api_reference/classdronecore_1_1_gimbal.md index 7f75841..b2eed7f 100644 --- a/en/api_reference/classdronecore_1_1_gimbal.md +++ b/en/api_reference/classdronecore_1_1_gimbal.md @@ -23,7 +23,7 @@ std::function< void([Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gim Type | Name | Description ---: | --- | --- -| [Gimbal](#classdronecore_1_1_gimbal_1a14f51547abcaabeb212ec04439e497be) (GimbalImpl *impl) | Constructor (internal use only). +| [Gimbal](#classdronecore_1_1_gimbal_1a2a5ad56ba40eaacc0261f82ed49407e6) (Device *device) | Constructor (internal use only). | [~Gimbal](#classdronecore_1_1_gimbal_1a4f8b2a6cf5a7347a474f8e47618ad838) () | Destructor (internal use only). | [Gimbal](#classdronecore_1_1_gimbal_1a82637c62da14ae39db96724d4273cad4) (const Gimbal &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a2404686489b502fbc58e940701ba1e6f) | [set_pitch_and_yaw](#classdronecore_1_1_gimbal_1ac8ac49d29f11b2107da6b043bb57b54e) (float pitch_deg, float yaw_deg) | Set gimbal pitch and yaw angles (synchronous). @@ -41,9 +41,9 @@ const char * | [result_str](#classdronecore_1_1_gimbal_1ad60c5378cc7d160be67432f ## Constructor & Destructor Documentation -### Gimbal() {#classdronecore_1_1_gimbal_1a14f51547abcaabeb212ec04439e497be} +### Gimbal() {#classdronecore_1_1_gimbal_1a2a5ad56ba40eaacc0261f82ed49407e6} ```cpp -dronecore::Gimbal::Gimbal(GimbalImpl *impl) +dronecore::Gimbal::Gimbal(Device *device) ``` @@ -52,7 +52,7 @@ Constructor (internal use only). **Parameters** -* GimbalImpl * **impl** - Private internal implementation. +* [Device](classdronecore_1_1_device.md) * **device** - ### ~Gimbal() {#classdronecore_1_1_gimbal_1a4f8b2a6cf5a7347a474f8e47618ad838} ```cpp diff --git a/en/api_reference/classdronecore_1_1_info.md b/en/api_reference/classdronecore_1_1_info.md index e118dbf..e3c0ae7 100644 --- a/en/api_reference/classdronecore_1_1_info.md +++ b/en/api_reference/classdronecore_1_1_info.md @@ -19,7 +19,7 @@ struct [Version](structdronecore_1_1_info_1_1_version.md) Type | Name | Description ---: | --- | --- -| [Info](#classdronecore_1_1_info_1ab2433f8a05d19782a7d464dac9f02ade) (InfoImpl *impl) | Constructor (internal use only). +| [Info](#classdronecore_1_1_info_1a10ea70679e1b2d7e43bc9944fbe18aaf) (Device *device) | Constructor (internal use only). | [~Info](#classdronecore_1_1_info_1a39e608070500b5fca0b4415cdb13f75f) () | Destructor (internal use only). | [Info](#classdronecore_1_1_info_1af0902805d75577d1195363eda21d7bb1) (const Info &)=delete | Copy Constructor (object is not copyable). uint64_t | [uuid](#classdronecore_1_1_info_1a49c7dd5f1a369c8296f0c3a2443bc031) () const | Gets the UUID of the device. @@ -37,9 +37,9 @@ static const unsigned [GIT_HASH_STR_LEN](#classdronecore_1_1_info_1aae671143f80e ## Constructor & Destructor Documentation -### Info() {#classdronecore_1_1_info_1ab2433f8a05d19782a7d464dac9f02ade} +### Info() {#classdronecore_1_1_info_1a10ea70679e1b2d7e43bc9944fbe18aaf} ```cpp -dronecore::Info::Info(InfoImpl *impl) +dronecore::Info::Info(Device *device) ``` @@ -48,7 +48,7 @@ Constructor (internal use only). **Parameters** -* InfoImpl * **impl** - +* [Device](classdronecore_1_1_device.md) * **device** - ### ~Info() {#classdronecore_1_1_info_1a39e608070500b5fca0b4415cdb13f75f} ```cpp diff --git a/en/api_reference/classdronecore_1_1_logging.md b/en/api_reference/classdronecore_1_1_logging.md index 35f9110..82b79b3 100644 --- a/en/api_reference/classdronecore_1_1_logging.md +++ b/en/api_reference/classdronecore_1_1_logging.md @@ -23,7 +23,7 @@ std::function< void([Result](classdronecore_1_1_logging.md#classdronecore_1_1_lo Type | Name | Description ---: | --- | --- -| [Logging](#classdronecore_1_1_logging_1ac543ff1d6a0e9980eeb113d39fff39bf) (LoggingImpl *impl) | Constructor (internal use only). +| [Logging](#classdronecore_1_1_logging_1a191a5eaa0d4c23b634585a276a20ba97) (Device *device) | Constructor (internal use only). | [~Logging](#classdronecore_1_1_logging_1a49e75d77f900ba5ef59a960ae9b8dc55) () | Destructor (internal use only). | [Logging](#classdronecore_1_1_logging_1a62a17eb90e3ec9253f1b40e94d3c1fd7) (const Logging &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_logging.md#classdronecore_1_1_logging_1ab11e242369717d9510de1ab93bfad086) | [start_logging](#classdronecore_1_1_logging_1a4684d8226742b575fce423c9ce758fc0) () const | Start logging (synchronous). @@ -43,9 +43,9 @@ const char * | [result_str](#classdronecore_1_1_logging_1adc5a7560f1a27996fc05f2 ## Constructor & Destructor Documentation -### Logging() {#classdronecore_1_1_logging_1ac543ff1d6a0e9980eeb113d39fff39bf} +### Logging() {#classdronecore_1_1_logging_1a191a5eaa0d4c23b634585a276a20ba97} ```cpp -dronecore::Logging::Logging(LoggingImpl *impl) +dronecore::Logging::Logging(Device *device) ``` @@ -54,7 +54,7 @@ Constructor (internal use only). **Parameters** -* LoggingImpl * **impl** - +* [Device](classdronecore_1_1_device.md) * **device** - ### ~Logging() {#classdronecore_1_1_logging_1a49e75d77f900ba5ef59a960ae9b8dc55} ```cpp diff --git a/en/api_reference/classdronecore_1_1_mission.md b/en/api_reference/classdronecore_1_1_mission.md index 2f5cca9..3555034 100644 --- a/en/api_reference/classdronecore_1_1_mission.md +++ b/en/api_reference/classdronecore_1_1_mission.md @@ -22,7 +22,7 @@ std::function< void(int current, int total)> [progress_callback_t](#classdroneco Type | Name | Description ---: | --- | --- -| [Mission](#classdronecore_1_1_mission_1ae37622b5640ab3a5042b33c540b31db8) (MissionImpl *impl) | Constructor (internal use only). +| [Mission](#classdronecore_1_1_mission_1a3835376b0fbf186ad572dbfad3bcc4e9) (Device *device) | Constructor (internal use only). | [~Mission](#classdronecore_1_1_mission_1a395b8c121630aa8a5dd3d48f95290659) () | Destructor (internal use only). | [Mission](#classdronecore_1_1_mission_1a4947f79b7dd71e66bca64e5bbb0b3377) (const Mission &)=delete | Copy constructor (object is not copyable). void | [upload_mission_async](#classdronecore_1_1_mission_1a414b5b6d0c66af695a725e92003872b5) (const std::vector< std::shared_ptr< MissionItem >> &mission_items, result_callback_t callback) | Uploads a vector of mission items to the device (asynchronous). @@ -47,9 +47,9 @@ const char * | [result_str](#classdronecore_1_1_mission_1a0eabb2fe4db664c552d281 ## Constructor & Destructor Documentation -### Mission() {#classdronecore_1_1_mission_1ae37622b5640ab3a5042b33c540b31db8} +### Mission() {#classdronecore_1_1_mission_1a3835376b0fbf186ad572dbfad3bcc4e9} ```cpp -dronecore::Mission::Mission(MissionImpl *impl) +dronecore::Mission::Mission(Device *device) ``` @@ -58,7 +58,7 @@ Constructor (internal use only). **Parameters** -* MissionImpl * **impl** - +* [Device](classdronecore_1_1_device.md) * **device** - ### ~Mission() {#classdronecore_1_1_mission_1a395b8c121630aa8a5dd3d48f95290659} ```cpp diff --git a/en/api_reference/classdronecore_1_1_offboard.md b/en/api_reference/classdronecore_1_1_offboard.md index 8a203b4..6b5987c 100644 --- a/en/api_reference/classdronecore_1_1_offboard.md +++ b/en/api_reference/classdronecore_1_1_offboard.md @@ -36,7 +36,7 @@ std::function< void([Result](classdronecore_1_1_offboard.md#classdronecore_1_1_o Type | Name | Description ---: | --- | --- -| [Offboard](#classdronecore_1_1_offboard_1a8015934ad2d766f8b37b7d5b43f2b089) (OffboardImpl *impl) | Constructor (internal use only). +| [Offboard](#classdronecore_1_1_offboard_1a333ac94793dc29ed95158fb2af286fa1) (Device *device) | Constructor (internal use only). | [~Offboard](#classdronecore_1_1_offboard_1a7cb4eff36c37fed1c6d973aa41b059b8) () | Destructor (internal use only). | [Offboard](#classdronecore_1_1_offboard_1ac586be55cb24aa0ccd29c97352dd2ee5) (const Offboard &)=delete | Copy constructor (object is not copyable). [Offboard::Result](classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a0f6e5e9f73289f27dc99abbb3ab572ed) | [start](#classdronecore_1_1_offboard_1a658454f130f7b19d56f23347a448f1b9) () | Start offboard control (synchronous). @@ -59,9 +59,9 @@ const char * | [result_str](#classdronecore_1_1_offboard_1a8eb7467e48fe354d34bc4 ## Constructor & Destructor Documentation -### Offboard() {#classdronecore_1_1_offboard_1a8015934ad2d766f8b37b7d5b43f2b089} +### Offboard() {#classdronecore_1_1_offboard_1a333ac94793dc29ed95158fb2af286fa1} ```cpp -dronecore::Offboard::Offboard(OffboardImpl *impl) +dronecore::Offboard::Offboard(Device *device) ``` @@ -70,7 +70,7 @@ Constructor (internal use only). **Parameters** -* OffboardImpl * **impl** - +* [Device](classdronecore_1_1_device.md) * **device** - ### ~Offboard() {#classdronecore_1_1_offboard_1a7cb4eff36c37fed1c6d973aa41b059b8} ```cpp diff --git a/en/api_reference/classdronecore_1_1_telemetry.md b/en/api_reference/classdronecore_1_1_telemetry.md index 154e4dd..51f857f 100644 --- a/en/api_reference/classdronecore_1_1_telemetry.md +++ b/en/api_reference/classdronecore_1_1_telemetry.md @@ -52,7 +52,7 @@ std::function< void([RCStatus](structdronecore_1_1_telemetry_1_1_r_c_status.md) Type | Name | Description ---: | --- | --- -| [Telemetry](#classdronecore_1_1_telemetry_1ab237a6c16423aebdb52e31d9714c5520) (TelemetryImpl *impl) | Constructor (internal use only). +| [Telemetry](#classdronecore_1_1_telemetry_1ad0cb6dd62c12af390870f8b5cb5bde55) (Device *device) | Constructor (internal use only). | [~Telemetry](#classdronecore_1_1_telemetry_1ade5f44873d1fd5a5ec63037307920095) () | Destructor (internal use only). | [Telemetry](#classdronecore_1_1_telemetry_1a91a3319d9040bd89d241be3d8b2e9a5e) (const Telemetry &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a5bfab85edb7c160e156133a9643964bc) | [set_rate_position](#classdronecore_1_1_telemetry_1ae7a6e1313b1508fef7163287aa77a6da) (double rate_hz) | Set rate of position updates (synchronous). @@ -117,9 +117,9 @@ const char * | [result_str](#classdronecore_1_1_telemetry_1a05c6355b7f8743250b2a ## Constructor & Destructor Documentation -### Telemetry() {#classdronecore_1_1_telemetry_1ab237a6c16423aebdb52e31d9714c5520} +### Telemetry() {#classdronecore_1_1_telemetry_1ad0cb6dd62c12af390870f8b5cb5bde55} ```cpp -dronecore::Telemetry::Telemetry(TelemetryImpl *impl) +dronecore::Telemetry::Telemetry(Device *device) ``` @@ -128,7 +128,7 @@ Constructor (internal use only). **Parameters** -* TelemetryImpl * **impl** - +* [Device](classdronecore_1_1_device.md) * **device** - ### ~Telemetry() {#classdronecore_1_1_telemetry_1ade5f44873d1fd5a5ec63037307920095} ```cpp From 167b129a7db247873771e69f6825734547214267 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 5 Feb 2018 12:13:36 +1100 Subject: [PATCH 059/107] Fix docs for plugin constructors --- en/api_reference/classdronecore_1_1_action.md | 14 ++++- .../classdronecore_1_1_follow_me.md | 14 ++++- en/api_reference/classdronecore_1_1_gimbal.md | 14 ++++- en/api_reference/classdronecore_1_1_info.md | 14 ++++- .../classdronecore_1_1_logging.md | 14 ++++- .../classdronecore_1_1_mission.md | 14 ++++- .../classdronecore_1_1_offboard.md | 14 ++++- .../classdronecore_1_1_plugin_base.md | 58 +++++++++++++++++++ .../classdronecore_1_1_telemetry.md | 14 ++++- 9 files changed, 146 insertions(+), 24 deletions(-) create mode 100644 en/api_reference/classdronecore_1_1_plugin_base.md diff --git a/en/api_reference/classdronecore_1_1_action.md b/en/api_reference/classdronecore_1_1_action.md index f65bcb0..21fbf69 100644 --- a/en/api_reference/classdronecore_1_1_action.md +++ b/en/api_reference/classdronecore_1_1_action.md @@ -26,7 +26,7 @@ std::function< void([Result](classdronecore_1_1_action.md#classdronecore_1_1_act Type | Name | Description ---: | --- | --- -| [Action](#classdronecore_1_1_action_1a9fd3af84d59048b3c787ed0c5644ed07) (Device *device) | Constructor (internal use only). +| [Action](#classdronecore_1_1_action_1a9fd3af84d59048b3c787ed0c5644ed07) (Device *device) | Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). | [~Action](#classdronecore_1_1_action_1a6bb0301fecf66d75ca3b27bda25af7f2) () | Destructor (internal use only). | [Action](#classdronecore_1_1_action_1ae48b0e06ca2b4b7544a10c7734a03f63) (const Action &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [arm](#classdronecore_1_1_action_1a8b8631ea15655f0c922a9ba7d2e1c72c) () const | Send command to *arm* the drone (synchronous). @@ -68,12 +68,20 @@ dronecore::Action::Action(Device *device) ``` -Constructor (internal use only). +Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +The plugin is typically created as shown below: + +```cpp +auto action = std::make_shared(&device); +``` + + +The plugin is owned by the device (and will be destroyed along with it). **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - +* [Device](classdronecore_1_1_device.md) * **device** - The device associated with this plugin. ### ~Action() {#classdronecore_1_1_action_1a6bb0301fecf66d75ca3b27bda25af7f2} ```cpp diff --git a/en/api_reference/classdronecore_1_1_follow_me.md b/en/api_reference/classdronecore_1_1_follow_me.md index 88d6d1c..d0e0e1c 100644 --- a/en/api_reference/classdronecore_1_1_follow_me.md +++ b/en/api_reference/classdronecore_1_1_follow_me.md @@ -33,7 +33,7 @@ enum [Result](#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) Type | Name | Description ---: | --- | --- -| [FollowMe](#classdronecore_1_1_follow_me_1a2d3cbcee491efa09392e6333ae77926c) (Device *device) | Constructor (internal use only). +| [FollowMe](#classdronecore_1_1_follow_me_1a2d3cbcee491efa09392e6333ae77926c) (Device *device) | Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). | [~FollowMe](#classdronecore_1_1_follow_me_1a66ffe3c9652bc08a2766f211592316ac) () | Destructor (internal use only). | [FollowMe](#classdronecore_1_1_follow_me_1a54589c314eeba131aca1c4c56d4b15e3) (const FollowMe &)=delete | Copy constructor (object is not copyable). const [Config](structdronecore_1_1_follow_me_1_1_config.md) & | [get_config](#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5) () const | Gets current [FollowMe](classdronecore_1_1_follow_me.md) configuration. @@ -62,12 +62,20 @@ dronecore::FollowMe::FollowMe(Device *device) ``` -Constructor (internal use only). +Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +The plugin is typically created as shown below: + +```cpp +auto follow_me = std::make_shared(&device); +``` + + +The plugin is owned by the device (and will be destroyed along with it). **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - +* [Device](classdronecore_1_1_device.md) * **device** - The device associated with this plugin. ### ~FollowMe() {#classdronecore_1_1_follow_me_1a66ffe3c9652bc08a2766f211592316ac} ```cpp diff --git a/en/api_reference/classdronecore_1_1_gimbal.md b/en/api_reference/classdronecore_1_1_gimbal.md index b2eed7f..a780033 100644 --- a/en/api_reference/classdronecore_1_1_gimbal.md +++ b/en/api_reference/classdronecore_1_1_gimbal.md @@ -23,7 +23,7 @@ std::function< void([Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gim Type | Name | Description ---: | --- | --- -| [Gimbal](#classdronecore_1_1_gimbal_1a2a5ad56ba40eaacc0261f82ed49407e6) (Device *device) | Constructor (internal use only). +| [Gimbal](#classdronecore_1_1_gimbal_1a2a5ad56ba40eaacc0261f82ed49407e6) (Device *device) | Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). | [~Gimbal](#classdronecore_1_1_gimbal_1a4f8b2a6cf5a7347a474f8e47618ad838) () | Destructor (internal use only). | [Gimbal](#classdronecore_1_1_gimbal_1a82637c62da14ae39db96724d4273cad4) (const Gimbal &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a2404686489b502fbc58e940701ba1e6f) | [set_pitch_and_yaw](#classdronecore_1_1_gimbal_1ac8ac49d29f11b2107da6b043bb57b54e) (float pitch_deg, float yaw_deg) | Set gimbal pitch and yaw angles (synchronous). @@ -47,12 +47,20 @@ dronecore::Gimbal::Gimbal(Device *device) ``` -Constructor (internal use only). +Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +The plugin is typically created as shown below: + +```cpp +auto gimbal = std::make_shared(&device); +``` + + +The plugin is owned by the device (and will be destroyed along with it). **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - +* [Device](classdronecore_1_1_device.md) * **device** - The device associated with this plugin. ### ~Gimbal() {#classdronecore_1_1_gimbal_1a4f8b2a6cf5a7347a474f8e47618ad838} ```cpp diff --git a/en/api_reference/classdronecore_1_1_info.md b/en/api_reference/classdronecore_1_1_info.md index e3c0ae7..c33e0fb 100644 --- a/en/api_reference/classdronecore_1_1_info.md +++ b/en/api_reference/classdronecore_1_1_info.md @@ -19,7 +19,7 @@ struct [Version](structdronecore_1_1_info_1_1_version.md) Type | Name | Description ---: | --- | --- -| [Info](#classdronecore_1_1_info_1a10ea70679e1b2d7e43bc9944fbe18aaf) (Device *device) | Constructor (internal use only). +| [Info](#classdronecore_1_1_info_1a10ea70679e1b2d7e43bc9944fbe18aaf) (Device *device) | Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). | [~Info](#classdronecore_1_1_info_1a39e608070500b5fca0b4415cdb13f75f) () | Destructor (internal use only). | [Info](#classdronecore_1_1_info_1af0902805d75577d1195363eda21d7bb1) (const Info &)=delete | Copy Constructor (object is not copyable). uint64_t | [uuid](#classdronecore_1_1_info_1a49c7dd5f1a369c8296f0c3a2443bc031) () const | Gets the UUID of the device. @@ -43,12 +43,20 @@ dronecore::Info::Info(Device *device) ``` -Constructor (internal use only). +Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +The plugin is typically created as shown below: + +```cpp +auto info = std::make_shared(&device); +``` + + +The plugin is owned by the device (and will be destroyed along with it). **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - +* [Device](classdronecore_1_1_device.md) * **device** - The device associated with this plugin. ### ~Info() {#classdronecore_1_1_info_1a39e608070500b5fca0b4415cdb13f75f} ```cpp diff --git a/en/api_reference/classdronecore_1_1_logging.md b/en/api_reference/classdronecore_1_1_logging.md index 82b79b3..daad518 100644 --- a/en/api_reference/classdronecore_1_1_logging.md +++ b/en/api_reference/classdronecore_1_1_logging.md @@ -23,7 +23,7 @@ std::function< void([Result](classdronecore_1_1_logging.md#classdronecore_1_1_lo Type | Name | Description ---: | --- | --- -| [Logging](#classdronecore_1_1_logging_1a191a5eaa0d4c23b634585a276a20ba97) (Device *device) | Constructor (internal use only). +| [Logging](#classdronecore_1_1_logging_1a191a5eaa0d4c23b634585a276a20ba97) (Device *device) | Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). | [~Logging](#classdronecore_1_1_logging_1a49e75d77f900ba5ef59a960ae9b8dc55) () | Destructor (internal use only). | [Logging](#classdronecore_1_1_logging_1a62a17eb90e3ec9253f1b40e94d3c1fd7) (const Logging &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_logging.md#classdronecore_1_1_logging_1ab11e242369717d9510de1ab93bfad086) | [start_logging](#classdronecore_1_1_logging_1a4684d8226742b575fce423c9ce758fc0) () const | Start logging (synchronous). @@ -49,12 +49,20 @@ dronecore::Logging::Logging(Device *device) ``` -Constructor (internal use only). +Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +The plugin is typically created as shown below: + +```cpp +auto logger = std::make_shared(&device); +``` + + +The plugin is owned by the device (and will be destroyed along with it). **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - +* [Device](classdronecore_1_1_device.md) * **device** - The device associated with this plugin. ### ~Logging() {#classdronecore_1_1_logging_1a49e75d77f900ba5ef59a960ae9b8dc55} ```cpp diff --git a/en/api_reference/classdronecore_1_1_mission.md b/en/api_reference/classdronecore_1_1_mission.md index 3555034..bd4107d 100644 --- a/en/api_reference/classdronecore_1_1_mission.md +++ b/en/api_reference/classdronecore_1_1_mission.md @@ -22,7 +22,7 @@ std::function< void(int current, int total)> [progress_callback_t](#classdroneco Type | Name | Description ---: | --- | --- -| [Mission](#classdronecore_1_1_mission_1a3835376b0fbf186ad572dbfad3bcc4e9) (Device *device) | Constructor (internal use only). +| [Mission](#classdronecore_1_1_mission_1a3835376b0fbf186ad572dbfad3bcc4e9) (Device *device) | Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). | [~Mission](#classdronecore_1_1_mission_1a395b8c121630aa8a5dd3d48f95290659) () | Destructor (internal use only). | [Mission](#classdronecore_1_1_mission_1a4947f79b7dd71e66bca64e5bbb0b3377) (const Mission &)=delete | Copy constructor (object is not copyable). void | [upload_mission_async](#classdronecore_1_1_mission_1a414b5b6d0c66af695a725e92003872b5) (const std::vector< std::shared_ptr< MissionItem >> &mission_items, result_callback_t callback) | Uploads a vector of mission items to the device (asynchronous). @@ -53,12 +53,20 @@ dronecore::Mission::Mission(Device *device) ``` -Constructor (internal use only). +Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +The plugin is typically created as shown below: + +```cpp +auto mission = std::make_shared(&device); +``` + + +The plugin is owned by the device (and will be destroyed along with it). **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - +* [Device](classdronecore_1_1_device.md) * **device** - The device associated with this plugin. ### ~Mission() {#classdronecore_1_1_mission_1a395b8c121630aa8a5dd3d48f95290659} ```cpp diff --git a/en/api_reference/classdronecore_1_1_offboard.md b/en/api_reference/classdronecore_1_1_offboard.md index 6b5987c..ba249d0 100644 --- a/en/api_reference/classdronecore_1_1_offboard.md +++ b/en/api_reference/classdronecore_1_1_offboard.md @@ -36,7 +36,7 @@ std::function< void([Result](classdronecore_1_1_offboard.md#classdronecore_1_1_o Type | Name | Description ---: | --- | --- -| [Offboard](#classdronecore_1_1_offboard_1a333ac94793dc29ed95158fb2af286fa1) (Device *device) | Constructor (internal use only). +| [Offboard](#classdronecore_1_1_offboard_1a333ac94793dc29ed95158fb2af286fa1) (Device *device) | Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). | [~Offboard](#classdronecore_1_1_offboard_1a7cb4eff36c37fed1c6d973aa41b059b8) () | Destructor (internal use only). | [Offboard](#classdronecore_1_1_offboard_1ac586be55cb24aa0ccd29c97352dd2ee5) (const Offboard &)=delete | Copy constructor (object is not copyable). [Offboard::Result](classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a0f6e5e9f73289f27dc99abbb3ab572ed) | [start](#classdronecore_1_1_offboard_1a658454f130f7b19d56f23347a448f1b9) () | Start offboard control (synchronous). @@ -65,12 +65,20 @@ dronecore::Offboard::Offboard(Device *device) ``` -Constructor (internal use only). +Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +The plugin is typically created as shown below: + +```cpp +auto offboard = std::make_shared(&device); +``` + + +The plugin is owned by the device (and will be destroyed along with it). **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - +* [Device](classdronecore_1_1_device.md) * **device** - The device associated with this plugin. ### ~Offboard() {#classdronecore_1_1_offboard_1a7cb4eff36c37fed1c6d973aa41b059b8} ```cpp diff --git a/en/api_reference/classdronecore_1_1_plugin_base.md b/en/api_reference/classdronecore_1_1_plugin_base.md new file mode 100644 index 0000000..a48d496 --- /dev/null +++ b/en/api_reference/classdronecore_1_1_plugin_base.md @@ -0,0 +1,58 @@ +# dronecore::PluginBase Class Reference +`#include: UNKNOWN` + +---- + + +## Public Member Functions + + +Type | Name | Description +---: | --- | --- +| [PluginBase](#classdronecore_1_1_plugin_base_1ae98dd073e3768f140d5fb938c20c861c) () | +| [~PluginBase](#classdronecore_1_1_plugin_base_1a99a11523b84feb2fc1664eed1d4995f3) ()=default | +| [PluginBase](#classdronecore_1_1_plugin_base_1a9a163fe7dc7cc9b8c65a1ce0e86a6750) (const PluginBase &)=delete | +const [PluginBase](classdronecore_1_1_plugin_base.md) & | [operator=](#classdronecore_1_1_plugin_base_1a971a2166cd7528fedb4f18209b2ba699) (const PluginBase &)=delete | + + +## Constructor & Destructor Documentation + + +### PluginBase() {#classdronecore_1_1_plugin_base_1ae98dd073e3768f140d5fb938c20c861c} +```cpp +dronecore::PluginBase::PluginBase() +``` + + +### ~PluginBase() {#classdronecore_1_1_plugin_base_1a99a11523b84feb2fc1664eed1d4995f3} +```cpp +virtual dronecore::PluginBase::~PluginBase()=default +``` + + +### PluginBase() {#classdronecore_1_1_plugin_base_1a9a163fe7dc7cc9b8c65a1ce0e86a6750} +```cpp +dronecore::PluginBase::PluginBase(const PluginBase &)=delete +``` + + +**Parameters** + +* const [PluginBase](classdronecore_1_1_plugin_base.md) & - + +## Member Function Documentation + + +### operator=() {#classdronecore_1_1_plugin_base_1a971a2166cd7528fedb4f18209b2ba699} +```cpp +const PluginBase& dronecore::PluginBase::operator=(const PluginBase &)=delete +``` + + +**Parameters** + +* const [PluginBase](classdronecore_1_1_plugin_base.md) & - + +**Returns** + + const [PluginBase](classdronecore_1_1_plugin_base.md) & - \ No newline at end of file diff --git a/en/api_reference/classdronecore_1_1_telemetry.md b/en/api_reference/classdronecore_1_1_telemetry.md index 51f857f..59ccefa 100644 --- a/en/api_reference/classdronecore_1_1_telemetry.md +++ b/en/api_reference/classdronecore_1_1_telemetry.md @@ -52,7 +52,7 @@ std::function< void([RCStatus](structdronecore_1_1_telemetry_1_1_r_c_status.md) Type | Name | Description ---: | --- | --- -| [Telemetry](#classdronecore_1_1_telemetry_1ad0cb6dd62c12af390870f8b5cb5bde55) (Device *device) | Constructor (internal use only). +| [Telemetry](#classdronecore_1_1_telemetry_1ad0cb6dd62c12af390870f8b5cb5bde55) (Device *device) | Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). | [~Telemetry](#classdronecore_1_1_telemetry_1ade5f44873d1fd5a5ec63037307920095) () | Destructor (internal use only). | [Telemetry](#classdronecore_1_1_telemetry_1a91a3319d9040bd89d241be3d8b2e9a5e) (const Telemetry &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a5bfab85edb7c160e156133a9643964bc) | [set_rate_position](#classdronecore_1_1_telemetry_1ae7a6e1313b1508fef7163287aa77a6da) (double rate_hz) | Set rate of position updates (synchronous). @@ -123,12 +123,20 @@ dronecore::Telemetry::Telemetry(Device *device) ``` -Constructor (internal use only). +Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +The plugin is typically created as shown below: + +```cpp +auto telemetry = std::make_shared(&device); +``` + + +The plugin is owned by the device (and will be destroyed along with it). **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - +* [Device](classdronecore_1_1_device.md) * **device** - The device associated with this plugin. ### ~Telemetry() {#classdronecore_1_1_telemetry_1ade5f44873d1fd5a5ec63037307920095} ```cpp From 3c1696f46938fbae120f0fb1c55c462140071312 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 5 Feb 2018 12:25:13 +1100 Subject: [PATCH 060/107] Make if more clear that copter is main target currently --- en/getting_started/faq.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/en/getting_started/faq.md b/en/getting_started/faq.md index beb3b44..ae36daa 100644 --- a/en/getting_started/faq.md +++ b/en/getting_started/faq.md @@ -8,13 +8,13 @@ The aim was to have an API in a language which is cross-platform and has many la Yes, DroneCore is designed to support multiple vehicles. A vehicle is called a device in DroneCore. -A device needs to have a specific mavlink system ID but can consist of multiple components with different component IDs. An example would be a drone with a gimbal and a camera talking mavlink with the same system ID but different component IDs. +A device needs to have a specific MAVLink system ID but can consist of multiple components with different component IDs. An example would be a drone with a gimbal and a camera talking MAVLink with the same system ID but different component IDs. The limit is in theory 255 vehicles for system IDs ranging from 1 to 255. ### What sorts of vehicles does DroneCore support? -The DroneCore API is designed for interacting with *aircraft* (copters, fixed wing and VTOL). +The DroneCore API is designed for interacting with *aircraft*. It has primarily been tested for use with copters, but also has basic support for fixed wing and [VTOL](../guide/vtol.md). The API may "work" with ground based vehicle or other type, but some methods will not make sense, and this use-case is unsupported and untested. @@ -24,7 +24,7 @@ The architecture has stubs for serial, TCP, and UDP connections. However, only U ### Why is libCURL a dependency? -libCURL will be required to download the camera definition file which is referenced in [CAMERA_INFORMATION](http://mavlink.org/messages/common#CAMERA_INFORMATION). It might also come in handy whenever any other REST resources are required. +libCURL will be required to download the camera definition file which is referenced in [CAMERA_INFORMATION](http://mavlink.org/messages/common#CAMERA_INFORMATION). It might also come in handy whenever any other REST resources are required. ### How are plugins added? From d347a3fad989eac94774a3cbf7ec7176dfae6b73 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 5 Feb 2018 12:25:42 +1100 Subject: [PATCH 061/107] Remove the old auto-generated plugin container from API --- en/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/en/README.md b/en/README.md index 12f3cac..4b8ded4 100644 --- a/en/README.md +++ b/en/README.md @@ -64,7 +64,6 @@ The most important classes are: - [Gimbal](/api_reference/classdronecore_1_1_gimbal.md): Control a gimbal. - [FollowMe](/api_reference/classdronecore_1_1_follow_me.md): Drone tracks a position supplied by DroneCore. - [Logging](/api_reference/classdronecore_1_1_logging.md): Data logging and streaming from the vehicle. -- [include/device_plugin_container.h.in](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/include/device_plugin_container.h.in): Auto-generated file that is required for DroneCore plugin development - see [DevicePluginContainer](/api_reference/classdronecore_1_1_device_plugin_container.md). ## Getting Started @@ -78,8 +77,8 @@ Developers who want to contribute to the API will need to build the C++ library This guide contains information and examples showing how to use DroneCore. If you have specific questions that are not answered by the documentation, these can be raised on: -* [Slack DroneCore Channel](https://px4.slack.com/messages/C68J8H32A) (get a [Slack login here](http://slack.px4.io)) * [Discuss board](http://discuss.px4.io/c/dronecore) +* [Slack DroneCore Channel](https://px4.slack.com/messages/C68J8H32A) (get a [Slack login here](http://slack.px4.io)) Use Github for bug reports/enhancement requests: From 18cae89896ebefea1632728104b25c8e8603e97f Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 5 Feb 2018 17:02:34 +1100 Subject: [PATCH 062/107] Add guide updates for new plugin API --- en/SUMMARY.md | 3 ++- en/guide/connections.md | 6 +---- en/guide/device_version.md | 27 ++++++++++++++------ en/guide/follow_me.md | 24 ++++++++++++++---- en/guide/general_usage.md | 17 +++++++------ en/guide/missions.md | 17 +++++++++---- en/guide/offboard.md | 34 ++++++++++++++----------- en/guide/taking_off_landing.md | 45 ++++++++++++++++++++++------------ en/guide/telemetry.md | 29 ++++++++++++++++------ en/guide/toolchain.md | 8 ++++-- en/guide/using_plugins.md | 32 ++++++++++++++++++++++++ 11 files changed, 171 insertions(+), 71 deletions(-) create mode 100644 en/guide/using_plugins.md diff --git a/en/SUMMARY.md b/en/SUMMARY.md index 458329a..c943194 100644 --- a/en/SUMMARY.md +++ b/en/SUMMARY.md @@ -6,9 +6,10 @@ * [Guide](guide/README.md) * [Usage/Paradigms](guide/general_usage.md) * [Connecting to Devices](guide/connections.md) + * [Managing Devices](guide/using_plugins.md) * [Vehicle Information](guide/device_version.md) * [Telemetry](guide/telemetry.md) - * [Taking Off and Landing](guide/taking_off_landing.md) + * [Actions - Take Off, Arm, ...](guide/taking_off_landing.md) * [Missions](guide/missions.md) * [Offboard Control](guide/offboard.md) * [Follow Me](guide/follow_me.md) diff --git a/en/guide/connections.md b/en/guide/connections.md index d095a47..215ebe4 100644 --- a/en/guide/connections.md +++ b/en/guide/connections.md @@ -80,8 +80,4 @@ return the first device detected, or a null `Device` if none have been discovere Device &device = dc.device() ``` -The `Device` can be used to query and control the vehicle. You use the device getters to get an instance of a plugin API (e.g. [Device::action()](../api_reference/classdronecore_1_1_device.md#classdronecore_1_1_device_plugin_container_1aea48bd55b1ace227ebb56690794c2192) to get an [Action](../api_reference/classdronecore_1_1_action.md) object) and then call the object's methods. For example, to arm the device you would do: -```cpp -const Action::Result arm_result = device.action().arm(); -``` -The plugin APIs are covered in other guide topics. \ No newline at end of file +The `Device` is used by DroneCore plugin classes to query and control the vehicle. For more information see [Using Plugins](../guide/using_plugins.md) (and the other guide topics). \ No newline at end of file diff --git a/en/guide/device_version.md b/en/guide/device_version.md index d9cc319..0055e3e 100644 --- a/en/guide/device_version.md +++ b/en/guide/device_version.md @@ -6,24 +6,35 @@ The [Info](../api_reference/classdronecore_1_1_info.md) class is used to get dev hardware may return garbage values (for example, the simulator provides garbage values for the vendor firmware semantic version). -The code below shows how to query the UUID, version, and product, information and print it to the console: +## Preconditions +The following code assumes that you already have included DroneCore (`#include `) and that there is a [connection to a device](../guide/connections.md) obtained as shown below: ```cpp -// Get Device to query (the code assumes we have already found at least one vehicle and we -// want to query the first detected vehicle). -Device &device = dc.device(); +Device &device = dc.device(); +``` + +The code also assumes that you have defined `info`, a shared pointer to an instance of the `Info` class associated with the device (see [Using Plugins](../guide/using_plugins.md)): +```cpp +#include +auto info = std::make_shared(&device); +``` +## Query Device Information + +The code below shows how to query the UUID, version, and product, information and print it to the console: + +```cpp // Get device UUID -std::cout << " UUID: " << device.info().uuid() << std::endl; +std::cout << " UUID: " << info->uuid() << std::endl; // Wait until version/firmware information has been populated from the vehicle -while (!device.info().is_complete()) { +while (!info->is_complete()) { std::cout << "Waiting for Version information to populate from device." << std::endl; std::this_thread::sleep_for(std::chrono::seconds(1)); } // Get the device Version struct -const Info::Version &deviceVersion = device.info().get_version(); +const Info::Version &deviceVersion = info->get_version(); // Print out the vehicle version information. std::cout << " flight_sw_major: " << deviceVersion.flight_sw_major<< std::endl @@ -39,7 +50,7 @@ std::cout << " flight_sw_major: " << deviceVersion.flight_sw_major<< std::endl << " os_sw_git_hash: " << deviceVersion.os_sw_git_hash<< std::endl; // Get the device Product struct -const Info::Product &deviceProduct = device.info().get_product(); +const Info::Product &deviceProduct = info->get_product(); // Print out the vehicle product information. std::cout << " vendor_id: " << deviceProduct.vendor_id<< std::endl diff --git a/en/guide/follow_me.md b/en/guide/follow_me.md index fa95d1f..0b2ca72 100644 --- a/en/guide/follow_me.md +++ b/en/guide/follow_me.md @@ -8,6 +8,20 @@ The API is used to supply the position(s) for the [target](../api_reference/stru - Windows: [Windows.Devices.Geolocation](https://docs.microsoft.com/en-us/uwp/api/Windows.Devices.Geolocation) +## Preconditions + +The following code assumes that you already have included DroneCore (`#include `) +and that there is a [connection](../guide/connections.md) to a `device` obtained as shown below: +``` +Device &device = dc.device(); +``` + +The code also assumes that you have defined `follow_me`, a shared pointer to an instance of the `FollowMe` class associated with the device (see [Using Plugins](../guide/using_plugins.md)): +``` +#include +auto follow_me = std::make_shared(&device); +``` + ## Set the Follow Configuration By default the vehicle will follow directly behind the target at a height and distance of 8 metres. @@ -23,7 +37,7 @@ config.responsiveness = 0.2f; // Higher responsiveness config.follow_direction = FollowMe::Config::FollowDirection::FRONT; //Follow from front-centre // Apply configuration -FollowMe::Result config_result = device.follow_me().set_config(config); +FollowMe::Result config_result = follow_me->.set_config(config); if (config_result != FollowMe::Result::SUCCESS) { // handle config-setting failure (in this case print error) std::cout << "Setting configuration failed:" << FollowMe::result_str(config_result) << std::endl; @@ -32,7 +46,7 @@ if (config_result != FollowMe::Result::SUCCESS) { The [get_config()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5) method is provided to get the current configuration: ```cpp -auto curr_config = device.follow_me().get_config(); +auto curr_config = follow_me->get_config(); ``` ## Following a Target @@ -45,7 +59,7 @@ Use [set_target_location()](../api_reference/classdronecore_1_1_follow_me.md#cla ```cpp // Start following -FollowMe::Result follow_me_result = device.follow_me().start(); +FollowMe::Result follow_me_result = follow_me->start(); if (follow_me_result != FollowMe::Result::SUCCESS) { // handle start failure (in this case print error) std::cout << "Failed to start following:" << FollowMe::result_str(follow_me_result) << std::endl; @@ -54,11 +68,11 @@ if (follow_me_result != FollowMe::Result::SUCCESS) { // Get target position from underlying platform and supply to vehicle. // For this example we just show one point being set (instead of a stream). -follow_me.set_target_location({ 47.39776569, 8.54553292, 0.f, 0.f, 0.f, 0.f }); +follow_me->set_target_location({ 47.39776569, 8.54553292, 0.f, 0.f, 0.f, 0.f }); // Stop following -follow_me_result = device.follow_me().stop(); +follow_me_result = follow_me->stop(); if (follow_me_result != FollowMe::Result::SUCCESS) { // handle stop failure (in this case print error) std::cout << "Failed to stop following:" << FollowMe::result_str(follow_me_result) << std::endl; diff --git a/en/guide/general_usage.md b/en/guide/general_usage.md index b7318f3..1331a37 100644 --- a/en/guide/general_usage.md +++ b/en/guide/general_usage.md @@ -2,14 +2,15 @@ This topic provides general/overview information about how DroneCore is used, designed and some limitations. - ## Object Management -[DroneCore](../api_reference/classdronecore_1_1_drone_core.md) is the main library class. API consumers use it to discover and manage vehicles ([Device](../api_reference/classdronecore_1_1_device.md) objects), which in turn provide access to all other drone information and control objects. +[DroneCore](../api_reference/classdronecore_1_1_drone_core.md) is the main library class. Applications must create a `DroneCore` object and destroy it during application shut down. The object can be created as an automatic variable that is cleaned up when it goes out of scope, or you can dynamically create/destroy the object using `new`/`delete`. + +API consumers use [DroneCore](../api_reference/classdronecore_1_1_drone_core.md) to discover and connect to [Device](../api_reference/classdronecore_1_1_device.md) objects (vehicles/cameras etc.). -DroneCore applications must create a `DroneCore` object and destroy it during application shut down. The object can be created as an automatic variable that is cleaned up when it goes out of scope, or you can dynamically create/destroy the object using `new`/`delete`. +Access to drone information and control objects are provided [by plugins](../guide/using_plugins.md). Plugin objects are created and associated with a *specific* `Device` object (a plugin instance must be created for every device that needs it). -All other objects are returned/owned by the API and will automatically be destroyed along with `DroneCore`. +Plugin objects are owned by their associated `Device`, which is in turned owned by `DroneCore`. All objects are automatically cleaned up when the parent `DroneCore` object is destroyed. ## Error Handling @@ -30,9 +31,10 @@ DroneCore applications that are running in environments where this is possible c ## API Limitations/Behaviour + ### Supported Vehicles -DroneCore has been designed to manage *aircraft* (copter, fixed wing, VTOL) that use the PX4 autopilot. +DroneCore has been designed to manage *aircraft* that use the PX4 autopilot. It has primarily been tested for use with copters, but also has basic support for fixed wing and [VTOL](../guide/vtol.md). The APIs include methods that do not make sense for other vehicle types - including "takeoff" and "land". While ground vehicles may work, they are not supported and are untested. @@ -48,7 +50,7 @@ The rate at which update messages are sent by the vehicle can be specified using ### Actions/Offboard -Actions methods (and any other "vehicle instructions") return when the vehicle has confirmed that the message was received and will be acted on (or not). The methods do not wait for the commanded action to complete. +`Action` methods (and any other "vehicle instructions") return when the vehicle has confirmed that the message was received and will be acted on (or not). The methods do not wait for the commanded action to complete. So, for example, the [Action::land()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1ad1a50dd7bff99d3099916576efbf8cf6) method returns as soon as the vehicle confirms it will land, but will actually land at some later point. @@ -61,9 +63,10 @@ The `Mission` and `MissionItem` APIs provide a the most useful *subset* of MAVLi Not every mission command behaviour supported by the protocol and PX4 will be supported by DroneCore. For example, at time of writing the API does not allow you to specify commands that jump back to previous mission items. +The API allows you to download/import missions. Note however that this will fail if the mission contains a command that is not supported by the API. + ### Connection Status A device is considered to be disconnected (timed-out) if its heartbeat message is not detected within 3 seconds. - diff --git a/en/guide/missions.md b/en/guide/missions.md index 60bf2cc..7d8bae4 100644 --- a/en/guide/missions.md +++ b/en/guide/missions.md @@ -29,6 +29,13 @@ The following code assumes that you already have included DroneCore (`#include < Device &device = dc.device(); ``` +The code also assumes that you have defined `mission`, a shared pointer to an instance of the `Mission` class associated with the device (see [Using Plugins](../guide/using_plugins.md)): +``` +#include +auto mission = std::make_shared(&device); +``` + + ## Defining a Mission A mission must be defined as a vector of [MissionItem](../api_reference/classdronecore_1_1_mission_item.md) objects as shown below: @@ -119,7 +126,7 @@ The example below shows how this is done, using promises to wait on the result. { auto prom = std::make_shared>(); auto future_result = prom->get_future(); - device.mission().upload_mission_async( + mission->upload_mission_async( mission_items, [prom](Mission::Result result) { prom->set_value(result); }); @@ -143,7 +150,7 @@ The code fragment below shows how this is done, using promises to wait on the re { auto prom = std::make_shared>(); auto future_result = prom->get_future(); - device.mission().start_mission_async( + mission->start_mission_async( [prom](Mission::Result result) { prom->set_value(result); }); @@ -165,7 +172,7 @@ To pause a mission use [Mission::pause_mission_async()](../api_reference/classdr auto future_result = prom->get_future(); std::cout << "Pausing mission..." << std::endl; - device.mission().pause_mission_async( + mission->pause_mission_async( [prom](Mission::Result result) { prom->set_value(result); }); @@ -186,7 +193,7 @@ Asynchronously monitor progress using [Mission::subscribe_progress()](../api_ref The code fragment just takes a lambda function that reports the current status. ```cpp -device.mission().subscribe_progress( [](int current, int total) { +mission->subscribe_progress( [](int current, int total) { std::cout << "Mission status update: " << current << " / " << total << std::endl; }); ``` @@ -231,7 +238,7 @@ The code fragment below shows how to download a mission: auto prom = std::make_shared>(); auto future = prom->get_future(); - device.mission().download_mission_async( + mission->download_mission_async( [prom](Mission::Result result, std::vector> mission_items_downloaded) { PromiseResult promise_result {}; promise_result.mission_result = result; diff --git a/en/guide/offboard.md b/en/guide/offboard.md index 5fcae15..604ad71 100644 --- a/en/guide/offboard.md +++ b/en/guide/offboard.md @@ -16,6 +16,12 @@ and that there is a [connection](../guide/connections.md) to a `device` obtained Device &device = dc.device(); ``` +The code also assumes that you have defined `offboard`, a shared pointer to an instance of the `Offboard` class associated with the device (see [Using Plugins](../guide/using_plugins.md)): +``` +#include +auto offboard = std::make_shared(&device); +``` + ## Starting/Stopping Offboard Mode To use offboard mode you must first create a setpoint using either [set_velocity_ned()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a9e7f369a8f7459dc7705f4453a8c307d) or [set_velocity_body()](../api_reference/classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1ad9dc585be1bc2dba699cf089d4c274cc). You can use any setpoint you like - the vehicle will start acting on the current setpoint as soon as the mode starts. @@ -24,10 +30,10 @@ After you have created a setpoint call [start()](../api_reference/classdronecore ```cpp // Create a setpoint before starting offboard mode (in this case a null setpoint) -device.offboard().set_velocity_body({0.0f, 0.0f, 0.0f, 0.0f}); +offboard->set_velocity_body({0.0f, 0.0f, 0.0f, 0.0f}); // Start offboard mode. -Offboard::Result offboard_result = device.offboard().start(); +Offboard::Result offboard_result = offboard->start(); if (result != Offboard::Result::SUCCESS) { std::cerr << "Offboard::start() failed: " << Offboard::result_str(offboard_result) << std::endl; @@ -46,7 +52,7 @@ The synchronous API is used as shown below: ```cpp //Stop offboard mode -offboard_result = device.offboard().stop(); +offboard_result = offboard->stop(); if (result != Offboard::Result::SUCCESS) { std::cerr << "Offboard::stop() failed: " << Offboard::result_str(offboard_result) << std::endl; @@ -76,11 +82,11 @@ Examples: * Head North at 3 m/s: ```cpp - device.offboard().set_velocity_ned({3.0f, 0.0f, 0.0f, 0.0f}); + offboard->set_velocity_ned({3.0f, 0.0f, 0.0f, 0.0f}); ``` * Head North-West with 5 m/s on each velocity component (notice that a negative value is required on the `east_m_s` value to move West): ```cpp - device.offboard().set_velocity_ned({5.0f, -5.0f, 0.0f, 0.0f}); + offboard->set_velocity_ned({5.0f, -5.0f, 0.0f, 0.0f}); ``` @@ -92,11 +98,11 @@ Examples: * Go *up* at 2 m/s (note, negative value to go up!): ```cpp - device.offboard().set_velocity_ned({0.0f, 0.0f, -2.0f, 0.0f}); + offboard->set_velocity_ned({0.0f, 0.0f, -2.0f, 0.0f}); ``` * Go down at 3 m/s: ```cpp - device.offboard().set_velocity_body({0.0f, 0.0f, 3.0f, 0.0f}); + offboard->set_velocity_body({0.0f, 0.0f, 3.0f, 0.0f}); ``` @@ -111,11 +117,11 @@ the final (fourth) value is the yaw direction. Examples: * Turn to face West: ```cpp - device.offboard().set_velocity_ned({0.0f, 0.0f, 0.0f, 270.0f}); + offboard->set_velocity_ned({0.0f, 0.0f, 0.0f, 270.0f}); ``` * Turn to face North: ```cpp - device.offboard().set_velocity_ned({0.0f, 0.0f, 0.0f, 0.0f}); + offboard->set_velocity_ned({0.0f, 0.0f, 0.0f, 0.0f}); ``` It is not possible to control the rate or direction that the vehicle will use to turn towards the setpoint direction (it will turn in whatever direction reaches the setpoint fastest). @@ -132,11 +138,11 @@ Examples: * Turn clock-wise at 60 degrees per second: ```cpp - device.offboard().set_velocity_body({0.0f, 0.0f, 0.0f, 60.0f}); + offboard->set_velocity_body({0.0f, 0.0f, 0.0f, 60.0f}); ``` * Turn anti clock-wise at 5 degrees per second: ```cpp - device.offboard().set_velocity_body({0.0f, 0.0f, 0.0f, -5.0f}); + offboard->set_velocity_body({0.0f, 0.0f, 0.0f, -5.0f}); ``` ### Fly Forwards @@ -144,7 +150,7 @@ Examples: Use `set_velocity_body()` to set the velocity components relative to the body frame. To fly forwards, simply set the first parameter (`Offboard::VelocityBodyYawspeed::forward_m_s`) when the vehicle is not rotating. ```cpp -device.offboard().set_velocity_body({5.0f, 0.0f, 0.0f, 0.0f}); +offboard->set_velocity_body({5.0f, 0.0f, 0.0f, 0.0f}); ``` ### Fly a Circle @@ -152,13 +158,13 @@ device.offboard().set_velocity_body({5.0f, 0.0f, 0.0f, 0.0f}); To fly a circle, use `set_velocity_body()` with both forward and rotational components. This will force the vehicle to travel in a curved path. ```cpp -device.offboard().set_velocity_body({5.0f, 0.0f, 0.0f, 30.0f}); +offboard->set_velocity_body({5.0f, 0.0f, 0.0f, 30.0f}); ``` You can force the vehicle to fly sideways by using the (`Offboard::VelocityBodyYawspeed::right_m_s` value), and in the other direction by using a negative rotation value: ```cpp // Fly a circle sideways -device.offboard().set_velocity_body({0.0f, -5.0f, 0.0f, -30.0f}); +offboard->set_velocity_body({0.0f, -5.0f, 0.0f, -30.0f}); ``` diff --git a/en/guide/taking_off_landing.md b/en/guide/taking_off_landing.md index cc592f5..4c21c41 100644 --- a/en/guide/taking_off_landing.md +++ b/en/guide/taking_off_landing.md @@ -1,4 +1,4 @@ -# Take-off and Landing (and Other Actions) +# Actions (Take-off, Landing, Arming, etc) DroneCore provides the [Action](../api_reference/classdronecore_1_1_action.md) class for commanding the vehicle to arm, takeoff, land, return home and land, disarm, kill and transition between VTOL modes. @@ -6,8 +6,21 @@ Most of the methods have both synchronous and asynchronous versions. The methods > **Note** The implication is that you may need to monitor for completion of actions! - -> **Note** All the code fragments below refer to the object `device`, which is a [connected device/vehicle](../guide/connections.md). +## Preconditions + +The following code assumes that you already have included DroneCore (`#include `) and that there is a [connection to a device](../guide/connections.md) obtained as shown below: +```cpp +Device &device = dc.device(); +``` + +The code also assumes that you have defined `action` and `telemetry`, shared pointers to instances of the respective classes that are associated with the device (see [Using Plugins](../guide/using_plugins.md)): +The code also assumes that you have included the `Action` and `Telemetry` headers and created an instance of the classes for the device (see [Using Plugins](../guide/using_plugins.md)): +```cpp +#include +#include +auto action = std::make_shared(&device); +auto telemetry = std::make_shared(&device); +``` ## Taking Off @@ -27,7 +40,7 @@ The code fragment below shows very simple code to synchronously poll for health ```cpp // Wait until health is OK and vehicle is ready to arm -while (device.telemetry().health_all_ok() != true) { +while (telemetry->health_all_ok() != true) { std::cout << "Vehicle not ready to arm ..." << std::endl; std::this_thread::sleep_for(std::chrono::seconds(1)); } @@ -37,7 +50,7 @@ The code fragment below performs the same task, but additionally exits the app i ```cpp // Exit if calibration is required -Telemetry::Health check_health = device.telemetry().health(); +Telemetry::Health check_health = telemetry->health(); bool calibration_required = false; if (!check_health.gyrometer_calibration_ok) { std::cout << ERROR_CONSOLE_TEXT << "Gyro requires calibration." << NORMAL_CONSOLE_TEXT << std::endl; @@ -61,9 +74,9 @@ if (calibration_required) { // Check if ready to arm (reporting status) -while (device.telemetry().health_all_ok() != true) { +while (telemetry->health_all_ok() != true) { std::cout << ERROR_CONSOLE_TEXT << "Vehicle not ready to arm. Waiting on:" << NORMAL_CONSOLE_TEXT << std::endl; - Telemetry::Health current_health = device.telemetry().health(); + Telemetry::Health current_health = telemetry->health(); if (!current_health.global_position_ok) { std::cout << ERROR_CONSOLE_TEXT << " - GPS fix." << NORMAL_CONSOLE_TEXT << std::endl; } @@ -86,7 +99,7 @@ Once the vehicle is ready, use the following synchronous code to arm: ```cpp // Arm vehicle std::cout << "Arming..." << std::endl; -const Action::Result arm_result = device.action().arm(); +const Action::Result arm_result = action->arm(); if (arm_result != Action::Result::SUCCESS) { std::cout << "Arming failed:" @@ -103,7 +116,7 @@ if (arm_result != Action::Result::SUCCESS) { The default/current takeoff altitude can be queried using [get_takeoff_altitude_m()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a1888deebcc48d906c3c19473596e6fec). This target can be changed at any point before takeoff using [set_takeoff_altitude()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1adc6f7f6668d3681afa4d820095154c9d). The code fragment below shows how to set the takeoff altitude to 3 metres: ```cpp -device.action().set_takeoff_altitude(3.0); +action->set_takeoff_altitude(3.0); ``` ### Takeoff Action @@ -112,7 +125,7 @@ Once the vehicle is armed it can be commanded to take off. The code below uses t ```cpp // Command Take off std::cout << "Taking off..." << std::endl; -const Action::Result takeoff_result = device.action().takeoff(); +const Action::Result takeoff_result = action->takeoff(); if (takeoff_result != Action::Result::SUCCESS) { std::cout << "Takeoff failed:" << Action::result_str( takeoff_result) << std::endl; @@ -127,10 +140,10 @@ If the command succeeds the vehicle will takeoff, and hover at the takeoff altit The code below checks for takeoff completion by polling the current altitude until the target altitude is reached: ```cpp -float target_alt=device.action().get_takeoff_altitude_m(); +float target_alt=action->get_takeoff_altitude_m(); float current_position=0; while (current_positionposition().relative_altitude_m; std::this_thread::sleep_for(std::chrono::seconds(1)); } // Reached target altitude - continue with next instruction. @@ -146,7 +159,7 @@ The best way to land the vehicle at the current location is to use the [land()]( The code below shows how to use the land action. ```cpp -const Action::Result land_result = device.action().land(); +const Action::Result land_result = action->land(); if (land_result != Action::Result::SUCCESS) { //Land failed, so exit (in reality might try a return to land or kill.) return 1; @@ -157,7 +170,7 @@ The vehicle should land and then automatically disarm. If you want to monitor th app based on the armed state, as shown below. ```cpp -while (device.telemetry().armed()) { +while (telemetry->armed()) { std::this_thread::sleep_for(std::chrono::seconds(1)); } std::cout << "Disarmed, exiting." << std::endl; @@ -171,7 +184,7 @@ std::cout << "Disarmed, exiting." << std::endl; The code below shows how to use the synchronous method: ```cpp -const Action::Result rtl_result = device.action().return_to_launch(); +const Action::Result rtl_result = telemetry->return_to_launch(); if (rtl_result != Action::Result::SUCCESS) { //RTL failed, so exit (in reality might send kill command.) return 1; @@ -214,7 +227,7 @@ The code fragment below shows how to call the synchronous action to transition t and to print the result of the call (the other synchronous method is used in the same way). ```cpp -const Action::Result fw_result = device.action().transition_to_fixedwing(); +const Action::Result fw_result = action->transition_to_fixedwing(); if (fw_result != Action::Result::SUCCESS) { std::cout << "Transition to fixed wing failed: " diff --git a/en/guide/telemetry.md b/en/guide/telemetry.md index c5c1cab..996c217 100644 --- a/en/guide/telemetry.md +++ b/en/guide/telemetry.md @@ -2,9 +2,8 @@ The [Telemetry](../api_reference/classdronecore_1_1_telemetry.md) class provides simple methods for getting vehicle telemetry, including state and flight mode information. -All the methods have both synchronous and asynchronous versions, and users can set the rate at which the vehicle provides updates for each type of information. +All the methods have both synchronous and asynchronous versions, and users can set the rate at which the vehicle provides updates for each type of information. All the methods of a particular type (synchronous, asynchronous, and set_rate methods) are used in the same way. -All the methods of a particular type (synchronous, asynchronous, and set_rate methods) are used in the same way. ## API Overview @@ -25,6 +24,20 @@ In addition there are a number of methods that return vehicle "state": * Whether the vehicle is flying/in air. +## Preconditions + +The following code assumes that you already have included DroneCore (`#include `) and that there is a [connection to a device](../guide/connections.md) obtained as shown below: +```cpp +Device &device = dc.device(); +``` + +The code also assumes that you have defined `telemetry`, a shared pointer to an instance of the `Telemetry` class associated with the device (see [Using Plugins](../guide/using_plugins.md)): +``` +#include +auto telemetry = std::make_shared(&device); +``` + + ## Setting the Update Rate {#update-rate} The telemetry update rate determines the frequency at which callbacks will be invoked with new information, and also the probable "freshness" of data obtained when using synchronous telemetry APIs. The default update rate depends on the autopilot and may also be limited by the characteristics of the communications channel. You can set the rate for *each* type of telemetry, and both synchronous or asynchronous rate-setting methods are provided. @@ -36,7 +49,7 @@ The rate-setting methods are all used in the same way, so we just show one examp To set the position update rate synchronously (in this case using [set_rate_position()](../api_reference/classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1ae7a6e1313b1508fef7163287aa77a6da)): ```cpp // Set position update rate to 1 Hz. -const Telemetry::Result set_rate_result = dc.device().telemetry().set_rate_position(1.0); +const Telemetry::Result set_rate_result = telemetry->set_rate_position(1.0); if (set_rate_result != Telemetry::Result::SUCCESS) { // handle rate-setting failure (in this case print error) std::cout << "Setting rate failed:" << Telemetry::result_str(set_rate_result) << std::endl; @@ -51,7 +64,7 @@ To set the position update rate asynchronously with [set_rate_position_async()]( auto prom = std::make_shared>(); auto future_result = prom->get_future(); // Set position update rate to 1 Hz. - device.telemetry().set_rate_position_async(1.0, [prom](Telemetry::Result result) { + telemetry->set_rate_position_async(1.0, [prom](Telemetry::Result result) { prom->set_value(result); //fulfill promise }); @@ -76,7 +89,7 @@ void dronecore::Telemetry::position_async(position_callback_t callback) The code fragment below shows this method being use with a lambda function for the callback, which simply prints out the current position and altitude). ```cpp -device.telemetry().position_async([](Telemetry::Position position) { +telemetry->position_async([](Telemetry::Position position) { std::cout << "Altitude: " << position.relative_altitude_m << " m" << std::endl << "Latitude: " << position.latitude_deg << std::endl << "Longitude: " << position.longitude_deg << std::endl; @@ -93,7 +106,7 @@ The example below shows how to use [flight_mode_async()](../api_reference/classd ```cpp // Set up callback to monitor flight mode 'changes' Telemetry::FlightMode oldFlightMode=Telemetry::FlightMode::UNKNOWN; -device.telemetry().flight_mode_async([&oldFlightMode](Telemetry::FlightMode flightMode) { +telemetry->flight_mode_async([&oldFlightMode](Telemetry::FlightMode flightMode) { if (oldFlightMode != flightMode) { //Flight mode changed. Print! std::cout << "FlightMode: " << Telemetry::flight_mode_str(flightMode) << std::endl; @@ -115,7 +128,7 @@ Often the easiest approach is to use synchronous methods and poll for the result ```cpp // Check if vehicle is ready to arm -while (!device.telemetry().health_all_ok()) { +while (!telemetry->health_all_ok()) { std::cout << "Vehicle not ready to arm" << std::endl; std::this_thread::sleep_for(std::chrono::seconds(1)); } @@ -129,7 +142,7 @@ Similarly, you can use the asynchronous method and block std::cout << "Waiting for device to be ready" << std::endl; auto prom = std::make_shared>(); auto future_result = prom->get_future(); - device.telemetry().health_all_ok_async( + telemetry->health_all_ok_async( [prom](bool result) { //fulfill promise if health is OK if (result) {// health OK diff --git a/en/guide/toolchain.md b/en/guide/toolchain.md index c6922a2..282e63e 100644 --- a/en/guide/toolchain.md +++ b/en/guide/toolchain.md @@ -22,7 +22,7 @@ The sections below show how you can set up the file for when DroneCore is [insta ### DroneCore Installed System-wide {#dronecore_installed_system} -A "template" **CMakeLists.txt** is shown below. Most of file is boilerplate - the only things you need to change are *your_project_name*, *your_executable_name* and *your_source_file*. +A "template" **CMakeLists.txt** is shown below. Most of file is boilerplate - the main things you need to change are *your_project_name*, *your_executable_name* and *your_source_file*. You should also make sure that any plugins used by your app are listed in the `target_link_libraries` section. ```cmake cmake_minimum_required(VERSION 2.8.12) @@ -35,6 +35,8 @@ if(NOT MSVC) add_definitions("-std=c++11 -Wall -Wextra -Werror") else() add_definitions("-std=c++11 -WX -W2") + include_directories(${CMAKE_SOURCE_DIR}/../../install/include) + link_directories(${CMAKE_SOURCE_DIR}/../../install/lib) endif() # Specify your app's executable name, and list of source files used to create it. @@ -46,7 +48,9 @@ add_executable(your_executable_name # Specify your app's executable name and a list of linked libraries target_link_libraries(your_executable_name dronecore #All apps link against dronecore library - # ... any other linked libraries + dronecore_action # If action plugin used by app ... + dronecore_telemetry If telemetry plugin used by app ... + # ... Any other linked libraries ) ``` diff --git a/en/guide/using_plugins.md b/en/guide/using_plugins.md new file mode 100644 index 0000000..b70361b --- /dev/null +++ b/en/guide/using_plugins.md @@ -0,0 +1,32 @@ +# Using Plugins (Managing Devices) + +Access to drone information, telemetry and control objects are provided by a number of different *plugins*. For example, the [Action](../api_reference/classdronecore_1_1_action.md) plugin is used to arm, takeoff and land the vehicle, while the [Telemetry](../guide/telemetry.md) plugin can be used to query the device GPS status, flight mode, etc. A separate plugin instance must be created for each device that needs it. + +> **Note** All plugins are added/used in the same way. This topic uses the `Action` plugin for the purposes of the demonstration. + +To use a plugin first link the plugin library into the application. Do this by adding it to the `target_link_libraries` section of the app's *cmake* build definition file: + +```cmake +target_link_libraries(takeoff_and_land + dronecore + dronecore_action +) +``` + +> **Note** Plugins are named using the convention **dronecore\__plugin\_name_.so**. For more information see [Building C++ Apps](../guide/toolchain.md) + + +In the application source code: +1. `#include` the plugin header file. + ```cpp + #include + ``` +1. Connect to a `Device` object (see [Connecting to Devices](../guide/connections.md)). +1. Make a shared pointer to the plugin object, specifying the `Device` it is to be used with: + ```cpp + auto action = std::make_shared(&device); + ``` +1. The pointer can then be used to invoke actions on the specified device. For example, to takeoff you would call the API as shown: + ```cpp + action->takeoff(); + ``` From 77b1afb21d30b7313d007ad7057941f58fb4e050 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 6 Feb 2018 11:08:29 +1100 Subject: [PATCH 063/107] Make clear statement about indoor use support --- en/getting_started/faq.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/en/getting_started/faq.md b/en/getting_started/faq.md index beb3b44..e400d1c 100644 --- a/en/getting_started/faq.md +++ b/en/getting_started/faq.md @@ -18,6 +18,14 @@ The DroneCore API is designed for interacting with *aircraft* (copters, fixed wi The API may "work" with ground based vehicle or other type, but some methods will not make sense, and this use-case is unsupported and untested. +### Does DroneCore support indoor use? + +Indoor use is not supported (at time of writing). + +DroneCore requires that connected vehicles have a position estimate. Currently this means that GPS is required. +In future we also expect PX4 to support local positioning methods (optical flow or visual-inertial odometry), at which point indoor use will also become possible. + + ### Are serial connections supported? The architecture has stubs for serial, TCP, and UDP connections. However, only UDP connections are implemented right now. From a6cdb74dcb3dac71daab6efd1b20e4fe2cfbbdac Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 6 Feb 2018 13:21:31 +1100 Subject: [PATCH 064/107] Fix incorrect constructor description --- en/api_reference/classdronecore_1_1_action.md | 7 +- ...ssdronecore_1_1_device_plugin_container.md | 160 ------------------ .../classdronecore_1_1_follow_me.md | 7 +- en/api_reference/classdronecore_1_1_gimbal.md | 7 +- en/api_reference/classdronecore_1_1_info.md | 7 +- .../classdronecore_1_1_logging.md | 7 +- .../classdronecore_1_1_mission.md | 7 +- .../classdronecore_1_1_offboard.md | 8 +- .../classdronecore_1_1_telemetry.md | 8 +- 9 files changed, 16 insertions(+), 202 deletions(-) delete mode 100644 en/api_reference/classdronecore_1_1_device_plugin_container.md diff --git a/en/api_reference/classdronecore_1_1_action.md b/en/api_reference/classdronecore_1_1_action.md index 21fbf69..9856772 100644 --- a/en/api_reference/classdronecore_1_1_action.md +++ b/en/api_reference/classdronecore_1_1_action.md @@ -67,8 +67,7 @@ const char * | [result_str](#classdronecore_1_1_action_1a1fefb474ee36cb15fe31b42 dronecore::Action::Action(Device *device) ``` - -Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). The plugin is typically created as shown below: @@ -77,11 +76,9 @@ auto action = std::make_shared(&device); ``` -The plugin is owned by the device (and will be destroyed along with it). - **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - The device associated with this plugin. +* [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. ### ~Action() {#classdronecore_1_1_action_1a6bb0301fecf66d75ca3b27bda25af7f2} ```cpp diff --git a/en/api_reference/classdronecore_1_1_device_plugin_container.md b/en/api_reference/classdronecore_1_1_device_plugin_container.md deleted file mode 100644 index 7367687..0000000 --- a/en/api_reference/classdronecore_1_1_device_plugin_container.md +++ /dev/null @@ -1,160 +0,0 @@ -# dronecore::DevicePluginContainer Class Reference -`#include: device_plugin_container.h` - ----- - - -The [DevicePluginContainer](classdronecore_1_1_device_plugin_container.md) contains all plugins for a device. - - -The content of the [DevicePluginContainer](classdronecore_1_1_device_plugin_container.md) is auto-generated at compile time. Plugins such as [Action](classdronecore_1_1_action.md) or [Telemetry](classdronecore_1_1_telemetry.md) are included so that they can be accessed using [DroneCore::device()](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a5bac6e419e56a1f77a51adef98e94e7c).[action()](classdronecore_1_1_device_plugin_container.md#classdronecore_1_1_device_plugin_container_1aea48bd55b1ace227ebb56690794c2192)... - - -## Public Member Functions - - -Type | Name | Description ----: | --- | --- -| [DevicePluginContainer](#classdronecore_1_1_device_plugin_container_1af4c0f2facc64a99818737971f7f1cc77) (const DevicePluginContainer &)=delete | Copy constructor (object is not copyable). -[Info](classdronecore_1_1_info.md) & | [info](#classdronecore_1_1_device_plugin_container_1a1509e3d7a469cbc3e33471138b1f4dc7) () | -[Logging](classdronecore_1_1_logging.md) & | [logging](#classdronecore_1_1_device_plugin_container_1a0551f966021bdbd9e41700232c33d379) () | -[Telemetry](classdronecore_1_1_telemetry.md) & | [telemetry](#classdronecore_1_1_device_plugin_container_1a9b119348d0f5195c9b0919fbe6196b14) () | -[FollowMe](classdronecore_1_1_follow_me.md) & | [follow_me](#classdronecore_1_1_device_plugin_container_1ae13164c3bb59230c559341b8506c5e03) () | -[Action](classdronecore_1_1_action.md) & | [action](#classdronecore_1_1_device_plugin_container_1aea48bd55b1ace227ebb56690794c2192) () | -[Gimbal](classdronecore_1_1_gimbal.md) & | [gimbal](#classdronecore_1_1_device_plugin_container_1a2fce9f439c565af9a8510c5746c728f0) () | -[Offboard](classdronecore_1_1_offboard.md) & | [offboard](#classdronecore_1_1_device_plugin_container_1a63193bd25273bbda48665e12e012f478) () | -[Mission](classdronecore_1_1_mission.md) & | [mission](#classdronecore_1_1_device_plugin_container_1a8a05778326d0ef4c74146bc42fdcb52d) () | -const [DevicePluginContainer](classdronecore_1_1_device_plugin_container.md) & | [operator=](#classdronecore_1_1_device_plugin_container_1abb90ffceec0873823fb78067d8d6e385) (const DevicePluginContainer &)=delete | Equality operator (object is not copyable). - - -## Constructor & Destructor Documentation - - -### DevicePluginContainer() {#classdronecore_1_1_device_plugin_container_1af4c0f2facc64a99818737971f7f1cc77} -```cpp -dronecore::DevicePluginContainer::DevicePluginContainer(const DevicePluginContainer &)=delete -``` - - -Copy constructor (object is not copyable). - - -**Parameters** - -* const [DevicePluginContainer](classdronecore_1_1_device_plugin_container.md) & - - -## Member Function Documentation - - -### info() {#classdronecore_1_1_device_plugin_container_1a1509e3d7a469cbc3e33471138b1f4dc7} -```cpp -Info& dronecore::DevicePluginContainer::info() -``` - - -Getter for [Info](classdronecore_1_1_info.md) plugin. - -**Returns** - - [Info](classdronecore_1_1_info.md) & - a reference to the info plugin instance - -### logging() {#classdronecore_1_1_device_plugin_container_1a0551f966021bdbd9e41700232c33d379} -```cpp -Logging& dronecore::DevicePluginContainer::logging() -``` - - -Getter for [Logging](classdronecore_1_1_logging.md) plugin. - -**Returns** - - [Logging](classdronecore_1_1_logging.md) & - a reference to the logging plugin instance - -### telemetry() {#classdronecore_1_1_device_plugin_container_1a9b119348d0f5195c9b0919fbe6196b14} -```cpp -Telemetry& dronecore::DevicePluginContainer::telemetry() -``` - - -Getter for [Telemetry](classdronecore_1_1_telemetry.md) plugin. - -**Returns** - - [Telemetry](classdronecore_1_1_telemetry.md) & - a reference to the telemetry plugin instance - -### follow_me() {#classdronecore_1_1_device_plugin_container_1ae13164c3bb59230c559341b8506c5e03} -```cpp -FollowMe& dronecore::DevicePluginContainer::follow_me() -``` - - -Getter for [FollowMe](classdronecore_1_1_follow_me.md) plugin. - -**Returns** - - [FollowMe](classdronecore_1_1_follow_me.md) & - a reference to the follow_me plugin instance - -### action() {#classdronecore_1_1_device_plugin_container_1aea48bd55b1ace227ebb56690794c2192} -```cpp -Action& dronecore::DevicePluginContainer::action() -``` - - -Getter for [Action](classdronecore_1_1_action.md) plugin. - -**Returns** - - [Action](classdronecore_1_1_action.md) & - a reference to the action plugin instance - -### gimbal() {#classdronecore_1_1_device_plugin_container_1a2fce9f439c565af9a8510c5746c728f0} -```cpp -Gimbal& dronecore::DevicePluginContainer::gimbal() -``` - - -Getter for [Gimbal](classdronecore_1_1_gimbal.md) plugin. - -**Returns** - - [Gimbal](classdronecore_1_1_gimbal.md) & - a reference to the gimbal plugin instance - -### offboard() {#classdronecore_1_1_device_plugin_container_1a63193bd25273bbda48665e12e012f478} -```cpp -Offboard& dronecore::DevicePluginContainer::offboard() -``` - - -Getter for [Offboard](classdronecore_1_1_offboard.md) plugin. - -**Returns** - - [Offboard](classdronecore_1_1_offboard.md) & - a reference to the offboard plugin instance - -### mission() {#classdronecore_1_1_device_plugin_container_1a8a05778326d0ef4c74146bc42fdcb52d} -```cpp -Mission& dronecore::DevicePluginContainer::mission() -``` - - -Getter for [Mission](classdronecore_1_1_mission.md) plugin. - -**Returns** - - [Mission](classdronecore_1_1_mission.md) & - a reference to the mission plugin instance - -### operator=() {#classdronecore_1_1_device_plugin_container_1abb90ffceec0873823fb78067d8d6e385} -```cpp -const DevicePluginContainer& dronecore::DevicePluginContainer::operator=(const DevicePluginContainer &)=delete -``` - - -Equality operator (object is not copyable). - - -**Parameters** - -* const [DevicePluginContainer](classdronecore_1_1_device_plugin_container.md) & - - -**Returns** - - const [DevicePluginContainer](classdronecore_1_1_device_plugin_container.md) & - \ No newline at end of file diff --git a/en/api_reference/classdronecore_1_1_follow_me.md b/en/api_reference/classdronecore_1_1_follow_me.md index d0e0e1c..d948cd3 100644 --- a/en/api_reference/classdronecore_1_1_follow_me.md +++ b/en/api_reference/classdronecore_1_1_follow_me.md @@ -61,8 +61,7 @@ std::string | [result_str](#classdronecore_1_1_follow_me_1a50d848b1c7b00e40343b8 dronecore::FollowMe::FollowMe(Device *device) ``` - -Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). The plugin is typically created as shown below: @@ -71,11 +70,9 @@ auto follow_me = std::make_shared(&device); ``` -The plugin is owned by the device (and will be destroyed along with it). - **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - The device associated with this plugin. +* [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. ### ~FollowMe() {#classdronecore_1_1_follow_me_1a66ffe3c9652bc08a2766f211592316ac} ```cpp diff --git a/en/api_reference/classdronecore_1_1_gimbal.md b/en/api_reference/classdronecore_1_1_gimbal.md index a780033..bc48338 100644 --- a/en/api_reference/classdronecore_1_1_gimbal.md +++ b/en/api_reference/classdronecore_1_1_gimbal.md @@ -46,8 +46,7 @@ const char * | [result_str](#classdronecore_1_1_gimbal_1ad60c5378cc7d160be67432f dronecore::Gimbal::Gimbal(Device *device) ``` - -Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). The plugin is typically created as shown below: @@ -56,11 +55,9 @@ auto gimbal = std::make_shared(&device); ``` -The plugin is owned by the device (and will be destroyed along with it). - **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - The device associated with this plugin. +* [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. ### ~Gimbal() {#classdronecore_1_1_gimbal_1a4f8b2a6cf5a7347a474f8e47618ad838} ```cpp diff --git a/en/api_reference/classdronecore_1_1_info.md b/en/api_reference/classdronecore_1_1_info.md index c33e0fb..489db1f 100644 --- a/en/api_reference/classdronecore_1_1_info.md +++ b/en/api_reference/classdronecore_1_1_info.md @@ -42,8 +42,7 @@ static const unsigned [GIT_HASH_STR_LEN](#classdronecore_1_1_info_1aae671143f80e dronecore::Info::Info(Device *device) ``` - -Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). The plugin is typically created as shown below: @@ -52,11 +51,9 @@ auto info = std::make_shared(&device); ``` -The plugin is owned by the device (and will be destroyed along with it). - **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - The device associated with this plugin. +* [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. ### ~Info() {#classdronecore_1_1_info_1a39e608070500b5fca0b4415cdb13f75f} ```cpp diff --git a/en/api_reference/classdronecore_1_1_logging.md b/en/api_reference/classdronecore_1_1_logging.md index daad518..2d2c98c 100644 --- a/en/api_reference/classdronecore_1_1_logging.md +++ b/en/api_reference/classdronecore_1_1_logging.md @@ -48,8 +48,7 @@ const char * | [result_str](#classdronecore_1_1_logging_1adc5a7560f1a27996fc05f2 dronecore::Logging::Logging(Device *device) ``` - -Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). The plugin is typically created as shown below: @@ -58,11 +57,9 @@ auto logger = std::make_shared(&device); ``` -The plugin is owned by the device (and will be destroyed along with it). - **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - The device associated with this plugin. +* [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. ### ~Logging() {#classdronecore_1_1_logging_1a49e75d77f900ba5ef59a960ae9b8dc55} ```cpp diff --git a/en/api_reference/classdronecore_1_1_mission.md b/en/api_reference/classdronecore_1_1_mission.md index bd4107d..de36b08 100644 --- a/en/api_reference/classdronecore_1_1_mission.md +++ b/en/api_reference/classdronecore_1_1_mission.md @@ -52,8 +52,7 @@ const char * | [result_str](#classdronecore_1_1_mission_1a0eabb2fe4db664c552d281 dronecore::Mission::Mission(Device *device) ``` - -Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). The plugin is typically created as shown below: @@ -62,11 +61,9 @@ auto mission = std::make_shared(&device); ``` -The plugin is owned by the device (and will be destroyed along with it). - **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - The device associated with this plugin. +* [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. ### ~Mission() {#classdronecore_1_1_mission_1a395b8c121630aa8a5dd3d48f95290659} ```cpp diff --git a/en/api_reference/classdronecore_1_1_offboard.md b/en/api_reference/classdronecore_1_1_offboard.md index ba249d0..993782c 100644 --- a/en/api_reference/classdronecore_1_1_offboard.md +++ b/en/api_reference/classdronecore_1_1_offboard.md @@ -64,8 +64,7 @@ const char * | [result_str](#classdronecore_1_1_offboard_1a8eb7467e48fe354d34bc4 dronecore::Offboard::Offboard(Device *device) ``` - -Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). The plugin is typically created as shown below: @@ -73,12 +72,9 @@ The plugin is typically created as shown below: auto offboard = std::make_shared(&device); ``` - -The plugin is owned by the device (and will be destroyed along with it). - **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - The device associated with this plugin. +* [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. ### ~Offboard() {#classdronecore_1_1_offboard_1a7cb4eff36c37fed1c6d973aa41b059b8} ```cpp diff --git a/en/api_reference/classdronecore_1_1_telemetry.md b/en/api_reference/classdronecore_1_1_telemetry.md index 59ccefa..94f3b82 100644 --- a/en/api_reference/classdronecore_1_1_telemetry.md +++ b/en/api_reference/classdronecore_1_1_telemetry.md @@ -122,8 +122,7 @@ const char * | [result_str](#classdronecore_1_1_telemetry_1a05c6355b7f8743250b2a dronecore::Telemetry::Telemetry(Device *device) ``` - -Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). The plugin is typically created as shown below: @@ -131,12 +130,9 @@ The plugin is typically created as shown below: auto telemetry = std::make_shared(&device); ``` - -The plugin is owned by the device (and will be destroyed along with it). - **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - The device associated with this plugin. +* [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. ### ~Telemetry() {#classdronecore_1_1_telemetry_1ade5f44873d1fd5a5ec63037307920095} ```cpp From 16e3f62e8b8d1d3d6624ab1fd556de0d063e7e4d Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 6 Feb 2018 14:44:54 +1100 Subject: [PATCH 065/107] Add more extensive create-plugin sections --- en/guide/follow_me.md | 50 +++++++++++++++++++++++---------- en/guide/general_usage.md | 6 ++-- en/guide/missions.md | 47 +++++++++++++++++++++++-------- en/guide/offboard.md | 48 +++++++++++++++++++++++--------- en/guide/taking_off_landing.md | 51 +++++++++++++++++++++++++--------- en/guide/telemetry.md | 47 +++++++++++++++++++++++-------- en/guide/using_plugins.md | 8 ++++-- 7 files changed, 187 insertions(+), 70 deletions(-) diff --git a/en/guide/follow_me.md b/en/guide/follow_me.md index 0b2ca72..1dab838 100644 --- a/en/guide/follow_me.md +++ b/en/guide/follow_me.md @@ -8,19 +8,41 @@ The API is used to supply the position(s) for the [target](../api_reference/stru - Windows: [Windows.Devices.Geolocation](https://docs.microsoft.com/en-us/uwp/api/Windows.Devices.Geolocation) -## Preconditions - -The following code assumes that you already have included DroneCore (`#include `) -and that there is a [connection](../guide/connections.md) to a `device` obtained as shown below: -``` -Device &device = dc.device(); -``` - -The code also assumes that you have defined `follow_me`, a shared pointer to an instance of the `FollowMe` class associated with the device (see [Using Plugins](../guide/using_plugins.md)): -``` -#include -auto follow_me = std::make_shared(&device); -``` +## Create the Plugin + +> **Tip** `FollowMe` objects are created in the same way as other DroneCore plugins. General instructions are provided in the topic: [Using Plugins](../guide/using_plugins.md). + +The main steps are: + +1. Link the plugin library into your application. Do this by adding `dronecore_follow_me` to the `target_link_libraries` section of the app's *cmake* build definition file + + ```cmake + target_link_libraries(your_application_name + dronecore + ... + dronecore_follow_me + ... + ) + ``` +1. [Create a connection](../guide/connections.md) to a `device`. For example (basic code without error checking): + ``` + #include + DroneCore dc; + DroneCore::ConnectionResult conn_result = dc.add_udp_connection(); + // Wait for the device to connect via heartbeat + while (!dc.is_connected()) { + sleep_for(seconds(1)); + } + // Device got discovered. + Device &device = dc.device(); + ``` +1. Create a shared pointer to an instance of `FollowMe` instantiated with the `device`: + ``` + #include + auto follow_me = std::make_shared(&device); + ``` + +The `follow_me` pointer can then used to access the plugin API (as shown in the following sections). ## Set the Follow Configuration @@ -37,7 +59,7 @@ config.responsiveness = 0.2f; // Higher responsiveness config.follow_direction = FollowMe::Config::FollowDirection::FRONT; //Follow from front-centre // Apply configuration -FollowMe::Result config_result = follow_me->.set_config(config); +FollowMe::Result config_result = follow_me->set_config(config); if (config_result != FollowMe::Result::SUCCESS) { // handle config-setting failure (in this case print error) std::cout << "Setting configuration failed:" << FollowMe::result_str(config_result) << std::endl; diff --git a/en/guide/general_usage.md b/en/guide/general_usage.md index 1331a37..67cce49 100644 --- a/en/guide/general_usage.md +++ b/en/guide/general_usage.md @@ -4,13 +4,13 @@ This topic provides general/overview information about how DroneCore is used, de ## Object Management -[DroneCore](../api_reference/classdronecore_1_1_drone_core.md) is the main library class. Applications must create a `DroneCore` object and destroy it during application shut down. The object can be created as an automatic variable that is cleaned up when it goes out of scope, or you can dynamically create/destroy the object using `new`/`delete`. +[DroneCore](../api_reference/classdronecore_1_1_drone_core.md) is the main library class. Applications must create a `DroneCore` object and destroy it during application shut down. The object is usually created as an automatic variable that is cleaned up when it goes out of scope (you can also dynamically create/destroy the object using `new`/`delete`). API consumers use [DroneCore](../api_reference/classdronecore_1_1_drone_core.md) to discover and connect to [Device](../api_reference/classdronecore_1_1_device.md) objects (vehicles/cameras etc.). -Access to drone information and control objects are provided [by plugins](../guide/using_plugins.md). Plugin objects are created and associated with a *specific* `Device` object (a plugin instance must be created for every device that needs it). +Access to drone information and control objects are provided [by plugins](../guide/using_plugins.md) (e.g. Telemetry, Action, Mission etc.). Plugin objects are instantiated with a *specific* `Device` object (a plugin instance must be created for every device that needs it). -Plugin objects are owned by their associated `Device`, which is in turned owned by `DroneCore`. All objects are automatically cleaned up when the parent `DroneCore` object is destroyed. +Plugin objects are created as shared pointers that will be destroyed when all associated handles are out of scope. All objects are automatically cleaned up when the parent `DroneCore` object is destroyed. ## Error Handling diff --git a/en/guide/missions.md b/en/guide/missions.md index 7d8bae4..c333628 100644 --- a/en/guide/missions.md +++ b/en/guide/missions.md @@ -22,18 +22,41 @@ The supported set is: > DroneCore provides some omitted functionality through the [Action](../guide/taking_off_landing.md) API. -## Preconditions - -The following code assumes that you already have included DroneCore (`#include `) and the standard library (`#include `) and that there is a [connection to a device](../guide/connections.md) obtained as shown below: -```cpp -Device &device = dc.device(); -``` - -The code also assumes that you have defined `mission`, a shared pointer to an instance of the `Mission` class associated with the device (see [Using Plugins](../guide/using_plugins.md)): -``` -#include -auto mission = std::make_shared(&device); -``` +## Create the Plugin + +> **Tip** `Mission` objects are created in the same way as other DroneCore plugins. General instructions are provided in the topic: [Using Plugins](../guide/using_plugins.md). + +The main steps are: + +1. Link the plugin library into your application. Do this by adding `dronecore_mission` to the `target_link_libraries` section of the app's *cmake* build definition file + + ```cmake + target_link_libraries(your_application_name + dronecore + ... + dronecore_mission + ... + ) + ``` +1. [Create a connection](../guide/connections.md) to a `device`. For example (basic code without error checking): + ``` + #include + DroneCore dc; + DroneCore::ConnectionResult conn_result = dc.add_udp_connection(); + // Wait for the device to connect via heartbeat + while (!dc.is_connected()) { + sleep_for(seconds(1)); + } + // Device got discovered. + Device &device = dc.device(); + ``` +1. Create a shared pointer to an instance of `Mission` instantiated with the `device`: + ``` + #include + auto mission = std::make_shared(&device); + ``` + +The `mission` pointer can then used to access the plugin API (as shown in the following sections). ## Defining a Mission diff --git a/en/guide/offboard.md b/en/guide/offboard.md index 604ad71..aa564a9 100644 --- a/en/guide/offboard.md +++ b/en/guide/offboard.md @@ -8,19 +8,41 @@ for controlling the vehicle using velocity and yaw setpoints. It is useful for t Client code must specify a setpoint before starting *Offboard mode*. DroneCore automatically resends setpoints at 20Hz (PX4 requires that setpoints are minimally resent at 2Hz). If more precise control is required, clients can call the setpoint methods at whatever rate is required. -## Preconditions - -The following code assumes that you already have included DroneCore (`#include `) -and that there is a [connection](../guide/connections.md) to a `device` obtained as shown below: -``` -Device &device = dc.device(); -``` - -The code also assumes that you have defined `offboard`, a shared pointer to an instance of the `Offboard` class associated with the device (see [Using Plugins](../guide/using_plugins.md)): -``` -#include -auto offboard = std::make_shared(&device); -``` +## Create the Plugin + +> **Tip** `Offboard` objects are created in the same way as other DroneCore plugins. General instructions are provided in the topic: [Using Plugins](../guide/using_plugins.md). + +The main steps are: + +1. Link the plugin library into your application. Do this by adding `dronecore_offboard` to the `target_link_libraries` section of the app's *cmake* build definition file + + ```cmake + target_link_libraries(your_application_name + dronecore + ... + dronecore_offboard + ... + ) + ``` +1. [Create a connection](../guide/connections.md) to a `device`. For example (basic code without error checking): + ``` + #include + DroneCore dc; + DroneCore::ConnectionResult conn_result = dc.add_udp_connection(); + // Wait for the device to connect via heartbeat + while (!dc.is_connected()) { + sleep_for(seconds(1)); + } + // Device got discovered. + Device &device = dc.device(); + ``` +1. Create a shared pointer to an instance of `Offboard` instantiated with the `device`: + ``` + #include + auto offboard = std::make_shared(&device); + ``` + +The `offboard` pointer can then used to access the plugin API (as shown in the following sections). ## Starting/Stopping Offboard Mode diff --git a/en/guide/taking_off_landing.md b/en/guide/taking_off_landing.md index 4c21c41..6fbcf6a 100644 --- a/en/guide/taking_off_landing.md +++ b/en/guide/taking_off_landing.md @@ -6,21 +6,46 @@ Most of the methods have both synchronous and asynchronous versions. The methods > **Note** The implication is that you may need to monitor for completion of actions! -## Preconditions -The following code assumes that you already have included DroneCore (`#include `) and that there is a [connection to a device](../guide/connections.md) obtained as shown below: -```cpp -Device &device = dc.device(); -``` -The code also assumes that you have defined `action` and `telemetry`, shared pointers to instances of the respective classes that are associated with the device (see [Using Plugins](../guide/using_plugins.md)): -The code also assumes that you have included the `Action` and `Telemetry` headers and created an instance of the classes for the device (see [Using Plugins](../guide/using_plugins.md)): -```cpp -#include -#include -auto action = std::make_shared(&device); -auto telemetry = std::make_shared(&device); -``` +## Create the Plugin + +> **Tip** `Action` objects are created in the same way as other DroneCore plugins. General instructions are provided in the topic: [Using Plugins](../guide/using_plugins.md). + +The main steps are: + +1. Link the plugin library into your application. Do this by adding `dronecore_action` to the `target_link_libraries` section of the app's *cmake* build definition file + + ```cmake + target_link_libraries(your_application_name + dronecore + ... + dronecore_action + ... + ) + ``` +1. [Create a connection](../guide/connections.md) to a `device`. For example (basic code without error checking): + ``` + #include + DroneCore dc; + DroneCore::ConnectionResult conn_result = dc.add_udp_connection(); + // Wait for the device to connect via heartbeat + while (!dc.is_connected()) { + sleep_for(seconds(1)); + } + // Device got discovered. + Device &device = dc.device(); + ``` +1. Create a shared pointer to an instance of `Action` instantiated with the `device`: + ``` + #include + auto action = std::make_shared(&device); + ``` + +The `action` pointer can then used to access the plugin API (as shown in the following sections). + + +> **Note** Some of the sections below additionally assume you have created a `Telemetry` instance that can be accessed using `telemetry`. ## Taking Off diff --git a/en/guide/telemetry.md b/en/guide/telemetry.md index 996c217..5715415 100644 --- a/en/guide/telemetry.md +++ b/en/guide/telemetry.md @@ -24,18 +24,41 @@ In addition there are a number of methods that return vehicle "state": * Whether the vehicle is flying/in air. -## Preconditions - -The following code assumes that you already have included DroneCore (`#include `) and that there is a [connection to a device](../guide/connections.md) obtained as shown below: -```cpp -Device &device = dc.device(); -``` - -The code also assumes that you have defined `telemetry`, a shared pointer to an instance of the `Telemetry` class associated with the device (see [Using Plugins](../guide/using_plugins.md)): -``` -#include -auto telemetry = std::make_shared(&device); -``` +## Create the Plugin + +> **Tip** `Telemetry` objects are created in the same way as other DroneCore plugins. General instructions are provided in the topic: [Using Plugins](../guide/using_plugins.md). + +The main steps are: + +1. Link the plugin library into your application. Do this by adding `dronecore_telemetry` to the `target_link_libraries` section of the app's *cmake* build definition file + + ```cmake + target_link_libraries(your_application_name + dronecore + ... + dronecore_telemetry + ... + ) + ``` +1. [Create a connection](../guide/connections.md) to a `device`. For example (basic code without error checking): + ``` + #include + DroneCore dc; + DroneCore::ConnectionResult conn_result = dc.add_udp_connection(); + // Wait for the device to connect via heartbeat + while (!dc.is_connected()) { + sleep_for(seconds(1)); + } + // Device got discovered. + Device &device = dc.device(); + ``` +1. Create a shared pointer to an instance of `Telemetry` instantiated with the `device`: + ``` + #include + auto telemetry = std::make_shared(&device); + ``` + +The `telemetry` pointer can then used to access the plugin API (as shown in the following sections). ## Setting the Update Rate {#update-rate} diff --git a/en/guide/using_plugins.md b/en/guide/using_plugins.md index b70361b..5e0957c 100644 --- a/en/guide/using_plugins.md +++ b/en/guide/using_plugins.md @@ -2,14 +2,16 @@ Access to drone information, telemetry and control objects are provided by a number of different *plugins*. For example, the [Action](../api_reference/classdronecore_1_1_action.md) plugin is used to arm, takeoff and land the vehicle, while the [Telemetry](../guide/telemetry.md) plugin can be used to query the device GPS status, flight mode, etc. A separate plugin instance must be created for each device that needs it. -> **Note** All plugins are added/used in the same way. This topic uses the `Action` plugin for the purposes of the demonstration. +> **Note** All plugins are declared/used in the same way. This topic uses the `Action` plugin for the purposes of the demonstration. To use a plugin first link the plugin library into the application. Do this by adding it to the `target_link_libraries` section of the app's *cmake* build definition file: ```cmake target_link_libraries(takeoff_and_land dronecore + ... dronecore_action + ... ) ``` @@ -17,11 +19,11 @@ target_link_libraries(takeoff_and_land In the application source code: -1. `#include` the plugin header file. +1. `#include` the header file for the plugin. ```cpp #include ``` -1. Connect to a `Device` object (see [Connecting to Devices](../guide/connections.md)). +1. [Create a connection](../guide/connections.md) to a `Device` object (below named: `device`). 1. Make a shared pointer to the plugin object, specifying the `Device` it is to be used with: ```cpp auto action = std::make_shared(&device); From 0b2e72f86122b5b9f94e275cbc42348e4e011dec Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Wed, 7 Feb 2018 18:02:44 +1100 Subject: [PATCH 066/107] Initial update for docker script info (in progress) --- en/contributing/build.md | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/en/contributing/build.md b/en/contributing/build.md index 3fe7bbc..0c94838 100644 --- a/en/contributing/build.md +++ b/en/contributing/build.md @@ -209,7 +209,7 @@ make ios_simulator install ## Building in Docker -You can also build DroneCore 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 DroneCore 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). There are containers based on Fedora and Ubuntu (it doesn't matter which you use). The main steps are: @@ -220,17 +220,22 @@ The main steps are: cd DroneCore git submodule update --init --recursive ``` -1. Enter the following command in your host's terminal: - ```sh - docker run --rm -it -v $HOME//DroneCore:/home/docker1000/src/DroneCore:rw dronecore/dronecore bash - ``` +1. Enter either of the following command in your host's terminal: + * Fedora + ```sh + docker run --rm -it -v $HOME/DroneCore:/home/docker1000/src/DroneCore:rw dronecore/dronecore-fedora-27 bash + ``` + * Ubuntu + ```sh + docker run --rm -it -v $HOME/DroneCore:/home/docker1000/src/DroneCore:rw dronecore/dronecore-ubuntu-16.04 bash + ``` > **Note** The `-v` flag maps a directory on your host (left side) to a path in the container (right side). Above you need to specify the left-side path to the DroneCore repository on your host. 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 DroneCore 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 DroneCore 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 an image from [Docker Hub](https://hub.docker.com/r/dronecore/dronecore/), use it to create a container, and then open a bash prompt: + Docker will download an image from [Docker Hub](https://hub.docker.com/u/dronecore/), use it to create a container, and then open a bash prompt: ``` root*81ebe14d0c1a:/home/docker1000/src/Dronecore# ``` @@ -264,16 +269,22 @@ docker run --rm -it -v $HOME//DroneCore:/home/docker1000 ### Building the Docker Image -The approach above downloads a container image ([dronecore/dronecore](https://hub.docker.com/r/dronecore/dronecore/)) from Docker Hub. +The approach above downloads a container image based on Ubuntu 16.04 ([dronecore/dronecore-ubuntu-16.04](https://hub.docker.com/r/dronecore/dronecore-ubuntu-16.04/)) or Fedora 27 ([dronecore/dronecore-fedora-27](https://hub.docker.com/r/dronecore/dronecore-fedora-27/)) from Docker Hub. -You can also build the image yourself using the [Dockerfile](https://github.com/dronecore/DroneCore/blob/master/Dockerfile) in the root of the DroneCore repository (this is based on Ubuntu 16.04). The image can be used in the same way as the one from Docker Hub. +You can also build the images yourself using the files in [DroneCore/docker](https://github.com/dronecore/DroneCore/tree/master/docker). The image can be used in the same way as the one from Docker Hub. 1. Open a command prompt/terminal in the root of the DroneCore repository. -1. Build the image as shown: - ```sh - docker build . -t my_image # 'my_image' can then be used to refer to the image - ``` -1. Open a bash prompt using this image: +1. Build the images as shown: + * Fedora + ```sh + docker build -f docker/Dockerfile-Fedora-27 -t my_image . + ``` + * Ubuntu + ```sh + docker build -f docker/Dockerfile-Ubuntu-16.04 -t my_image . + ``` + `my_image` can then be used to refer to the image in later steps. +1. Open a bash prompt using the newly created image: ```sh docker run --rm -it -v $HOME//DroneCore:/home/docker1000/src/DroneCore:rw my_image bash ``` From e7d74043a407f1173a9dd9a9aeb0ccd267d45fe3 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 8 Feb 2018 11:18:34 +1100 Subject: [PATCH 067/107] Finish update to current status --- en/contributing/build.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/en/contributing/build.md b/en/contributing/build.md index 0c94838..7fa2c59 100644 --- a/en/contributing/build.md +++ b/en/contributing/build.md @@ -209,7 +209,9 @@ make ios_simulator install ## Building in Docker -You can also build DroneCore 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). There are containers based on Fedora and Ubuntu (it doesn't matter which you use). +You can also build DroneCore 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! The main steps are: @@ -220,24 +222,22 @@ The main steps are: cd DroneCore git submodule update --init --recursive ``` -1. Enter either of the following command in your host's terminal: +1. Enter either of the following commands in your host's terminal: * Fedora ```sh - docker run --rm -it -v $HOME/DroneCore:/home/docker1000/src/DroneCore:rw dronecore/dronecore-fedora-27 bash + docker run --rm -it -v $HOME/DroneCore:/root/DroneCore:rw dronecore/dronecore-fedora-27 bash ``` * Ubuntu ```sh - docker run --rm -it -v $HOME/DroneCore:/home/docker1000/src/DroneCore:rw dronecore/dronecore-ubuntu-16.04 bash + docker run --rm -it -v $HOME/DroneCore:/root/DroneCore:rw dronecore/dronecore-ubuntu-16.04 bash ``` - > **Note** The `-v` flag maps a directory on your host (left side) to a path in - the container (right side). Above you need to specify the left-side path to the DroneCore repository on your host. 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 DroneCore 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 DroneCore 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 an image from [Docker Hub](https://hub.docker.com/u/dronecore/), use it to create a container, and then open a bash prompt: ``` - root*81ebe14d0c1a:/home/docker1000/src/Dronecore# + root*81ebe14d0c1a:~/Dronecore# ``` 1. In the terminal you can build DroneCore using the normal Linux `make` commands: ```sh @@ -251,20 +251,20 @@ The main steps are: make clean ``` -> **Note** Files built in a Docker container are owned by root. In order to clean up the **build** and **install** folders you will need to either call `make clean` in the container or `sudo make clean` in the host computer. +> **Note** Files built in a Docker container are owned by root. In order to clean up the **build** and **install** folders you will need to either call `make clean` in the container or `sudo make clean` in the host computer (or `sudo rm -r build`). ### Running single docker commands -You can also run build commands directly from your host (rather than opening bash), as shown below. +You can also run build commands directly from your host (rather than opening bash). Below we show this using the Ubuntu docker image: To make and install the C++ Library: ```bash -docker run --rm -it -v $HOME//DroneCore:/home/docker1000/src/DroneCore:rw dronecore/dronecore make install +docker run --rm -it -v $HOME//DroneCore:/root/DroneCore:rw dronecore/dronecore-ubuntu-16.04 make install ``` To run the code style check: ```bash -docker run --rm -it -v $HOME//DroneCore:/home/docker1000/src/DroneCore:rw dronecore/dronecore make fix_style +docker run --rm -it -v $HOME//DroneCore:/root/DroneCore:rw dronecore/dronecore-ubuntu-16.04 make fix_style ``` ### Building the Docker Image @@ -286,7 +286,7 @@ You can also build the images yourself using the files in [DroneCore/docker](htt `my_image` can then be used to refer to the image in later steps. 1. Open a bash prompt using the newly created image: ```sh - docker run --rm -it -v $HOME//DroneCore:/home/docker1000/src/DroneCore:rw my_image bash + docker run --rm -it -v $HOME//DroneCore:/root/DroneCore:rw my_image bash ``` ## Build DroneCore Extensions {#dronecore_extensions} From 42cd96a2f5cf254b86976cbfe2d9fd3ccb2d6bf4 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 8 Feb 2018 12:32:16 +1100 Subject: [PATCH 068/107] Make offboard example doc include correct source --- en/examples/offboard_velocity.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/en/examples/offboard_velocity.md b/en/examples/offboard_velocity.md index f83dbb2..d59392b 100644 --- a/en/examples/offboard_velocity.md +++ b/en/examples/offboard_velocity.md @@ -159,10 +159,8 @@ inline void offboard_log(const std::string &offb_mode, const std::string msg) * * returns true if everything went well in Offboard control, exits with a log otherwise. */ -bool offb_ctrl_ned(Device &device) +bool offb_ctrl_ned(std::shared_ptr offboard) { - std::shared_ptr offboard = std::make_shared(&device); - const std::string offb_mode = "NED"; // Send it once before starting offboard, otherwise it will be rejected. offboard->set_velocity_ned({0.0f, 0.0f, 0.0f, 0.0f}); @@ -214,9 +212,8 @@ bool offb_ctrl_ned(Device &device) * * returns true if everything went well in Offboard control, exits with a log otherwise. */ -bool offb_ctrl_body(Device &device) +bool offb_ctrl_body(std::shared_ptr offboard) { - std::shared_ptr offboard = std::make_shared(&device); const std::string offb_mode = "BODY"; @@ -296,14 +293,15 @@ int main(int, char **) std::cout << "In Air..." << std::endl; sleep_for(seconds(5)); + // using local NED co-ordinates - bool ret = offb_ctrl_ned(device); + bool ret = offb_ctrl_ned(offboard); if (ret == false) { return EXIT_FAILURE; } // using body co-ordinates - ret = offb_ctrl_body(device); + ret = offb_ctrl_body(offboard); if (ret == false) { return EXIT_FAILURE; } From 50e85692119ed29e1cc83605564e5522ebe50170 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 8 Feb 2018 12:34:45 +1100 Subject: [PATCH 069/107] Update api ref with regenerated text from tool --- en/api_reference/classdronecore_1_1_action.md | 4 ++-- en/api_reference/classdronecore_1_1_follow_me.md | 4 ++-- en/api_reference/classdronecore_1_1_gimbal.md | 4 ++-- en/api_reference/classdronecore_1_1_info.md | 4 ++-- en/api_reference/classdronecore_1_1_logging.md | 6 +++--- en/api_reference/classdronecore_1_1_mission.md | 4 ++-- en/api_reference/classdronecore_1_1_offboard.md | 3 ++- en/api_reference/classdronecore_1_1_telemetry.md | 3 ++- 8 files changed, 17 insertions(+), 15 deletions(-) diff --git a/en/api_reference/classdronecore_1_1_action.md b/en/api_reference/classdronecore_1_1_action.md index 9856772..0487ad9 100644 --- a/en/api_reference/classdronecore_1_1_action.md +++ b/en/api_reference/classdronecore_1_1_action.md @@ -26,7 +26,7 @@ std::function< void([Result](classdronecore_1_1_action.md#classdronecore_1_1_act Type | Name | Description ---: | --- | --- -| [Action](#classdronecore_1_1_action_1a9fd3af84d59048b3c787ed0c5644ed07) (Device *device) | Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +| [Action](#classdronecore_1_1_action_1a9fd3af84d59048b3c787ed0c5644ed07) (Device *device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). | [~Action](#classdronecore_1_1_action_1a6bb0301fecf66d75ca3b27bda25af7f2) () | Destructor (internal use only). | [Action](#classdronecore_1_1_action_1ae48b0e06ca2b4b7544a10c7734a03f63) (const Action &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [arm](#classdronecore_1_1_action_1a8b8631ea15655f0c922a9ba7d2e1c72c) () const | Send command to *arm* the drone (synchronous). @@ -67,6 +67,7 @@ const char * | [result_str](#classdronecore_1_1_action_1a1fefb474ee36cb15fe31b42 dronecore::Action::Action(Device *device) ``` + Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). The plugin is typically created as shown below: @@ -75,7 +76,6 @@ The plugin is typically created as shown below: auto action = std::make_shared(&device); ``` - **Parameters** * [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. diff --git a/en/api_reference/classdronecore_1_1_follow_me.md b/en/api_reference/classdronecore_1_1_follow_me.md index d948cd3..bb2a105 100644 --- a/en/api_reference/classdronecore_1_1_follow_me.md +++ b/en/api_reference/classdronecore_1_1_follow_me.md @@ -33,7 +33,7 @@ enum [Result](#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) Type | Name | Description ---: | --- | --- -| [FollowMe](#classdronecore_1_1_follow_me_1a2d3cbcee491efa09392e6333ae77926c) (Device *device) | Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +| [FollowMe](#classdronecore_1_1_follow_me_1a2d3cbcee491efa09392e6333ae77926c) (Device *device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). | [~FollowMe](#classdronecore_1_1_follow_me_1a66ffe3c9652bc08a2766f211592316ac) () | Destructor (internal use only). | [FollowMe](#classdronecore_1_1_follow_me_1a54589c314eeba131aca1c4c56d4b15e3) (const FollowMe &)=delete | Copy constructor (object is not copyable). const [Config](structdronecore_1_1_follow_me_1_1_config.md) & | [get_config](#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5) () const | Gets current [FollowMe](classdronecore_1_1_follow_me.md) configuration. @@ -61,6 +61,7 @@ std::string | [result_str](#classdronecore_1_1_follow_me_1a50d848b1c7b00e40343b8 dronecore::FollowMe::FollowMe(Device *device) ``` + Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). The plugin is typically created as shown below: @@ -69,7 +70,6 @@ The plugin is typically created as shown below: auto follow_me = std::make_shared(&device); ``` - **Parameters** * [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. diff --git a/en/api_reference/classdronecore_1_1_gimbal.md b/en/api_reference/classdronecore_1_1_gimbal.md index bc48338..f16ca19 100644 --- a/en/api_reference/classdronecore_1_1_gimbal.md +++ b/en/api_reference/classdronecore_1_1_gimbal.md @@ -23,7 +23,7 @@ std::function< void([Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gim Type | Name | Description ---: | --- | --- -| [Gimbal](#classdronecore_1_1_gimbal_1a2a5ad56ba40eaacc0261f82ed49407e6) (Device *device) | Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +| [Gimbal](#classdronecore_1_1_gimbal_1a2a5ad56ba40eaacc0261f82ed49407e6) (Device *device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). | [~Gimbal](#classdronecore_1_1_gimbal_1a4f8b2a6cf5a7347a474f8e47618ad838) () | Destructor (internal use only). | [Gimbal](#classdronecore_1_1_gimbal_1a82637c62da14ae39db96724d4273cad4) (const Gimbal &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a2404686489b502fbc58e940701ba1e6f) | [set_pitch_and_yaw](#classdronecore_1_1_gimbal_1ac8ac49d29f11b2107da6b043bb57b54e) (float pitch_deg, float yaw_deg) | Set gimbal pitch and yaw angles (synchronous). @@ -46,6 +46,7 @@ const char * | [result_str](#classdronecore_1_1_gimbal_1ad60c5378cc7d160be67432f dronecore::Gimbal::Gimbal(Device *device) ``` + Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). The plugin is typically created as shown below: @@ -54,7 +55,6 @@ The plugin is typically created as shown below: auto gimbal = std::make_shared(&device); ``` - **Parameters** * [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. diff --git a/en/api_reference/classdronecore_1_1_info.md b/en/api_reference/classdronecore_1_1_info.md index 489db1f..86a6bd4 100644 --- a/en/api_reference/classdronecore_1_1_info.md +++ b/en/api_reference/classdronecore_1_1_info.md @@ -19,7 +19,7 @@ struct [Version](structdronecore_1_1_info_1_1_version.md) Type | Name | Description ---: | --- | --- -| [Info](#classdronecore_1_1_info_1a10ea70679e1b2d7e43bc9944fbe18aaf) (Device *device) | Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +| [Info](#classdronecore_1_1_info_1a10ea70679e1b2d7e43bc9944fbe18aaf) (Device *device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). | [~Info](#classdronecore_1_1_info_1a39e608070500b5fca0b4415cdb13f75f) () | Destructor (internal use only). | [Info](#classdronecore_1_1_info_1af0902805d75577d1195363eda21d7bb1) (const Info &)=delete | Copy Constructor (object is not copyable). uint64_t | [uuid](#classdronecore_1_1_info_1a49c7dd5f1a369c8296f0c3a2443bc031) () const | Gets the UUID of the device. @@ -42,6 +42,7 @@ static const unsigned [GIT_HASH_STR_LEN](#classdronecore_1_1_info_1aae671143f80e dronecore::Info::Info(Device *device) ``` + Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). The plugin is typically created as shown below: @@ -50,7 +51,6 @@ The plugin is typically created as shown below: auto info = std::make_shared(&device); ``` - **Parameters** * [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. diff --git a/en/api_reference/classdronecore_1_1_logging.md b/en/api_reference/classdronecore_1_1_logging.md index 2d2c98c..d1c440a 100644 --- a/en/api_reference/classdronecore_1_1_logging.md +++ b/en/api_reference/classdronecore_1_1_logging.md @@ -23,7 +23,7 @@ std::function< void([Result](classdronecore_1_1_logging.md#classdronecore_1_1_lo Type | Name | Description ---: | --- | --- -| [Logging](#classdronecore_1_1_logging_1a191a5eaa0d4c23b634585a276a20ba97) (Device *device) | Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +| [Logging](#classdronecore_1_1_logging_1a191a5eaa0d4c23b634585a276a20ba97) (Device *device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). | [~Logging](#classdronecore_1_1_logging_1a49e75d77f900ba5ef59a960ae9b8dc55) () | Destructor (internal use only). | [Logging](#classdronecore_1_1_logging_1a62a17eb90e3ec9253f1b40e94d3c1fd7) (const Logging &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_logging.md#classdronecore_1_1_logging_1ab11e242369717d9510de1ab93bfad086) | [start_logging](#classdronecore_1_1_logging_1a4684d8226742b575fce423c9ce758fc0) () const | Start logging (synchronous). @@ -48,15 +48,15 @@ const char * | [result_str](#classdronecore_1_1_logging_1adc5a7560f1a27996fc05f2 dronecore::Logging::Logging(Device *device) ``` + Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). The plugin is typically created as shown below: ```cpp -auto logger = std::make_shared(&device); +auto logging = std::make_shared(&device); ``` - **Parameters** * [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. diff --git a/en/api_reference/classdronecore_1_1_mission.md b/en/api_reference/classdronecore_1_1_mission.md index de36b08..6090bb1 100644 --- a/en/api_reference/classdronecore_1_1_mission.md +++ b/en/api_reference/classdronecore_1_1_mission.md @@ -22,7 +22,7 @@ std::function< void(int current, int total)> [progress_callback_t](#classdroneco Type | Name | Description ---: | --- | --- -| [Mission](#classdronecore_1_1_mission_1a3835376b0fbf186ad572dbfad3bcc4e9) (Device *device) | Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +| [Mission](#classdronecore_1_1_mission_1a3835376b0fbf186ad572dbfad3bcc4e9) (Device *device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). | [~Mission](#classdronecore_1_1_mission_1a395b8c121630aa8a5dd3d48f95290659) () | Destructor (internal use only). | [Mission](#classdronecore_1_1_mission_1a4947f79b7dd71e66bca64e5bbb0b3377) (const Mission &)=delete | Copy constructor (object is not copyable). void | [upload_mission_async](#classdronecore_1_1_mission_1a414b5b6d0c66af695a725e92003872b5) (const std::vector< std::shared_ptr< MissionItem >> &mission_items, result_callback_t callback) | Uploads a vector of mission items to the device (asynchronous). @@ -52,6 +52,7 @@ const char * | [result_str](#classdronecore_1_1_mission_1a0eabb2fe4db664c552d281 dronecore::Mission::Mission(Device *device) ``` + Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). The plugin is typically created as shown below: @@ -60,7 +61,6 @@ The plugin is typically created as shown below: auto mission = std::make_shared(&device); ``` - **Parameters** * [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. diff --git a/en/api_reference/classdronecore_1_1_offboard.md b/en/api_reference/classdronecore_1_1_offboard.md index 993782c..596aa31 100644 --- a/en/api_reference/classdronecore_1_1_offboard.md +++ b/en/api_reference/classdronecore_1_1_offboard.md @@ -36,7 +36,7 @@ std::function< void([Result](classdronecore_1_1_offboard.md#classdronecore_1_1_o Type | Name | Description ---: | --- | --- -| [Offboard](#classdronecore_1_1_offboard_1a333ac94793dc29ed95158fb2af286fa1) (Device *device) | Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +| [Offboard](#classdronecore_1_1_offboard_1a333ac94793dc29ed95158fb2af286fa1) (Device *device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). | [~Offboard](#classdronecore_1_1_offboard_1a7cb4eff36c37fed1c6d973aa41b059b8) () | Destructor (internal use only). | [Offboard](#classdronecore_1_1_offboard_1ac586be55cb24aa0ccd29c97352dd2ee5) (const Offboard &)=delete | Copy constructor (object is not copyable). [Offboard::Result](classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a0f6e5e9f73289f27dc99abbb3ab572ed) | [start](#classdronecore_1_1_offboard_1a658454f130f7b19d56f23347a448f1b9) () | Start offboard control (synchronous). @@ -64,6 +64,7 @@ const char * | [result_str](#classdronecore_1_1_offboard_1a8eb7467e48fe354d34bc4 dronecore::Offboard::Offboard(Device *device) ``` + Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). The plugin is typically created as shown below: diff --git a/en/api_reference/classdronecore_1_1_telemetry.md b/en/api_reference/classdronecore_1_1_telemetry.md index 94f3b82..4c647f8 100644 --- a/en/api_reference/classdronecore_1_1_telemetry.md +++ b/en/api_reference/classdronecore_1_1_telemetry.md @@ -52,7 +52,7 @@ std::function< void([RCStatus](structdronecore_1_1_telemetry_1_1_r_c_status.md) Type | Name | Description ---: | --- | --- -| [Telemetry](#classdronecore_1_1_telemetry_1ad0cb6dd62c12af390870f8b5cb5bde55) (Device *device) | Constructor. Creates the plugin and associates it with a specified [Device](classdronecore_1_1_device.md). +| [Telemetry](#classdronecore_1_1_telemetry_1ad0cb6dd62c12af390870f8b5cb5bde55) (Device *device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). | [~Telemetry](#classdronecore_1_1_telemetry_1ade5f44873d1fd5a5ec63037307920095) () | Destructor (internal use only). | [Telemetry](#classdronecore_1_1_telemetry_1a91a3319d9040bd89d241be3d8b2e9a5e) (const Telemetry &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a5bfab85edb7c160e156133a9643964bc) | [set_rate_position](#classdronecore_1_1_telemetry_1ae7a6e1313b1508fef7163287aa77a6da) (double rate_hz) | Set rate of position updates (synchronous). @@ -122,6 +122,7 @@ const char * | [result_str](#classdronecore_1_1_telemetry_1a05c6355b7f8743250b2a dronecore::Telemetry::Telemetry(Device *device) ``` + Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). The plugin is typically created as shown below: From 4786480116e06843037c209ae39182968227ecaa Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 8 Feb 2018 14:07:58 +1100 Subject: [PATCH 070/107] First part of follow_me_example --- en/SUMMARY.md | 1 + en/examples/follow_me.md | 336 +++++++++++++++++++++++++++++++++++++++ en/guide/follow_me.md | 1 + 3 files changed, 338 insertions(+) create mode 100644 en/examples/follow_me.md diff --git a/en/SUMMARY.md b/en/SUMMARY.md index c943194..b599cc0 100644 --- a/en/SUMMARY.md +++ b/en/SUMMARY.md @@ -20,6 +20,7 @@ * [Takeoff and Land](examples/takeoff_and_land.md) * [Fly Mission](examples/fly_mission.md) * [Offboard Mode - Velocity Control](examples/offboard_velocity.md) + * [Follow Me Mode](examples/follow_me.md) * [VTOL Transitions](examples/transition_vtol_fixed_wing.md) * [API Reference](api_reference/README.md) * [class DroneCore](api_reference/classdronecore_1_1_drone_core.md) diff --git a/en/examples/follow_me.md b/en/examples/follow_me.md new file mode 100644 index 0000000..62a53bc --- /dev/null +++ b/en/examples/follow_me.md @@ -0,0 +1,336 @@ +# Example: Follow Me Mode + +This example demonstrates how to use the [Follow Me](../api_reference/classdronecore_1_1_follow_me.md) plugin. +It shows how to send the drone both the current position of the target (`FollowMe::TargetLocation`) and the relative position at which it should follow (`FollowMe::Config`). + +![Follow Me QGC Screenshot](../../assets/examples/follow_me/follow_me_example_qgc.jpg) + +> **Note** A real application using this API will get the position information from the underlying device. The example uses a fake position source (`FakeLocationProvider`) to enable it to be run on computers that do not have position information. The `FakeLocationProvider` emulates the typical usage of common positioning APIs used in Android, Linux and iPhone. + +## Running the Example {#run_example} + +The example is built and run [as described here](../examples/README.md#trying_the_examples) (the standard way). + +The example terminal output should be similar to that shown below: + +> **Note** This is from a debug build of DroneCore. A release build will omit the "Debug" messages. + +``` +$ ./follow_me +... +``` + +## How it works + +The example registers with `FakeLocationProvider` for location updates. +These are passed to the Follow Me plugin, which in turn sends them to the vehicle. + +The operation of the "DroneCore" part of this code is discussed in the guide: [Follow Me](../guide/follow_me.md). + + +## Source code {#source_code} + +> **Tip** The full source code for the example [can be found on Github here](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/example/fly_mission). + + +[CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/example/follow_me/CMakeLists.txt) + +```make +cmake_minimum_required(VERSION 2.8.12) + +project(follow_me) + +find_package(Boost 1.66 COMPONENTS REQUIRED system) +include_directories(${Boost_INCLUDE_DIR}) + +if(NOT MSVC) + add_definitions("-std=c++11 -Wall -Wextra -Werror") +else() + add_definitions("-std=c++11 -WX -W2") + include_directories(${CMAKE_SOURCE_DIR}/../../install/include) + link_directories(${CMAKE_SOURCE_DIR}/../../install/lib) +endif() + +add_executable(follow_me + follow_me.cpp + fake_location_provider.cpp +) + +target_link_libraries(follow_me + LINK_PUBLIC ${Boost_LIBRARIES} + dronecore + dronecore_action + dronecore_follow_me + pthread +) +``` + +[follow_me.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/example/follow_me/follow_me.cpp) + +```cpp +/** +* @file follow_me.cpp +* +* @brief Example that demonstrates the usage of Follow Me plugin. +* The example registers with FakeLocationProvider for location updates +* and sends them to the Follow Me plugin which are sent to drone. You can observe +* drone following you. We print last location of the drone in flight mode callback. +* +* @author Shakthi Prashanth +* @date 2018-01-03 +*/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "fake_location_provider.h" + +using namespace dronecore; +using namespace std::placeholders; // for `_1` +using namespace std::chrono; // for seconds(), milliseconds(), etc +using namespace std::this_thread; // for sleep_for() + +// For coloring output +#define ERROR_CONSOLE_TEXT "\033[31m" //Turn text on console red +#define TELEMETRY_CONSOLE_TEXT "\033[34m" //Turn text on console blue +#define NORMAL_CONSOLE_TEXT "\033[0m" //Restore normal console colour + +inline void action_error_exit(Action::Result result, const std::string &message); +inline void follow_me_error_exit(FollowMe::Result result, const std::string &message); +inline void connection_error_exit(DroneCore::ConnectionResult result, const std::string &message); + +int main(int, char **) +{ + DroneCore dc; + + DroneCore::ConnectionResult conn_result = dc.add_udp_connection(); + connection_error_exit(conn_result, "Connection failed"); + + // Wait for the device to connect via heartbeat + while (!dc.is_connected()) { + std::cout << "Wait for device to connect via heartbeat" << std::endl; + sleep_for(seconds(1)); + } + + // Device got discovered. + Device &device = dc.device(); + std::shared_ptr action = std::make_shared(&device); + std::shared_ptr follow_me = std::make_shared(&device); + std::shared_ptr telemetry = std::make_shared(&device); + + while (!telemetry->health_all_ok()) { + std::cout << "Waiting for device to be ready" << std::endl; + sleep_for(seconds(1)); + } + std::cout << "Device is ready" << std::endl; + + // Arm + Action::Result arm_result = action->arm(); + action_error_exit(arm_result, "Arming failed"); + std::cout << "Armed" << std::endl; + + // Subscribe to receive updates on flight mode. You can find out whether FollowMe is active. + telemetry->flight_mode_async( + std::bind([&](Telemetry::FlightMode flight_mode) { + const FollowMe::TargetLocation last_location = follow_me->get_last_location(); + std::cout << "[FlightMode: " << Telemetry::flight_mode_str(flight_mode) + << "] Vehicle is at: " << last_location.latitude_deg << ", " + << last_location.longitude_deg << " degrees." << std::endl; + }, std::placeholders::_1)); + + // Takeoff + Action::Result takeoff_result = action->takeoff(); + action_error_exit(takeoff_result, "Takeoff failed"); + std::cout << "In Air..." << std::endl; + sleep_for(seconds(5)); // Wait for drone to reach takeoff altitude + + // Configure Min height of the drone to be "20 meters" above home & Follow direction as "Front right". + FollowMe::Config config; + config.min_height_m = 20.0; + config.follow_direction = FollowMe::Config::FollowDirection::FRONT_RIGHT; + FollowMe::Result follow_me_result = follow_me->set_config(config); + + // Start Follow Me + follow_me_result = follow_me->start(); + follow_me_error_exit(follow_me_result, "Failed to start FollowMe mode"); + + boost::asio::io_context io; // for event loop + std::unique_ptr location_provider(new FakeLocationProvider(io)); + // Register for platform-specific Location provider. We're using FakeLocationProvider for the example. + location_provider->request_location_updates([&device, &follow_me](double lat, double lon) { + follow_me->set_target_location({lat, lon, 0.0, 0.f, 0.f, 0.f}); + }); + io.run(); // will run as long as location updates continue to happen. + + // Stop Follow Me + follow_me_result = follow_me->stop(); + follow_me_error_exit(follow_me_result, "Failed to stop FollowMe mode"); + + // Stop flight mode updates. + telemetry->flight_mode_async(nullptr); + + // Land + const Action::Result land_result = action->land(); + action_error_exit(land_result, "Landing failed"); + while (telemetry->in_air()) { + std::cout << "waiting until landed" << std::endl; + sleep_for(seconds(1)); + } + std::cout << "Landed..." << std::endl; + return 0; +} + +// Handles Action's result +inline void action_error_exit(Action::Result result, const std::string &message) +{ + if (result != Action::Result::SUCCESS) { + std::cerr << ERROR_CONSOLE_TEXT << message << Action::result_str( + result) << NORMAL_CONSOLE_TEXT << std::endl; + exit(EXIT_FAILURE); + } +} +// Handles FollowMe's result +inline void follow_me_error_exit(FollowMe::Result result, const std::string &message) +{ + if (result != FollowMe::Result::SUCCESS) { + std::cerr << ERROR_CONSOLE_TEXT << message << FollowMe::result_str( + result) << NORMAL_CONSOLE_TEXT << std::endl; + exit(EXIT_FAILURE); + } +} +// Handles connection result +inline void connection_error_exit(DroneCore::ConnectionResult result, const std::string &message) +{ + if (result != DroneCore::ConnectionResult::SUCCESS) { + std::cerr << ERROR_CONSOLE_TEXT << message + << DroneCore::connection_result_str(result) + << NORMAL_CONSOLE_TEXT << std::endl; + exit(EXIT_FAILURE); + } +} +``` + +[fake_location_provider.h](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/example/follow_me/fake_location_provider.h) + +```cpp +#pragma once + +#include +/** + ******************************************************************************************** + ******************************************************************************************** + Important note: Boost isn't a dependency for DroneCore library. + We're using Boost::Asio in this example ONLY to simulate asynchronous Fake location provider. + Applications on platforms Android, Windows, Apple, etc should make use of their platform-specific + Location Provider in place of FakeLocationProvider. + ******************************************************************************************** + ******************************************************************************************** + */ +#include +#include + +/** + * @brief The FakeLocationProvider class + * This class provides periodic reports on the fake location of the device. + */ +class FakeLocationProvider +{ +public: + typedef std::function location_callback_t; + + FakeLocationProvider(boost::asio::io_context &io) + : timer_(io, boost::posix_time::seconds(1)) + {} + + ~FakeLocationProvider() + {} + + void request_location_updates(location_callback_t callback); + +private: + + void compute_next_location(); + + boost::asio::deadline_timer timer_; + location_callback_t location_callback_ = nullptr; + double latitude_deg_ = 47.3977419; + double longitude_deg_ = 8.5455938; + size_t count_ = 0u; + + static const size_t MAX_LOCATIONS; + static const double LATITUDE_DEG_PER_METER; + static const double LONGITUDE_DEG_PER_METER; +}; +``` + +[fake_location_provider.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/example/follow_me/fake_location_provider.cpp) + +```cpp + +#include "fake_location_provider.h" + +void FakeLocationProvider::request_location_updates(location_callback_t callback) +{ + location_callback_ = callback; + timer_.async_wait(std::bind(&FakeLocationProvider::compute_next_location, this)); +} + +// Rudimentary location provider whose successive lat, lon combination +// makes Drone revolve in a semi-circular path. +void FakeLocationProvider::compute_next_location() +{ + if (count_++ < 10) { + location_callback_(latitude_deg_, longitude_deg_); + latitude_deg_ -= LATITUDE_DEG_PER_METER * 4; + timer_.expires_at(timer_.expires_at() + boost::posix_time::seconds(1)); + timer_.async_wait(std::bind(&FakeLocationProvider::compute_next_location, this)); + sleep(1); + } + if (count_++ < 20) { + location_callback_(latitude_deg_, longitude_deg_); + longitude_deg_ += LONGITUDE_DEG_PER_METER * 4; + timer_.expires_at(timer_.expires_at() + boost::posix_time::seconds(1)); + timer_.async_wait(std::bind(&FakeLocationProvider::compute_next_location, this)); + sleep(1); + } + if (count_++ < 30) { + location_callback_(latitude_deg_, longitude_deg_); + latitude_deg_ += LATITUDE_DEG_PER_METER * 4; + timer_.expires_at(timer_.expires_at() + boost::posix_time::seconds(1)); + timer_.async_wait(std::bind(&FakeLocationProvider::compute_next_location, this)); + sleep(1); + } + if (count_++ < 40) { + location_callback_(latitude_deg_, longitude_deg_); + longitude_deg_ -= LONGITUDE_DEG_PER_METER * 4; + timer_.expires_at(timer_.expires_at() + boost::posix_time::seconds(1)); + timer_.async_wait(std::bind(&FakeLocationProvider::compute_next_location, this)); + sleep(1); + } + if (count_++ < 50) { + location_callback_(latitude_deg_, longitude_deg_); + latitude_deg_ -= LATITUDE_DEG_PER_METER * 3; + timer_.expires_at(timer_.expires_at() + boost::posix_time::seconds(1)); + timer_.async_wait(std::bind(&FakeLocationProvider::compute_next_location, this)); + sleep(1); + } + if (count_++ < MAX_LOCATIONS) { + location_callback_(latitude_deg_, longitude_deg_); + longitude_deg_ += LONGITUDE_DEG_PER_METER * 3; + timer_.expires_at(timer_.expires_at() + boost::posix_time::seconds(1)); + timer_.async_wait(std::bind(&FakeLocationProvider::compute_next_location, this)); + sleep(1); + } +} + +const size_t FakeLocationProvider::MAX_LOCATIONS = 60u; +const double FakeLocationProvider::LATITUDE_DEG_PER_METER = 0.000009044; +const double FakeLocationProvider::LONGITUDE_DEG_PER_METER = 0.000008985; +``` + diff --git a/en/guide/follow_me.md b/en/guide/follow_me.md index 1dab838..fa0d238 100644 --- a/en/guide/follow_me.md +++ b/en/guide/follow_me.md @@ -109,5 +109,6 @@ The last location that was set can be retrieved using [get_last_location()](../a Additional information/examples for the Follow Me API are linked below: +* [Example:Follow Me Mode](../examples/follow_me.md) * Integration tests: * [follow_me.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/follow_me.cpp) From 2f4c300469b265b932641162ddbe4ee60a664eb3 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 8 Feb 2018 15:34:37 +1100 Subject: [PATCH 071/107] First shot at plugin doc updates --- en/contributing/plugins.md | 8 ++++---- en/contributing/test.md | 8 ++++---- en/guide/dronecore_extensions.md | 14 +++++++++----- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/en/contributing/plugins.md b/en/contributing/plugins.md index fc42dbd..3ddf530 100644 --- a/en/contributing/plugins.md +++ b/en/contributing/plugins.md @@ -1,8 +1,8 @@ # Writing Plugins -DroneCore is split into a [core](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/core) and [plugins](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/plugins). +DroneCore is split into a [core](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/core) and multiple independent [plugins](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/plugins). -Plugins that are located in the *correct location* (a subfolder of **/plugins**) and have the *correct structure* are included at compile time. The *cmake* script [autogenerate_plugin_container.cmake](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/autogenerate_plugin_container.cmake) takes care of including the plugin folders and integration tests. +Plugins that are located in the *correct location* (a subfolder of **/plugins**) and have the *correct structure* are built at compile time. The [CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/CMakeLists.txt) takes care of including the plugin folders and integration tests. > **Note** Plugins can also be defined in [DroneCore Extensions](../guide/dronecore_extensions.md). > These are defined and tested in exactly the same way as "standard" DroneCore plugins. @@ -11,7 +11,7 @@ Plugins that are located in the *correct location* (a subfolder of **/plugins**) Plugins should be written so that they are independent of each other (they will still need to be dependent on the core source). This allows plugins to be removed/replaced as needed at the cost of some duplicated functionality across the plugin modules. -The code for each plugin and its unit test (if defined) is stored in a sub-folder of the **plugins** directory. Integration tests for all plugins in the library are stored in **integration_tests**. +The code for each plugin (and its unit test if one has been defined) is stored in a sub-folder of the **plugins** directory. Integration tests for all plugins in the library are stored in **integration_tests**. A simplified view of the folder structure is shown below (showing relevant directories for both DroneCore and a DroneCore Extension): @@ -188,7 +188,7 @@ TEST(ExampleImpl, NoTest) ### Writing Integration Tests {#integration_tests} -DroneCore provides the `dronecore-integrationtests` application for running the integration tests and +DroneCore provides the `integration_tests_runner` application for running the integration tests and some helper code to make it easier to log tests and run them against the simulator. > **Tip** Check out the [Google Test Primer](https://github.com/google/googletest/blob/master/googletest/docs/Primer.md) diff --git a/en/contributing/test.md b/en/contributing/test.md index c5107c0..9f27c3d 100644 --- a/en/contributing/test.md +++ b/en/contributing/test.md @@ -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 ``` @@ -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/dronecore-integrationtests --gtest_filter="SitlTest.TelemetryAsync" +make && build/default/dronecore-integrationtests --gtest_filter="SitlTest.TelemetryAsync" ``` diff --git a/en/guide/dronecore_extensions.md b/en/guide/dronecore_extensions.md index d6b18a0..8c04588 100644 --- a/en/guide/dronecore_extensions.md +++ b/en/guide/dronecore_extensions.md @@ -2,7 +2,6 @@ DroneCore can be extended with [plugins](../contributing/plugins.md) and [tests](../contributing/test.md) that are defined "out of tree". This enables developers to manage custom code in a separate repository (reducing *git* conflicts). -The extensions are built into the DroneCore library at compile time. > **Note** Extensions are defined in a parallel tree that *mirrors* the DroneCore structure. > Extension plugins and tests are *exactly the same* as "standard" DroneCore plugins and tests. @@ -55,7 +54,7 @@ external_example ## Adding/Modifying Plugins Plugins in extension libraries are exactly the same as "normal" DroneCore plugins -(except that they are located in the extension rather than under DroneCore). +(except that they are located in the extension "plugins" folder rather than under DroneCore). [Writing Plugins](../contributing/plugins.md) explains how to write or modify plugins. @@ -65,7 +64,11 @@ Plugins in extension libraries are exactly the same as "normal" DroneCore plugin ## Testing -Tests in extension libraries are written and run exactly the same as "normal" DroneCore plugin tests. +Tests in extension libraries are written in exactly the same as "normal" DroneCore plugin tests. + +The only difference is that all external tests should be compiled into their own "test runner". +The test runner for the "external example" is defined in +[/integration_tests/CMakeLists.txt]( https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/external_example/integration_tests/CMakeLists.txt) (named `external_example_integration_tests_runner`). [Testing](../contributing/test.md) explains how to run (and write) unit and integration tests. @@ -75,7 +78,7 @@ Tests in extension libraries are written and run exactly the same as "normal" Dr To build *DroneCore* so that it includes the extension library, specify the top level directory `EXTERNAL_DIR` in the `make` command (only one external directory can be specified). -To build and install a parallel *DroneCore_Extensions* folder (from within the DroneCore directory) you would enter: +To build and install a parallel folder named *DroneCore_Extensions* (from within the DroneCore directory) you would enter: ``` make clean # This is required! @@ -91,5 +94,6 @@ sudo make default install # sudo needed to install files into system directori ### Locking/Unlocking the SDK -Functionality to deliver in: https://github.com/dronecore/DroneCore/pull/139 +Functionality delivered in: https://github.com/dronecore/DroneCore/pull/139 +This is somewhat internal. --> From 6ecf870577171cde5d1812906836b3311b165655 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Wed, 14 Feb 2018 16:45:00 +1100 Subject: [PATCH 072/107] Add boost library to instructions --- en/examples/follow_me.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/en/examples/follow_me.md b/en/examples/follow_me.md index 62a53bc..771f277 100644 --- a/en/examples/follow_me.md +++ b/en/examples/follow_me.md @@ -9,7 +9,12 @@ It shows how to send the drone both the current position of the target (`FollowM ## Running the Example {#run_example} -The example is built and run [as described here](../examples/README.md#trying_the_examples) (the standard way). +Before running this example you will need to install Boost libraries. For Linux this is done as shown below: +```sh +sudo apt-get install libboost-all-dev +``` + +Otherwise example is built and run and run in the normal way ([as described here](../examples/README.md#trying_the_examples)). The example terminal output should be similar to that shown below: From 3921fb17303ddf781c94bcd29cc3c08eb332633f Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 15 Feb 2018 10:43:48 +1100 Subject: [PATCH 073/107] Add QGC screenshot, flight log, warning about using QGC --- .../follow_me/follow_me_example_qgc.jpg | Bin 0 -> 47309 bytes en/examples/follow_me.md | 56 +++++++++++++++--- en/guide/follow_me.md | 1 + 3 files changed, 49 insertions(+), 8 deletions(-) create mode 100644 assets/examples/follow_me/follow_me_example_qgc.jpg diff --git a/assets/examples/follow_me/follow_me_example_qgc.jpg b/assets/examples/follow_me/follow_me_example_qgc.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b96c51f904a2b3a64166df8423a5b7fcd8473b86 GIT binary patch literal 47309 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 **Note** A real application using this API will get the position information from the underlying device. The example uses a fake position source (`FakeLocationProvider`) to enable it to be run on computers that do not have position information. The `FakeLocationProvider` emulates the typical usage of common positioning APIs used in Android, Linux and iPhone. + ## Running the Example {#run_example} -Before running this example you will need to install Boost libraries. For Linux this is done as shown below: -```sh -sudo apt-get install libboost-all-dev -``` +Special notes for this example: -Otherwise example is built and run and run in the normal way ([as described here](../examples/README.md#trying_the_examples)). +* Before running this example you will need to install Boost libraries. For Linux this is done as shown below: + ```sh + sudo apt-get install libboost-all-dev + ``` +* *QGroundControl* **should not be used** at the same time as this example. See [QGC #6141](https://github.com/mavlink/qgroundcontrol/issues/6141) for more information. + +Otherwise the example is built and run in the normal way ([as described here](../examples/README.md#trying_the_examples)). The example terminal output should be similar to that shown below: @@ -22,7 +26,43 @@ The example terminal output should be similar to that shown below: ``` $ ./follow_me +Wait for device to connect via heartbeat +[11:40:49|Info ] New device on: 127.0.0.1:14557 (udp_connection.cpp:211) +[11:40:49|Debug] MAVLink: info: DISARMED by auto disarm on land (device.cpp:247) +[11:40:50|Debug] Discovered 4294967298 (dronecore_impl.cpp:219) +[11:40:50|Info ] FollowMe: Applying default FollowMe configuration FollowMe to the device... (follow_me_impl.cpp:186) +Device is ready +Armed +[11:40:51|Debug] MAVLink: info: ARMED by arm/disarm component command (device.cpp:247) +[11:40:51|Debug] MAVLink: info: [logger] file: rootfs/fs/microsd/log/2018-02-14/0 (device.cpp:247) +In Air... +[11:40:51|Debug] MAVLink: info: Using minimum takeoff altitude: 2.50 m (device.cpp:247) +[11:40:51|Debug] MAVLink: info: Takeoff detected (device.cpp:247) +[11:40:51|Debug] MAVLink: critical: Using minimum takeoff altitude: 2.50 m (device.cpp:247) +[11:40:51|Debug] MAVLink: info: data link #1 lost (device.cpp:247) +[FlightMode: Takeoff] Vehicle is at: nan, nan degrees. +[FlightMode: Hold] Vehicle is at: nan, nan degrees. +[FlightMode: Hold] Vehicle is at: nan, nan degrees. +[FlightMode: Hold] Vehicle is at: nan, nan degrees. +[FlightMode: Hold] Vehicle is at: nan, nan degrees. +[11:40:56|Debug] FollowMe: Waiting for the device confirmation of the new configuration.. (follow_me_impl.cpp:98) +[11:40:56|Debug] FollowMe: Waiting for the device confirmation of the new configuration.. (follow_me_impl.cpp:98) +[11:40:56|Info ] FollowMe: Configured: Min height: 20 meters, Follow distance: 8 meters, Follow direction: Front right, Responsiveness: 0.5 (follow_me_impl.cpp:101) +[FlightMode: FollowMe] Vehicle is at: nan, nan degrees. +[FlightMode: FollowMe] Vehicle is at: 47.3977, 8.54559 degrees. +[FlightMode: FollowMe] Vehicle is at: 47.3977, 8.54559 degrees. +... +[FlightMode: FollowMe] Vehicle is at: 47.3976, 8.5457 degrees. +[FlightMode: FollowMe] Vehicle is at: 47.3976, 8.54573 degrees. +waiting until landed +[11:41:33|Debug] MAVLink: info: Landing at current position (device.cpp:247) +waiting until landed +waiting until landed ... +waiting until landed +waiting until landed +[11:42:04|Debug] MAVLink: info: Landing detected (device.cpp:247) +Landed... ``` ## How it works @@ -165,7 +205,7 @@ int main(int, char **) follow_me_result = follow_me->start(); follow_me_error_exit(follow_me_result, "Failed to start FollowMe mode"); - boost::asio::io_context io; // for event loop + boost::asio::io_service io; // for event loop std::unique_ptr location_provider(new FakeLocationProvider(io)); // Register for platform-specific Location provider. We're using FakeLocationProvider for the example. location_provider->request_location_updates([&device, &follow_me](double lat, double lon) { @@ -249,7 +289,7 @@ class FakeLocationProvider public: typedef std::function location_callback_t; - FakeLocationProvider(boost::asio::io_context &io) + FakeLocationProvider(boost::asio::io_service &io) : timer_(io, boost::posix_time::seconds(1)) {} diff --git a/en/guide/follow_me.md b/en/guide/follow_me.md index fa0d238..a329ae6 100644 --- a/en/guide/follow_me.md +++ b/en/guide/follow_me.md @@ -7,6 +7,7 @@ The API is used to supply the position(s) for the [target](../api_reference/stru - Apple: [Core Location Framework](https://developer.apple.com/documentation/corelocation) - Windows: [Windows.Devices.Geolocation](https://docs.microsoft.com/en-us/uwp/api/Windows.Devices.Geolocation) +> **Warning** Running *QGroundControl* at the same time as DroneCore *Follow Me* may result in unpredictable behaviour. See [QGC #6141](https://github.com/mavlink/qgroundcontrol/issues/6141) for more information. ## Create the Plugin From ca287e7a01a005d816b42113e09e17f64e00cf8e Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 15 Feb 2018 10:53:02 +1100 Subject: [PATCH 074/107] Add FollowMe example to index page. --- en/examples/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/en/examples/README.md b/en/examples/README.md index 4d3c8b1..bb7c637 100644 --- a/en/examples/README.md +++ b/en/examples/README.md @@ -9,6 +9,7 @@ Example | Description [Takeoff and Land](../examples/takeoff_and_land.md) | Shows basic usage of DroneCore (connect to port, detect device, arm, takeoff, land, get telemetry) [Fly Mission](../examples/fly_mission.md) | Shows how to create, upload, and run missions. [Offboard Velocity Control](../examples/offboard_velocity.md) | Demonstrates how to control a vehicle in Offboard mode using velocity commands (in both the NED and body frames). +[Follow Me Mode](../examples/offboard_velocity.md) | Demonstrates how to put vehicle in [Follow Me Mode](../guide/follow_me.md) and set the current target position and relative position of the drone. [VTOL Transitions](../examples/transition_vtol_fixed_wing.md) | Shows how to transition a VTOL vehicle between copter and fixed-wing modes. 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). From 8a105dc623ca5e33e53b1a6df2cadb8b14f973a3 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 15 Feb 2018 11:21:39 +1100 Subject: [PATCH 075/107] Make need to do sudo ldconfig more obvious in build/installation instructions --- en/contributing/build.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/en/contributing/build.md b/en/contributing/build.md index ee6a648..9853980 100644 --- a/en/contributing/build.md +++ b/en/contributing/build.md @@ -134,14 +134,13 @@ To install DroneCore system-wide: ```sh make clean #REQUIRED! make default -sudo make default install #sudo required to install files to system directories! +sudo make default install # sudo required to install files to system directories! + +# First installation only +sudo ldconfig # update linker cache ``` -> **Tip** The first time you build DroneCore you may also need to [update the linker cache](http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html). -> On Ubuntu call the following: - ``` - sudo ldconfig - ``` +> **Note** The first time you build DroneCore 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. ### Local Install {#dronecore_local_install} From 5669174977c662f84be2c6ab46719d3477eeec1c Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 15 Feb 2018 11:30:21 +1100 Subject: [PATCH 076/107] Fix broken link to renamed device_impl.cpp file --- en/contributing/dev_logging.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/contributing/dev_logging.md b/en/contributing/dev_logging.md index 2eea00e..59de704 100644 --- a/en/contributing/dev_logging.md +++ b/en/contributing/dev_logging.md @@ -35,6 +35,6 @@ Function | Description | Example Basic logging is defined in source for both incoming (handled/ignored) and sent MAVLink messages. -This functionality is disabled by default, and available only in debug builds. To enable the logs, set `#define MESSAGE_DEBUGGING 1` in [core/device_impl.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/core/device_impl.cpp) +This functionality is disabled by default, and available only in debug builds. To enable the logs, set `#define MESSAGE_DEBUGGING 1` in [core/device.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/core/device.cpp) \ No newline at end of file From aa7da52f8d52ccd81f63acf50b8af74ab272d247 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 15 Feb 2018 11:37:28 +1100 Subject: [PATCH 077/107] Turn travis broken link fails into warnings --- .travis.yml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 754b949..7658cc6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,11 @@ language: ruby rvm: - 2.2.2 +addons: + apt: + packages: + - libcurl4-openssl-dev # required to avoid SSL errors + install: - npm install gitbook-cli -g - gitbook install @@ -10,10 +15,14 @@ install: script: -- htmlproofer ./_book --empty-alt-ignore true --check-external-hash true --url-ignore 'https://img.shields.io/badge/discuss-DroneCore-ff69b4.svg,https://grpc.io/' - - +- htmlproofer ./_book --empty-alt-ignore true --check-external-hash true --http-status-ignore 503 --url-ignore 'https://img.shields.io/badge/discuss-DroneCore-ff69b4.svg,https://grpc.io/' env: global: - NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer + + +## Allow links to fail any time and be displayed as warnings. +matrix: + allow_failures: + - rvm: 2.2.2 From 4b72a0610ac0c05afccf9a83cff254913e9c34d3 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 15 Feb 2018 11:37:47 +1100 Subject: [PATCH 078/107] Fix broken link to API reference --- en/guide/follow_me.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/guide/follow_me.md b/en/guide/follow_me.md index a329ae6..2626037 100644 --- a/en/guide/follow_me.md +++ b/en/guide/follow_me.md @@ -102,7 +102,7 @@ if (follow_me_result != FollowMe::Result::SUCCESS) { } ``` -The last location that was set can be retrieved using [get_last_location()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1ab68273d5ace65ee953afa1797ae49e7c). Before a target position is first set this API will return `Nan`. +The last location that was set can be retrieved using [get_last_location()](../api_reference/classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a16da2bf7d0384e2bff4440600b523f8c). Before a target position is first set this API will return `Nan`. From 26c05b274636d845f4b573b3adedef1c1506029f Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 15 Feb 2018 11:45:02 +1100 Subject: [PATCH 079/107] Change follow_dist_m to follow_distance_m in guide --- en/guide/follow_me.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/guide/follow_me.md b/en/guide/follow_me.md index 2626037..5d21496 100644 --- a/en/guide/follow_me.md +++ b/en/guide/follow_me.md @@ -55,7 +55,7 @@ The code fragment below shows how to set the configuration: // configure follow me behaviour FollowMe::Config config; config.min_height_m = 12.f; // Minimum height -config.follow_dist_m = 20.f; // Follow distance +config.follow_distance_m = 20.f; // Follow distance config.responsiveness = 0.2f; // Higher responsiveness config.follow_direction = FollowMe::Config::FollowDirection::FRONT; //Follow from front-centre From 32e15a6def170dcc3ba57095ffd26f374a5dab68 Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Thu, 15 Feb 2018 11:35:32 +0100 Subject: [PATCH 080/107] build: added how to use all CPU cores to build On Windows, you apparently need to set this env variable to speed up the build. --- en/contributing/build.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/en/contributing/build.md b/en/contributing/build.md index 96165f1..cd89e8a 100644 --- a/en/contributing/build.md +++ b/en/contributing/build.md @@ -112,6 +112,11 @@ To build the *DroneCore* C++ Library on Windows: cmake --build . --config Release ``` + > **Tip** To use more than one CPU core to build set this before building: + ```sh + set CL=/MP + ``` + 1. (Optionally) "Install" DroneCore [as described below](#install-artifacts). This is required in order to build [Dronecore C++ apps](../guide/toolchain.md), but not to run DroneCore test code. From b1a933f1f2c54688c4169258052b256efb6ad8d7 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Fri, 16 Feb 2018 10:16:13 +1100 Subject: [PATCH 081/107] Add span to text between note boxes (gitbook rendering) --- 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 cd89e8a..dfdc5c1 100644 --- a/en/contributing/build.md +++ b/en/contributing/build.md @@ -111,7 +111,7 @@ To build the *DroneCore* C++ Library on Windows: ```sh cmake --build . --config Release ``` - + > **Tip** To use more than one CPU core to build set this before building: ```sh set CL=/MP From c677aa184e02ef145a73af5e18671cb0adf1325c Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Fri, 16 Feb 2018 14:42:57 +1100 Subject: [PATCH 082/107] Update API ref following addition of QGC plan import --- .../classdronecore_1_1_mission.md | 40 ++++++++++- .../classdronecore_1_1_mission_item.md | 66 +++++++++++++++---- 2 files changed, 93 insertions(+), 13 deletions(-) diff --git a/en/api_reference/classdronecore_1_1_mission.md b/en/api_reference/classdronecore_1_1_mission.md index 6090bb1..f63daeb 100644 --- a/en/api_reference/classdronecore_1_1_mission.md +++ b/en/api_reference/classdronecore_1_1_mission.md @@ -14,6 +14,7 @@ Type | Description --- | --- enum [Result](#classdronecore_1_1_mission_1a529b17f5b63508494ca22fc247598cda) | Possible results returned for mission requests. std::function< void([Result](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a529b17f5b63508494ca22fc247598cda))> [result_callback_t](#classdronecore_1_1_mission_1a239f8d5853785d6ccf90c8c48b5ccf06) | Callback type for async mission calls. +std::vector< std::shared_ptr< [MissionItem](classdronecore_1_1_mission_item.md) > > [mission_items_t](#classdronecore_1_1_mission_1aeedbc1d50fec7304f0d140ce9748a5e2) | Type for vector of mission items. std::function< void([Result](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a529b17f5b63508494ca22fc247598cda), std::vector< std::shared_ptr< [MissionItem](classdronecore_1_1_mission_item.md) > >)> [mission_items_and_result_callback_t](#classdronecore_1_1_mission_1a7cb36c0356a867e90f3c4c764d424d32) | Callback type for [download_mission_async()](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a1bd15f508fe7da39b587a8e4d5e59ae2) call to get mission items and result. std::function< void(int current, int total)> [progress_callback_t](#classdronecore_1_1_mission_1aeda7795cd898008afc05b779f99b704b) | Callback type to receive mission progress. @@ -42,6 +43,7 @@ const [Mission](classdronecore_1_1_mission.md) & | [operator=](#classdronecore_1 Type | Name | Description ---: | --- | --- const char * | [result_str](#classdronecore_1_1_mission_1a0eabb2fe4db664c552d28161678c593f) (Result result) | Gets a human-readable English string for an [Mission::Result](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a529b17f5b63508494ca22fc247598cda). +[Result](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a529b17f5b63508494ca22fc247598cda) | [import_qgroundcontrol_mission](#classdronecore_1_1_mission_1a7c73e97e5c1395a7451bb659d03e5f57) (mission_items_t &mission_items, const std::string &qgc_plan_file) | Imports a **QGroundControl** (QGC) mission plan. ## Constructor & Destructor Documentation @@ -100,6 +102,16 @@ typedef std::function dronecore::Mission::result_callback_t Callback type for async mission calls. +### typedef mission_items_t {#classdronecore_1_1_mission_1aeedbc1d50fec7304f0d140ce9748a5e2} + +```cpp +typedef std::vector > dronecore::Mission::mission_items_t +``` + + +Type for vector of mission items. + + ### typedef mission_items_and_result_callback_t {#classdronecore_1_1_mission_1a7cb36c0356a867e90f3c4c764d424d32} ```cpp @@ -145,6 +157,9 @@ Value | Description `INVALID_ARGUMENT` | Invalid argument. `UNSUPPORTED` | The mission downloaded from the device is not supported. `NO_MISSION_AVAILABLE` | No mission available on device. + `FAILED_TO_OPEN_QGC_PLAN` | Failed to open QGroundControl plan. + `FAILED_TO_PARSE_QGC_PLAN` | Failed to parse QGroundControl plan. + `UNSUPPORTED_MISSION_CMD` | Unsupported mission command. `UNKNOWN` | Unknown error. ## Member Function Documentation @@ -310,4 +325,27 @@ Gets a human-readable English string for an [Mission::Result](classdronecore_1_1 **Returns** - const char * - Human readable string for the [Mission::Result](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a529b17f5b63508494ca22fc247598cda). \ No newline at end of file + const char * - Human readable string for the [Mission::Result](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a529b17f5b63508494ca22fc247598cda). + +### import_qgroundcontrol_mission() {#classdronecore_1_1_mission_1a7c73e97e5c1395a7451bb659d03e5f57} +```cpp +static Result dronecore::Mission::import_qgroundcontrol_mission(mission_items_t &mission_items, const std::string &qgc_plan_file) +``` + + +Imports a **QGroundControl** (QGC) mission plan. + +The method composes the plan into a vector of [MissionItem](classdronecore_1_1_mission_item.md) shared pointers that can then be uploaded to a vehicle. The method will fail if any of the imported mission items are not supported by the DroneCore API. + +**Parameters** + +* [mission_items_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1aeedbc1d50fec7304f0d140ce9748a5e2) & **mission_items** - Vector of mission items imported from QGC plan. +* const std::string & **qgc_plan_file** - File path of the QGC plan. + +**Returns** + + [Result](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a529b17f5b63508494ca22fc247598cda) - [Result::SUCCESS](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a529b17f5b63508494ca22fc247598cdaad0749aaba8b833466dfcbb0428e4f89c) if successful in importing QGC mission items. Otherwise one of the error codes: [Result::FAILED_TO_OPEN_QGC_PLAN](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a529b17f5b63508494ca22fc247598cdaa44090b5626a9be3103d4e3624470635c), [Result::FAILED_TO_PARSE_QGC_PLAN](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a529b17f5b63508494ca22fc247598cdaa503c552313ebdaf4cd93b1e5b5525a4f), [Result::UNSUPPORTED_MISSION_CMD](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a529b17f5b63508494ca22fc247598cdaa0118056c7c9e890a242c9bdb961dac82). + +**See Also:** +- [QGroundControl Plan file format](https://dev.qgroundcontrol.com/en/file_formats/plan.html) (QGroundControl Dev Guide) + diff --git a/en/api_reference/classdronecore_1_1_mission_item.md b/en/api_reference/classdronecore_1_1_mission_item.md index df3e519..64401fe 100644 --- a/en/api_reference/classdronecore_1_1_mission_item.md +++ b/en/api_reference/classdronecore_1_1_mission_item.md @@ -30,19 +30,27 @@ void | [set_relative_altitude](#classdronecore_1_1_mission_item_1afef21f3028edad void | [set_fly_through](#classdronecore_1_1_mission_item_1a63d73896635dc0af136a521cd35bf352) (bool fly_through) | Set the fly-through property of a mission item. void | [set_speed](#classdronecore_1_1_mission_item_1a37e43f748da4136c659419a4a2d84b0e) (float speed_m_s) | Set the speed to use after a mission item. void | [set_gimbal_pitch_and_yaw](#classdronecore_1_1_mission_item_1a10adfcff1e99ae937654786b767e5558) (float pitch_deg, float yaw_deg) | Set the pitch and yaw angle of a gimbal at that mission item. -void | [set_camera_action_delay](#classdronecore_1_1_mission_item_1ae3cbad3e497b9165b5b8e6e414a52385) (float delay_s) | Set a delay before executing camera action. +void | [set_loiter_time](#classdronecore_1_1_mission_item_1a594fbed85eb5321d971a309dd4bcec0e) (float loiter_time_s) | Set loiter time in seconds. void | [set_camera_action](#classdronecore_1_1_mission_item_1a8d0d8a5519783aaa272befd73e851896) (CameraAction action) | Set the camera action for a mission item. void | [set_camera_photo_interval](#classdronecore_1_1_mission_item_1a4ffe698b47c659aa8857725e94ad1f7c) (double interval_s) | Set the camera photo interval. double | [get_latitude_deg](#classdronecore_1_1_mission_item_1ad95d5d10d69bdb43321231c51dda1175) () const | Get the latitude of a mission item. double | [get_longitude_deg](#classdronecore_1_1_mission_item_1a9f76de6dbbcec3269207867794a2d099) () const | Get the longitude of a mission item. +bool | [has_position_set](#classdronecore_1_1_mission_item_1a68fd720609edc76062af95a22dbe01e6) () const | Reports whether position info (Lat, Lon) was set for this mission item. float | [get_relative_altitude_m](#classdronecore_1_1_mission_item_1a22481d92a61136d42b5133b208e6cf0d) () const | Get the relative altitude of a mission item. bool | [get_fly_through](#classdronecore_1_1_mission_item_1afd92f9ab01d25c0d721b4249821b6da2) () const | Get the fly-through property of a mission item. float | [get_speed_m_s](#classdronecore_1_1_mission_item_1adc737b7be9b49cd0fe188763203aeae5) () const | Get the speed to be used after this mission item. -float | [get_camera_action_delay_s](#classdronecore_1_1_mission_item_1a620be1392d32343f624238301e968ee6) () const | Get the delay before executing camera action. +float | [get_loiter_time_s](#classdronecore_1_1_mission_item_1a25fd1a2ba0df071b25e2315a3a1f5085) () const | Get loiter time in seconds. [CameraAction](classdronecore_1_1_mission_item.md#classdronecore_1_1_mission_item_1a0cdd25121e5ed6930080ac022857887a) | [get_camera_action](#classdronecore_1_1_mission_item_1ae42a857f79b63c611f5a21fed2ea18fc) () const | Get the camera action set for this mission item. double | [get_camera_photo_interval_s](#classdronecore_1_1_mission_item_1adf38956d9ed1ef4e98a4d5a6b61eccd7) () const | Get the camera photo interval that was set for this mission item. const [MissionItem](classdronecore_1_1_mission_item.md) & | [operator=](#classdronecore_1_1_mission_item_1a8582ad72a3a8c20c87e8224ab10970c0) (const MissionItem &)=delete | Equality operator (object is not copyable). +## Static Public Member Functions + + +Type | Name | Description +---: | --- | --- +std::string | [to_str](#classdronecore_1_1_mission_item_1aee3e76302036c953858a217d63389aae) (CameraAction camera_action) | Converts [CameraAction](classdronecore_1_1_mission_item.md#classdronecore_1_1_mission_item_1a0cdd25121e5ed6930080ac022857887a) to English strings. + ## Constructor & Destructor Documentation @@ -96,6 +104,10 @@ Value | Description `STOP_VIDEO` | Stop capturing video. `NONE` | No action. +**See Also:** +- [to_str()](classdronecore_1_1_mission_item.md#classdronecore_1_1_mission_item_1aee3e76302036c953858a217d63389aae) + + ## Member Function Documentation @@ -166,19 +178,19 @@ Set the pitch and yaw angle of a gimbal at that mission item. * float **pitch_deg** - The new pitch angle of the gimbal in degrees (0: horizontal, positive up, -90: vertical downward facing). * float **yaw_deg** - The new yaw angle of the gimbal in degrees (0: forward, positive clock-wise, 90: to the right). -### set_camera_action_delay() {#classdronecore_1_1_mission_item_1ae3cbad3e497b9165b5b8e6e414a52385} +### set_loiter_time() {#classdronecore_1_1_mission_item_1a594fbed85eb5321d971a309dd4bcec0e} ```cpp -void dronecore::MissionItem::set_camera_action_delay(float delay_s) +void dronecore::MissionItem::set_loiter_time(float loiter_time_s) ``` -Set a delay before executing camera action. +Set loiter time in seconds. -This can be used to wait for vehicle to slow down or a gimbal to arrive at the set orientation. +This specifies the delay at a waypoint before executing next mission item. It can be used to wait for vehicle to slow down or a gimbal to arrive at the set orientation. **Parameters** -* float **delay_s** - The time to wait for in seconds. +* float **loiter_time_s** - The time to wait (loiter), in seconds. ### set_camera_action() {#classdronecore_1_1_mission_item_1a8d0d8a5519783aaa272befd73e851896} ```cpp @@ -233,6 +245,19 @@ Get the longitude of a mission item.  double - Longitude in degrees. +### has_position_set() {#classdronecore_1_1_mission_item_1a68fd720609edc76062af95a22dbe01e6} +```cpp +bool dronecore::MissionItem::has_position_set() const +``` + + +Reports whether position info (Lat, Lon) was set for this mission item. + + +**Returns** + + bool - true if Lat, Lon is set for this mission item. + ### get_relative_altitude_m() {#classdronecore_1_1_mission_item_1a22481d92a61136d42b5133b208e6cf0d} ```cpp float dronecore::MissionItem::get_relative_altitude_m() const @@ -272,18 +297,18 @@ Get the speed to be used after this mission item.  float - Speed in metres/second. -### get_camera_action_delay_s() {#classdronecore_1_1_mission_item_1a620be1392d32343f624238301e968ee6} +### get_loiter_time_s() {#classdronecore_1_1_mission_item_1a25fd1a2ba0df071b25e2315a3a1f5085} ```cpp -float dronecore::MissionItem::get_camera_action_delay_s() const +float dronecore::MissionItem::get_loiter_time_s() const ``` -Get the delay before executing camera action. +Get loiter time in seconds. **Returns** - float - The delay in seconds. + float - Loiter time in seconds. ### get_camera_action() {#classdronecore_1_1_mission_item_1ae42a857f79b63c611f5a21fed2ea18fc} ```cpp @@ -327,4 +352,21 @@ Equality operator (object is not copyable). **Returns** - const [MissionItem](classdronecore_1_1_mission_item.md) & - \ No newline at end of file + const [MissionItem](classdronecore_1_1_mission_item.md) & - + +### to_str() {#classdronecore_1_1_mission_item_1aee3e76302036c953858a217d63389aae} +```cpp +static std::string dronecore::MissionItem::to_str(CameraAction camera_action) +``` + + +Converts [CameraAction](classdronecore_1_1_mission_item.md#classdronecore_1_1_mission_item_1a0cdd25121e5ed6930080ac022857887a) to English strings. + + +**Parameters** + +* [CameraAction](classdronecore_1_1_mission_item.md#classdronecore_1_1_mission_item_1a0cdd25121e5ed6930080ac022857887a) **camera_action** - Enum [CameraAction](classdronecore_1_1_mission_item.md#classdronecore_1_1_mission_item_1a0cdd25121e5ed6930080ac022857887a). + +**Returns** + + std::string - Human readable english string for [CameraAction](classdronecore_1_1_mission_item.md#classdronecore_1_1_mission_item_1a0cdd25121e5ed6930080ac022857887a). \ No newline at end of file From ec6fcdc8359e6131dc59571d437887a7952fe5af Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Fri, 16 Feb 2018 16:55:05 +1100 Subject: [PATCH 083/107] Guide and example updates for mission QGC plan import --- .../fly_qgc_plan_mission_example_qgc.jpg | Bin 0 -> 60638 bytes en/SUMMARY.md | 1 + en/examples/README.md | 1 + en/examples/fly_mission.md | 188 ++++++---- en/examples/fly_mission_qgc_plan.md | 337 ++++++++++++++++++ en/guide/missions.md | 76 ++-- 6 files changed, 503 insertions(+), 100 deletions(-) create mode 100644 assets/examples/fly_qgc_mission/fly_qgc_plan_mission_example_qgc.jpg create mode 100644 en/examples/fly_mission_qgc_plan.md diff --git a/assets/examples/fly_qgc_mission/fly_qgc_plan_mission_example_qgc.jpg b/assets/examples/fly_qgc_mission/fly_qgc_plan_mission_example_qgc.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fd0843e8e19111e26a9f30677c5b5ae4ce5699b2 GIT binary patch literal 60638 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%0AEiM|Qn|nlx?~AtWq65$*3C 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 bw`NTD&S, Shakthi Prashanth -// +/** +* @file fly_mission.cpp +* +* @brief Demonstrates how to Add & Fly Waypoint missions using DroneCore. +* The example is summarised below: +* 1. Adds mission items. +* 2. Starts mission from first mission item. +* 3. Illustrates Pause/Resume mission item. +* 4. Exits after the mission is accomplished. +* +* @author Julian Oes , +* Shakthi Prashanth M +* @date 2017-09-06 +*/ #include #include @@ -153,19 +162,31 @@ target_link_libraries(fly_mission #include #include +#define ERROR_CONSOLE_TEXT "\033[31m" //Turn text on console red +#define TELEMETRY_CONSOLE_TEXT "\033[34m" //Turn text on console blue +#define NORMAL_CONSOLE_TEXT "\033[0m" //Restore normal console colour using namespace dronecore; using namespace std::placeholders; // for `_1` - - -static std::shared_ptr add_mission_item(double latitude_deg, - double longitude_deg, - float relative_altitude_m, - float speed_m_s, - bool is_fly_through, - float gimbal_pitch_deg, - float gimbal_yaw_deg, - MissionItem::CameraAction camera_action); +using namespace std::chrono; // for seconds(), milliseconds() +using namespace std::this_thread; // for sleep_for() + +// Handles Action's result +inline void handle_action_err_exit(Action::Result result, const std::string &message); +// Handles Mission's result +inline void handle_mission_err_exit(Mission::Result result, const std::string &message); +// Handles Connection result +inline void handle_connection_err_exit(DroneCore::ConnectionResult result, + const std::string &message); + +static std::shared_ptr make_mission_item(double latitude_deg, + double longitude_deg, + float relative_altitude_m, + float speed_m_s, + bool is_fly_through, + float gimbal_pitch_deg, + float gimbal_yaw_deg, + MissionItem::CameraAction camera_action); int main(int /*argc*/, char ** /*argv*/) { @@ -182,11 +203,7 @@ int main(int /*argc*/, char ** /*argv*/) }); DroneCore::ConnectionResult connection_result = dc.add_udp_connection(); - if (connection_result != DroneCore::ConnectionResult::SUCCESS) { - std::cout << "Connection failed: " << DroneCore::connection_result_str( - connection_result) << std::endl; - return 1; - } + handle_connection_err_exit(connection_result, "Connection failed: "); future_result.get(); } @@ -207,7 +224,7 @@ int main(int /*argc*/, char ** /*argv*/) while (!telemetry->health_all_ok()) { std::cout << "Waiting for device to be ready" << std::endl; - std::this_thread::sleep_for(std::chrono::seconds(1)); + sleep_for(seconds(1)); } std::cout << "Device ready" << std::endl; @@ -216,45 +233,45 @@ int main(int /*argc*/, char ** /*argv*/) std::vector> mission_items; mission_items.push_back( - add_mission_item(47.398170327054473, - 8.5456490218639658, - 10.0f, 5.0f, false, - 20.0f, 60.0f, - MissionItem::CameraAction::NONE)); + make_mission_item(47.398170327054473, + 8.5456490218639658, + 10.0f, 5.0f, false, + 20.0f, 60.0f, + MissionItem::CameraAction::NONE)); mission_items.push_back( - add_mission_item(47.398241338125118, - 8.5455360114574432, - 10.0f, 2.0f, true, - 0.0f, -60.0f, - MissionItem::CameraAction::TAKE_PHOTO)); + make_mission_item(47.398241338125118, + 8.5455360114574432, + 10.0f, 2.0f, true, + 0.0f, -60.0f, + MissionItem::CameraAction::TAKE_PHOTO)); mission_items.push_back( - add_mission_item(47.398139363821485, 8.5453846156597137, - 10.0f, 5.0f, true, - -45.0f, 0.0f, - MissionItem::CameraAction::START_VIDEO)); + make_mission_item(47.398139363821485, 8.5453846156597137, + 10.0f, 5.0f, true, + -45.0f, 0.0f, + MissionItem::CameraAction::START_VIDEO)); mission_items.push_back( - add_mission_item(47.398058617228855, - 8.5454618036746979, - 10.0f, 2.0f, false, - -90.0f, 30.0f, - MissionItem::CameraAction::STOP_VIDEO)); + make_mission_item(47.398058617228855, + 8.5454618036746979, + 10.0f, 2.0f, false, + -90.0f, 30.0f, + MissionItem::CameraAction::STOP_VIDEO)); mission_items.push_back( - add_mission_item(47.398100366082858, - 8.5456969141960144, - 10.0f, 5.0f, false, - -45.0f, -30.0f, - MissionItem::CameraAction::START_PHOTO_INTERVAL)); + make_mission_item(47.398100366082858, + 8.5456969141960144, + 10.0f, 5.0f, false, + -45.0f, -30.0f, + MissionItem::CameraAction::START_PHOTO_INTERVAL)); mission_items.push_back( - add_mission_item(47.398001890458097, - 8.5455576181411743, - 10.0f, 5.0f, false, - 0.0f, 0.0f, - MissionItem::CameraAction::STOP_PHOTO_INTERVAL)); + make_mission_item(47.398001890458097, + 8.5455576181411743, + 10.0f, 5.0f, false, + 0.0f, 0.0f, + MissionItem::CameraAction::STOP_PHOTO_INTERVAL)); { std::cout << "Uploading mission..." << std::endl; @@ -277,11 +294,7 @@ int main(int /*argc*/, char ** /*argv*/) std::cout << "Arming..." << std::endl; const Action::Result arm_result = action->arm(); - if (arm_result != Action::Result::SUCCESS) { - std::cout << "Arming failed (" << Action::result_str(arm_result) << "), exiting." << std::endl; - return 1; - } - + handle_action_err_exit(arm_result, "Arm failed: "); std::cout << "Armed." << std::endl; std::atomic want_to_pause {false}; @@ -308,14 +321,11 @@ int main(int /*argc*/, char ** /*argv*/) }); const Mission::Result result = future_result.get(); - if (result != Mission::Result::SUCCESS) { - std::cout << "Mission start failed (" << Mission::result_str(result) << "), exiting." << std::endl; - return 1; - } + handle_mission_err_exit(result, "Mission start failed: "); } while (!want_to_pause) { - std::this_thread::sleep_for(std::chrono::seconds(1)); + sleep_for(seconds(1)); } { @@ -337,7 +347,7 @@ int main(int /*argc*/, char ** /*argv*/) } // Pause for 5 seconds. - std::this_thread::sleep_for(std::chrono::seconds(5)); + sleep_for(seconds(5)); // Then continue. { @@ -359,7 +369,7 @@ int main(int /*argc*/, char ** /*argv*/) } while (!mission->mission_finished()) { - std::this_thread::sleep_for(std::chrono::seconds(1)); + sleep_for(seconds(1)); } { @@ -374,23 +384,23 @@ int main(int /*argc*/, char ** /*argv*/) } // We need to wait a bit, otherwise the armed state might not be correct yet. - std::this_thread::sleep_for(std::chrono::seconds(2)); + sleep_for(seconds(2)); while (telemetry->armed()) { // Wait until we're done. - std::this_thread::sleep_for(std::chrono::seconds(1)); + sleep_for(seconds(1)); } std::cout << "Disarmed, exiting." << std::endl; } -std::shared_ptr add_mission_item(double latitude_deg, - double longitude_deg, - float relative_altitude_m, - float speed_m_s, - bool is_fly_through, - float gimbal_pitch_deg, - float gimbal_yaw_deg, - MissionItem::CameraAction camera_action) +std::shared_ptr make_mission_item(double latitude_deg, + double longitude_deg, + float relative_altitude_m, + float speed_m_s, + bool is_fly_through, + float gimbal_pitch_deg, + float gimbal_yaw_deg, + MissionItem::CameraAction camera_action) { std::shared_ptr new_item(new MissionItem()); new_item->set_position(latitude_deg, longitude_deg); @@ -401,4 +411,34 @@ std::shared_ptr add_mission_item(double latitude_deg, new_item->set_camera_action(camera_action); return new_item; } + +inline void handle_action_err_exit(Action::Result result, const std::string &message) +{ + if (result != Action::Result::SUCCESS) { + std::cerr << ERROR_CONSOLE_TEXT << message << Action::result_str( + result) << NORMAL_CONSOLE_TEXT << std::endl; + exit(EXIT_FAILURE); + } +} + +inline void handle_mission_err_exit(Mission::Result result, const std::string &message) +{ + if (result != Mission::Result::SUCCESS) { + std::cerr << ERROR_CONSOLE_TEXT << message << Mission::result_str( + result) << NORMAL_CONSOLE_TEXT << std::endl; + exit(EXIT_FAILURE); + } +} + +// Handles connection result +inline void handle_connection_err_exit(DroneCore::ConnectionResult result, + const std::string &message) +{ + if (result != DroneCore::ConnectionResult::SUCCESS) { + std::cerr << ERROR_CONSOLE_TEXT << message + << DroneCore::connection_result_str(result) + << NORMAL_CONSOLE_TEXT << std::endl; + exit(EXIT_FAILURE); + } +} ``` diff --git a/en/examples/fly_mission_qgc_plan.md b/en/examples/fly_mission_qgc_plan.md new file mode 100644 index 0000000..956d62a --- /dev/null +++ b/en/examples/fly_mission_qgc_plan.md @@ -0,0 +1,337 @@ +# Example: Fly QGroundControl Plan Mission + +The [Fly QGroundControl Plan Mission](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/example/fly_qgc_mission) example shows how to import a *QGroundControl* mission plan, upload it to a vehicle, run the mission, and then command Return mode ("RTL"). + +![Fly Mission QGC Screenshot - From Plan](../../assets/examples/fly_qgc_mission/fly_qgc_plan_mission_example_qgc.jpg) + + +## Running the Example {#run_example} + +The example is built and run in the normal way ([as described here](../examples/README.md#trying_the_examples)). + +The example terminal output should be similar to that shown below: + +> **Note** This is from a debug build of DroneCore. A release build will omit the "Debug" messages. + +``` +$ ./fly_qgc_mission +Usage: ./fly_qgc_mission +Importing mission from Default mission plan: ../../../plugins/mission/qgroundcontrol_sample.plan +Waiting to discover device... +[02:25:09|Info ] New device on: 127.0.0.1:14557 (udp_connection.cpp:211) +[02:25:09|Debug] MAVLink: info: DISARMED by auto disarm on land (device.cpp:247) +[02:25:09|Debug] Discovered 4294967298 (dronecore_impl.cpp:219) +Discovered device with UUID: 4294967298 +Waiting for device to be ready +Waiting for device to be ready +Device ready +Found 8 mission items in the given QGC plan. +Uploading mission... +[02:25:11|Debug] Send mission item 0 (mission_impl.cpp:781) +[02:25:11|Debug] Send mission item 1 (mission_impl.cpp:781) +[02:25:11|Debug] Send mission item 2 (mission_impl.cpp:781) +[02:25:11|Debug] Send mission item 3 (mission_impl.cpp:781) +[02:25:11|Debug] Send mission item 4 (mission_impl.cpp:781) +[02:25:11|Debug] Send mission item 5 (mission_impl.cpp:781) +[02:25:11|Debug] Send mission item 6 (mission_impl.cpp:781) +[02:25:11|Debug] Send mission item 7 (mission_impl.cpp:781) +[02:25:11|Debug] Send mission item 8 (mission_impl.cpp:781) +[02:25:11|Debug] Send mission item 9 (mission_impl.cpp:781) +[02:25:11|Debug] Send mission item 10 (mission_impl.cpp:781) +[02:25:11|Debug] Send mission item 11 (mission_impl.cpp:781) +[02:25:12|Debug] Send mission item 12 (mission_impl.cpp:781) +[02:25:12|Debug] Send mission item 13 (mission_impl.cpp:781) +[02:25:12|Debug] Send mission item 14 (mission_impl.cpp:781) +Mission uploaded. +Arming... +[02:25:12|Info ] Mission accepted (mission_impl.cpp:146) +Armed. +Starting mission. +[02:25:12|Debug] MAVLink: info: ARMED by arm/disarm component command (device.cpp:247) +[02:25:12|Debug] MAVLink: info: [logger] file: rootfs/fs/microsd/log/2018-02-15/0 (device.cpp:247) +Started mission. +[02:25:12|Debug] MAVLink: info: Executing mission. (device.cpp:247) +[02:25:12|Debug] MAVLink: info: Takeoff to 15.0 meters above home. (device.cpp:247) +[02:25:12|Debug] MAVLink: info: Takeoff detected (device.cpp:247) +Mission status update: 0 / 8 +Mission status update: 1 / 8 +Mission status update: 1 / 8 +Mission status update: 1 / 8 +Mission status update: 1 / 8 +Mission status update: 2 / 8 +Mission status update: 2 / 8 +Mission status update: 2 / 8 +Mission status update: 2 / 8 +Mission status update: 3 / 8 +Mission status update: 3 / 8 +Mission status update: 3 / 8 +Mission status update: 3 / 8 +Mission status update: 4 / 8 +Mission status update: 4 / 8 +Mission status update: 4 / 8 +Mission status update: 4 / 8 +Mission status update: 5 / 8 +Mission status update: 5 / 8 +Mission status update: 5 / 8 +Mission status update: 5 / 8 +Mission status update: 6 / 8 +Mission status update: 6 / 8 +Mission status update: 6 / 8 +Mission status update: 6 / 8 +Mission status update: 7 / 8 +Mission status update: 7 / 8 +Mission status update: 7 / 8 +[02:26:19|Debug] MAVLink: info: Mission finished, loitering. (device.cpp:247) +Mission status update: 8 / 8 +Commanding RTL... +Commanded RTL. +``` + +## How it works + +The operation of most of this code is discussed in the guide: [Missions > Import a Mission from a QGC Plan](../guide/missions.md#import_qgc_plan). + +## Source code {#source_code} + +> **Tip** The full source code for the example [can be found on Github here](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/example/fly_qgc_mission). + + +[CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/example/fly_qgc_mission/CMakeLists.txt) + +```make +cmake_minimum_required(VERSION 2.8.12) + +project(fly_qgc_mission) + +if(NOT MSVC) + add_definitions("-std=c++11 -Wall -Wextra -Werror") +else() + add_definitions("-std=c++11 -WX -W2") + include_directories(${CMAKE_SOURCE_DIR}/../../install/include) + link_directories(${CMAKE_SOURCE_DIR}/../../install/lib) +endif() + +add_executable(fly_qgc_mission + fly_qgc_mission.cpp +) + +target_link_libraries(fly_qgc_mission + dronecore + dronecore_action + dronecore_mission + dronecore_telemetry +) +``` + +[fly_qgc_mission.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/example/fly_qgc_mission/fly_qgc_mission.cpp) + +```cpp +/** +* @file fly_qgc_mission.cpp +* +* @brief Demonstrates how to import mission items from QGroundControl plan, +* and fly them using DroneCore. +* +* Steps to run this example: +* 1. (a) Create a Mission in QGroundControl and save them to a file (.plan) (OR) +* (b) Use a pre-created sample mission plan in "example/fly_qgc_mission/qgroundcontrol_sample.plan". +* Click [here](https://user-images.githubusercontent.com/26615772/31763673-972c5bb6-b4dc-11e7-8ff0-f8b39b6b88c3.png) to see what sample mission plan in QGroundControl looks like. +* 2. Run the example by passing path of the QGC mission plan as argument (Uses sample mission plan by default). +* +* Example description: +* 1. Imports QGC mission items from .plan file. +* 2. Uploads mission items to vehicle. +* 3. Starts mission from first mission item. +* 4. Commands RTL once QGC Mission is accomplished. +* +* @author Shakthi Prashanth M , +* Julian Oes +* @date 2018-02-04 +*/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#define ERROR_CONSOLE_TEXT "\033[31m" //Turn text on console red +#define TELEMETRY_CONSOLE_TEXT "\033[34m" //Turn text on console blue +#define NORMAL_CONSOLE_TEXT "\033[0m" //Restore normal console colour + +using namespace dronecore; +using namespace std::chrono; // for seconds(), milliseconds() +using namespace std::this_thread; // for sleep_for() + +// Handles Action's result +inline void handle_action_err_exit(Action::Result result, const std::string &message); +// Handles Mission's result +inline void handle_mission_err_exit(Mission::Result result, const std::string &message); +// Handles Connection result +inline void handle_connection_err_exit(DroneCore::ConnectionResult result, + const std::string &message); + +int main(int argc, char **argv) +{ + // Locate path of QGC Sample plan + std::string qgc_plan = "../../../plugins/mission/qgroundcontrol_sample.plan"; + + if (argc != 2) { + std::cout << "Usage: " << argv[0] << " \n"; + std::cout << "Importing mission from Default mission plan: " << qgc_plan << std::endl; + } else if (argc == 2) { + std::cout << "Importing mission from mission plan: " << qgc_plan << std::endl; + qgc_plan = argv[1]; + } + + DroneCore dc; + + { + auto prom = std::make_shared>(); + auto future_result = prom->get_future(); + + std::cout << "Waiting to discover device..." << std::endl; + dc.register_on_discover([prom](uint64_t uuid) { + std::cout << "Discovered device with UUID: " << uuid << std::endl; + prom->set_value(); + }); + + DroneCore::ConnectionResult connection_result = dc.add_udp_connection(); + handle_connection_err_exit(connection_result, "Connection failed: "); + + future_result.get(); + } + + dc.register_on_timeout([](uint64_t uuid) { + std::cout << "Device with UUID timed out: " << uuid << std::endl; + std::cout << "Exiting." << std::endl; + exit(0); + }); + + // We don't need to specify the UUID if it's only one device anyway. + // If there were multiple, we could specify it with: + // dc.device(uint64_t uuid); + Device &device = dc.device(); + std::shared_ptr action = std::make_shared(&device); + std::shared_ptr mission = std::make_shared(&device); + std::shared_ptr telemetry = std::make_shared(&device); + + while (!telemetry->health_all_ok()) { + std::cout << "Waiting for device to be ready" << std::endl; + sleep_for(seconds(1)); + } + + std::cout << "Device ready" << std::endl; + + // Import Mission items from QGC plan + Mission::mission_items_t mission_items; + Mission::Result import_res = Mission::import_qgroundcontrol_mission(mission_items, qgc_plan); + handle_mission_err_exit(import_res, "Failed to import mission items: "); + + if (mission_items.size() == 0) { + std::cerr << "No missions! Exiting..." << std::endl; + exit(EXIT_FAILURE); + } + std::cout << "Found " << mission_items.size() << " mission items in the given QGC plan." << + std::endl; + + { + std::cout << "Uploading mission..." << std::endl; + // Wrap the asynchronous upload_mission function using std::future. + auto prom = std::make_shared>(); + auto future_result = prom->get_future(); + mission->upload_mission_async( + mission_items, [prom](Mission::Result result) { + prom->set_value(result); + }); + + const Mission::Result result = future_result.get(); + handle_mission_err_exit(result, "Mission upload failed: "); + std::cout << "Mission uploaded." << std::endl; + } + + std::cout << "Arming..." << std::endl; + const Action::Result arm_result = action->arm(); + handle_action_err_exit(arm_result, "Arm failed: "); + std::cout << "Armed." << std::endl; + + // Before starting the mission subscribe to the mission progress. + mission->subscribe_progress( + [](int current, int total) { + std::cout << "Mission status update: " << current << " / " << total << std::endl; + }); + + { + std::cout << "Starting mission." << std::endl; + auto prom = std::make_shared>(); + auto future_result = prom->get_future(); + mission->start_mission_async( + [prom](Mission::Result result) { + prom->set_value(result); + std::cout << "Started mission." << std::endl; + }); + + const Mission::Result result = future_result.get(); + handle_mission_err_exit(result, "Mission start failed: "); + } + + while (!mission->mission_finished()) { + sleep_for(seconds(1)); + } + + // Wait for some time. + sleep_for(seconds(5)); + + { + // Mission complete. Command RTL to go home. + std::cout << "Commanding RTL..." << std::endl; + const Action::Result result = action->return_to_launch(); + if (result != Action::Result::SUCCESS) { + std::cout << "Failed to command RTL (" << Action::result_str(result) << ")" << std::endl; + } else { + std::cout << "Commanded RTL." << std::endl; + } + } + + return 0; +} + +inline void handle_action_err_exit(Action::Result result, const std::string &message) +{ + if (result != Action::Result::SUCCESS) { + std::cerr << ERROR_CONSOLE_TEXT << message << Action::result_str( + result) << NORMAL_CONSOLE_TEXT << std::endl; + exit(EXIT_FAILURE); + } +} + +inline void handle_mission_err_exit(Mission::Result result, const std::string &message) +{ + if (result != Mission::Result::SUCCESS) { + std::cerr << ERROR_CONSOLE_TEXT << message << Mission::result_str( + result) << NORMAL_CONSOLE_TEXT << std::endl; + exit(EXIT_FAILURE); + } +} + +// Handles connection result +inline void handle_connection_err_exit(DroneCore::ConnectionResult result, + const std::string &message) +{ + if (result != DroneCore::ConnectionResult::SUCCESS) { + std::cerr << ERROR_CONSOLE_TEXT << message + << DroneCore::connection_result_str(result) + << NORMAL_CONSOLE_TEXT << std::endl; + exit(EXIT_FAILURE); + } +} +``` + +[qgroundcontrol_sample.plan](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/example/fly_qgc_mission/qgroundcontrol_sample.plan) + +``` + +``` diff --git a/en/guide/missions.md b/en/guide/missions.md index c333628..8706fec 100644 --- a/en/guide/missions.md +++ b/en/guide/missions.md @@ -1,6 +1,6 @@ # Missions -The DroneCore Mission API allows you to create, upload, download, run, pause, restart, jump to item in, and track missions. Missions can have multiple "mission items", each which may specify a position, altitude, fly-through behaviour, camera action, gimbal position, and the speed to use when traveling to the next position. +The DroneCore Mission API allows you to create, upload, download, import from *QGroundControl*, run, pause, restart, jump to item in, and track missions. Missions can have multiple "mission items", each which may specify a position, altitude, fly-through behaviour, camera action, gimbal position, and the speed to use when traveling to the next position. Missions are *managed* though the [Mission](../api_reference/classdronecore_1_1_mission.md) class, which communicates with the device to upload mission information and run, pause, track the mission progress etc. The mission that is uploaded to the vehicle is defined as a vector of [MissionItem](../api_reference/classdronecore_1_1_mission_item.md) objects. @@ -10,13 +10,14 @@ Missions are *managed* though the [Mission](../api_reference/classdronecore_1_1_ The [MissionItem](../api_reference/classdronecore_1_1_mission_item.md) class abstracts a small but useful subset of the mission commands supported by PX4 (and the MAVLink specification): The supported set is: -* [MAV_CMD_NAV_WAYPOINT](http://mavlink.org/messages/common#MAV_CMD_NAV_WAYPOINT) -* [MAV_CMD_DO_CHANGE_SPEED](http://mavlink.org/messages/common#MAV_CMD_DO_CHANGE_SPEED) -* [MAV_CMD_DO_MOUNT_CONTROL](http://mavlink.org/messages/common#MAV_CMD_DO_MOUNT_CONTROL) -* [MAV_CMD_IMAGE_START_CAPTURE](http://mavlink.org/messages/common#MAV_CMD_IMAGE_START_CAPTURE) -* [MAV_CMD_IMAGE_STOP_CAPTURE](http://mavlink.org/messages/common#MAV_CMD_IMAGE_STOP_CAPTURE) -* [MAV_CMD_VIDEO_START_CAPTURE](http://mavlink.org/messages/common#MAV_CMD_VIDEO_START_CAPTURE) -* [MAV_CMD_VIDEO_STOP_CAPTURE](http://mavlink.org/messages/common#MAV_CMD_VIDEO_STOP_CAPTURE) +* [MAV_CMD_NAV_WAYPOINT](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_WAYPOINT) +* [MAV_CMD_DO_CHANGE_SPEED](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_CHANGE_SPEED) +* [MAV_CMD_DO_MOUNT_CONTROL](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_MOUNT_CONTROL) +* [MAV_CMD_IMAGE_START_CAPTURE](https://mavlink.io/en/messages/common.html#MAV_CMD_IMAGE_START_CAPTURE) +* [MAV_CMD_IMAGE_STOP_CAPTURE](https://mavlink.io/en/messages/common.html#MAV_CMD_IMAGE_STOP_CAPTURE) +* [MAV_CMD_VIDEO_START_CAPTURE](https://mavlink.io/en/messages/common.html#MAV_CMD_VIDEO_START_CAPTURE) +* [MAV_CMD_VIDEO_STOP_CAPTURE](https://mavlink.io/en/messages/common.html#MAV_CMD_VIDEO_STOP_CAPTURE) +* [MAV_CMD_NAV_LOITER_TIME](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_LOITER_TIME) > **Tip** The Mission API does not (at time of writing) support "repeat", takeoff, return to land etc. > DroneCore provides some omitted functionality through the [Action](../guide/taking_off_landing.md) API. @@ -98,6 +99,7 @@ then it will be the default for the remainder of the mission. > **Note** There are also getter methods for querying the current value of `MissionItem` attributes. The default values of most fields are `NaN` (which means they are ignored/not sent). +The mission (`mission_items`) can then be uploaded as shown in the section [Uploading a Mission](#uploading_mission) below. ### Convenience Function @@ -108,14 +110,14 @@ value is actually used. The definition and use of this function is shown below: ```cpp -std::shared_ptr add_mission_item(double latitude_deg, - double longitude_deg, - float relative_altitude_m, - float speed_m_s, - bool is_fly_through, - float gimbal_pitch_deg, - float gimbal_yaw_deg, - MissionItem::CameraAction camera_action) +std::shared_ptr make_mission_item(double latitude_deg, + double longitude_deg, + float relative_altitude_m, + float speed_m_s, + bool is_fly_through, + float gimbal_pitch_deg, + float gimbal_yaw_deg, + MissionItem::CameraAction camera_action) { std::shared_ptr new_item(new MissionItem()); new_item->set_position(latitude_deg, longitude_deg); @@ -126,18 +128,37 @@ std::shared_ptr add_mission_item(double latitude_deg, new_item->set_camera_action(camera_action); return new_item; } - - + + mission_items.push_back( - add_mission_item(47.398170327054473, - 8.5456490218639658, - 10.0f, 5.0f, false, - 20.0f, 60.0f, - MissionItem::CameraAction::NONE)); + make_mission_item(47.398170327054473, + 8.5456490218639658, + 10.0f, 5.0f, false, + 20.0f, 60.0f, + MissionItem::CameraAction::NONE)); ``` +## Import a Mission from a QGC Plan {#import_qgc_plan} + +DroneCore allows you to import a mission from a *QGroundControl* plan (the imported mission can then be uploaded to a vehicle). + +> **Note** To export a mission plan from the *QGroundControl* use the [Sync Tool](https://docs.qgroundcontrol.com/en/PlanView/PlanView.html#sync) (**Plan View > Sync Tool**, and then select **Save to File**). + +The mission is imported using the static [import_qgroundcontrol_mission](../api_reference/classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a7c73e97e5c1395a7451bb659d03e5f57) method. The method will fail with an error if the plan file cannot be found, cannot be parsed, or if it contains mission items that are [not supported](#supported_mission_commands). + +The code fragment below shows how to import mission items from a plan: +```cpp +std::string qgc_plan = "file_path_to_some_qgroundcontrol.plan" +Mission::mission_items_t mission_items; +Mission::Result import_res = Mission::import_qgroundcontrol_mission(mission_items, qgc_plan); +``` + +> **Tip** [Example:Fly QGC Plan Mission](../examples/fly_mission_qgc_plan.md) provides a working example with error checking. + +The mission (`mission_items`) can then be uploaded as shown in the section [Uploading a Mission](#uploading_mission) below. + -## Uploading a Mission +## Uploading a Mission {#uploading_mission} Use [Mission::upload_mission_async()](../api_reference/classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a414b5b6d0c66af695a725e92003872b5) to upload the mission defined in the previous section. @@ -231,7 +252,7 @@ The following synchronous methods are also available for checking mission progre > **Note** The mission is (also) complete when `current_mission_item()` == `total_mission_items()`. -## Taking off, Landing, Returning +## Taking Off, Landing, Returning If using a copter or VTOL vehicle then PX4 will automatically takeoff when it is armed and a mission is started (even without a takeoff mission item). For Fixed Wing vehicles the vehicle must be launched before starting a mission. @@ -287,8 +308,11 @@ The code fragment below shows how to download a mission: ## Further Information * [Mission Flight Mode](https://docs.px4.io/en/flight_modes/mission.html) (PX4 User Guide) -* [Fly Mission](../examples/fly_mission.md) (DroneCore Example) +* [Example:Fly Mission](../examples/fly_mission.md) +* [Example:Fly QGC Plan Mission](../examples/fly_mission_qgc_plan.md) * Integration tests: * [mission.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/mission.cpp) * [mission_change_speed.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/mission_change_speed.cpp) * [mission_survey.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/mission_survey.cpp) +* Unit Tests: + * [mission_import_qgc_test.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/plugins/mission/mission_import_qgc_test.cpp) \ No newline at end of file From 51806c405217b210b5cf49e8bc7ac05eea5c44e8 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Fri, 16 Feb 2018 17:35:02 +1100 Subject: [PATCH 084/107] Update test information for test runner --- en/contributing/plugins.md | 31 ++++++++++++++++++------------- en/contributing/test.md | 8 ++++---- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/en/contributing/plugins.md b/en/contributing/plugins.md index 3ddf530..65966ee 100644 --- a/en/contributing/plugins.md +++ b/en/contributing/plugins.md @@ -151,7 +151,7 @@ plugin **CMakeLists.txt** file (you can add multiple files). The example plugin adds the **example_impl_test.cpp** unit test as shown below: -```cmake +```cmake set(unittest_source_files # Add unit test file(s) for plugin example_impl_test.cpp @@ -159,7 +159,7 @@ set(unittest_source_files ) ``` -> **Note** Unit tests for *core* functionality are added in the main [DroneCore/CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/CMakeLists.txt#L187) file. +> **Note** Unit tests for *core* functionality are added in the [cmake/unit_tests.cmake](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/cmake/unit_tests.cmake) file. #### Unit Test Code @@ -198,7 +198,7 @@ some helper code to make it easier to log tests and run them against the simulat #### Adding Integration Tests -In order to run an integration test it needs to be added to the `dronecore-integrationtests` program. +In order to run an integration test it needs to be added to the `integration_tests_runner` program. Integration tests for core functionality and plugins delivered by the project are stored in [DroneCore/integration_tests](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/integration_tests). @@ -206,13 +206,18 @@ The files are added to the test program in that folder's [CMakeLists.txt](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/integration_tests/CMakeLists.txt) file: ```cmake -list(APPEND integration_tests - simple_connect - async_connect - # ... - mission_change_speed - mission_survey - curl +# This includes all GTests that run integration tests +add_executable(integration_tests_runner + ../core/unittests_main.cpp + simple_connect.cpp + async_connect.cpp + telemetry_simple.cpp + ... + mission_change_speed.cpp + mission_survey.cpp + gimbal.cpp + transition_multicopter_fixedwing.cpp + follow_me.cpp ) ``` @@ -226,9 +231,9 @@ external_example ## The (example) SDK/external plugin directory. Example extension **CMakeLists.txt** file: ```cmake -list(APPEND integration_tests - # Add the cpp file for each integration test on its own line - hello_world +add_executable(external_example_integration_tests_runner + ${CMAKE_SOURCE_DIR}/core/unittests_main.cpp + hello_world.cpp ) ``` diff --git a/en/contributing/test.md b/en/contributing/test.md index 9f27c3d..9f289c0 100644 --- a/en/contributing/test.md +++ b/en/contributing/test.md @@ -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/dronecore-integrationtests --gtest_filter="SitlTest.TelemetryAsync" +make && build/default/integration_tests/integration_tests_runner --gtest_filter="SitlTest.TelemetryAsync" ``` @@ -76,15 +76,15 @@ make && build/default/dronecore-integrationtests --gtest_filter="SitlTest.Teleme To list all integration tests: ``` -make && build/default/dronecore-integrationtests --gtest_list_tests +make && build/default/integration_tests/integration_tests_runner --gtest_list_tests ``` To run a single integration test: ``` -make && build/default/dronecore-integrationtests --gtest_filter="SitlTest.TelemetryAsync" +make && build/default/integration_tests/integration_tests_runner --gtest_filter="SitlTest.TelemetryAsync" ``` To run all telemetry tests: ``` -make && build/default/dronecore-integrationtests --gtest_filter="SitlTest.Telemetry*" +make && build/default/integration_tests/integration_tests_runner --gtest_filter="SitlTest.Telemetry*" ``` From a658b68d7362f51e39cf61acb5806fe6af1c408f Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 19 Feb 2018 12:30:26 +1100 Subject: [PATCH 085/107] Remove pthread from followme example docs --- en/examples/follow_me.md | 1 - 1 file changed, 1 deletion(-) diff --git a/en/examples/follow_me.md b/en/examples/follow_me.md index c19182d..e47de0c 100644 --- a/en/examples/follow_me.md +++ b/en/examples/follow_me.md @@ -106,7 +106,6 @@ target_link_libraries(follow_me dronecore dronecore_action dronecore_follow_me - pthread ) ``` From 5896a99ad3e9929541d85420fe6c906cb3aa2b97 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 19 Feb 2018 15:40:12 +1100 Subject: [PATCH 086/107] Update example following clarifications on qgc plan file location --- en/examples/fly_mission_qgc_plan.md | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/en/examples/fly_mission_qgc_plan.md b/en/examples/fly_mission_qgc_plan.md index 956d62a..5cb12c8 100644 --- a/en/examples/fly_mission_qgc_plan.md +++ b/en/examples/fly_mission_qgc_plan.md @@ -9,6 +9,12 @@ The [Fly QGroundControl Plan Mission](https://github.com/dronecore/DroneCore/tre The example is built and run in the normal way ([as described here](../examples/README.md#trying_the_examples)). +> **Tip** By default the example will load a sample plan from the plugin unit test: [/plugins/mission/qgroundcontrol_sample.plan](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/plugins/mission/qgroundcontrol_sample.plan). Alternatively you can specify the plan to load when you start the example: + ``` + ./fly_qgc_mission + ``` + + The example terminal output should be similar to that shown below: > **Note** This is from a debug build of DroneCore. A release build will omit the "Debug" messages. @@ -89,7 +95,14 @@ Commanded RTL. ## How it works -The operation of most of this code is discussed in the guide: [Missions > Import a Mission from a QGC Plan](../guide/missions.md#import_qgc_plan). +The example application performs the following operations: +1. Imports QGC mission items from **.plan** file. +1. Uploads mission items to vehicle. +1. Sets up mission progress monitoring. +1. Starts the mission from the first mission item. +1. Commands the *Return*/RTL action once the mission completes. + +The specific code for importing missions is discussed in the guide: [Missions > Import a Mission from a QGC Plan](../guide/missions.md#import_qgc_plan). ## Source code {#source_code} @@ -134,9 +147,8 @@ target_link_libraries(fly_qgc_mission * * Steps to run this example: * 1. (a) Create a Mission in QGroundControl and save them to a file (.plan) (OR) -* (b) Use a pre-created sample mission plan in "example/fly_qgc_mission/qgroundcontrol_sample.plan". -* Click [here](https://user-images.githubusercontent.com/26615772/31763673-972c5bb6-b4dc-11e7-8ff0-f8b39b6b88c3.png) to see what sample mission plan in QGroundControl looks like. -* 2. Run the example by passing path of the QGC mission plan as argument (Uses sample mission plan by default). +* (b) Use a pre-created sample mission plan in "plugins/mission/qgroundcontrol_sample.plan". +* 2. Run the example by passing path of the QGC mission plan as argument (By default, sample mission plan is imported). * * Example description: * 1. Imports QGC mission items from .plan file. @@ -330,8 +342,3 @@ inline void handle_connection_err_exit(DroneCore::ConnectionResult result, } ``` -[qgroundcontrol_sample.plan](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/example/fly_qgc_mission/qgroundcontrol_sample.plan) - -``` - -``` From 08eda8b953555c7e97eabb63666420f39a3f1081 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 19 Feb 2018 16:38:22 +1100 Subject: [PATCH 087/107] Add instructions for adding unit tests to the test runner --- en/contributing/plugins.md | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/en/contributing/plugins.md b/en/contributing/plugins.md index 65966ee..c9b9bdd 100644 --- a/en/contributing/plugins.md +++ b/en/contributing/plugins.md @@ -141,25 +141,22 @@ Unit tests are therefore considered optional! #### Adding Unit Tests {#adding_unit_tests} -Unit tests are stored as separate files in the same directory as their associated source code. +Unit test files are stored in the same directory as their associated source code. Often they test the implementation (rather than the public API), and hence are named with the suffix **_impl_test.cpp**. -In order to include a test in the DroneCore unit test program (`dronecore-unittests`), -its file name must be added to the `$unittest_source_files` variable in the -plugin **CMakeLists.txt** file (you can add multiple files). +In order to include a test in the DroneCore unit test program (`unit_tests_runner`), +it must be added to the `UNIT_TEST_SOURCES` variable in the plugin **CMakeLists.txt** file. -The example plugin adds the **example_impl_test.cpp** unit test as shown below: +For example, to add the **example_impl_test.cpp** unit test you would +append the following lines to its **CMakeLists.txt**: ```cmake -set(unittest_source_files - # Add unit test file(s) for plugin - example_impl_test.cpp - PARENT_SCOPE +list(APPEND UNIT_TEST_SOURCES + ${CMAKE_SOURCE_DIR}/plugins/mission/example_impl_test.cpp ) -``` - -> **Note** Unit tests for *core* functionality are added in the [cmake/unit_tests.cmake](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/cmake/unit_tests.cmake) file. +set(UNIT_TEST_SOURCES ${UNIT_TEST_SOURCES} PARENT_SCOPE) +``` #### Unit Test Code From 29cdfaefa3e7df4fdf62a2f8a0ffe08768784ed5 Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Tue, 20 Feb 2018 10:43:49 +0100 Subject: [PATCH 088/107] code_style: add note about exceptions --- en/contributing/code_style.md | 1 + 1 file changed, 1 insertion(+) diff --git a/en/contributing/code_style.md b/en/contributing/code_style.md index e1e0fac..c6e8da1 100644 --- a/en/contributing/code_style.md +++ b/en/contributing/code_style.md @@ -39,3 +39,4 @@ The following general guidelines should be used for all code: - All variables that have a physical unit should have the unit in the variable name (e.g. `_m` for meters, `_m_s` for meters/second). - Variable and method names should be `snake_case` and class/struct/enum names `CamelCase`. Private variables should start with an underscore, e.g.: `_variable_name`. - Try to exit functions early instead of nesting ifs ([read why](https://softwareengineering.stackexchange.com/questions/18454/should-i-return-from-a-function-early-or-use-an-if-statement)). +- We don't use exceptions but use error codes. There are pros and cons for exceptions but given that the public API should be as simple as possible, it makes sense to refrain from exceptions alltogether. From ae773b35da304513bb5ace825156d2b7ff4c98fd Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 26 Feb 2018 14:26:33 +1100 Subject: [PATCH 089/107] Clarify that we can import land and takeoff mission commands --- en/guide/missions.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/en/guide/missions.md b/en/guide/missions.md index 8706fec..4768544 100644 --- a/en/guide/missions.md +++ b/en/guide/missions.md @@ -19,7 +19,11 @@ The supported set is: * [MAV_CMD_VIDEO_STOP_CAPTURE](https://mavlink.io/en/messages/common.html#MAV_CMD_VIDEO_STOP_CAPTURE) * [MAV_CMD_NAV_LOITER_TIME](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_LOITER_TIME) -> **Tip** The Mission API does not (at time of writing) support "repeat", takeoff, return to land etc. +Additionally, the following commands are supported only for mission import/download (there are no corresponding `MissionItem` methods): +* [MAV_CMD_NAV_LAND](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_LAND) +* [MAV_CMD_NAV_TAKEOFF](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_TAKEOFF) + +> **Tip** The Mission API does not (at time of writing) provide explicit functionality to "repeat", takeoff, return to land etc. > DroneCore provides some omitted functionality through the [Action](../guide/taking_off_landing.md) API. From 93951f2e47c875cffb4bcde6aa7289b703163668 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 27 Feb 2018 10:30:44 +1100 Subject: [PATCH 090/107] Update api ref to current - in particular add add_any_connection() --- .../classdronecore_1_1_drone_core.md | 156 ++++++++++++------ .../classdronecore_1_1_telemetry.md | 2 + 2 files changed, 106 insertions(+), 52 deletions(-) diff --git a/en/api_reference/classdronecore_1_1_drone_core.md b/en/api_reference/classdronecore_1_1_drone_core.md index ee1aac7..7a0ce3a 100644 --- a/en/api_reference/classdronecore_1_1_drone_core.md +++ b/en/api_reference/classdronecore_1_1_drone_core.md @@ -28,12 +28,10 @@ Type | Name | Description ---: | --- | --- | [DroneCore](#classdronecore_1_1_drone_core_1a0b94dd09cd46faa41742d3720f210aa2) () | Constructor. | [~DroneCore](#classdronecore_1_1_drone_core_1abbaedb6fd922c023e53611b484b38582) () | Destructor. -[ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) | [add_udp_connection](#classdronecore_1_1_drone_core_1ae4d3a7e5cc46d9570beaafdb5f19a1a8) () | Adds a UDP connection to the default port. -[ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) | [add_udp_connection](#classdronecore_1_1_drone_core_1acff94c81bce7ff2726ae382a9cdc9211) (int local_port_number) | Adds a UDP connection to the specified port number. -[ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) | [add_tcp_connection](#classdronecore_1_1_drone_core_1ae3c2a16c464fda4cfadce0ec1426bb77) () | Adds a TCP connection to the default IP address/port. -[ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) | [add_tcp_connection](#classdronecore_1_1_drone_core_1a4d2128fe8a3df345367af28656e12fe1) (std::string remote_ip, int remote_port) | Adds a TCP connection with a specific IP address and port number. -[ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) | [add_serial_connection](#classdronecore_1_1_drone_core_1aa0e24650330b64753e663cfba51c0292) () | Adds a serial connection with the default arguments. -[ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) | [add_serial_connection](#classdronecore_1_1_drone_core_1ad2561a8a3849255d99842f372ac6ba1a) (std::string dev_path, int baudrate) | Adds a serial connection with a specific port (COM or UART dev node) and baudrate as specified. +[ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) | [add_any_connection](#classdronecore_1_1_drone_core_1a384ae5189b047dd3df8d7e90c42fa021) (const std::string &connection_url=DEFAULT_UDP_CONNECTION_URL) | Adds Connection via URL. +[ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) | [add_udp_connection](#classdronecore_1_1_drone_core_1a7a04fbacf95eb6b21418032c8287dfbb) (int local_port_number=DEFAULT_UDP_PORT) | Adds a UDP connection to the specified port number. +[ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) | [add_tcp_connection](#classdronecore_1_1_drone_core_1a725640cb53c0d077e753ea2d22717b68) (const std::string &remote_ip=DEFAULT_TCP_REMOTE_IP, int remote_port=DEFAULT_TCP_REMOTE_PORT) | Adds a TCP connection with a specific IP address and port number. +[ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) | [add_serial_connection](#classdronecore_1_1_drone_core_1abde7ed4d42875dc85c73d34fedab2902) (const std::string &dev_path=DEFAULT_SERIAL_DEV_PATH, int baudrate=DEFAULT_SERIAL_BAUDRATE) | Adds a serial connection with a specific port (COM or UART dev node) and baudrate as specified. const std::vector< uint64_t > & | [device_uuids](#classdronecore_1_1_drone_core_1a20490717da3893be2c6965b905a7c1db) () const | Get vector of device UUIDs. [Device](classdronecore_1_1_device.md) & | [device](#classdronecore_1_1_drone_core_1a5bac6e419e56a1f77a51adef98e94e7c) () const | Get the first discovered device. [Device](classdronecore_1_1_device.md) & | [device](#classdronecore_1_1_drone_core_1a7d18869c8c8f518af78bee313b554a2a) (uint64_t uuid) const | Get the device with the specified UUID. @@ -42,12 +40,33 @@ bool | [is_connected](#classdronecore_1_1_drone_core_1a2f78c2263df997d38cf508e32 void | [register_on_discover](#classdronecore_1_1_drone_core_1a864ec7349eba67b02b8b3792f6c388f9) (event_callback_t callback) | Register callback for device discovery. void | [register_on_timeout](#classdronecore_1_1_drone_core_1ad8c0dc0100449d21a46a787c810e8978) (event_callback_t callback) | Register callback for device timeout. +## Static Public Attributes + + +static constexpr auto [DEFAULT_UDP_CONNECTION_URL](#classdronecore_1_1_drone_core_1aef2ad569dd9a7d0762b1d17d21e7f598) = "udp://:14540" - + + +static constexpr int [DEFAULT_UDP_PORT](#classdronecore_1_1_drone_core_1aa989b494349529f412b36984a46f2ca6) = 14540 - + + +static constexpr auto [DEFAULT_TCP_REMOTE_IP](#classdronecore_1_1_drone_core_1ade2086911d3052093fb87717f58a99b2) = "127.0.0.1" - + + +static constexpr int [DEFAULT_TCP_REMOTE_PORT](#classdronecore_1_1_drone_core_1a0ded56f7f5873f17e424343ed7b2e5af) = 5760 - + + +static constexpr auto [DEFAULT_SERIAL_DEV_PATH](#classdronecore_1_1_drone_core_1a67928c93b8b8f2ab65cf28a4b6d9436f) = "/dev/ttyS0" - + + +static constexpr int [DEFAULT_SERIAL_BAUDRATE](#classdronecore_1_1_drone_core_1a2b20d34acc312ffe6197aebdc6769a86) = 57600 - + + ## Static Public Member Functions Type | Name | Description ---: | --- | --- -const char * | [connection_result_str](#classdronecore_1_1_drone_core_1a84c40dcefcafe888c38a5ed8dd93b0af) (ConnectionResult) | Translates the [DroneCore::ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) enum to a human-readable English string. +const char * | [connection_result_str](#classdronecore_1_1_drone_core_1a1557da80cf43483e7833cab1eee417dd) (const ConnectionResult result) | Translates the [DroneCore::ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) enum to a human-readable English string. ## Constructor & Destructor Documentation @@ -97,7 +116,7 @@ Callback type for discover and timeout notifications. Result type returned when adding a connection. -**Note**: [DroneCore](classdronecore_1_1_drone_core.md) does not throw exceptions. Instead a result of this type will be returned when you add a connection: [add_udp_connection()](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1ae4d3a7e5cc46d9570beaafdb5f19a1a8). +**Note**: [DroneCore](classdronecore_1_1_drone_core.md) does not throw exceptions. Instead a result of this type will be returned when you add a connection: [add_udp_connection()](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a7a04fbacf95eb6b21418032c8287dfbb). Value | Description --- | --- @@ -113,58 +132,60 @@ Value | Description `COMMAND_DENIED` | Command is denied. `DESTINATION_IP_UNKNOWN` | Connection IP is unknown. `CONNECTIONS_EXHAUSTED` | Connections exhausted. + `CONNECTION_URL_INVALID` | URL invalid. ## Member Function Documentation -### add_udp_connection() {#classdronecore_1_1_drone_core_1ae4d3a7e5cc46d9570beaafdb5f19a1a8} +### add_any_connection() {#classdronecore_1_1_drone_core_1a384ae5189b047dd3df8d7e90c42fa021} ```cpp -ConnectionResult dronecore::DroneCore::add_udp_connection() +ConnectionResult dronecore::DroneCore::add_any_connection(const std::string &connection_url=DEFAULT_UDP_CONNECTION_URL) ``` -Adds a UDP connection to the default port. - -This will listen on UDP port 14540. - -**Returns** +Adds Connection via URL. - [ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) - The result of adding the connection. +Supports connection: Serial, TCP or UDP. Connection URL format should be: +
    -### add_udp_connection() {#classdronecore_1_1_drone_core_1acff94c81bce7ff2726ae382a9cdc9211} -```cpp -ConnectionResult dronecore::DroneCore::add_udp_connection(int local_port_number) -``` +
  • UDP - udp://[Bind_host][:Bind_port]

  • +
  • TCP - tcp://[Server_host][:Server_port]

  • +
  • Serial - serial://[Dev_Node][:Baudrate]

-Adds a UDP connection to the specified port number. +Default URL : udp://:14540. +
    +
  • Default Bind host IP is localhost(127.0.0.1)

**Parameters** -* int **local_port_number** - The local UDP port to listen to. +* const std::string & **connection_url** - connection URL string. **Returns**  [ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) - The result of adding the connection. -### add_tcp_connection() {#classdronecore_1_1_drone_core_1ae3c2a16c464fda4cfadce0ec1426bb77} +### add_udp_connection() {#classdronecore_1_1_drone_core_1a7a04fbacf95eb6b21418032c8287dfbb} ```cpp -ConnectionResult dronecore::DroneCore::add_tcp_connection() +ConnectionResult dronecore::DroneCore::add_udp_connection(int local_port_number=DEFAULT_UDP_PORT) ``` -Adds a TCP connection to the default IP address/port. +Adds a UDP connection to the specified port number. -This will connect to local TCP port 5760. + +**Parameters** + +* int **local_port_number** - The local UDP port to listen to (defaults to 14540, the same as mavros). **Returns**  [ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) - The result of adding the connection. -### add_tcp_connection() {#classdronecore_1_1_drone_core_1a4d2128fe8a3df345367af28656e12fe1} +### add_tcp_connection() {#classdronecore_1_1_drone_core_1a725640cb53c0d077e753ea2d22717b68} ```cpp -ConnectionResult dronecore::DroneCore::add_tcp_connection(std::string remote_ip, int remote_port) +ConnectionResult dronecore::DroneCore::add_tcp_connection(const std::string &remote_ip=DEFAULT_TCP_REMOTE_IP, int remote_port=DEFAULT_TCP_REMOTE_PORT) ``` @@ -173,30 +194,16 @@ Adds a TCP connection with a specific IP address and port number. **Parameters** -* std::string **remote_ip** - Remote IP address to connect to. -* int **remote_port** - The TCP port to connect to. +* const std::string & **remote_ip** - Remote IP address to connect to (defaults to 127.0.0.1). +* int **remote_port** - The TCP port to connect to (defaults to 5760). **Returns**  [ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) - The result of adding the connection. -### add_serial_connection() {#classdronecore_1_1_drone_core_1aa0e24650330b64753e663cfba51c0292} +### add_serial_connection() {#classdronecore_1_1_drone_core_1abde7ed4d42875dc85c73d34fedab2902} ```cpp -ConnectionResult dronecore::DroneCore::add_serial_connection() -``` - - -Adds a serial connection with the default arguments. - -This will connect to serial port ttyS1 (COM0). - -**Returns** - - [ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) - The result of adding the connection. - -### add_serial_connection() {#classdronecore_1_1_drone_core_1ad2561a8a3849255d99842f372ac6ba1a} -```cpp -ConnectionResult dronecore::DroneCore::add_serial_connection(std::string dev_path, int baudrate) +ConnectionResult dronecore::DroneCore::add_serial_connection(const std::string &dev_path=DEFAULT_SERIAL_DEV_PATH, int baudrate=DEFAULT_SERIAL_BAUDRATE) ``` @@ -205,8 +212,8 @@ Adds a serial connection with a specific port (COM or UART dev node) and baudrat **Parameters** -* std::string **dev_path** - COM or UART dev node name/path. -* int **baudrate** - Baudrate of the serial port. +* const std::string & **dev_path** - COM or UART dev node name/path (defaults to "/dev/ttyS0"). +* int **baudrate** - Baudrate of the serial port (defaults to 57600). **Returns** @@ -327,9 +334,9 @@ This sets a callback that will be notified if no heartbeat of the device has bee * [event_callback_t](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1abb488f975ee7e199cd1cb08a317a52c3) **callback** - Callback to register. -### connection_result_str() {#classdronecore_1_1_drone_core_1a84c40dcefcafe888c38a5ed8dd93b0af} +### connection_result_str() {#classdronecore_1_1_drone_core_1a1557da80cf43483e7833cab1eee417dd} ```cpp -static const char* dronecore::DroneCore::connection_result_str(ConnectionResult) +static const char* dronecore::DroneCore::connection_result_str(const ConnectionResult result) ``` @@ -338,8 +345,53 @@ Translates the [DroneCore::ConnectionResult](classdronecore_1_1_drone_core.md#cl **Parameters** -* [ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) - +* const [ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) **result** - **Returns** - const char * - \ No newline at end of file + const char * - + +## Field Documentation + + +### DEFAULT_UDP_CONNECTION_URL {#classdronecore_1_1_drone_core_1aef2ad569dd9a7d0762b1d17d21e7f598} + +```cpp +constexpr auto dronecore::DroneCore::DEFAULT_UDP_CONNECTION_URL +``` + + +### DEFAULT_UDP_PORT {#classdronecore_1_1_drone_core_1aa989b494349529f412b36984a46f2ca6} + +```cpp +constexpr int dronecore::DroneCore::DEFAULT_UDP_PORT +``` + + +### DEFAULT_TCP_REMOTE_IP {#classdronecore_1_1_drone_core_1ade2086911d3052093fb87717f58a99b2} + +```cpp +constexpr auto dronecore::DroneCore::DEFAULT_TCP_REMOTE_IP +``` + + +### DEFAULT_TCP_REMOTE_PORT {#classdronecore_1_1_drone_core_1a0ded56f7f5873f17e424343ed7b2e5af} + +```cpp +constexpr int dronecore::DroneCore::DEFAULT_TCP_REMOTE_PORT +``` + + +### DEFAULT_SERIAL_DEV_PATH {#classdronecore_1_1_drone_core_1a67928c93b8b8f2ab65cf28a4b6d9436f} + +```cpp +constexpr auto dronecore::DroneCore::DEFAULT_SERIAL_DEV_PATH +``` + + +### DEFAULT_SERIAL_BAUDRATE {#classdronecore_1_1_drone_core_1a2b20d34acc312ffe6197aebdc6769a86} + +```cpp +constexpr int dronecore::DroneCore::DEFAULT_SERIAL_BAUDRATE +``` + diff --git a/en/api_reference/classdronecore_1_1_telemetry.md b/en/api_reference/classdronecore_1_1_telemetry.md index 4c647f8..5771414 100644 --- a/en/api_reference/classdronecore_1_1_telemetry.md +++ b/en/api_reference/classdronecore_1_1_telemetry.md @@ -740,6 +740,7 @@ Quaternion dronecore::Telemetry::camera_attitude_quaternion() const Get the camera's attitude in quaternions (synchronous). +Note that the yaw component of attitude is relative to North (absolute frame). **Returns** @@ -753,6 +754,7 @@ EulerAngle dronecore::Telemetry::camera_attitude_euler_angle() const Get the camera's attitude in Euler angles (synchronous). +Note that the yaw component of attitude is relative to North (absolute frame). **Returns** From 42e9b275f2a6afd7593f63883603ae9ced9e7908 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 27 Feb 2018 12:13:08 +1100 Subject: [PATCH 091/107] Update guide for new connection method --- en/guide/connections.md | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/en/guide/connections.md b/en/guide/connections.md index 215ebe4..11108ff 100644 --- a/en/guide/connections.md +++ b/en/guide/connections.md @@ -6,17 +6,25 @@ In order to detect vehicles you must first specify the communication ports that ## Monitoring a Port -You specify the ports to watch using one of the (synchronous) connection methods: [add_udp_connection()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1ae4d3a7e5cc46d9570beaafdb5f19a1a8), [add_tcp_connection()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1ae3c2a16c464fda4cfadce0ec1426bb77) or [add_serial_connection()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1aa0e24650330b64753e663cfba51c0292). The methods return immediately with a [DroneCore::ConnectionResult](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) indicating whether they succeeded. +Specify the port(s) to watch using one of the (synchronous) connection methods: [add_any_connection()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a384ae5189b047dd3df8d7e90c42fa021), [add_udp_connection()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a7a04fbacf95eb6b21418032c8287dfbb), [add_tcp_connection()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a725640cb53c0d077e753ea2d22717b68) or [add_serial_connection()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1abde7ed4d42875dc85c73d34fedab2902). All the methods are used similarly, and return immediately with a [DroneCore::ConnectionResult](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) indicating whether they succeeded. -Simple code to start monitoring a UDP port might look like this: +The [add_any_connection()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a384ae5189b047dd3df8d7e90c42fa021) method can be used to set up monitoring for any of the supported port types (while the other methods set up specific connection types). The connection details are specified using the string formats shown below: + +Connection | URL Format +--- | --- +UDP | `udp://[Bind_host][:Bind_port]` +TCP | `tcp://[Server_host][:Server_port]` +Serial | `serial://[Dev_Node][:Baudrate]` + +The code snippet below shows how to set up monitoring with `add_any_connection()` using the default connection (`udp://127.0.0.1:14540`): ```cpp DroneCore dc; -DroneCore::ConnectionResult connection_result = dc.add_udp_connection(); +DroneCore::ConnectionResult connection_result = dc.add_any_connection(); ASSERT_EQ(connection_result,DroneCore::ConnectionResult::SUCCESS) ``` -> **Tip** This is the normal/most common way to connect to PX4 over WiFi, using the standard PX4 broadcast UDP port for off-board APIs (14540). You can also explicitly specify the connection properties/ports if needed. +> **Note** The default connection is to the standard PX4 broadcast UDP port for off-board APIs (14540). This is the normal/most common way to connect to PX4 over WiFi. DroneCore also provides the [DroneCore::connection_result_str()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a84c40dcefcafe888c38a5ed8dd93b0af) method, which you can use to create a human-readable string for the [DroneCore::ConnectionResult](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7). The code fragment below shows how you might print this string to the console: ```cpp @@ -25,6 +33,7 @@ DroneCore::ConnectionResult connection_result = dc.add_udp_connection(); std::cout << "Connection string: " << DroneCore::connection_result_str(connection_result) << std::endl; ``` + ### Register for Device Notifications DroneCore monitors any added communication ports for new devices, which are distinguished by vehicle [UUID](../api_reference/classdronecore_1_1_info.md#classdronecore_1_1_info_1a49c7dd5f1a369c8296f0c3a2443bc031). Clients can register for notification when new devices are discovered using [register_on_discover()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a864ec7349eba67b02b8b3792f6c388f9), and for devices timing out (no longer connected) using [register_on_timeout()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1ad8c0dc0100449d21a46a787c810e8978). From 8dbda4cc81ade13f382dfd8c68db6808f3c4256c Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Wed, 28 Feb 2018 09:23:11 +1100 Subject: [PATCH 092/107] Link to info about standard PX4 UDP ports. --- en/guide/connections.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/en/guide/connections.md b/en/guide/connections.md index 11108ff..fe9b236 100644 --- a/en/guide/connections.md +++ b/en/guide/connections.md @@ -24,7 +24,7 @@ DroneCore::ConnectionResult connection_result = dc.add_any_connection(); ASSERT_EQ(connection_result,DroneCore::ConnectionResult::SUCCESS) ``` -> **Note** The default connection is to the standard PX4 broadcast UDP port for off-board APIs (14540). This is the normal/most common way to connect to PX4 over WiFi. +> **Note** The default connection is to the [standard PX4 broadcast UDP port](https://dev.px4.io/en/simulation/#default-px4-mavlink-udp-ports) for off-board APIs (14540). This is the normal/most common way for offboard APIs to connect to PX4 over WiFi. DroneCore also provides the [DroneCore::connection_result_str()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a84c40dcefcafe888c38a5ed8dd93b0af) method, which you can use to create a human-readable string for the [DroneCore::ConnectionResult](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7). The code fragment below shows how you might print this string to the console: ```cpp @@ -89,4 +89,4 @@ return the first device detected, or a null `Device` if none have been discovere Device &device = dc.device() ``` -The `Device` is used by DroneCore plugin classes to query and control the vehicle. For more information see [Using Plugins](../guide/using_plugins.md) (and the other guide topics). \ No newline at end of file +The `Device` is used by DroneCore plugin classes to query and control the vehicle. For more information see [Using Plugins](../guide/using_plugins.md) (and the other guide topics). From 79a0d56f44a2c3a5dc7a43730bdd1f1d3c4632cb Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 1 Mar 2018 15:39:03 +1100 Subject: [PATCH 093/107] Update API ref for new global ConnectionResult --- en/SUMMARY.md | 2 + en/api_reference/README.md | 3 +- en/api_reference/classdronecore_1_1_action.md | 24 ++--- en/api_reference/classdronecore_1_1_device.md | 52 +++++------ .../classdronecore_1_1_drone_core.md | 88 ++++--------------- .../classdronecore_1_1_follow_me.md | 12 +-- en/api_reference/classdronecore_1_1_gimbal.md | 10 +-- en/api_reference/classdronecore_1_1_info.md | 8 +- .../classdronecore_1_1_logging.md | 12 +-- .../classdronecore_1_1_mission.md | 22 ++--- .../classdronecore_1_1_mission_item.md | 8 +- .../classdronecore_1_1_offboard.md | 16 ++-- .../classdronecore_1_1_plugin_base.md | 4 +- .../classdronecore_1_1_telemetry.md | 58 ++++++------ en/api_reference/namespacedronecore.md | 87 ++++++++++++++++++ ...tructdronecore_1_1_follow_me_1_1_config.md | 18 ++-- 16 files changed, 231 insertions(+), 193 deletions(-) create mode 100644 en/api_reference/namespacedronecore.md diff --git a/en/SUMMARY.md b/en/SUMMARY.md index 45f2e6c..7e3f1e8 100644 --- a/en/SUMMARY.md +++ b/en/SUMMARY.md @@ -49,6 +49,8 @@ * [struct Config](api_reference/structdronecore_1_1_follow_me_1_1_config.md) * [struct TargetLocation ](api_reference/structdronecore_1_1_follow_me_1_1_target_location.md) * [class Logging](api_reference/classdronecore_1_1_logging.md) + * [namespace dronecore (globals)](api_reference/namespacedronecore.md) + * [Contributing](contributing/README.md) * [Building Source](contributing/build.md) * [Testing](contributing/test.md) diff --git a/en/api_reference/README.md b/en/api_reference/README.md index 94aae6a..cf91d77 100644 --- a/en/api_reference/README.md +++ b/en/api_reference/README.md @@ -24,4 +24,5 @@ * [class FollowMe](classdronecore_1_1_follow_me.md) * [struct Config](structdronecore_1_1_follow_me_1_1_config.md) * [struct TargetLocation ](structdronecore_1_1_follow_me_1_1_target_location.md) -* [class Logging](classdronecore_1_1_logging.md) \ No newline at end of file +* [class Logging](classdronecore_1_1_logging.md) +* [namespace dronecore (globals)](namespacedronecore.md) \ No newline at end of file diff --git a/en/api_reference/classdronecore_1_1_action.md b/en/api_reference/classdronecore_1_1_action.md index 0487ad9..3b14692 100644 --- a/en/api_reference/classdronecore_1_1_action.md +++ b/en/api_reference/classdronecore_1_1_action.md @@ -26,9 +26,9 @@ std::function< void([Result](classdronecore_1_1_action.md#classdronecore_1_1_act Type | Name | Description ---: | --- | --- -| [Action](#classdronecore_1_1_action_1a9fd3af84d59048b3c787ed0c5644ed07) (Device *device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +| [Action](#classdronecore_1_1_action_1a9fd3af84d59048b3c787ed0c5644ed07) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). | [~Action](#classdronecore_1_1_action_1a6bb0301fecf66d75ca3b27bda25af7f2) () | Destructor (internal use only). -| [Action](#classdronecore_1_1_action_1ae48b0e06ca2b4b7544a10c7734a03f63) (const Action &)=delete | Copy constructor (object is not copyable). +| [Action](#classdronecore_1_1_action_1ae48b0e06ca2b4b7544a10c7734a03f63) (const [Action](classdronecore_1_1_action.md) &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [arm](#classdronecore_1_1_action_1a8b8631ea15655f0c922a9ba7d2e1c72c) () const | Send command to *arm* the drone (synchronous). [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [disarm](#classdronecore_1_1_action_1ad4b0231afcfebc261a720194f893dcd8) () const | Send command to *disarm* the drone (synchronous). [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [kill](#classdronecore_1_1_action_1adc272f46adf4c52fbe7bd091a436b28b) () const | Send command to *kill* the drone (synchronous). @@ -37,26 +37,26 @@ Type | Name | Description [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [return_to_launch](#classdronecore_1_1_action_1a9af73101ce850e37cf7259dcdeda2eb9) () const | Send command to *return to the launch* (takeoff) position and *land* (asynchronous). [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [transition_to_fixedwing](#classdronecore_1_1_action_1a6f40384be0ad61a29b6e2fd0a0c86754) () const | Send command to transition the drone to fixedwing. [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [transition_to_multicopter](#classdronecore_1_1_action_1a0088dbe4c715e2bfbe805b89d28add5a) () const | Send command to transition the drone to multicopter. -void | [arm_async](#classdronecore_1_1_action_1a1a27165400d2a8419c2d96a1c0f2aa78) (result_callback_t callback) | Send command to *arm* the drone (asynchronous). -void | [disarm_async](#classdronecore_1_1_action_1acc0a17411a25f5641ae21046b459e79e) (result_callback_t callback) | Send command to *disarm* the drone (asynchronous). -void | [kill_async](#classdronecore_1_1_action_1a1d7d09191d9319c7912962b2dd02caa7) (result_callback_t callback) | Send command to *kill* the drone (asynchronous). -void | [takeoff_async](#classdronecore_1_1_action_1a2aec10a2b14f5e82f05edc6e2feac83e) (result_callback_t callback) | Send command to *take off and hover* (asynchronous). -void | [land_async](#classdronecore_1_1_action_1a7f10240cde2ff237795e3688802d857b) (result_callback_t callback) | Send command to *land* at the current position (asynchronous). -void | [return_to_launch_async](#classdronecore_1_1_action_1aa1253c356c7628d329dfa98d78eb39ee) (result_callback_t callback) | Send command to *return to the launch* (takeoff) position and *land* (asynchronous). -void | [transition_to_fixedwing_async](#classdronecore_1_1_action_1af5b02f05ffdc2e0787a7633410710d9d) (result_callback_t callback) | Send command to transition the drone to fixedwing (asynchronous). -void | [transition_to_multicopter_async](#classdronecore_1_1_action_1a053aa7430852a4200b201abda1b3b3e4) (result_callback_t callback) | Send command to transition the drone to multicopter (asynchronous). +void | [arm_async](#classdronecore_1_1_action_1a1a27165400d2a8419c2d96a1c0f2aa78) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) callback) | Send command to *arm* the drone (asynchronous). +void | [disarm_async](#classdronecore_1_1_action_1acc0a17411a25f5641ae21046b459e79e) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) callback) | Send command to *disarm* the drone (asynchronous). +void | [kill_async](#classdronecore_1_1_action_1a1d7d09191d9319c7912962b2dd02caa7) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) callback) | Send command to *kill* the drone (asynchronous). +void | [takeoff_async](#classdronecore_1_1_action_1a2aec10a2b14f5e82f05edc6e2feac83e) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) callback) | Send command to *take off and hover* (asynchronous). +void | [land_async](#classdronecore_1_1_action_1a7f10240cde2ff237795e3688802d857b) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) callback) | Send command to *land* at the current position (asynchronous). +void | [return_to_launch_async](#classdronecore_1_1_action_1aa1253c356c7628d329dfa98d78eb39ee) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) callback) | Send command to *return to the launch* (takeoff) position and *land* (asynchronous). +void | [transition_to_fixedwing_async](#classdronecore_1_1_action_1af5b02f05ffdc2e0787a7633410710d9d) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) callback) | Send command to transition the drone to fixedwing (asynchronous). +void | [transition_to_multicopter_async](#classdronecore_1_1_action_1a053aa7430852a4200b201abda1b3b3e4) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) callback) | Send command to transition the drone to multicopter (asynchronous). void | [set_takeoff_altitude](#classdronecore_1_1_action_1adc6f7f6668d3681afa4d820095154c9d) (float relative_altitude_m) | Set takeoff altitude above ground. float | [get_takeoff_altitude_m](#classdronecore_1_1_action_1a1888deebcc48d906c3c19473596e6fec) () const | Get the takeoff altitude. void | [set_max_speed](#classdronecore_1_1_action_1abc27410a9b2a938b21ab59c5ef9ee941) (float speed_m_s) | Set vehicle maximum speed. float | [get_max_speed_m_s](#classdronecore_1_1_action_1ad6c8a98e0c331666c14cb996fa5dc605) () const | Get the vehicle maximum speed. -const [Action](classdronecore_1_1_action.md) & | [operator=](#classdronecore_1_1_action_1a89f6cdf19fc05054fa746ebd3d88e17a) (const Action &)=delete | Equality operator (object is not copyable). +const [Action](classdronecore_1_1_action.md) & | [operator=](#classdronecore_1_1_action_1a89f6cdf19fc05054fa746ebd3d88e17a) (const [Action](classdronecore_1_1_action.md) &)=delete | Equality operator (object is not copyable). ## Static Public Member Functions Type | Name | Description ---: | --- | --- -const char * | [result_str](#classdronecore_1_1_action_1a1fefb474ee36cb15fe31b42313782057) (Result result) | Returns a human-readable English string for an [Action::Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011). +const char * | [result_str](#classdronecore_1_1_action_1a1fefb474ee36cb15fe31b42313782057) ([Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) result) | Returns a human-readable English string for an [Action::Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011). ## Constructor & Destructor Documentation diff --git a/en/api_reference/classdronecore_1_1_device.md b/en/api_reference/classdronecore_1_1_device.md index 9547469..f40547a 100644 --- a/en/api_reference/classdronecore_1_1_device.md +++ b/en/api_reference/classdronecore_1_1_device.md @@ -26,22 +26,22 @@ std::function< void(bool success, int32_t value)> [get_param_int_callback_t](#cl Type | Name | Description ---: | --- | --- -| [Device](#classdronecore_1_1_device_1af07b4defa38736ce928377af2f31fb6e) (DroneCoreImpl *parent, uint8_t target_system_id) | +| [Device](#classdronecore_1_1_device_1af07b4defa38736ce928377af2f31fb6e) (DroneCoreImpl * parent, uint8_t target_system_id) | | [~Device](#classdronecore_1_1_device_1a65c697e12eed30109074e18a9cfdc836) () | -| [Device](#classdronecore_1_1_device_1acf95b02d5d1d705ce3dc1438786e0c91) (const Device &)=delete | -void | [process_mavlink_message](#classdronecore_1_1_device_1a7324f5f4cc1f7bce40a2e8c237f1212e) (const mavlink_message_t &message) | -void | [register_mavlink_message_handler](#classdronecore_1_1_device_1aa7ae3afa910a2043185e319cfaaa4196) (uint16_t msg_id, mavlink_message_handler_t callback, const void *cookie) | -void | [unregister_all_mavlink_message_handlers](#classdronecore_1_1_device_1a7fd2014818f2e41cc93b6c31d259f21c) (const void *cookie) | -void | [register_timeout_handler](#classdronecore_1_1_device_1afc704e09b8331cdd36341a1ffd331c11) (std::function< void()> callback, double duration_s, void **cookie) | -void | [refresh_timeout_handler](#classdronecore_1_1_device_1ad7d945426276c079ffc9d173583d1427) (const void *cookie) | -void | [unregister_timeout_handler](#classdronecore_1_1_device_1a95673878b3a69db3817def10310a565d) (const void *cookie) | -void | [add_call_every](#classdronecore_1_1_device_1a466bede03fdf9be31cefb206ef561114) (std::function< void()> callback, float interval_s, void **cookie) | -void | [change_call_every](#classdronecore_1_1_device_1aed059a1d5a9f2ee4e11963e5d371577c) (float interval_s, const void *cookie) | -void | [reset_call_every](#classdronecore_1_1_device_1a38c719f6ccadf6a17e61c47c14cdf234) (const void *cookie) | -void | [remove_call_every](#classdronecore_1_1_device_1a5a101b41ec651a6a764a01d3208934e2) (const void *cookie) | -bool | [send_message](#classdronecore_1_1_device_1a9d09cd1b8b9689080337f7efd9e9d77d) (const mavlink_message_t &message) | -MavlinkCommands::Result | [send_command_with_ack](#classdronecore_1_1_device_1afcc8c11d47f681c41705d82ee3cd74ea) (uint16_t command, const MavlinkCommands::Params ¶ms, uint8_t component_id=0) | -void | [send_command_with_ack_async](#classdronecore_1_1_device_1a0ef6cf5c11820fb2ae00bd96f9abd4de) (uint16_t command, const MavlinkCommands::Params ¶ms, command_result_callback_t callback, uint8_t component_id=0) | +| [Device](#classdronecore_1_1_device_1acf95b02d5d1d705ce3dc1438786e0c91) (const [Device](classdronecore_1_1_device.md) &)=delete | +void | [process_mavlink_message](#classdronecore_1_1_device_1a7324f5f4cc1f7bce40a2e8c237f1212e) (const mavlink_message_t & message) | +void | [register_mavlink_message_handler](#classdronecore_1_1_device_1aa7ae3afa910a2043185e319cfaaa4196) (uint16_t msg_id, mavlink_message_handler_t callback, const void * cookie) | +void | [unregister_all_mavlink_message_handlers](#classdronecore_1_1_device_1a7fd2014818f2e41cc93b6c31d259f21c) (const void * cookie) | +void | [register_timeout_handler](#classdronecore_1_1_device_1afc704e09b8331cdd36341a1ffd331c11) (std::function< void()> callback, double duration_s, void ** cookie) | +void | [refresh_timeout_handler](#classdronecore_1_1_device_1ad7d945426276c079ffc9d173583d1427) (const void * cookie) | +void | [unregister_timeout_handler](#classdronecore_1_1_device_1a95673878b3a69db3817def10310a565d) (const void * cookie) | +void | [add_call_every](#classdronecore_1_1_device_1a466bede03fdf9be31cefb206ef561114) (std::function< void()> callback, float interval_s, void ** cookie) | +void | [change_call_every](#classdronecore_1_1_device_1aed059a1d5a9f2ee4e11963e5d371577c) (float interval_s, const void * cookie) | +void | [reset_call_every](#classdronecore_1_1_device_1a38c719f6ccadf6a17e61c47c14cdf234) (const void * cookie) | +void | [remove_call_every](#classdronecore_1_1_device_1a5a101b41ec651a6a764a01d3208934e2) (const void * cookie) | +bool | [send_message](#classdronecore_1_1_device_1a9d09cd1b8b9689080337f7efd9e9d77d) (const mavlink_message_t & message) | +MavlinkCommands::Result | [send_command_with_ack](#classdronecore_1_1_device_1afcc8c11d47f681c41705d82ee3cd74ea) (uint16_t command, const MavlinkCommands::Params & params, uint8_t component_id=0) | +void | [send_command_with_ack_async](#classdronecore_1_1_device_1a0ef6cf5c11820fb2ae00bd96f9abd4de) (uint16_t command, const MavlinkCommands::Params & params, command_result_callback_t callback, uint8_t component_id=0) | MavlinkCommands::Result | [set_msg_rate](#classdronecore_1_1_device_1af10ca5a146f0129c51566486a20d98ed) (uint16_t message_id, double rate_hz, uint8_t component_id=0) | void | [set_msg_rate_async](#classdronecore_1_1_device_1ad3af9775d80d5301c19808822da6f9aa) (uint16_t message_id, double rate_hz, command_result_callback_t callback, uint8_t component_id=0) | void | [request_autopilot_version](#classdronecore_1_1_device_1abd185340eaad71374b8f8647a5594502) () | @@ -51,23 +51,23 @@ uint8_t | [get_target_component_id](#classdronecore_1_1_device_1a41f2b9cf224c09d void | [set_target_system_id](#classdronecore_1_1_device_1a01f14b9dffc35b045bbfe76f411c84f8) (uint8_t system_id) | bool | [target_supports_mission_int](#classdronecore_1_1_device_1afbe6f90ecace24d8b7081a01be3686c3) () const | bool | [is_armed](#classdronecore_1_1_device_1ad8b067dc607c3fd7bd86c2961409ce60) () const | -void | [set_param_float_async](#classdronecore_1_1_device_1a1b784f4c51451f23cb978b1982ead1bf) (const std::string &name, float value, success_t callback) | -void | [set_param_int_async](#classdronecore_1_1_device_1aa8fe748620f9934df97582943b20b372) (const std::string &name, int32_t value, success_t callback) | -void | [set_param_ext_float_async](#classdronecore_1_1_device_1a46ca0087cd5135a12a9f163455876fe2) (const std::string &name, float value, success_t callback) | -void | [set_param_ext_int_async](#classdronecore_1_1_device_1ab494873b3e6e99706c89c669d867c0bf) (const std::string &name, int32_t value, success_t callback) | +void | [set_param_float_async](#classdronecore_1_1_device_1a1b784f4c51451f23cb978b1982ead1bf) (const std::string & name, float value, success_t callback) | +void | [set_param_int_async](#classdronecore_1_1_device_1aa8fe748620f9934df97582943b20b372) (const std::string & name, int32_t value, success_t callback) | +void | [set_param_ext_float_async](#classdronecore_1_1_device_1a46ca0087cd5135a12a9f163455876fe2) (const std::string & name, float value, success_t callback) | +void | [set_param_ext_int_async](#classdronecore_1_1_device_1ab494873b3e6e99706c89c669d867c0bf) (const std::string & name, int32_t value, success_t callback) | MavlinkCommands::Result | [set_flight_mode](#classdronecore_1_1_device_1acafac8ecf0801045ad894e80bcd9d9a8) (FlightMode mode) | void | [set_flight_mode_async](#classdronecore_1_1_device_1a56d240c32839524470a8784f5c72e8a0) (FlightMode mode, command_result_callback_t callback) | -void | [get_param_float_async](#classdronecore_1_1_device_1a48dbd54b03ad86c9784dfac75274713f) (const std::string &name, get_param_float_callback_t callback) | -void | [get_param_int_async](#classdronecore_1_1_device_1a682a74475e24cac262ac90b18e5dd49a) (const std::string &name, get_param_int_callback_t callback) | -void | [get_param_ext_float_async](#classdronecore_1_1_device_1a6050f2993f78689c778cdb4240bb3606) (const std::string &name, get_param_float_callback_t callback) | -void | [get_param_ext_int_async](#classdronecore_1_1_device_1a7b4050c8aa12e198d99b23be4f281c7f) (const std::string &name, get_param_int_callback_t callback) | +void | [get_param_float_async](#classdronecore_1_1_device_1a48dbd54b03ad86c9784dfac75274713f) (const std::string & name, get_param_float_callback_t callback) | +void | [get_param_int_async](#classdronecore_1_1_device_1a682a74475e24cac262ac90b18e5dd49a) (const std::string & name, get_param_int_callback_t callback) | +void | [get_param_ext_float_async](#classdronecore_1_1_device_1a6050f2993f78689c778cdb4240bb3606) (const std::string & name, get_param_float_callback_t callback) | +void | [get_param_ext_int_async](#classdronecore_1_1_device_1a7b4050c8aa12e198d99b23be4f281c7f) (const std::string & name, get_param_int_callback_t callback) | bool | [is_connected](#classdronecore_1_1_device_1afac855ffb266017d932c4060140af717) () const | Time & | [get_time](#classdronecore_1_1_device_1a6009c92dbd4ffd14367ad4ee1d4b3054) () | -void | [register_plugin](#classdronecore_1_1_device_1a7622b2667c5454c490a0d6722f738ec3) (PluginImplBase *plugin_impl) | -void | [unregister_plugin](#classdronecore_1_1_device_1aac00d6ae3d53154900785b882df5edf4) (PluginImplBase *plugin_impl) | +void | [register_plugin](#classdronecore_1_1_device_1a7622b2667c5454c490a0d6722f738ec3) (PluginImplBase * plugin_impl) | +void | [unregister_plugin](#classdronecore_1_1_device_1aac00d6ae3d53154900785b882df5edf4) (PluginImplBase * plugin_impl) | void | [lock_communication](#classdronecore_1_1_device_1a15d93e6a12f2208f8fa56466b7f2f819) () | void | [unlock_communication](#classdronecore_1_1_device_1a801aab463023eb3e64670c86349fa54c) () | -const [Device](classdronecore_1_1_device.md) & | [operator=](#classdronecore_1_1_device_1ad03d3cdf0aaa8e4cb21becb6c7806c33) (const Device &)=delete | +const [Device](classdronecore_1_1_device.md) & | [operator=](#classdronecore_1_1_device_1ad03d3cdf0aaa8e4cb21becb6c7806c33) (const [Device](classdronecore_1_1_device.md) &)=delete | ## Static Public Member Functions diff --git a/en/api_reference/classdronecore_1_1_drone_core.md b/en/api_reference/classdronecore_1_1_drone_core.md index 7a0ce3a..f7a7369 100644 --- a/en/api_reference/classdronecore_1_1_drone_core.md +++ b/en/api_reference/classdronecore_1_1_drone_core.md @@ -18,7 +18,6 @@ An instance of this class must be created (first) in order to use the library. T Type | Description --- | --- -enum [ConnectionResult](#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) | Result type returned when adding a connection. std::function< void(uint64_t uuid)> [event_callback_t](#classdronecore_1_1_drone_core_1abb488f975ee7e199cd1cb08a317a52c3) | Callback type for discover and timeout notifications. ## Public Member Functions @@ -28,17 +27,17 @@ Type | Name | Description ---: | --- | --- | [DroneCore](#classdronecore_1_1_drone_core_1a0b94dd09cd46faa41742d3720f210aa2) () | Constructor. | [~DroneCore](#classdronecore_1_1_drone_core_1abbaedb6fd922c023e53611b484b38582) () | Destructor. -[ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) | [add_any_connection](#classdronecore_1_1_drone_core_1a384ae5189b047dd3df8d7e90c42fa021) (const std::string &connection_url=DEFAULT_UDP_CONNECTION_URL) | Adds Connection via URL. -[ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) | [add_udp_connection](#classdronecore_1_1_drone_core_1a7a04fbacf95eb6b21418032c8287dfbb) (int local_port_number=DEFAULT_UDP_PORT) | Adds a UDP connection to the specified port number. -[ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) | [add_tcp_connection](#classdronecore_1_1_drone_core_1a725640cb53c0d077e753ea2d22717b68) (const std::string &remote_ip=DEFAULT_TCP_REMOTE_IP, int remote_port=DEFAULT_TCP_REMOTE_PORT) | Adds a TCP connection with a specific IP address and port number. -[ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) | [add_serial_connection](#classdronecore_1_1_drone_core_1abde7ed4d42875dc85c73d34fedab2902) (const std::string &dev_path=DEFAULT_SERIAL_DEV_PATH, int baudrate=DEFAULT_SERIAL_BAUDRATE) | Adds a serial connection with a specific port (COM or UART dev node) and baudrate as specified. +[ConnectionResult](namespacedronecore.md#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) | [add_any_connection](#classdronecore_1_1_drone_core_1a384ae5189b047dd3df8d7e90c42fa021) (const std::string & connection_url=DEFAULT_UDP_CONNECTION_URL) | Adds Connection via URL. +[ConnectionResult](namespacedronecore.md#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) | [add_udp_connection](#classdronecore_1_1_drone_core_1a7a04fbacf95eb6b21418032c8287dfbb) (int local_port_number=DEFAULT_UDP_PORT) | Adds a UDP connection to the specified port number. +[ConnectionResult](namespacedronecore.md#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) | [add_tcp_connection](#classdronecore_1_1_drone_core_1a725640cb53c0d077e753ea2d22717b68) (const std::string & remote_ip=DEFAULT_TCP_REMOTE_IP, int remote_port=DEFAULT_TCP_REMOTE_PORT) | Adds a TCP connection with a specific IP address and port number. +[ConnectionResult](namespacedronecore.md#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) | [add_serial_connection](#classdronecore_1_1_drone_core_1abde7ed4d42875dc85c73d34fedab2902) (const std::string & dev_path=DEFAULT_SERIAL_DEV_PATH, int baudrate=DEFAULT_SERIAL_BAUDRATE) | Adds a serial connection with a specific port (COM or UART dev node) and baudrate as specified. const std::vector< uint64_t > & | [device_uuids](#classdronecore_1_1_drone_core_1a20490717da3893be2c6965b905a7c1db) () const | Get vector of device UUIDs. [Device](classdronecore_1_1_device.md) & | [device](#classdronecore_1_1_drone_core_1a5bac6e419e56a1f77a51adef98e94e7c) () const | Get the first discovered device. -[Device](classdronecore_1_1_device.md) & | [device](#classdronecore_1_1_drone_core_1a7d18869c8c8f518af78bee313b554a2a) (uint64_t uuid) const | Get the device with the specified UUID. +[Device](classdronecore_1_1_device.md) & | [device](#classdronecore_1_1_drone_core_1a7d18869c8c8f518af78bee313b554a2a) (uint64_t uuid)const | Get the device with the specified UUID. bool | [is_connected](#classdronecore_1_1_drone_core_1a2adf0c6fc5521fa8f446e048a09f5ec1) () const | Returns `true` if exactly one device is currently connected. -bool | [is_connected](#classdronecore_1_1_drone_core_1a2f78c2263df997d38cf508e327fcde23) (uint64_t uuid) const | Returns `true` if a device is currently connected. -void | [register_on_discover](#classdronecore_1_1_drone_core_1a864ec7349eba67b02b8b3792f6c388f9) (event_callback_t callback) | Register callback for device discovery. -void | [register_on_timeout](#classdronecore_1_1_drone_core_1ad8c0dc0100449d21a46a787c810e8978) (event_callback_t callback) | Register callback for device timeout. +bool | [is_connected](#classdronecore_1_1_drone_core_1a2f78c2263df997d38cf508e327fcde23) (uint64_t uuid)const | Returns `true` if a device is currently connected. +void | [register_on_discover](#classdronecore_1_1_drone_core_1a864ec7349eba67b02b8b3792f6c388f9) ([event_callback_t](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1abb488f975ee7e199cd1cb08a317a52c3) callback) | Register callback for device discovery. +void | [register_on_timeout](#classdronecore_1_1_drone_core_1ad8c0dc0100449d21a46a787c810e8978) ([event_callback_t](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1abb488f975ee7e199cd1cb08a317a52c3) callback) | Register callback for device timeout. ## Static Public Attributes @@ -61,14 +60,6 @@ static constexpr auto [DEFAULT_SERIAL_DEV_PATH](#classdronecore_1_1_drone_core_1 static constexpr int [DEFAULT_SERIAL_BAUDRATE](#classdronecore_1_1_drone_core_1a2b20d34acc312ffe6197aebdc6769a86) = 57600 - -## Static Public Member Functions - - -Type | Name | Description ----: | --- | --- -const char * | [connection_result_str](#classdronecore_1_1_drone_core_1a1557da80cf43483e7833cab1eee417dd) (const ConnectionResult result) | Translates the [DroneCore::ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) enum to a human-readable English string. - - ## Constructor & Destructor Documentation @@ -108,32 +99,6 @@ Callback type for discover and timeout notifications. * **uuid** - UUID of device (or MAVLink system ID for devices that don't have a UUID). -## Member Enumeration Documentation - - -### enum ConnectionResult {#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7} - - -Result type returned when adding a connection. - -**Note**: [DroneCore](classdronecore_1_1_drone_core.md) does not throw exceptions. Instead a result of this type will be returned when you add a connection: [add_udp_connection()](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a7a04fbacf95eb6b21418032c8287dfbb). - -Value | Description ---- | --- - `SUCCESS` | Connection succeeded. - `TIMEOUT` | Connection timed out. - `SOCKET_ERROR` | Socket error. - `BIND_ERROR` | Bind error. - `SOCKET_CONNECTION_ERROR` | - `CONNECTION_ERROR` | Connection error. - `NOT_IMPLEMENTED` | Connection type not implemented. - `DEVICE_NOT_CONNECTED` | No device is connected. - `DEVICE_BUSY` | Device is busy. - `COMMAND_DENIED` | Command is denied. - `DESTINATION_IP_UNKNOWN` | Connection IP is unknown. - `CONNECTIONS_EXHAUSTED` | Connections exhausted. - `CONNECTION_URL_INVALID` | URL invalid. - ## Member Function Documentation @@ -164,7 +129,7 @@ Default URL : udp://:14540. **Returns** - [ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) - The result of adding the connection. + [ConnectionResult](namespacedronecore.md#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) - The result of adding the connection. ### add_udp_connection() {#classdronecore_1_1_drone_core_1a7a04fbacf95eb6b21418032c8287dfbb} ```cpp @@ -181,7 +146,7 @@ Adds a UDP connection to the specified port number. **Returns** - [ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) - The result of adding the connection. + [ConnectionResult](namespacedronecore.md#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) - The result of adding the connection. ### add_tcp_connection() {#classdronecore_1_1_drone_core_1a725640cb53c0d077e753ea2d22717b68} ```cpp @@ -199,7 +164,7 @@ Adds a TCP connection with a specific IP address and port number. **Returns** - [ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) - The result of adding the connection. + [ConnectionResult](namespacedronecore.md#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) - The result of adding the connection. ### add_serial_connection() {#classdronecore_1_1_drone_core_1abde7ed4d42875dc85c73d34fedab2902} ```cpp @@ -217,7 +182,7 @@ Adds a serial connection with a specific port (COM or UART dev node) and baudrat **Returns** - [ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) - The result of adding the connection. + [ConnectionResult](namespacedronecore.md#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) - The result of adding the connection. ### device_uuids() {#classdronecore_1_1_drone_core_1a20490717da3893be2c6965b905a7c1db} ```cpp @@ -334,64 +299,47 @@ This sets a callback that will be notified if no heartbeat of the device has bee * [event_callback_t](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1abb488f975ee7e199cd1cb08a317a52c3) **callback** - Callback to register. -### connection_result_str() {#classdronecore_1_1_drone_core_1a1557da80cf43483e7833cab1eee417dd} -```cpp -static const char* dronecore::DroneCore::connection_result_str(const ConnectionResult result) -``` - - -Translates the [DroneCore::ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) enum to a human-readable English string. - - -**Parameters** - -* const [ConnectionResult](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) **result** - - -**Returns** - - const char * - - ## Field Documentation ### DEFAULT_UDP_CONNECTION_URL {#classdronecore_1_1_drone_core_1aef2ad569dd9a7d0762b1d17d21e7f598} ```cpp -constexpr auto dronecore::DroneCore::DEFAULT_UDP_CONNECTION_URL +constexpr auto dronecore::DroneCore::DEFAULT_UDP_CONNECTION_URL = "udp://:14540" ``` ### DEFAULT_UDP_PORT {#classdronecore_1_1_drone_core_1aa989b494349529f412b36984a46f2ca6} ```cpp -constexpr int dronecore::DroneCore::DEFAULT_UDP_PORT +constexpr int dronecore::DroneCore::DEFAULT_UDP_PORT = 14540 ``` ### DEFAULT_TCP_REMOTE_IP {#classdronecore_1_1_drone_core_1ade2086911d3052093fb87717f58a99b2} ```cpp -constexpr auto dronecore::DroneCore::DEFAULT_TCP_REMOTE_IP +constexpr auto dronecore::DroneCore::DEFAULT_TCP_REMOTE_IP = "127.0.0.1" ``` ### DEFAULT_TCP_REMOTE_PORT {#classdronecore_1_1_drone_core_1a0ded56f7f5873f17e424343ed7b2e5af} ```cpp -constexpr int dronecore::DroneCore::DEFAULT_TCP_REMOTE_PORT +constexpr int dronecore::DroneCore::DEFAULT_TCP_REMOTE_PORT = 5760 ``` ### DEFAULT_SERIAL_DEV_PATH {#classdronecore_1_1_drone_core_1a67928c93b8b8f2ab65cf28a4b6d9436f} ```cpp -constexpr auto dronecore::DroneCore::DEFAULT_SERIAL_DEV_PATH +constexpr auto dronecore::DroneCore::DEFAULT_SERIAL_DEV_PATH = "/dev/ttyS0" ``` ### DEFAULT_SERIAL_BAUDRATE {#classdronecore_1_1_drone_core_1a2b20d34acc312ffe6197aebdc6769a86} ```cpp -constexpr int dronecore::DroneCore::DEFAULT_SERIAL_BAUDRATE +constexpr int dronecore::DroneCore::DEFAULT_SERIAL_BAUDRATE = 57600 ``` diff --git a/en/api_reference/classdronecore_1_1_follow_me.md b/en/api_reference/classdronecore_1_1_follow_me.md index bb2a105..ba641df 100644 --- a/en/api_reference/classdronecore_1_1_follow_me.md +++ b/en/api_reference/classdronecore_1_1_follow_me.md @@ -33,24 +33,24 @@ enum [Result](#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) Type | Name | Description ---: | --- | --- -| [FollowMe](#classdronecore_1_1_follow_me_1a2d3cbcee491efa09392e6333ae77926c) (Device *device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +| [FollowMe](#classdronecore_1_1_follow_me_1a2d3cbcee491efa09392e6333ae77926c) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). | [~FollowMe](#classdronecore_1_1_follow_me_1a66ffe3c9652bc08a2766f211592316ac) () | Destructor (internal use only). -| [FollowMe](#classdronecore_1_1_follow_me_1a54589c314eeba131aca1c4c56d4b15e3) (const FollowMe &)=delete | Copy constructor (object is not copyable). +| [FollowMe](#classdronecore_1_1_follow_me_1a54589c314eeba131aca1c4c56d4b15e3) (const [FollowMe](classdronecore_1_1_follow_me.md) &)=delete | Copy constructor (object is not copyable). const [Config](structdronecore_1_1_follow_me_1_1_config.md) & | [get_config](#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5) () const | Gets current [FollowMe](classdronecore_1_1_follow_me.md) configuration. -[Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) | [set_config](#classdronecore_1_1_follow_me_1aedf746d4a0eebdaaddc3d1ba0aeb6720) (const Config &config) | Applies [FollowMe](classdronecore_1_1_follow_me.md) configuration by sending it to device. +[Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) | [set_config](#classdronecore_1_1_follow_me_1aedf746d4a0eebdaaddc3d1ba0aeb6720) (const [Config](structdronecore_1_1_follow_me_1_1_config.md) & config) | Applies [FollowMe](classdronecore_1_1_follow_me.md) configuration by sending it to device. bool | [is_active](#classdronecore_1_1_follow_me_1a467349820ac5f42cc388228c399a93ef) () const | Checks whether [FollowMe](classdronecore_1_1_follow_me.md) is active. -void | [set_target_location](#classdronecore_1_1_follow_me_1a1220596b8bb51d2ca52248a92e300ad5) (const TargetLocation &location) | Sets location of the moving target. +void | [set_target_location](#classdronecore_1_1_follow_me_1a1220596b8bb51d2ca52248a92e300ad5) (const [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & location) | Sets location of the moving target. const [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & | [get_last_location](#classdronecore_1_1_follow_me_1a16da2bf7d0384e2bff4440600b523f8c) () const | Returns the last location of the target. [FollowMe::Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) | [start](#classdronecore_1_1_follow_me_1a694749d43d527f85584df25a49b05ccf) () const | Starts [FollowMe](classdronecore_1_1_follow_me.md) mode. [FollowMe::Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) | [stop](#classdronecore_1_1_follow_me_1a6394507b0fb96bceebe6efd17f0529ce) () const | Stops [FollowMe](classdronecore_1_1_follow_me.md) mode. -const [FollowMe](classdronecore_1_1_follow_me.md) & | [operator=](#classdronecore_1_1_follow_me_1accb454508e051d79b2943ba469958f9e) (const FollowMe &)=delete | Equality operator (object is not copyable). +const [FollowMe](classdronecore_1_1_follow_me.md) & | [operator=](#classdronecore_1_1_follow_me_1accb454508e051d79b2943ba469958f9e) (const [FollowMe](classdronecore_1_1_follow_me.md) &)=delete | Equality operator (object is not copyable). ## Static Public Member Functions Type | Name | Description ---: | --- | --- -std::string | [result_str](#classdronecore_1_1_follow_me_1a50d848b1c7b00e40343b8d62593ca307) (Result result) | Returns English string for [FollowMe](classdronecore_1_1_follow_me.md) error codes. +std::string | [result_str](#classdronecore_1_1_follow_me_1a50d848b1c7b00e40343b8d62593ca307) ([Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) result) | Returns English string for [FollowMe](classdronecore_1_1_follow_me.md) error codes. ## Constructor & Destructor Documentation diff --git a/en/api_reference/classdronecore_1_1_gimbal.md b/en/api_reference/classdronecore_1_1_gimbal.md index f16ca19..cd3277e 100644 --- a/en/api_reference/classdronecore_1_1_gimbal.md +++ b/en/api_reference/classdronecore_1_1_gimbal.md @@ -23,19 +23,19 @@ std::function< void([Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gim Type | Name | Description ---: | --- | --- -| [Gimbal](#classdronecore_1_1_gimbal_1a2a5ad56ba40eaacc0261f82ed49407e6) (Device *device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +| [Gimbal](#classdronecore_1_1_gimbal_1a2a5ad56ba40eaacc0261f82ed49407e6) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). | [~Gimbal](#classdronecore_1_1_gimbal_1a4f8b2a6cf5a7347a474f8e47618ad838) () | Destructor (internal use only). -| [Gimbal](#classdronecore_1_1_gimbal_1a82637c62da14ae39db96724d4273cad4) (const Gimbal &)=delete | Copy constructor (object is not copyable). +| [Gimbal](#classdronecore_1_1_gimbal_1a82637c62da14ae39db96724d4273cad4) (const [Gimbal](classdronecore_1_1_gimbal.md) &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a2404686489b502fbc58e940701ba1e6f) | [set_pitch_and_yaw](#classdronecore_1_1_gimbal_1ac8ac49d29f11b2107da6b043bb57b54e) (float pitch_deg, float yaw_deg) | Set gimbal pitch and yaw angles (synchronous). -void | [set_pitch_and_yaw_async](#classdronecore_1_1_gimbal_1a3aea07049f32f8bc5b2edaee8cb2ac16) (float pitch_deg, float yaw_deg, result_callback_t callback) | Set gimbal pitch and yaw angles (asynchronous). -const [Gimbal](classdronecore_1_1_gimbal.md) & | [operator=](#classdronecore_1_1_gimbal_1ad15551254ea56674c576bbcbec6e7eac) (const Gimbal &)=delete | Equality operator (object is not copyable). +void | [set_pitch_and_yaw_async](#classdronecore_1_1_gimbal_1a3aea07049f32f8bc5b2edaee8cb2ac16) (float pitch_deg, float yaw_deg, [result_callback_t](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a309448760ba62635fce7139be44788ff) callback) | Set gimbal pitch and yaw angles (asynchronous). +const [Gimbal](classdronecore_1_1_gimbal.md) & | [operator=](#classdronecore_1_1_gimbal_1ad15551254ea56674c576bbcbec6e7eac) (const [Gimbal](classdronecore_1_1_gimbal.md) &)=delete | Equality operator (object is not copyable). ## Static Public Member Functions Type | Name | Description ---: | --- | --- -const char * | [result_str](#classdronecore_1_1_gimbal_1ad60c5378cc7d160be67432f4d6daa30d) (Result result) | Returns a human-readable English string for [Gimbal::Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a2404686489b502fbc58e940701ba1e6f). +const char * | [result_str](#classdronecore_1_1_gimbal_1ad60c5378cc7d160be67432f4d6daa30d) ([Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a2404686489b502fbc58e940701ba1e6f) result) | Returns a human-readable English string for [Gimbal::Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a2404686489b502fbc58e940701ba1e6f). ## Constructor & Destructor Documentation diff --git a/en/api_reference/classdronecore_1_1_info.md b/en/api_reference/classdronecore_1_1_info.md index 86a6bd4..52d20bc 100644 --- a/en/api_reference/classdronecore_1_1_info.md +++ b/en/api_reference/classdronecore_1_1_info.md @@ -19,14 +19,14 @@ struct [Version](structdronecore_1_1_info_1_1_version.md) Type | Name | Description ---: | --- | --- -| [Info](#classdronecore_1_1_info_1a10ea70679e1b2d7e43bc9944fbe18aaf) (Device *device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +| [Info](#classdronecore_1_1_info_1a10ea70679e1b2d7e43bc9944fbe18aaf) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). | [~Info](#classdronecore_1_1_info_1a39e608070500b5fca0b4415cdb13f75f) () | Destructor (internal use only). -| [Info](#classdronecore_1_1_info_1af0902805d75577d1195363eda21d7bb1) (const Info &)=delete | Copy Constructor (object is not copyable). +| [Info](#classdronecore_1_1_info_1af0902805d75577d1195363eda21d7bb1) (const [Info](classdronecore_1_1_info.md) &)=delete | Copy Constructor (object is not copyable). uint64_t | [uuid](#classdronecore_1_1_info_1a49c7dd5f1a369c8296f0c3a2443bc031) () const | Gets the UUID of the device. bool | [is_complete](#classdronecore_1_1_info_1a088438b73c715fb20c02792fed1815f7) () const | Tests if the [Version](structdronecore_1_1_info_1_1_version.md) and [Product](structdronecore_1_1_info_1_1_product.md) objects are fully populated from hardware. [Version](structdronecore_1_1_info_1_1_version.md) | [get_version](#classdronecore_1_1_info_1a6e41fae8c6ad352e70b1e93b4a1589f9) () const | Get device version information. [Product](structdronecore_1_1_info_1_1_product.md) | [get_product](#classdronecore_1_1_info_1adb7999bf9e92f95e3dfa5eaea216807a) () const | Get device product information. -const [Info](classdronecore_1_1_info.md) & | [operator=](#classdronecore_1_1_info_1ac82758b486f00562e193a89e3dbff6d3) (const Info &)=delete | Equality operator (object is not copyable). +const [Info](classdronecore_1_1_info.md) & | [operator=](#classdronecore_1_1_info_1ac82758b486f00562e193a89e3dbff6d3) (const [Info](classdronecore_1_1_info.md) &)=delete | Equality operator (object is not copyable). ## Static Public Attributes @@ -156,7 +156,7 @@ Equality operator (object is not copyable). ### GIT_HASH_STR_LEN {#classdronecore_1_1_info_1aae671143f80e43d2f431e7fe0d3774fd} ```cpp -const unsigned dronecore::Info::GIT_HASH_STR_LEN +const unsigned dronecore::Info::GIT_HASH_STR_LEN = 17 ``` diff --git a/en/api_reference/classdronecore_1_1_logging.md b/en/api_reference/classdronecore_1_1_logging.md index d1c440a..fa5fa1b 100644 --- a/en/api_reference/classdronecore_1_1_logging.md +++ b/en/api_reference/classdronecore_1_1_logging.md @@ -23,21 +23,21 @@ std::function< void([Result](classdronecore_1_1_logging.md#classdronecore_1_1_lo Type | Name | Description ---: | --- | --- -| [Logging](#classdronecore_1_1_logging_1a191a5eaa0d4c23b634585a276a20ba97) (Device *device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +| [Logging](#classdronecore_1_1_logging_1a191a5eaa0d4c23b634585a276a20ba97) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). | [~Logging](#classdronecore_1_1_logging_1a49e75d77f900ba5ef59a960ae9b8dc55) () | Destructor (internal use only). -| [Logging](#classdronecore_1_1_logging_1a62a17eb90e3ec9253f1b40e94d3c1fd7) (const Logging &)=delete | Copy constructor (object is not copyable). +| [Logging](#classdronecore_1_1_logging_1a62a17eb90e3ec9253f1b40e94d3c1fd7) (const [Logging](classdronecore_1_1_logging.md) &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_logging.md#classdronecore_1_1_logging_1ab11e242369717d9510de1ab93bfad086) | [start_logging](#classdronecore_1_1_logging_1a4684d8226742b575fce423c9ce758fc0) () const | Start logging (synchronous). [Result](classdronecore_1_1_logging.md#classdronecore_1_1_logging_1ab11e242369717d9510de1ab93bfad086) | [stop_logging](#classdronecore_1_1_logging_1a258affbec05c9c2ca229a3e12e5c8a1b) () const | Stop logging (synchronous). -void | [start_logging_async](#classdronecore_1_1_logging_1a5ee9b37891aa66fd98f17fbf871c383b) (result_callback_t callback) | Start logging (asynchronous). -void | [stop_logging_async](#classdronecore_1_1_logging_1a643b9a80157464d6ac94c8c2987099a0) (result_callback_t callback) | Stop logging (asynchronous). -const [Logging](classdronecore_1_1_logging.md) & | [operator=](#classdronecore_1_1_logging_1a43d8bd32d59a2b5e728e221d7bba4aef) (const Logging &)=delete | Equality operator (object is not copyable). +void | [start_logging_async](#classdronecore_1_1_logging_1a5ee9b37891aa66fd98f17fbf871c383b) ([result_callback_t](classdronecore_1_1_logging.md#classdronecore_1_1_logging_1a16c5eb728571a59a552ca6706166b427) callback) | Start logging (asynchronous). +void | [stop_logging_async](#classdronecore_1_1_logging_1a643b9a80157464d6ac94c8c2987099a0) ([result_callback_t](classdronecore_1_1_logging.md#classdronecore_1_1_logging_1a16c5eb728571a59a552ca6706166b427) callback) | Stop logging (asynchronous). +const [Logging](classdronecore_1_1_logging.md) & | [operator=](#classdronecore_1_1_logging_1a43d8bd32d59a2b5e728e221d7bba4aef) (const [Logging](classdronecore_1_1_logging.md) &)=delete | Equality operator (object is not copyable). ## Static Public Member Functions Type | Name | Description ---: | --- | --- -const char * | [result_str](#classdronecore_1_1_logging_1adc5a7560f1a27996fc05f2b761f0b177) (Result result) | Returns human-readable English string for [Logging::Result](classdronecore_1_1_logging.md#classdronecore_1_1_logging_1ab11e242369717d9510de1ab93bfad086). +const char * | [result_str](#classdronecore_1_1_logging_1adc5a7560f1a27996fc05f2b761f0b177) ([Result](classdronecore_1_1_logging.md#classdronecore_1_1_logging_1ab11e242369717d9510de1ab93bfad086) result) | Returns human-readable English string for [Logging::Result](classdronecore_1_1_logging.md#classdronecore_1_1_logging_1ab11e242369717d9510de1ab93bfad086). ## Constructor & Destructor Documentation diff --git a/en/api_reference/classdronecore_1_1_mission.md b/en/api_reference/classdronecore_1_1_mission.md index f63daeb..22e6327 100644 --- a/en/api_reference/classdronecore_1_1_mission.md +++ b/en/api_reference/classdronecore_1_1_mission.md @@ -23,27 +23,27 @@ std::function< void(int current, int total)> [progress_callback_t](#classdroneco Type | Name | Description ---: | --- | --- -| [Mission](#classdronecore_1_1_mission_1a3835376b0fbf186ad572dbfad3bcc4e9) (Device *device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +| [Mission](#classdronecore_1_1_mission_1a3835376b0fbf186ad572dbfad3bcc4e9) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). | [~Mission](#classdronecore_1_1_mission_1a395b8c121630aa8a5dd3d48f95290659) () | Destructor (internal use only). -| [Mission](#classdronecore_1_1_mission_1a4947f79b7dd71e66bca64e5bbb0b3377) (const Mission &)=delete | Copy constructor (object is not copyable). -void | [upload_mission_async](#classdronecore_1_1_mission_1a414b5b6d0c66af695a725e92003872b5) (const std::vector< std::shared_ptr< MissionItem >> &mission_items, result_callback_t callback) | Uploads a vector of mission items to the device (asynchronous). -void | [download_mission_async](#classdronecore_1_1_mission_1a1bd15f508fe7da39b587a8e4d5e59ae2) (mission_items_and_result_callback_t callback) | Downloads a vector of mission items from the device (asynchronous). -void | [start_mission_async](#classdronecore_1_1_mission_1a9e032c6b2bc35cf6e7e19e07747fb0d3) (result_callback_t callback) | Starts the mission (asynchronous). -void | [pause_mission_async](#classdronecore_1_1_mission_1a65f729cf954586507ecd8dc07a510dd1) (result_callback_t callback) | Pauses the mission (asynchronous). -void | [set_current_mission_item_async](#classdronecore_1_1_mission_1af8d06941d424d57bcc2b55f8f9a2ea27) (int current, result_callback_t callback) | Sets the mission item index to go to (asynchronous). +| [Mission](#classdronecore_1_1_mission_1a4947f79b7dd71e66bca64e5bbb0b3377) (const [Mission](classdronecore_1_1_mission.md) &)=delete | Copy constructor (object is not copyable). +void | [upload_mission_async](#classdronecore_1_1_mission_1a414b5b6d0c66af695a725e92003872b5) (const std::vector< std::shared_ptr< [MissionItem](classdronecore_1_1_mission_item.md) >> & mission_items, [result_callback_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a239f8d5853785d6ccf90c8c48b5ccf06) callback) | Uploads a vector of mission items to the device (asynchronous). +void | [download_mission_async](#classdronecore_1_1_mission_1a1bd15f508fe7da39b587a8e4d5e59ae2) ([mission_items_and_result_callback_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a7cb36c0356a867e90f3c4c764d424d32) callback) | Downloads a vector of mission items from the device (asynchronous). +void | [start_mission_async](#classdronecore_1_1_mission_1a9e032c6b2bc35cf6e7e19e07747fb0d3) ([result_callback_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a239f8d5853785d6ccf90c8c48b5ccf06) callback) | Starts the mission (asynchronous). +void | [pause_mission_async](#classdronecore_1_1_mission_1a65f729cf954586507ecd8dc07a510dd1) ([result_callback_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a239f8d5853785d6ccf90c8c48b5ccf06) callback) | Pauses the mission (asynchronous). +void | [set_current_mission_item_async](#classdronecore_1_1_mission_1af8d06941d424d57bcc2b55f8f9a2ea27) (int current, [result_callback_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a239f8d5853785d6ccf90c8c48b5ccf06) callback) | Sets the mission item index to go to (asynchronous). bool | [mission_finished](#classdronecore_1_1_mission_1abf3463efaa18147a1c179e7449503829) () const | Checks if mission has been finished (synchronous). int | [current_mission_item](#classdronecore_1_1_mission_1a1faa448b32cd0028923b22de0cc78e9c) () const | Returns the current mission item index (synchronous). int | [total_mission_items](#classdronecore_1_1_mission_1a9d2195ec1af301c51002f8cb99aa22e9) () const | Returns the total number of mission items (synchronous). -void | [subscribe_progress](#classdronecore_1_1_mission_1a3290fc79eb22f899528328adfca48a61) (progress_callback_t callback) | Subscribes to mission progress (asynchronous). -const [Mission](classdronecore_1_1_mission.md) & | [operator=](#classdronecore_1_1_mission_1ae946abaf32a30cb0b803a145f095217d) (const Mission &)=delete | Equality operator (object is not copyable). +void | [subscribe_progress](#classdronecore_1_1_mission_1a3290fc79eb22f899528328adfca48a61) ([progress_callback_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1aeda7795cd898008afc05b779f99b704b) callback) | Subscribes to mission progress (asynchronous). +const [Mission](classdronecore_1_1_mission.md) & | [operator=](#classdronecore_1_1_mission_1ae946abaf32a30cb0b803a145f095217d) (const [Mission](classdronecore_1_1_mission.md) &)=delete | Equality operator (object is not copyable). ## Static Public Member Functions Type | Name | Description ---: | --- | --- -const char * | [result_str](#classdronecore_1_1_mission_1a0eabb2fe4db664c552d28161678c593f) (Result result) | Gets a human-readable English string for an [Mission::Result](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a529b17f5b63508494ca22fc247598cda). -[Result](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a529b17f5b63508494ca22fc247598cda) | [import_qgroundcontrol_mission](#classdronecore_1_1_mission_1a7c73e97e5c1395a7451bb659d03e5f57) (mission_items_t &mission_items, const std::string &qgc_plan_file) | Imports a **QGroundControl** (QGC) mission plan. +const char * | [result_str](#classdronecore_1_1_mission_1a0eabb2fe4db664c552d28161678c593f) ([Result](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a529b17f5b63508494ca22fc247598cda) result) | Gets a human-readable English string for an [Mission::Result](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a529b17f5b63508494ca22fc247598cda). +[Result](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a529b17f5b63508494ca22fc247598cda) | [import_qgroundcontrol_mission](#classdronecore_1_1_mission_1a7c73e97e5c1395a7451bb659d03e5f57) ([mission_items_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1aeedbc1d50fec7304f0d140ce9748a5e2) & mission_items, const std::string & qgc_plan_file) | Imports a **QGroundControl** (QGC) mission plan. ## Constructor & Destructor Documentation diff --git a/en/api_reference/classdronecore_1_1_mission_item.md b/en/api_reference/classdronecore_1_1_mission_item.md index 64401fe..df803e1 100644 --- a/en/api_reference/classdronecore_1_1_mission_item.md +++ b/en/api_reference/classdronecore_1_1_mission_item.md @@ -24,14 +24,14 @@ Type | Name | Description ---: | --- | --- | [MissionItem](#classdronecore_1_1_mission_item_1aca4d7fd82ae0f623cd162730140a5a68) () | Constructor (internal use only). | [~MissionItem](#classdronecore_1_1_mission_item_1abfcfaeb576e969d6da33a4d16013dd9f) () | Destructor (internal use only). -| [MissionItem](#classdronecore_1_1_mission_item_1ac6e6d75b38193db07eaa05b21fc229e2) (const MissionItem &)=delete | Copy constructor (object is not copyable). +| [MissionItem](#classdronecore_1_1_mission_item_1ac6e6d75b38193db07eaa05b21fc229e2) (const [MissionItem](classdronecore_1_1_mission_item.md) &)=delete | Copy constructor (object is not copyable). void | [set_position](#classdronecore_1_1_mission_item_1ab5897670c8830fc3514036d6ee99b582) (double latitude_deg, double longitude_deg) | Set the position of a mission item. void | [set_relative_altitude](#classdronecore_1_1_mission_item_1afef21f3028edad2ba2a0e966404fa33a) (float altitude_m) | Set the relative altitude of a mission item. void | [set_fly_through](#classdronecore_1_1_mission_item_1a63d73896635dc0af136a521cd35bf352) (bool fly_through) | Set the fly-through property of a mission item. void | [set_speed](#classdronecore_1_1_mission_item_1a37e43f748da4136c659419a4a2d84b0e) (float speed_m_s) | Set the speed to use after a mission item. void | [set_gimbal_pitch_and_yaw](#classdronecore_1_1_mission_item_1a10adfcff1e99ae937654786b767e5558) (float pitch_deg, float yaw_deg) | Set the pitch and yaw angle of a gimbal at that mission item. void | [set_loiter_time](#classdronecore_1_1_mission_item_1a594fbed85eb5321d971a309dd4bcec0e) (float loiter_time_s) | Set loiter time in seconds. -void | [set_camera_action](#classdronecore_1_1_mission_item_1a8d0d8a5519783aaa272befd73e851896) (CameraAction action) | Set the camera action for a mission item. +void | [set_camera_action](#classdronecore_1_1_mission_item_1a8d0d8a5519783aaa272befd73e851896) ([CameraAction](classdronecore_1_1_mission_item.md#classdronecore_1_1_mission_item_1a0cdd25121e5ed6930080ac022857887a) action) | Set the camera action for a mission item. void | [set_camera_photo_interval](#classdronecore_1_1_mission_item_1a4ffe698b47c659aa8857725e94ad1f7c) (double interval_s) | Set the camera photo interval. double | [get_latitude_deg](#classdronecore_1_1_mission_item_1ad95d5d10d69bdb43321231c51dda1175) () const | Get the latitude of a mission item. double | [get_longitude_deg](#classdronecore_1_1_mission_item_1a9f76de6dbbcec3269207867794a2d099) () const | Get the longitude of a mission item. @@ -42,14 +42,14 @@ float | [get_speed_m_s](#classdronecore_1_1_mission_item_1adc737b7be9b49cd0fe188 float | [get_loiter_time_s](#classdronecore_1_1_mission_item_1a25fd1a2ba0df071b25e2315a3a1f5085) () const | Get loiter time in seconds. [CameraAction](classdronecore_1_1_mission_item.md#classdronecore_1_1_mission_item_1a0cdd25121e5ed6930080ac022857887a) | [get_camera_action](#classdronecore_1_1_mission_item_1ae42a857f79b63c611f5a21fed2ea18fc) () const | Get the camera action set for this mission item. double | [get_camera_photo_interval_s](#classdronecore_1_1_mission_item_1adf38956d9ed1ef4e98a4d5a6b61eccd7) () const | Get the camera photo interval that was set for this mission item. -const [MissionItem](classdronecore_1_1_mission_item.md) & | [operator=](#classdronecore_1_1_mission_item_1a8582ad72a3a8c20c87e8224ab10970c0) (const MissionItem &)=delete | Equality operator (object is not copyable). +const [MissionItem](classdronecore_1_1_mission_item.md) & | [operator=](#classdronecore_1_1_mission_item_1a8582ad72a3a8c20c87e8224ab10970c0) (const [MissionItem](classdronecore_1_1_mission_item.md) &)=delete | Equality operator (object is not copyable). ## Static Public Member Functions Type | Name | Description ---: | --- | --- -std::string | [to_str](#classdronecore_1_1_mission_item_1aee3e76302036c953858a217d63389aae) (CameraAction camera_action) | Converts [CameraAction](classdronecore_1_1_mission_item.md#classdronecore_1_1_mission_item_1a0cdd25121e5ed6930080ac022857887a) to English strings. +std::string | [to_str](#classdronecore_1_1_mission_item_1aee3e76302036c953858a217d63389aae) ([CameraAction](classdronecore_1_1_mission_item.md#classdronecore_1_1_mission_item_1a0cdd25121e5ed6930080ac022857887a) camera_action) | Converts [CameraAction](classdronecore_1_1_mission_item.md#classdronecore_1_1_mission_item_1a0cdd25121e5ed6930080ac022857887a) to English strings. ## Constructor & Destructor Documentation diff --git a/en/api_reference/classdronecore_1_1_offboard.md b/en/api_reference/classdronecore_1_1_offboard.md index 596aa31..40fa408 100644 --- a/en/api_reference/classdronecore_1_1_offboard.md +++ b/en/api_reference/classdronecore_1_1_offboard.md @@ -36,24 +36,24 @@ std::function< void([Result](classdronecore_1_1_offboard.md#classdronecore_1_1_o Type | Name | Description ---: | --- | --- -| [Offboard](#classdronecore_1_1_offboard_1a333ac94793dc29ed95158fb2af286fa1) (Device *device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +| [Offboard](#classdronecore_1_1_offboard_1a333ac94793dc29ed95158fb2af286fa1) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). | [~Offboard](#classdronecore_1_1_offboard_1a7cb4eff36c37fed1c6d973aa41b059b8) () | Destructor (internal use only). -| [Offboard](#classdronecore_1_1_offboard_1ac586be55cb24aa0ccd29c97352dd2ee5) (const Offboard &)=delete | Copy constructor (object is not copyable). +| [Offboard](#classdronecore_1_1_offboard_1ac586be55cb24aa0ccd29c97352dd2ee5) (const [Offboard](classdronecore_1_1_offboard.md) &)=delete | Copy constructor (object is not copyable). [Offboard::Result](classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a0f6e5e9f73289f27dc99abbb3ab572ed) | [start](#classdronecore_1_1_offboard_1a658454f130f7b19d56f23347a448f1b9) () | Start offboard control (synchronous). [Offboard::Result](classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a0f6e5e9f73289f27dc99abbb3ab572ed) | [stop](#classdronecore_1_1_offboard_1ae223c08f1ffc694b26d847cab7738406) () | Stop offboard control (synchronous). -void | [start_async](#classdronecore_1_1_offboard_1a5dd9d18eedb0e4a8f1bbbeebf6f99aa8) (result_callback_t callback) | Start offboard control (asynchronous). -void | [stop_async](#classdronecore_1_1_offboard_1afbe6f50f63d3bc43acc4dfc2f797ca0a) (result_callback_t callback) | Stop offboard control (asynchronous). +void | [start_async](#classdronecore_1_1_offboard_1a5dd9d18eedb0e4a8f1bbbeebf6f99aa8) ([result_callback_t](classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a75eeca649293887ac9d398e6432e431f) callback) | Start offboard control (asynchronous). +void | [stop_async](#classdronecore_1_1_offboard_1afbe6f50f63d3bc43acc4dfc2f797ca0a) ([result_callback_t](classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a75eeca649293887ac9d398e6432e431f) callback) | Stop offboard control (asynchronous). bool | [is_active](#classdronecore_1_1_offboard_1a44d9284ef03c8cf6f37a77b2f3cadaf0) () const | Check if offboard control is active. -void | [set_velocity_ned](#classdronecore_1_1_offboard_1a9e7f369a8f7459dc7705f4453a8c307d) (VelocityNEDYaw velocity_ned_yaw) | Set the velocity in NED coordinates and yaw. -void | [set_velocity_body](#classdronecore_1_1_offboard_1ad9dc585be1bc2dba699cf089d4c274cc) (VelocityBodyYawspeed velocity_body_yawspeed) | Set the velocity body coordinates and yaw angular rate. -const [Offboard](classdronecore_1_1_offboard.md) & | [operator=](#classdronecore_1_1_offboard_1aa6bf966e606cdd361364791d06aca977) (const Offboard &)=delete | Equality operator (object is not copyable). +void | [set_velocity_ned](#classdronecore_1_1_offboard_1a9e7f369a8f7459dc7705f4453a8c307d) ([VelocityNEDYaw](structdronecore_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](#classdronecore_1_1_offboard_1ad9dc585be1bc2dba699cf089d4c274cc) ([VelocityBodyYawspeed](structdronecore_1_1_offboard_1_1_velocity_body_yawspeed.md) velocity_body_yawspeed) | Set the velocity body coordinates and yaw angular rate. +const [Offboard](classdronecore_1_1_offboard.md) & | [operator=](#classdronecore_1_1_offboard_1aa6bf966e606cdd361364791d06aca977) (const [Offboard](classdronecore_1_1_offboard.md) &)=delete | Equality operator (object is not copyable). ## Static Public Member Functions Type | Name | Description ---: | --- | --- -const char * | [result_str](#classdronecore_1_1_offboard_1a8eb7467e48fe354d34bc45637ca9f5b8) (Result result) | Get human-readable English string for [Offboard::Result](classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a0f6e5e9f73289f27dc99abbb3ab572ed). +const char * | [result_str](#classdronecore_1_1_offboard_1a8eb7467e48fe354d34bc45637ca9f5b8) ([Result](classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a0f6e5e9f73289f27dc99abbb3ab572ed) result) | Get human-readable English string for [Offboard::Result](classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a0f6e5e9f73289f27dc99abbb3ab572ed). ## Constructor & Destructor Documentation diff --git a/en/api_reference/classdronecore_1_1_plugin_base.md b/en/api_reference/classdronecore_1_1_plugin_base.md index a48d496..7e44c25 100644 --- a/en/api_reference/classdronecore_1_1_plugin_base.md +++ b/en/api_reference/classdronecore_1_1_plugin_base.md @@ -11,8 +11,8 @@ Type | Name | Description ---: | --- | --- | [PluginBase](#classdronecore_1_1_plugin_base_1ae98dd073e3768f140d5fb938c20c861c) () | | [~PluginBase](#classdronecore_1_1_plugin_base_1a99a11523b84feb2fc1664eed1d4995f3) ()=default | -| [PluginBase](#classdronecore_1_1_plugin_base_1a9a163fe7dc7cc9b8c65a1ce0e86a6750) (const PluginBase &)=delete | -const [PluginBase](classdronecore_1_1_plugin_base.md) & | [operator=](#classdronecore_1_1_plugin_base_1a971a2166cd7528fedb4f18209b2ba699) (const PluginBase &)=delete | +| [PluginBase](#classdronecore_1_1_plugin_base_1a9a163fe7dc7cc9b8c65a1ce0e86a6750) (const [PluginBase](classdronecore_1_1_plugin_base.md) &)=delete | +const [PluginBase](classdronecore_1_1_plugin_base.md) & | [operator=](#classdronecore_1_1_plugin_base_1a971a2166cd7528fedb4f18209b2ba699) (const [PluginBase](classdronecore_1_1_plugin_base.md) &)=delete | ## Constructor & Destructor Documentation diff --git a/en/api_reference/classdronecore_1_1_telemetry.md b/en/api_reference/classdronecore_1_1_telemetry.md index 5771414..75a6d65 100644 --- a/en/api_reference/classdronecore_1_1_telemetry.md +++ b/en/api_reference/classdronecore_1_1_telemetry.md @@ -52,9 +52,9 @@ std::function< void([RCStatus](structdronecore_1_1_telemetry_1_1_r_c_status.md) Type | Name | Description ---: | --- | --- -| [Telemetry](#classdronecore_1_1_telemetry_1ad0cb6dd62c12af390870f8b5cb5bde55) (Device *device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +| [Telemetry](#classdronecore_1_1_telemetry_1ad0cb6dd62c12af390870f8b5cb5bde55) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). | [~Telemetry](#classdronecore_1_1_telemetry_1ade5f44873d1fd5a5ec63037307920095) () | Destructor (internal use only). -| [Telemetry](#classdronecore_1_1_telemetry_1a91a3319d9040bd89d241be3d8b2e9a5e) (const Telemetry &)=delete | Copy constructor (object is not copyable). +| [Telemetry](#classdronecore_1_1_telemetry_1a91a3319d9040bd89d241be3d8b2e9a5e) (const [Telemetry](classdronecore_1_1_telemetry.md) &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a5bfab85edb7c160e156133a9643964bc) | [set_rate_position](#classdronecore_1_1_telemetry_1ae7a6e1313b1508fef7163287aa77a6da) (double rate_hz) | Set rate of position updates (synchronous). [Result](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a5bfab85edb7c160e156133a9643964bc) | [set_rate_home_position](#classdronecore_1_1_telemetry_1a9d89866f6672fbe3b88047e7ba295bf9) (double rate_hz) | Set rate of home position updates (synchronous). [Result](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a5bfab85edb7c160e156133a9643964bc) | [set_rate_in_air](#classdronecore_1_1_telemetry_1aed902b38ff4380a8927340c291e183f5) (double rate_hz) | Set rate of in-air status updates (synchronous). @@ -64,15 +64,15 @@ Type | Name | Description [Result](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a5bfab85edb7c160e156133a9643964bc) | [set_rate_gps_info](#classdronecore_1_1_telemetry_1a7b31a3bafe6bfa4c3a9698d06fdb226d) (double rate_hz) | Set rate of GPS information updates (synchronous). [Result](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a5bfab85edb7c160e156133a9643964bc) | [set_rate_battery](#classdronecore_1_1_telemetry_1a004c386df5e28c458a9ac56fa45f7dfe) (double rate_hz) | Set rate of battery status updates (synchronous). [Result](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a5bfab85edb7c160e156133a9643964bc) | [set_rate_rc_status](#classdronecore_1_1_telemetry_1a9fe7d6275bf8a330673f9890481d5b4a) (double rate_hz) | Set rate of RC status updates (synchronous). -void | [set_rate_position_async](#classdronecore_1_1_telemetry_1aeac791b919a172f96b9b3e6ecb07e288) (double rate_hz, result_callback_t callback) | Set rate of position updates (asynchronous). -void | [set_rate_home_position_async](#classdronecore_1_1_telemetry_1a2540af7d324392aa7d3749568c74c140) (double rate_hz, result_callback_t callback) | Set rate of home position updates (asynchronous). -void | [set_rate_in_air_async](#classdronecore_1_1_telemetry_1aac06f897f6eff775f458ea3979f2ae68) (double rate_hz, result_callback_t callback) | Set rate of in-air status updates (asynchronous). -void | [set_rate_attitude_async](#classdronecore_1_1_telemetry_1ac219c4f150a31c38606e18a94d969a2c) (double rate_hz, result_callback_t callback) | Set rate of attitude updates (asynchronous). -void | [set_rate_camera_attitude_async](#classdronecore_1_1_telemetry_1a4afd29de2fef5eecd709252d70548eb1) (double rate_hz, result_callback_t callback) | Set rate of camera attitude updates (asynchronous). -void | [set_rate_ground_speed_ned_async](#classdronecore_1_1_telemetry_1adeff5606c33c24cece7afc2ae1247c46) (double rate_hz, result_callback_t callback) | Set rate of ground speed (NED) updates (asynchronous). -void | [set_rate_gps_info_async](#classdronecore_1_1_telemetry_1a8e65a2cf6a47faeca762866e06ee581f) (double rate_hz, result_callback_t callback) | Set rate of GPS information updates (asynchronous). -void | [set_rate_battery_async](#classdronecore_1_1_telemetry_1a52d686b80c498d8ecb66e8a59de12e3d) (double rate_hz, result_callback_t callback) | Set rate of battery status updates (asynchronous). -void | [set_rate_rc_status_async](#classdronecore_1_1_telemetry_1a931cdcb687aca9253ed6c183a977986f) (double rate_hz, result_callback_t callback) | Set rate of RC status updates (asynchronous). +void | [set_rate_position_async](#classdronecore_1_1_telemetry_1aeac791b919a172f96b9b3e6ecb07e288) (double rate_hz, [result_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a0375deb06bf63988c664a319a5d67fdf) callback) | Set rate of position updates (asynchronous). +void | [set_rate_home_position_async](#classdronecore_1_1_telemetry_1a2540af7d324392aa7d3749568c74c140) (double rate_hz, [result_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a0375deb06bf63988c664a319a5d67fdf) callback) | Set rate of home position updates (asynchronous). +void | [set_rate_in_air_async](#classdronecore_1_1_telemetry_1aac06f897f6eff775f458ea3979f2ae68) (double rate_hz, [result_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a0375deb06bf63988c664a319a5d67fdf) callback) | Set rate of in-air status updates (asynchronous). +void | [set_rate_attitude_async](#classdronecore_1_1_telemetry_1ac219c4f150a31c38606e18a94d969a2c) (double rate_hz, [result_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a0375deb06bf63988c664a319a5d67fdf) callback) | Set rate of attitude updates (asynchronous). +void | [set_rate_camera_attitude_async](#classdronecore_1_1_telemetry_1a4afd29de2fef5eecd709252d70548eb1) (double rate_hz, [result_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a0375deb06bf63988c664a319a5d67fdf) callback) | Set rate of camera attitude updates (asynchronous). +void | [set_rate_ground_speed_ned_async](#classdronecore_1_1_telemetry_1adeff5606c33c24cece7afc2ae1247c46) (double rate_hz, [result_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a0375deb06bf63988c664a319a5d67fdf) callback) | Set rate of ground speed (NED) updates (asynchronous). +void | [set_rate_gps_info_async](#classdronecore_1_1_telemetry_1a8e65a2cf6a47faeca762866e06ee581f) (double rate_hz, [result_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a0375deb06bf63988c664a319a5d67fdf) callback) | Set rate of GPS information updates (asynchronous). +void | [set_rate_battery_async](#classdronecore_1_1_telemetry_1a52d686b80c498d8ecb66e8a59de12e3d) (double rate_hz, [result_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a0375deb06bf63988c664a319a5d67fdf) callback) | Set rate of battery status updates (asynchronous). +void | [set_rate_rc_status_async](#classdronecore_1_1_telemetry_1a931cdcb687aca9253ed6c183a977986f) (double rate_hz, [result_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a0375deb06bf63988c664a319a5d67fdf) callback) | Set rate of RC status updates (asynchronous). [Position](structdronecore_1_1_telemetry_1_1_position.md) | [position](#classdronecore_1_1_telemetry_1aa272d9fb09a850b815c78cbdf47311e1) () const | Get the current position (synchronous). [Position](structdronecore_1_1_telemetry_1_1_position.md) | [home_position](#classdronecore_1_1_telemetry_1a48c7bfa911ac4ecbc3dd7c374dc2ac74) () const | Get the home position (synchronous). bool | [in_air](#classdronecore_1_1_telemetry_1ae6cc80856eb3e57b9598dbea4b0a4a78) () const | Get the in-air status (synchronous). @@ -88,30 +88,30 @@ bool | [armed](#classdronecore_1_1_telemetry_1a0ca7da7922c22509ce6d55d4ad19bcf7) [Health](structdronecore_1_1_telemetry_1_1_health.md) | [health](#classdronecore_1_1_telemetry_1a17ba227e4324b7033d0175ecab3d64bc) () const | Get the current health status (synchronous). bool | [health_all_ok](#classdronecore_1_1_telemetry_1a630c91d8067e4084c4f303513a0aeb29) () const | Returns true if the overall health is ok (synchronous). [RCStatus](structdronecore_1_1_telemetry_1_1_r_c_status.md) | [rc_status](#classdronecore_1_1_telemetry_1a1f60325b7b4b31c5c02baafd025e7bf0) () const | Get the RC status (synchronous). -void | [position_async](#classdronecore_1_1_telemetry_1ac4a01ef44f175ef9a84a984268708722) (position_callback_t callback) | Subscribe to position updates (asynchronous). -void | [home_position_async](#classdronecore_1_1_telemetry_1a3a90030b4259e8cf6979883d3271b0e3) (position_callback_t callback) | Subscribe to home position updates (asynchronous). -void | [in_air_async](#classdronecore_1_1_telemetry_1a0f97d0730c7f1481e82355944a99a5cf) (in_air_callback_t callback) | Subscribe to in-air updates (asynchronous). -void | [armed_async](#classdronecore_1_1_telemetry_1a5bc58c1183bc8d149b67f944740c28ca) (armed_callback_t callback) | Subscribe to armed updates (asynchronous). -void | [attitude_quaternion_async](#classdronecore_1_1_telemetry_1a5efba6a7d3eee0c0ed7fbf32d736591c) (attitude_quaternion_callback_t callback) | Subscribe to attitude updates in quaternion (asynchronous). -void | [attitude_euler_angle_async](#classdronecore_1_1_telemetry_1a4db3470f055b7a76485ec27eebee8c59) (attitude_euler_angle_callback_t callback) | Subscribe to attitude updates in Euler angles (asynchronous). -void | [camera_attitude_quaternion_async](#classdronecore_1_1_telemetry_1aa1a49c8d37499314f6050dfc4bb145ad) (attitude_quaternion_callback_t callback) | Subscribe to camera attitude updates in quaternion (asynchronous). -void | [camera_attitude_euler_angle_async](#classdronecore_1_1_telemetry_1a35b0534671564e763621f516e0197449) (attitude_euler_angle_callback_t callback) | Subscribe to camera attitude updates in Euler angles (asynchronous). -void | [ground_speed_ned_async](#classdronecore_1_1_telemetry_1a954e95659c2890e0277664910fce9c34) (ground_speed_ned_callback_t callback) | Subscribe to ground speed (NED) updates (asynchronous). -void | [gps_info_async](#classdronecore_1_1_telemetry_1afa05293d3d370ef90c5a291a22036a6e) (gps_info_callback_t callback) | Subscribe to GPS information updates (asynchronous). -void | [battery_async](#classdronecore_1_1_telemetry_1a58bf2de73fbd609460398157dc8ffdd5) (battery_callback_t callback) | Subscribe to battery status updates (asynchronous). -void | [flight_mode_async](#classdronecore_1_1_telemetry_1ac8842dec06db4bd54c8c2ba2deb0d34a) (flight_mode_callback_t callback) | Subscribe to flight mode updates (asynchronous). -void | [health_async](#classdronecore_1_1_telemetry_1a69675f46ba188d07d2e7edc110fbd2e9) (health_callback_t callback) | Subscribe to health status updates (asynchronous). -void | [health_all_ok_async](#classdronecore_1_1_telemetry_1a83b384cd04b2ed17db805cfad8bafab5) (health_all_ok_callback_t callback) | Subscribe to overall health status updates (asynchronous). -void | [rc_status_async](#classdronecore_1_1_telemetry_1a8f49537ae4c176a3e952247d60e82cd9) (rc_status_callback_t callback) | Subscribe to RC status updates (asynchronous). -const [Telemetry](classdronecore_1_1_telemetry.md) & | [operator=](#classdronecore_1_1_telemetry_1a9f46a41e835ab0beed894e49ab61515f) (const Telemetry &)=delete | Equality operator (object is not copyable). +void | [position_async](#classdronecore_1_1_telemetry_1ac4a01ef44f175ef9a84a984268708722) ([position_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a0b6f61942324aa2cb56e4c6cc97f41c3) callback) | Subscribe to position updates (asynchronous). +void | [home_position_async](#classdronecore_1_1_telemetry_1a3a90030b4259e8cf6979883d3271b0e3) ([position_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a0b6f61942324aa2cb56e4c6cc97f41c3) callback) | Subscribe to home position updates (asynchronous). +void | [in_air_async](#classdronecore_1_1_telemetry_1a0f97d0730c7f1481e82355944a99a5cf) ([in_air_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a99189e3b07a193d756ceaeaa1a91d833) callback) | Subscribe to in-air updates (asynchronous). +void | [armed_async](#classdronecore_1_1_telemetry_1a5bc58c1183bc8d149b67f944740c28ca) ([armed_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a832876c9db780e356bc365d3efb33655) callback) | Subscribe to armed updates (asynchronous). +void | [attitude_quaternion_async](#classdronecore_1_1_telemetry_1a5efba6a7d3eee0c0ed7fbf32d736591c) ([attitude_quaternion_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a86295814a8130e61b0daea84cd8a325d) callback) | Subscribe to attitude updates in quaternion (asynchronous). +void | [attitude_euler_angle_async](#classdronecore_1_1_telemetry_1a4db3470f055b7a76485ec27eebee8c59) ([attitude_euler_angle_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a8e907cdfef9c7692b01bf9369e3cccc1) callback) | Subscribe to attitude updates in Euler angles (asynchronous). +void | [camera_attitude_quaternion_async](#classdronecore_1_1_telemetry_1aa1a49c8d37499314f6050dfc4bb145ad) ([attitude_quaternion_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a86295814a8130e61b0daea84cd8a325d) callback) | Subscribe to camera attitude updates in quaternion (asynchronous). +void | [camera_attitude_euler_angle_async](#classdronecore_1_1_telemetry_1a35b0534671564e763621f516e0197449) ([attitude_euler_angle_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a8e907cdfef9c7692b01bf9369e3cccc1) callback) | Subscribe to camera attitude updates in Euler angles (asynchronous). +void | [ground_speed_ned_async](#classdronecore_1_1_telemetry_1a954e95659c2890e0277664910fce9c34) ([ground_speed_ned_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1adfa7b9abb80fcb835b6f369e432086eb) callback) | Subscribe to ground speed (NED) updates (asynchronous). +void | [gps_info_async](#classdronecore_1_1_telemetry_1afa05293d3d370ef90c5a291a22036a6e) ([gps_info_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a4fee2a4394b618b9425fc2436709dd7c) callback) | Subscribe to GPS information updates (asynchronous). +void | [battery_async](#classdronecore_1_1_telemetry_1a58bf2de73fbd609460398157dc8ffdd5) ([battery_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1addeb9f37391d82c73ceada70a654952e) callback) | Subscribe to battery status updates (asynchronous). +void | [flight_mode_async](#classdronecore_1_1_telemetry_1ac8842dec06db4bd54c8c2ba2deb0d34a) ([flight_mode_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a71d15a014fb64cf25033bf8d2917bfb2) callback) | Subscribe to flight mode updates (asynchronous). +void | [health_async](#classdronecore_1_1_telemetry_1a69675f46ba188d07d2e7edc110fbd2e9) ([health_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a49377fd508ff337929dd930b769bb033) callback) | Subscribe to health status updates (asynchronous). +void | [health_all_ok_async](#classdronecore_1_1_telemetry_1a83b384cd04b2ed17db805cfad8bafab5) ([health_all_ok_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a9d1d2b101bf57ebc838b4280641d1334) callback) | Subscribe to overall health status updates (asynchronous). +void | [rc_status_async](#classdronecore_1_1_telemetry_1a8f49537ae4c176a3e952247d60e82cd9) ([rc_status_callback_t](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a7bbe1360883d5d1f124096e94576e4c3) callback) | Subscribe to RC status updates (asynchronous). +const [Telemetry](classdronecore_1_1_telemetry.md) & | [operator=](#classdronecore_1_1_telemetry_1a9f46a41e835ab0beed894e49ab61515f) (const [Telemetry](classdronecore_1_1_telemetry.md) &)=delete | Equality operator (object is not copyable). ## Static Public Member Functions Type | Name | Description ---: | --- | --- -std::string | [flight_mode_str](#classdronecore_1_1_telemetry_1a84a33ee3ce1a95a97dd66c66d821b512) (FlightMode flight_mode) | Get a human readable English string for a flight mode. -const char * | [result_str](#classdronecore_1_1_telemetry_1a05c6355b7f8743250b2a7a611ea5fb4a) (Result result) | Get human-readable English string for [Telemetry::Result](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a5bfab85edb7c160e156133a9643964bc). +std::string | [flight_mode_str](#classdronecore_1_1_telemetry_1a84a33ee3ce1a95a97dd66c66d821b512) ([FlightMode](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a881d44b3a1522ea14bff8834edd4145a) flight_mode) | Get a human readable English string for a flight mode. +const char * | [result_str](#classdronecore_1_1_telemetry_1a05c6355b7f8743250b2a7a611ea5fb4a) ([Result](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a5bfab85edb7c160e156133a9643964bc) result) | Get human-readable English string for [Telemetry::Result](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a5bfab85edb7c160e156133a9643964bc). ## Constructor & Destructor Documentation diff --git a/en/api_reference/namespacedronecore.md b/en/api_reference/namespacedronecore.md new file mode 100644 index 0000000..fbb49ec --- /dev/null +++ b/en/api_reference/namespacedronecore.md @@ -0,0 +1,87 @@ +# dronecore Namespace Reference + +---- + +Namespace for all dronecore types. + + +## Data Structures + +* [dronecore::Action](classdronecore_1_1_action.md) +* [dronecore::Device](classdronecore_1_1_device.md) +* [dronecore::DroneCore](classdronecore_1_1_drone_core.md) +* [dronecore::FollowMe](classdronecore_1_1_follow_me.md) +* [dronecore::Gimbal](classdronecore_1_1_gimbal.md) +* [dronecore::Info](classdronecore_1_1_info.md) +* [dronecore::Logging](classdronecore_1_1_logging.md) +* [dronecore::Mission](classdronecore_1_1_mission.md) +* [dronecore::MissionItem](classdronecore_1_1_mission_item.md) +* [dronecore::Offboard](classdronecore_1_1_offboard.md) +* [dronecore::PluginBase](classdronecore_1_1_plugin_base.md) +* [dronecore::Telemetry](classdronecore_1_1_telemetry.md) + +## Enumerations + +Type | Description +--- | --- +enum [ConnectionResult](#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) | Result type returned when adding a connection. + +## Functions + +Type | Name | Description +--- | --- | --- +const char * | [connection_result_str](#namespacedronecore_1a71899c532d8bedfa9654160fc175cce8) (const [ConnectionResult](namespacedronecore.md#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) result) | Returns a human-readable English string for a ConnectionResult. + +## Enumeration Type Documentation + + +### enum ConnectionResult {#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc} + +``` +#include: connection_result.h +``` + + +Result type returned when adding a connection. + +**Note**: [DroneCore](classdronecore_1_1_drone_core.md) does not throw exceptions. Instead a result of this type will be returned when you add a connection: add_udp_connection(). + +Value | Description +--- | --- + `SUCCESS` | Connection succeeded. + `TIMEOUT` | Connection timed out. + `SOCKET_ERROR` | Socket error. + `BIND_ERROR` | Bind error. + `SOCKET_CONNECTION_ERROR` | Socket connection error. + `CONNECTION_ERROR` | Connection error. + `NOT_IMPLEMENTED` | Connection type not implemented. + `DEVICE_NOT_CONNECTED` | No device is connected. + `DEVICE_BUSY` | Device is busy. + `COMMAND_DENIED` | Command is denied. + `DESTINATION_IP_UNKNOWN` | Connection IP is unknown. + `CONNECTIONS_EXHAUSTED` | Connections exhausted. + `CONNECTION_URL_INVALID` | URL invalid. + +## Function Documentation + + +### connection_result_str() {#namespacedronecore_1a71899c532d8bedfa9654160fc175cce8} + +``` +#include: connection_result.h +``` +```cpp +const char* dronecore::connection_result_str(const ConnectionResult result) +``` + + +Returns a human-readable English string for a ConnectionResult. + + +**Parameters** + +* const [ConnectionResult](namespacedronecore.md#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) **result** - The enum value for which a human readable string is required. + +**Returns** + + const char * - Human readable string for the ConnectionResult. \ No newline at end of file diff --git a/en/api_reference/structdronecore_1_1_follow_me_1_1_config.md b/en/api_reference/structdronecore_1_1_follow_me_1_1_config.md index 753c442..00f651f 100644 --- a/en/api_reference/structdronecore_1_1_follow_me_1_1_config.md +++ b/en/api_reference/structdronecore_1_1_follow_me_1_1_config.md @@ -50,7 +50,7 @@ static constexpr const float [MAX_RESPONSIVENESS](#structdronecore_1_1_follow_me Type | Name | Description ---: | --- | --- -std::string | [to_str](#structdronecore_1_1_follow_me_1_1_config_1a025a841e75b66541ef029d8f837886ad) (FollowDirection direction) | Human-readable string for enum [FollowDirection](structdronecore_1_1_follow_me_1_1_config.md#structdronecore_1_1_follow_me_1_1_config_1a048f9f74309c17027c37eadc4dcb2c1a). +std::string | [to_str](#structdronecore_1_1_follow_me_1_1_config_1a025a841e75b66541ef029d8f837886ad) ([FollowDirection](structdronecore_1_1_follow_me_1_1_config.md#structdronecore_1_1_follow_me_1_1_config_1a048f9f74309c17027c37eadc4dcb2c1a) direction) | Human-readable string for enum [FollowDirection](structdronecore_1_1_follow_me_1_1_config.md#structdronecore_1_1_follow_me_1_1_config_1a048f9f74309c17027c37eadc4dcb2c1a). ## Member Enumeration Documentation @@ -100,7 +100,7 @@ Human-readable string for enum [FollowDirection](structdronecore_1_1_follow_me_1 ### MIN_HEIGHT_M {#structdronecore_1_1_follow_me_1_1_config_1a4bc3dee9ca74031a3ac1a8dea2df12d4} ```cpp -constexpr const float dronecore::FollowMe::Config::MIN_HEIGHT_M +constexpr const float dronecore::FollowMe::Config::MIN_HEIGHT_M = 8.0f ``` @@ -110,7 +110,7 @@ Min follow height, in meters. ### MIN_FOLLOW_DIST_M {#structdronecore_1_1_follow_me_1_1_config_1a92f039f840aa3adad740fe048697ce9f} ```cpp -constexpr const float dronecore::FollowMe::Config::MIN_FOLLOW_DIST_M +constexpr const float dronecore::FollowMe::Config::MIN_FOLLOW_DIST_M = 1.0f ``` @@ -120,7 +120,7 @@ Min follow distance, in meters. ### MIN_RESPONSIVENESS {#structdronecore_1_1_follow_me_1_1_config_1ac73d36213f4ac6505ec2d44ad4fd2b4e} ```cpp -constexpr const float dronecore::FollowMe::Config::MIN_RESPONSIVENESS +constexpr const float dronecore::FollowMe::Config::MIN_RESPONSIVENESS = 0.f ``` @@ -130,7 +130,7 @@ Min responsiveness. ### MAX_RESPONSIVENESS {#structdronecore_1_1_follow_me_1_1_config_1afcdf2d6e55dd9da59a05fb5dbcbeab49} ```cpp -constexpr const float dronecore::FollowMe::Config::MAX_RESPONSIVENESS +constexpr const float dronecore::FollowMe::Config::MAX_RESPONSIVENESS = 1.0f ``` @@ -140,7 +140,7 @@ Max responsiveness. ### min_height_m {#structdronecore_1_1_follow_me_1_1_config_1a62c100d4dc35e3731f3b5d62fb5baad9} ```cpp -float dronecore::FollowMe::Config::min_height_m +float dronecore::FollowMe::Config::min_height_m = 8.0f ``` @@ -150,7 +150,7 @@ Min follow height, in meters. ### follow_distance_m {#structdronecore_1_1_follow_me_1_1_config_1a933c0af8cf3df4bca0a34176f09c4fb8} ```cpp -float dronecore::FollowMe::Config::follow_distance_m +float dronecore::FollowMe::Config::follow_distance_m = 8.0f ``` @@ -160,7 +160,7 @@ Horizontal follow distance to target, in meters. ### follow_direction {#structdronecore_1_1_follow_me_1_1_config_1a920f7acca4b5e717c9ead1bb89f9d538} ```cpp -FollowDirection dronecore::FollowMe::Config::follow_direction= FollowDirection::BEHIND +FollowDirection dronecore::FollowMe::Config::follow_direction = FollowDirection::BEHIND ``` @@ -170,7 +170,7 @@ Relative position of the following vehicle. ### responsiveness {#structdronecore_1_1_follow_me_1_1_config_1a836c1179788d24861642bb45b28dc7fe} ```cpp -float dronecore::FollowMe::Config::responsiveness +float dronecore::FollowMe::Config::responsiveness = 0.5f ``` From 96e5d95721161b5ac8dcc814ca0e9c6037585403 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 1 Mar 2018 15:54:37 +1100 Subject: [PATCH 094/107] Fix up examples to use correct ConnectionResult --- en/examples/fly_mission.md | 10 ++++---- en/examples/fly_mission_qgc_plan.md | 11 +++++---- en/examples/follow_me.md | 10 ++++---- en/examples/offboard_velocity.md | 8 +++---- en/examples/takeoff_and_land.md | 29 +++++++++++++++++++---- en/examples/transition_vtol_fixed_wing.md | 8 +++---- 6 files changed, 48 insertions(+), 28 deletions(-) diff --git a/en/examples/fly_mission.md b/en/examples/fly_mission.md index b4e8358..37203ed 100644 --- a/en/examples/fly_mission.md +++ b/en/examples/fly_mission.md @@ -176,7 +176,7 @@ inline void handle_action_err_exit(Action::Result result, const std::string &mes // Handles Mission's result inline void handle_mission_err_exit(Mission::Result result, const std::string &message); // Handles Connection result -inline void handle_connection_err_exit(DroneCore::ConnectionResult result, +inline void handle_connection_err_exit(ConnectionResult result, const std::string &message); static std::shared_ptr make_mission_item(double latitude_deg, @@ -202,7 +202,7 @@ int main(int /*argc*/, char ** /*argv*/) prom->set_value(); }); - DroneCore::ConnectionResult connection_result = dc.add_udp_connection(); + ConnectionResult connection_result = dc.add_udp_connection(); handle_connection_err_exit(connection_result, "Connection failed: "); future_result.get(); @@ -431,12 +431,12 @@ inline void handle_mission_err_exit(Mission::Result result, const std::string &m } // Handles connection result -inline void handle_connection_err_exit(DroneCore::ConnectionResult result, +inline void handle_connection_err_exit(ConnectionResult result, const std::string &message) { - if (result != DroneCore::ConnectionResult::SUCCESS) { + if (result != ConnectionResult::SUCCESS) { std::cerr << ERROR_CONSOLE_TEXT << message - << DroneCore::connection_result_str(result) + << connection_result_str(result) << NORMAL_CONSOLE_TEXT << std::endl; exit(EXIT_FAILURE); } diff --git a/en/examples/fly_mission_qgc_plan.md b/en/examples/fly_mission_qgc_plan.md index 5cb12c8..dc5e294 100644 --- a/en/examples/fly_mission_qgc_plan.md +++ b/en/examples/fly_mission_qgc_plan.md @@ -148,6 +148,7 @@ target_link_libraries(fly_qgc_mission * Steps to run this example: * 1. (a) Create a Mission in QGroundControl and save them to a file (.plan) (OR) * (b) Use a pre-created sample mission plan in "plugins/mission/qgroundcontrol_sample.plan". +* Click [here](https://user-images.githubusercontent.com/26615772/31763673-972c5bb6-b4dc-11e7-8ff0-f8b39b6b88c3.png) to see what sample mission plan in QGroundControl looks like. * 2. Run the example by passing path of the QGC mission plan as argument (By default, sample mission plan is imported). * * Example description: @@ -183,7 +184,7 @@ inline void handle_action_err_exit(Action::Result result, const std::string &mes // Handles Mission's result inline void handle_mission_err_exit(Mission::Result result, const std::string &message); // Handles Connection result -inline void handle_connection_err_exit(DroneCore::ConnectionResult result, +inline void handle_connection_err_exit(ConnectionResult result, const std::string &message); int main(int argc, char **argv) @@ -211,7 +212,7 @@ int main(int argc, char **argv) prom->set_value(); }); - DroneCore::ConnectionResult connection_result = dc.add_udp_connection(); + ConnectionResult connection_result = dc.add_udp_connection(); handle_connection_err_exit(connection_result, "Connection failed: "); future_result.get(); @@ -330,12 +331,12 @@ inline void handle_mission_err_exit(Mission::Result result, const std::string &m } // Handles connection result -inline void handle_connection_err_exit(DroneCore::ConnectionResult result, +inline void handle_connection_err_exit(ConnectionResult result, const std::string &message) { - if (result != DroneCore::ConnectionResult::SUCCESS) { + if (result != ConnectionResult::SUCCESS) { std::cerr << ERROR_CONSOLE_TEXT << message - << DroneCore::connection_result_str(result) + << connection_result_str(result) << NORMAL_CONSOLE_TEXT << std::endl; exit(EXIT_FAILURE); } diff --git a/en/examples/follow_me.md b/en/examples/follow_me.md index e47de0c..0d758fd 100644 --- a/en/examples/follow_me.md +++ b/en/examples/follow_me.md @@ -147,13 +147,13 @@ using namespace std::this_thread; // for sleep_for() inline void action_error_exit(Action::Result result, const std::string &message); inline void follow_me_error_exit(FollowMe::Result result, const std::string &message); -inline void connection_error_exit(DroneCore::ConnectionResult result, const std::string &message); +inline void connection_error_exit(ConnectionResult result, const std::string &message); int main(int, char **) { DroneCore dc; - DroneCore::ConnectionResult conn_result = dc.add_udp_connection(); + ConnectionResult conn_result = dc.add_udp_connection(); connection_error_exit(conn_result, "Connection failed"); // Wait for the device to connect via heartbeat @@ -249,11 +249,11 @@ inline void follow_me_error_exit(FollowMe::Result result, const std::string &mes } } // Handles connection result -inline void connection_error_exit(DroneCore::ConnectionResult result, const std::string &message) +inline void connection_error_exit(ConnectionResult result, const std::string &message) { - if (result != DroneCore::ConnectionResult::SUCCESS) { + if (result != ConnectionResult::SUCCESS) { std::cerr << ERROR_CONSOLE_TEXT << message - << DroneCore::connection_result_str(result) + << connection_result_str(result) << NORMAL_CONSOLE_TEXT << std::endl; exit(EXIT_FAILURE); } diff --git a/en/examples/offboard_velocity.md b/en/examples/offboard_velocity.md index d59392b..daaeac9 100644 --- a/en/examples/offboard_velocity.md +++ b/en/examples/offboard_velocity.md @@ -138,11 +138,11 @@ inline void offboard_error_exit(Offboard::Result result, const std::string &mess } // Handles connection result -inline void connection_error_exit(DroneCore::ConnectionResult result, const std::string &message) +inline void connection_error_exit(ConnectionResult result, const std::string &message) { - if (result != DroneCore::ConnectionResult::SUCCESS) { + if (result != ConnectionResult::SUCCESS) { std::cerr << ERROR_CONSOLE_TEXT << message - << DroneCore::connection_result_str(result) + << connection_result_str(result) << NORMAL_CONSOLE_TEXT << std::endl; exit(EXIT_FAILURE); } @@ -263,7 +263,7 @@ int main(int, char **) { DroneCore dc; - DroneCore::ConnectionResult conn_result = dc.add_udp_connection(); + ConnectionResult conn_result = dc.add_udp_connection(); connection_error_exit(conn_result, "Connection failed"); // Wait for the device to connect via heartbeat diff --git a/en/examples/takeoff_and_land.md b/en/examples/takeoff_and_land.md index fdc06fb..7a5c525 100644 --- a/en/examples/takeoff_and_land.md +++ b/en/examples/takeoff_and_land.md @@ -98,17 +98,26 @@ using namespace dronecore; #define TELEMETRY_CONSOLE_TEXT "\033[34m" //Turn text on console blue #define NORMAL_CONSOLE_TEXT "\033[0m" //Restore normal console colour -int main(int /*argc*/, char ** /*argv*/) +void usage(std::string arg); + +int main(int argc, char **argv) { DroneCore dc; + std::string connection_url; + ConnectionResult connection_result; bool discovered_device = false; + if (argc == 1) { + usage(argv[0]); + connection_result = dc.add_any_connection(); + } else { + connection_url = argv[1]; + connection_result = dc.add_any_connection(connection_url); + } - DroneCore::ConnectionResult connection_result = dc.add_udp_connection(); - - if (connection_result != DroneCore::ConnectionResult::SUCCESS) { + if (connection_result != ConnectionResult::SUCCESS) { std::cout << ERROR_CONSOLE_TEXT << "Connection failed: " - << DroneCore::connection_result_str(connection_result) + << connection_result_str(connection_result) << NORMAL_CONSOLE_TEXT << std::endl; return 1; } @@ -194,4 +203,14 @@ int main(int /*argc*/, char ** /*argv*/) std::cout << "Finished..." << std::endl; return 0; } + +void usage(std::string arg) +{ + std::cout << NORMAL_CONSOLE_TEXT << "Usage : " << arg << " [connection_url]" << std::endl + << "Connection URL format should be :" << std::endl + << " For TCP : tcp://[server_host][:server_port]" << std::endl + << " For UDP : udp://[bind_host][:bind_port]" << std::endl + << " For Serial : serial:///path/to/serial/dev[:baudrate]" << std::endl; + std::cout << "Default connection URL is udp://:14540" << std::endl; +} ``` diff --git a/en/examples/transition_vtol_fixed_wing.md b/en/examples/transition_vtol_fixed_wing.md index 42c3d29..b5f8227 100644 --- a/en/examples/transition_vtol_fixed_wing.md +++ b/en/examples/transition_vtol_fixed_wing.md @@ -97,7 +97,7 @@ target_link_libraries(transition_vtol_fixed_wing ) ``` -[fly_mission.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/example/transition_vtol_fixed_wing/transition_vtol_fixed_wing.cpp) +[transition_vtol_fixed_wing.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/example/transition_vtol_fixed_wing/transition_vtol_fixed_wing.cpp) ```cpp @@ -123,11 +123,11 @@ int main(int /*argc*/, char ** /*argv*/) bool discovered_device = false; - DroneCore::ConnectionResult connection_result = dc.add_udp_connection(); + ConnectionResult connection_result = dc.add_udp_connection(); - if (connection_result != DroneCore::ConnectionResult::SUCCESS) { + if (connection_result != ConnectionResult::SUCCESS) { std::cout << ERROR_CONSOLE_TEXT << "Connection failed: " - << DroneCore::connection_result_str(connection_result) + << connection_result_str(connection_result) << NORMAL_CONSOLE_TEXT << std::endl; return 1; } From 3125e8a41dd9f1260ce399b98a9789c8995b8898 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 1 Mar 2018 16:12:42 +1100 Subject: [PATCH 095/107] Fix up guide to use global ConnectionResult and connection_result_str() --- en/contributing/plugins.md | 21 +++++++++++---------- en/guide/connections.md | 12 ++++++------ en/guide/follow_me.md | 2 +- en/guide/general_usage.md | 2 +- en/guide/missions.md | 2 +- en/guide/offboard.md | 2 +- en/guide/taking_off_landing.md | 2 +- en/guide/telemetry.md | 2 +- 8 files changed, 23 insertions(+), 22 deletions(-) diff --git a/en/contributing/plugins.md b/en/contributing/plugins.md index c9b9bdd..7675027 100644 --- a/en/contributing/plugins.md +++ b/en/contributing/plugins.md @@ -189,7 +189,7 @@ DroneCore provides the `integration_tests_runner` application for running the in some helper code to make it easier to log tests and run them against the simulator. > **Tip** Check out the [Google Test Primer](https://github.com/google/googletest/blob/master/googletest/docs/Primer.md) -> and the [integration_tests](https://github.com/dronecore/DroneCore/tree/develop/integration_tests) +> and the [integration_tests](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/integration_tests) > for our existing plugins to better understand how to write your own! @@ -237,39 +237,40 @@ add_executable(external_example_integration_tests_runner #### Integration Test Files/Code -The main DroneCore-specific functionality is provided by [integration_test_helper.h](https://github.com/dronecore/DroneCore/blob/master/core/integration_test_helper.h). +The main DroneCore-specific functionality is provided by [integration_test_helper.h](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/core/integration_test_helper.h). This provides access to the [Plugin/Test Logger](../contributing/dev_logging.md) and a shared test class `SitlTest` for setting up and tearing down the PX4 simulator. > **Note** All tests must be declared using `TEST_F` and have a first argument `SitlTest` as shown. This is required > in order to use the shared class to set up and tear down the simulator between tests. -The example integration test [hello_world.cpp](https://github.com/dronecore/DroneCore/blob/master/external_example/integration_tests/hello_world.cpp) demonstrates this below. +The example integration test [hello_world.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/external_example/integration_tests/hello_world.cpp) demonstrates this below. ```cpp #include #include #include "dronecore.h" +#include "plugins/example/example.h" #include "integration_test_helper.h" using namespace dronecore; -TEST_F(SitlTest, ExternalExampleHello) +TEST_F(SitlTest, ExampleHello) { DroneCore dc; - DroneCore::ConnectionResult ret = dc.add_udp_connection(); - ASSERT_EQ(ret, DroneCore::ConnectionResult::SUCCESS); + ConnectionResult ret = dc.add_udp_connection(); + ASSERT_EQ(ret, ConnectionResult::SUCCESS); // Wait for device to connect via heartbeat. std::this_thread::sleep_for(std::chrono::seconds(2)); + ASSERT_TRUE(dc.is_connected()); - // One vehicle should have connected. - std::vector uuids = dc.device_uuids(); - EXPECT_EQ(uuids.size(), 1); + Device &device = dc.device(); + auto example = std::make_shared(&device); // Apparently it can say hello. - dc.device().example().say_hello(); + example->say_hello(); } ``` diff --git a/en/guide/connections.md b/en/guide/connections.md index fe9b236..0bcd3ca 100644 --- a/en/guide/connections.md +++ b/en/guide/connections.md @@ -6,7 +6,7 @@ In order to detect vehicles you must first specify the communication ports that ## Monitoring a Port -Specify the port(s) to watch using one of the (synchronous) connection methods: [add_any_connection()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a384ae5189b047dd3df8d7e90c42fa021), [add_udp_connection()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a7a04fbacf95eb6b21418032c8287dfbb), [add_tcp_connection()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a725640cb53c0d077e753ea2d22717b68) or [add_serial_connection()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1abde7ed4d42875dc85c73d34fedab2902). All the methods are used similarly, and return immediately with a [DroneCore::ConnectionResult](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7) indicating whether they succeeded. +Specify the port(s) to watch using one of the (synchronous) connection methods: [add_any_connection()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a384ae5189b047dd3df8d7e90c42fa021), [add_udp_connection()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a7a04fbacf95eb6b21418032c8287dfbb), [add_tcp_connection()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a725640cb53c0d077e753ea2d22717b68) or [add_serial_connection()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1abde7ed4d42875dc85c73d34fedab2902). All the methods are used similarly, and return immediately with a [ConnectionResult](../api_reference/namespacedronecore.md#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) indicating whether they succeeded. The [add_any_connection()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a384ae5189b047dd3df8d7e90c42fa021) method can be used to set up monitoring for any of the supported port types (while the other methods set up specific connection types). The connection details are specified using the string formats shown below: @@ -20,17 +20,17 @@ The code snippet below shows how to set up monitoring with `add_any_connection() ```cpp DroneCore dc; -DroneCore::ConnectionResult connection_result = dc.add_any_connection(); -ASSERT_EQ(connection_result,DroneCore::ConnectionResult::SUCCESS) +ConnectionResult connection_result = dc.add_any_connection(); +ASSERT_EQ(connection_result,ConnectionResult::SUCCESS) ``` > **Note** The default connection is to the [standard PX4 broadcast UDP port](https://dev.px4.io/en/simulation/#default-px4-mavlink-udp-ports) for off-board APIs (14540). This is the normal/most common way for offboard APIs to connect to PX4 over WiFi. -DroneCore also provides the [DroneCore::connection_result_str()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a84c40dcefcafe888c38a5ed8dd93b0af) method, which you can use to create a human-readable string for the [DroneCore::ConnectionResult](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a9bdf4a0267d4851342617bdbcbbeead7). The code fragment below shows how you might print this string to the console: +DroneCore also provides the [connection_result_str()](../api_reference/namespacedronecore.md#namespacedronecore_1a71899c532d8bedfa9654160fc175cce8) method, which you can use to create a human-readable string for the [ConnectionResult](../api_reference/namespacedronecore.md#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc). The code fragment below shows how you might print this string to the console: ```cpp DroneCore dc; -DroneCore::ConnectionResult connection_result = dc.add_udp_connection(); -std::cout << "Connection string: " << DroneCore::connection_result_str(connection_result) << std::endl; +ConnectionResult connection_result = dc.add_udp_connection(); +std::cout << "Connection string: " << connection_result_str(connection_result) << std::endl; ``` diff --git a/en/guide/follow_me.md b/en/guide/follow_me.md index 5d21496..96cee1e 100644 --- a/en/guide/follow_me.md +++ b/en/guide/follow_me.md @@ -29,7 +29,7 @@ The main steps are: ``` #include DroneCore dc; - DroneCore::ConnectionResult conn_result = dc.add_udp_connection(); + ConnectionResult conn_result = dc.add_udp_connection(); // Wait for the device to connect via heartbeat while (!dc.is_connected()) { sleep_for(seconds(1)); diff --git a/en/guide/general_usage.md b/en/guide/general_usage.md index 67cce49..bc8babf 100644 --- a/en/guide/general_usage.md +++ b/en/guide/general_usage.md @@ -19,7 +19,7 @@ DroneCore APIs do not raise exceptions! Instead, methods that can fail return su > **Tip** The error code usually reflects acknowledgment from the vehicle that it will perform the requested action (or not). The operation itself may not yet have completed (e.g. taking off). -The various classes also all provide methods getting human readable strings from their associated enum (e.g. [DroneCore::connection_result_str()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a84c40dcefcafe888c38a5ed8dd93b0af), [Telemetry::result_str()](../api_reference/classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a05c6355b7f8743250b2a7a611ea5fb4a)). You can see how these are used in the example code. +The various classes also all provide methods getting human readable strings from their associated enum (e.g. [connection_result_str()](../api_reference/namespacedronecore.md#namespacedronecore_1a71899c532d8bedfa9654160fc175cce8), [Telemetry::result_str()](../api_reference/classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a05c6355b7f8743250b2a7a611ea5fb4a)). You can see how these are used in the example code. ## Shared Vehicle Control diff --git a/en/guide/missions.md b/en/guide/missions.md index 4768544..20a23bb 100644 --- a/en/guide/missions.md +++ b/en/guide/missions.md @@ -47,7 +47,7 @@ The main steps are: ``` #include DroneCore dc; - DroneCore::ConnectionResult conn_result = dc.add_udp_connection(); + ConnectionResult conn_result = dc.add_udp_connection(); // Wait for the device to connect via heartbeat while (!dc.is_connected()) { sleep_for(seconds(1)); diff --git a/en/guide/offboard.md b/en/guide/offboard.md index aa564a9..93be126 100644 --- a/en/guide/offboard.md +++ b/en/guide/offboard.md @@ -28,7 +28,7 @@ The main steps are: ``` #include DroneCore dc; - DroneCore::ConnectionResult conn_result = dc.add_udp_connection(); + ConnectionResult conn_result = dc.add_udp_connection(); // Wait for the device to connect via heartbeat while (!dc.is_connected()) { sleep_for(seconds(1)); diff --git a/en/guide/taking_off_landing.md b/en/guide/taking_off_landing.md index 6fbcf6a..4072fbd 100644 --- a/en/guide/taking_off_landing.md +++ b/en/guide/taking_off_landing.md @@ -28,7 +28,7 @@ The main steps are: ``` #include DroneCore dc; - DroneCore::ConnectionResult conn_result = dc.add_udp_connection(); + ConnectionResult conn_result = dc.add_udp_connection(); // Wait for the device to connect via heartbeat while (!dc.is_connected()) { sleep_for(seconds(1)); diff --git a/en/guide/telemetry.md b/en/guide/telemetry.md index 5715415..414e548 100644 --- a/en/guide/telemetry.md +++ b/en/guide/telemetry.md @@ -44,7 +44,7 @@ The main steps are: ``` #include DroneCore dc; - DroneCore::ConnectionResult conn_result = dc.add_udp_connection(); + ConnectionResult conn_result = dc.add_udp_connection(); // Wait for the device to connect via heartbeat while (!dc.is_connected()) { sleep_for(seconds(1)); From 4c140db2f5e7a897de8fd61ac28f9700b31f494f Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 1 Mar 2018 22:00:48 +1100 Subject: [PATCH 096/107] Add nbsp as result type for constructors/destructors - fixes tables in github --- en/api_reference/classdronecore_1_1_action.md | 6 +++--- en/api_reference/classdronecore_1_1_device.md | 6 +++--- en/api_reference/classdronecore_1_1_drone_core.md | 4 ++-- en/api_reference/classdronecore_1_1_follow_me.md | 6 +++--- en/api_reference/classdronecore_1_1_gimbal.md | 6 +++--- en/api_reference/classdronecore_1_1_info.md | 6 +++--- en/api_reference/classdronecore_1_1_logging.md | 6 +++--- en/api_reference/classdronecore_1_1_mission.md | 6 +++--- en/api_reference/classdronecore_1_1_mission_item.md | 6 +++--- en/api_reference/classdronecore_1_1_offboard.md | 6 +++--- en/api_reference/classdronecore_1_1_plugin_base.md | 6 +++--- en/api_reference/classdronecore_1_1_telemetry.md | 6 +++--- 12 files changed, 35 insertions(+), 35 deletions(-) diff --git a/en/api_reference/classdronecore_1_1_action.md b/en/api_reference/classdronecore_1_1_action.md index 3b14692..fab528c 100644 --- a/en/api_reference/classdronecore_1_1_action.md +++ b/en/api_reference/classdronecore_1_1_action.md @@ -26,9 +26,9 @@ std::function< void([Result](classdronecore_1_1_action.md#classdronecore_1_1_act Type | Name | Description ---: | --- | --- -| [Action](#classdronecore_1_1_action_1a9fd3af84d59048b3c787ed0c5644ed07) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). -| [~Action](#classdronecore_1_1_action_1a6bb0301fecf66d75ca3b27bda25af7f2) () | Destructor (internal use only). -| [Action](#classdronecore_1_1_action_1ae48b0e06ca2b4b7544a10c7734a03f63) (const [Action](classdronecore_1_1_action.md) &)=delete | Copy constructor (object is not copyable). +  | [Action](#classdronecore_1_1_action_1a9fd3af84d59048b3c787ed0c5644ed07) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [~Action](#classdronecore_1_1_action_1a6bb0301fecf66d75ca3b27bda25af7f2) () | Destructor (internal use only). +  | [Action](#classdronecore_1_1_action_1ae48b0e06ca2b4b7544a10c7734a03f63) (const [Action](classdronecore_1_1_action.md) &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [arm](#classdronecore_1_1_action_1a8b8631ea15655f0c922a9ba7d2e1c72c) () const | Send command to *arm* the drone (synchronous). [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [disarm](#classdronecore_1_1_action_1ad4b0231afcfebc261a720194f893dcd8) () const | Send command to *disarm* the drone (synchronous). [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [kill](#classdronecore_1_1_action_1adc272f46adf4c52fbe7bd091a436b28b) () const | Send command to *kill* the drone (synchronous). diff --git a/en/api_reference/classdronecore_1_1_device.md b/en/api_reference/classdronecore_1_1_device.md index f40547a..30b5b84 100644 --- a/en/api_reference/classdronecore_1_1_device.md +++ b/en/api_reference/classdronecore_1_1_device.md @@ -26,9 +26,9 @@ std::function< void(bool success, int32_t value)> [get_param_int_callback_t](#cl Type | Name | Description ---: | --- | --- -| [Device](#classdronecore_1_1_device_1af07b4defa38736ce928377af2f31fb6e) (DroneCoreImpl * parent, uint8_t target_system_id) | -| [~Device](#classdronecore_1_1_device_1a65c697e12eed30109074e18a9cfdc836) () | -| [Device](#classdronecore_1_1_device_1acf95b02d5d1d705ce3dc1438786e0c91) (const [Device](classdronecore_1_1_device.md) &)=delete | +  | [Device](#classdronecore_1_1_device_1af07b4defa38736ce928377af2f31fb6e) (DroneCoreImpl * parent, uint8_t target_system_id) | +  | [~Device](#classdronecore_1_1_device_1a65c697e12eed30109074e18a9cfdc836) () | +  | [Device](#classdronecore_1_1_device_1acf95b02d5d1d705ce3dc1438786e0c91) (const [Device](classdronecore_1_1_device.md) &)=delete | void | [process_mavlink_message](#classdronecore_1_1_device_1a7324f5f4cc1f7bce40a2e8c237f1212e) (const mavlink_message_t & message) | void | [register_mavlink_message_handler](#classdronecore_1_1_device_1aa7ae3afa910a2043185e319cfaaa4196) (uint16_t msg_id, mavlink_message_handler_t callback, const void * cookie) | void | [unregister_all_mavlink_message_handlers](#classdronecore_1_1_device_1a7fd2014818f2e41cc93b6c31d259f21c) (const void * cookie) | diff --git a/en/api_reference/classdronecore_1_1_drone_core.md b/en/api_reference/classdronecore_1_1_drone_core.md index f7a7369..a919f85 100644 --- a/en/api_reference/classdronecore_1_1_drone_core.md +++ b/en/api_reference/classdronecore_1_1_drone_core.md @@ -25,8 +25,8 @@ std::function< void(uint64_t uuid)> [event_callback_t](#classdronecore_1_1_drone Type | Name | Description ---: | --- | --- -| [DroneCore](#classdronecore_1_1_drone_core_1a0b94dd09cd46faa41742d3720f210aa2) () | Constructor. -| [~DroneCore](#classdronecore_1_1_drone_core_1abbaedb6fd922c023e53611b484b38582) () | Destructor. +  | [DroneCore](#classdronecore_1_1_drone_core_1a0b94dd09cd46faa41742d3720f210aa2) () | Constructor. +  | [~DroneCore](#classdronecore_1_1_drone_core_1abbaedb6fd922c023e53611b484b38582) () | Destructor. [ConnectionResult](namespacedronecore.md#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) | [add_any_connection](#classdronecore_1_1_drone_core_1a384ae5189b047dd3df8d7e90c42fa021) (const std::string & connection_url=DEFAULT_UDP_CONNECTION_URL) | Adds Connection via URL. [ConnectionResult](namespacedronecore.md#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) | [add_udp_connection](#classdronecore_1_1_drone_core_1a7a04fbacf95eb6b21418032c8287dfbb) (int local_port_number=DEFAULT_UDP_PORT) | Adds a UDP connection to the specified port number. [ConnectionResult](namespacedronecore.md#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) | [add_tcp_connection](#classdronecore_1_1_drone_core_1a725640cb53c0d077e753ea2d22717b68) (const std::string & remote_ip=DEFAULT_TCP_REMOTE_IP, int remote_port=DEFAULT_TCP_REMOTE_PORT) | Adds a TCP connection with a specific IP address and port number. diff --git a/en/api_reference/classdronecore_1_1_follow_me.md b/en/api_reference/classdronecore_1_1_follow_me.md index ba641df..e618dd4 100644 --- a/en/api_reference/classdronecore_1_1_follow_me.md +++ b/en/api_reference/classdronecore_1_1_follow_me.md @@ -33,9 +33,9 @@ enum [Result](#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) Type | Name | Description ---: | --- | --- -| [FollowMe](#classdronecore_1_1_follow_me_1a2d3cbcee491efa09392e6333ae77926c) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). -| [~FollowMe](#classdronecore_1_1_follow_me_1a66ffe3c9652bc08a2766f211592316ac) () | Destructor (internal use only). -| [FollowMe](#classdronecore_1_1_follow_me_1a54589c314eeba131aca1c4c56d4b15e3) (const [FollowMe](classdronecore_1_1_follow_me.md) &)=delete | Copy constructor (object is not copyable). +  | [FollowMe](#classdronecore_1_1_follow_me_1a2d3cbcee491efa09392e6333ae77926c) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [~FollowMe](#classdronecore_1_1_follow_me_1a66ffe3c9652bc08a2766f211592316ac) () | Destructor (internal use only). +  | [FollowMe](#classdronecore_1_1_follow_me_1a54589c314eeba131aca1c4c56d4b15e3) (const [FollowMe](classdronecore_1_1_follow_me.md) &)=delete | Copy constructor (object is not copyable). const [Config](structdronecore_1_1_follow_me_1_1_config.md) & | [get_config](#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5) () const | Gets current [FollowMe](classdronecore_1_1_follow_me.md) configuration. [Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) | [set_config](#classdronecore_1_1_follow_me_1aedf746d4a0eebdaaddc3d1ba0aeb6720) (const [Config](structdronecore_1_1_follow_me_1_1_config.md) & config) | Applies [FollowMe](classdronecore_1_1_follow_me.md) configuration by sending it to device. bool | [is_active](#classdronecore_1_1_follow_me_1a467349820ac5f42cc388228c399a93ef) () const | Checks whether [FollowMe](classdronecore_1_1_follow_me.md) is active. diff --git a/en/api_reference/classdronecore_1_1_gimbal.md b/en/api_reference/classdronecore_1_1_gimbal.md index cd3277e..ae5f284 100644 --- a/en/api_reference/classdronecore_1_1_gimbal.md +++ b/en/api_reference/classdronecore_1_1_gimbal.md @@ -23,9 +23,9 @@ std::function< void([Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gim Type | Name | Description ---: | --- | --- -| [Gimbal](#classdronecore_1_1_gimbal_1a2a5ad56ba40eaacc0261f82ed49407e6) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). -| [~Gimbal](#classdronecore_1_1_gimbal_1a4f8b2a6cf5a7347a474f8e47618ad838) () | Destructor (internal use only). -| [Gimbal](#classdronecore_1_1_gimbal_1a82637c62da14ae39db96724d4273cad4) (const [Gimbal](classdronecore_1_1_gimbal.md) &)=delete | Copy constructor (object is not copyable). +  | [Gimbal](#classdronecore_1_1_gimbal_1a2a5ad56ba40eaacc0261f82ed49407e6) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [~Gimbal](#classdronecore_1_1_gimbal_1a4f8b2a6cf5a7347a474f8e47618ad838) () | Destructor (internal use only). +  | [Gimbal](#classdronecore_1_1_gimbal_1a82637c62da14ae39db96724d4273cad4) (const [Gimbal](classdronecore_1_1_gimbal.md) &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a2404686489b502fbc58e940701ba1e6f) | [set_pitch_and_yaw](#classdronecore_1_1_gimbal_1ac8ac49d29f11b2107da6b043bb57b54e) (float pitch_deg, float yaw_deg) | Set gimbal pitch and yaw angles (synchronous). void | [set_pitch_and_yaw_async](#classdronecore_1_1_gimbal_1a3aea07049f32f8bc5b2edaee8cb2ac16) (float pitch_deg, float yaw_deg, [result_callback_t](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a309448760ba62635fce7139be44788ff) callback) | Set gimbal pitch and yaw angles (asynchronous). const [Gimbal](classdronecore_1_1_gimbal.md) & | [operator=](#classdronecore_1_1_gimbal_1ad15551254ea56674c576bbcbec6e7eac) (const [Gimbal](classdronecore_1_1_gimbal.md) &)=delete | Equality operator (object is not copyable). diff --git a/en/api_reference/classdronecore_1_1_info.md b/en/api_reference/classdronecore_1_1_info.md index 52d20bc..4015e7a 100644 --- a/en/api_reference/classdronecore_1_1_info.md +++ b/en/api_reference/classdronecore_1_1_info.md @@ -19,9 +19,9 @@ struct [Version](structdronecore_1_1_info_1_1_version.md) Type | Name | Description ---: | --- | --- -| [Info](#classdronecore_1_1_info_1a10ea70679e1b2d7e43bc9944fbe18aaf) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). -| [~Info](#classdronecore_1_1_info_1a39e608070500b5fca0b4415cdb13f75f) () | Destructor (internal use only). -| [Info](#classdronecore_1_1_info_1af0902805d75577d1195363eda21d7bb1) (const [Info](classdronecore_1_1_info.md) &)=delete | Copy Constructor (object is not copyable). +  | [Info](#classdronecore_1_1_info_1a10ea70679e1b2d7e43bc9944fbe18aaf) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [~Info](#classdronecore_1_1_info_1a39e608070500b5fca0b4415cdb13f75f) () | Destructor (internal use only). +  | [Info](#classdronecore_1_1_info_1af0902805d75577d1195363eda21d7bb1) (const [Info](classdronecore_1_1_info.md) &)=delete | Copy Constructor (object is not copyable). uint64_t | [uuid](#classdronecore_1_1_info_1a49c7dd5f1a369c8296f0c3a2443bc031) () const | Gets the UUID of the device. bool | [is_complete](#classdronecore_1_1_info_1a088438b73c715fb20c02792fed1815f7) () const | Tests if the [Version](structdronecore_1_1_info_1_1_version.md) and [Product](structdronecore_1_1_info_1_1_product.md) objects are fully populated from hardware. [Version](structdronecore_1_1_info_1_1_version.md) | [get_version](#classdronecore_1_1_info_1a6e41fae8c6ad352e70b1e93b4a1589f9) () const | Get device version information. diff --git a/en/api_reference/classdronecore_1_1_logging.md b/en/api_reference/classdronecore_1_1_logging.md index fa5fa1b..827ffd7 100644 --- a/en/api_reference/classdronecore_1_1_logging.md +++ b/en/api_reference/classdronecore_1_1_logging.md @@ -23,9 +23,9 @@ std::function< void([Result](classdronecore_1_1_logging.md#classdronecore_1_1_lo Type | Name | Description ---: | --- | --- -| [Logging](#classdronecore_1_1_logging_1a191a5eaa0d4c23b634585a276a20ba97) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). -| [~Logging](#classdronecore_1_1_logging_1a49e75d77f900ba5ef59a960ae9b8dc55) () | Destructor (internal use only). -| [Logging](#classdronecore_1_1_logging_1a62a17eb90e3ec9253f1b40e94d3c1fd7) (const [Logging](classdronecore_1_1_logging.md) &)=delete | Copy constructor (object is not copyable). +  | [Logging](#classdronecore_1_1_logging_1a191a5eaa0d4c23b634585a276a20ba97) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [~Logging](#classdronecore_1_1_logging_1a49e75d77f900ba5ef59a960ae9b8dc55) () | Destructor (internal use only). +  | [Logging](#classdronecore_1_1_logging_1a62a17eb90e3ec9253f1b40e94d3c1fd7) (const [Logging](classdronecore_1_1_logging.md) &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_logging.md#classdronecore_1_1_logging_1ab11e242369717d9510de1ab93bfad086) | [start_logging](#classdronecore_1_1_logging_1a4684d8226742b575fce423c9ce758fc0) () const | Start logging (synchronous). [Result](classdronecore_1_1_logging.md#classdronecore_1_1_logging_1ab11e242369717d9510de1ab93bfad086) | [stop_logging](#classdronecore_1_1_logging_1a258affbec05c9c2ca229a3e12e5c8a1b) () const | Stop logging (synchronous). void | [start_logging_async](#classdronecore_1_1_logging_1a5ee9b37891aa66fd98f17fbf871c383b) ([result_callback_t](classdronecore_1_1_logging.md#classdronecore_1_1_logging_1a16c5eb728571a59a552ca6706166b427) callback) | Start logging (asynchronous). diff --git a/en/api_reference/classdronecore_1_1_mission.md b/en/api_reference/classdronecore_1_1_mission.md index 22e6327..7f7dd0d 100644 --- a/en/api_reference/classdronecore_1_1_mission.md +++ b/en/api_reference/classdronecore_1_1_mission.md @@ -23,9 +23,9 @@ std::function< void(int current, int total)> [progress_callback_t](#classdroneco Type | Name | Description ---: | --- | --- -| [Mission](#classdronecore_1_1_mission_1a3835376b0fbf186ad572dbfad3bcc4e9) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). -| [~Mission](#classdronecore_1_1_mission_1a395b8c121630aa8a5dd3d48f95290659) () | Destructor (internal use only). -| [Mission](#classdronecore_1_1_mission_1a4947f79b7dd71e66bca64e5bbb0b3377) (const [Mission](classdronecore_1_1_mission.md) &)=delete | Copy constructor (object is not copyable). +  | [Mission](#classdronecore_1_1_mission_1a3835376b0fbf186ad572dbfad3bcc4e9) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [~Mission](#classdronecore_1_1_mission_1a395b8c121630aa8a5dd3d48f95290659) () | Destructor (internal use only). +  | [Mission](#classdronecore_1_1_mission_1a4947f79b7dd71e66bca64e5bbb0b3377) (const [Mission](classdronecore_1_1_mission.md) &)=delete | Copy constructor (object is not copyable). void | [upload_mission_async](#classdronecore_1_1_mission_1a414b5b6d0c66af695a725e92003872b5) (const std::vector< std::shared_ptr< [MissionItem](classdronecore_1_1_mission_item.md) >> & mission_items, [result_callback_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a239f8d5853785d6ccf90c8c48b5ccf06) callback) | Uploads a vector of mission items to the device (asynchronous). void | [download_mission_async](#classdronecore_1_1_mission_1a1bd15f508fe7da39b587a8e4d5e59ae2) ([mission_items_and_result_callback_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a7cb36c0356a867e90f3c4c764d424d32) callback) | Downloads a vector of mission items from the device (asynchronous). void | [start_mission_async](#classdronecore_1_1_mission_1a9e032c6b2bc35cf6e7e19e07747fb0d3) ([result_callback_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a239f8d5853785d6ccf90c8c48b5ccf06) callback) | Starts the mission (asynchronous). diff --git a/en/api_reference/classdronecore_1_1_mission_item.md b/en/api_reference/classdronecore_1_1_mission_item.md index df803e1..16d5d55 100644 --- a/en/api_reference/classdronecore_1_1_mission_item.md +++ b/en/api_reference/classdronecore_1_1_mission_item.md @@ -22,9 +22,9 @@ enum [CameraAction](#classdronecore_1_1_mission_item_1a0cdd25121e5ed6930080ac022 Type | Name | Description ---: | --- | --- -| [MissionItem](#classdronecore_1_1_mission_item_1aca4d7fd82ae0f623cd162730140a5a68) () | Constructor (internal use only). -| [~MissionItem](#classdronecore_1_1_mission_item_1abfcfaeb576e969d6da33a4d16013dd9f) () | Destructor (internal use only). -| [MissionItem](#classdronecore_1_1_mission_item_1ac6e6d75b38193db07eaa05b21fc229e2) (const [MissionItem](classdronecore_1_1_mission_item.md) &)=delete | Copy constructor (object is not copyable). +  | [MissionItem](#classdronecore_1_1_mission_item_1aca4d7fd82ae0f623cd162730140a5a68) () | Constructor (internal use only). +  | [~MissionItem](#classdronecore_1_1_mission_item_1abfcfaeb576e969d6da33a4d16013dd9f) () | Destructor (internal use only). +  | [MissionItem](#classdronecore_1_1_mission_item_1ac6e6d75b38193db07eaa05b21fc229e2) (const [MissionItem](classdronecore_1_1_mission_item.md) &)=delete | Copy constructor (object is not copyable). void | [set_position](#classdronecore_1_1_mission_item_1ab5897670c8830fc3514036d6ee99b582) (double latitude_deg, double longitude_deg) | Set the position of a mission item. void | [set_relative_altitude](#classdronecore_1_1_mission_item_1afef21f3028edad2ba2a0e966404fa33a) (float altitude_m) | Set the relative altitude of a mission item. void | [set_fly_through](#classdronecore_1_1_mission_item_1a63d73896635dc0af136a521cd35bf352) (bool fly_through) | Set the fly-through property of a mission item. diff --git a/en/api_reference/classdronecore_1_1_offboard.md b/en/api_reference/classdronecore_1_1_offboard.md index 40fa408..38c1f95 100644 --- a/en/api_reference/classdronecore_1_1_offboard.md +++ b/en/api_reference/classdronecore_1_1_offboard.md @@ -36,9 +36,9 @@ std::function< void([Result](classdronecore_1_1_offboard.md#classdronecore_1_1_o Type | Name | Description ---: | --- | --- -| [Offboard](#classdronecore_1_1_offboard_1a333ac94793dc29ed95158fb2af286fa1) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). -| [~Offboard](#classdronecore_1_1_offboard_1a7cb4eff36c37fed1c6d973aa41b059b8) () | Destructor (internal use only). -| [Offboard](#classdronecore_1_1_offboard_1ac586be55cb24aa0ccd29c97352dd2ee5) (const [Offboard](classdronecore_1_1_offboard.md) &)=delete | Copy constructor (object is not copyable). +  | [Offboard](#classdronecore_1_1_offboard_1a333ac94793dc29ed95158fb2af286fa1) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [~Offboard](#classdronecore_1_1_offboard_1a7cb4eff36c37fed1c6d973aa41b059b8) () | Destructor (internal use only). +  | [Offboard](#classdronecore_1_1_offboard_1ac586be55cb24aa0ccd29c97352dd2ee5) (const [Offboard](classdronecore_1_1_offboard.md) &)=delete | Copy constructor (object is not copyable). [Offboard::Result](classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a0f6e5e9f73289f27dc99abbb3ab572ed) | [start](#classdronecore_1_1_offboard_1a658454f130f7b19d56f23347a448f1b9) () | Start offboard control (synchronous). [Offboard::Result](classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a0f6e5e9f73289f27dc99abbb3ab572ed) | [stop](#classdronecore_1_1_offboard_1ae223c08f1ffc694b26d847cab7738406) () | Stop offboard control (synchronous). void | [start_async](#classdronecore_1_1_offboard_1a5dd9d18eedb0e4a8f1bbbeebf6f99aa8) ([result_callback_t](classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a75eeca649293887ac9d398e6432e431f) callback) | Start offboard control (asynchronous). diff --git a/en/api_reference/classdronecore_1_1_plugin_base.md b/en/api_reference/classdronecore_1_1_plugin_base.md index 7e44c25..e01dd54 100644 --- a/en/api_reference/classdronecore_1_1_plugin_base.md +++ b/en/api_reference/classdronecore_1_1_plugin_base.md @@ -9,9 +9,9 @@ Type | Name | Description ---: | --- | --- -| [PluginBase](#classdronecore_1_1_plugin_base_1ae98dd073e3768f140d5fb938c20c861c) () | -| [~PluginBase](#classdronecore_1_1_plugin_base_1a99a11523b84feb2fc1664eed1d4995f3) ()=default | -| [PluginBase](#classdronecore_1_1_plugin_base_1a9a163fe7dc7cc9b8c65a1ce0e86a6750) (const [PluginBase](classdronecore_1_1_plugin_base.md) &)=delete | +  | [PluginBase](#classdronecore_1_1_plugin_base_1ae98dd073e3768f140d5fb938c20c861c) () | +  | [~PluginBase](#classdronecore_1_1_plugin_base_1a99a11523b84feb2fc1664eed1d4995f3) ()=default | +  | [PluginBase](#classdronecore_1_1_plugin_base_1a9a163fe7dc7cc9b8c65a1ce0e86a6750) (const [PluginBase](classdronecore_1_1_plugin_base.md) &)=delete | const [PluginBase](classdronecore_1_1_plugin_base.md) & | [operator=](#classdronecore_1_1_plugin_base_1a971a2166cd7528fedb4f18209b2ba699) (const [PluginBase](classdronecore_1_1_plugin_base.md) &)=delete | diff --git a/en/api_reference/classdronecore_1_1_telemetry.md b/en/api_reference/classdronecore_1_1_telemetry.md index 75a6d65..fc340b5 100644 --- a/en/api_reference/classdronecore_1_1_telemetry.md +++ b/en/api_reference/classdronecore_1_1_telemetry.md @@ -52,9 +52,9 @@ std::function< void([RCStatus](structdronecore_1_1_telemetry_1_1_r_c_status.md) Type | Name | Description ---: | --- | --- -| [Telemetry](#classdronecore_1_1_telemetry_1ad0cb6dd62c12af390870f8b5cb5bde55) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). -| [~Telemetry](#classdronecore_1_1_telemetry_1ade5f44873d1fd5a5ec63037307920095) () | Destructor (internal use only). -| [Telemetry](#classdronecore_1_1_telemetry_1a91a3319d9040bd89d241be3d8b2e9a5e) (const [Telemetry](classdronecore_1_1_telemetry.md) &)=delete | Copy constructor (object is not copyable). +  | [Telemetry](#classdronecore_1_1_telemetry_1ad0cb6dd62c12af390870f8b5cb5bde55) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [~Telemetry](#classdronecore_1_1_telemetry_1ade5f44873d1fd5a5ec63037307920095) () | Destructor (internal use only). +  | [Telemetry](#classdronecore_1_1_telemetry_1a91a3319d9040bd89d241be3d8b2e9a5e) (const [Telemetry](classdronecore_1_1_telemetry.md) &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a5bfab85edb7c160e156133a9643964bc) | [set_rate_position](#classdronecore_1_1_telemetry_1ae7a6e1313b1508fef7163287aa77a6da) (double rate_hz) | Set rate of position updates (synchronous). [Result](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a5bfab85edb7c160e156133a9643964bc) | [set_rate_home_position](#classdronecore_1_1_telemetry_1a9d89866f6672fbe3b88047e7ba295bf9) (double rate_hz) | Set rate of home position updates (synchronous). [Result](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a5bfab85edb7c160e156133a9643964bc) | [set_rate_in_air](#classdronecore_1_1_telemetry_1aed902b38ff4380a8927340c291e183f5) (double rate_hz) | Set rate of in-air status updates (synchronous). From 1b89d0caa340b2004dddea7ef89bccbd7127c4a5 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 15 Mar 2018 10:27:15 +1100 Subject: [PATCH 097/107] Update apiref for device ref vs pointer --- en/api_reference/classdronecore_1_1_action.md | 12 ++++++------ en/api_reference/classdronecore_1_1_device.md | 8 ++++---- en/api_reference/classdronecore_1_1_follow_me.md | 10 +++++----- en/api_reference/classdronecore_1_1_gimbal.md | 10 +++++----- en/api_reference/classdronecore_1_1_info.md | 10 +++++----- en/api_reference/classdronecore_1_1_logging.md | 10 +++++----- en/api_reference/classdronecore_1_1_mission.md | 10 +++++----- en/api_reference/classdronecore_1_1_offboard.md | 10 +++++----- en/api_reference/classdronecore_1_1_telemetry.md | 10 +++++----- 9 files changed, 45 insertions(+), 45 deletions(-) diff --git a/en/api_reference/classdronecore_1_1_action.md b/en/api_reference/classdronecore_1_1_action.md index fab528c..71cf89d 100644 --- a/en/api_reference/classdronecore_1_1_action.md +++ b/en/api_reference/classdronecore_1_1_action.md @@ -26,7 +26,7 @@ std::function< void([Result](classdronecore_1_1_action.md#classdronecore_1_1_act Type | Name | Description ---: | --- | --- -  | [Action](#classdronecore_1_1_action_1a9fd3af84d59048b3c787ed0c5644ed07) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [Action](#classdronecore_1_1_action_1adcc408d9d18fc70e89086090d951edd0) ([Device](classdronecore_1_1_device.md) & device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md).   | [~Action](#classdronecore_1_1_action_1a6bb0301fecf66d75ca3b27bda25af7f2) () | Destructor (internal use only).   | [Action](#classdronecore_1_1_action_1ae48b0e06ca2b4b7544a10c7734a03f63) (const [Action](classdronecore_1_1_action.md) &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [arm](#classdronecore_1_1_action_1a8b8631ea15655f0c922a9ba7d2e1c72c) () const | Send command to *arm* the drone (synchronous). @@ -62,9 +62,9 @@ const char * | [result_str](#classdronecore_1_1_action_1a1fefb474ee36cb15fe31b42 ## Constructor & Destructor Documentation -### Action() {#classdronecore_1_1_action_1a9fd3af84d59048b3c787ed0c5644ed07} +### Action() {#classdronecore_1_1_action_1adcc408d9d18fc70e89086090d951edd0} ```cpp -dronecore::Action::Action(Device *device) +dronecore::Action::Action(Device &device) ``` @@ -73,12 +73,12 @@ Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_devic The plugin is typically created as shown below: ```cpp -auto action = std::make_shared(&device); +auto action = std::make_shared(device); ``` **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. +* [Device](classdronecore_1_1_device.md) & **device** - The specific device associated with this plugin. ### ~Action() {#classdronecore_1_1_action_1a6bb0301fecf66d75ca3b27bda25af7f2} ```cpp @@ -126,6 +126,7 @@ Possible results returned for commanded actions. Value | Description --- | --- + `UNKNOWN` | Unspecified error. `SUCCESS` | Success. The action command was accepted by the vehicle. `NO_DEVICE` | No device is connected error. `CONNECTION_ERROR` | Connection error. @@ -136,7 +137,6 @@ Value | Description `TIMEOUT` | Timeout waiting for command acknowledgement from vehicle. `VTOL_TRANSITION_SUPPORT_UNKNOWN` | hybrid/VTOL transition refused because VTOL support is unknown. `NO_VTOL_TRANSITION_SUPPORT` | Vehicle does not support hybrid/VTOL transitions. - `UNKNOWN` | Unspecified error. ## Member Function Documentation diff --git a/en/api_reference/classdronecore_1_1_device.md b/en/api_reference/classdronecore_1_1_device.md index 30b5b84..61eb39e 100644 --- a/en/api_reference/classdronecore_1_1_device.md +++ b/en/api_reference/classdronecore_1_1_device.md @@ -26,7 +26,7 @@ std::function< void(bool success, int32_t value)> [get_param_int_callback_t](#cl Type | Name | Description ---: | --- | --- -  | [Device](#classdronecore_1_1_device_1af07b4defa38736ce928377af2f31fb6e) (DroneCoreImpl * parent, uint8_t target_system_id) | +  | [Device](#classdronecore_1_1_device_1a507d542a9a948033f2873dd17156fdc7) (DroneCoreImpl & parent, uint8_t target_system_id) |   | [~Device](#classdronecore_1_1_device_1a65c697e12eed30109074e18a9cfdc836) () |   | [Device](#classdronecore_1_1_device_1acf95b02d5d1d705ce3dc1438786e0c91) (const [Device](classdronecore_1_1_device.md) &)=delete | void | [process_mavlink_message](#classdronecore_1_1_device_1a7324f5f4cc1f7bce40a2e8c237f1212e) (const mavlink_message_t & message) | @@ -81,15 +81,15 @@ uint8_t | [get_own_component_id](#classdronecore_1_1_device_1aa6dc1543b0ae9439a6 ## Constructor & Destructor Documentation -### Device() {#classdronecore_1_1_device_1af07b4defa38736ce928377af2f31fb6e} +### Device() {#classdronecore_1_1_device_1a507d542a9a948033f2873dd17156fdc7} ```cpp -dronecore::Device::Device(DroneCoreImpl *parent, uint8_t target_system_id) +dronecore::Device::Device(DroneCoreImpl &parent, uint8_t target_system_id) ``` **Parameters** -* DroneCoreImpl * **parent** - +* DroneCoreImpl & **parent** - * uint8_t **target_system_id** - ### ~Device() {#classdronecore_1_1_device_1a65c697e12eed30109074e18a9cfdc836} diff --git a/en/api_reference/classdronecore_1_1_follow_me.md b/en/api_reference/classdronecore_1_1_follow_me.md index e618dd4..3d2cc7f 100644 --- a/en/api_reference/classdronecore_1_1_follow_me.md +++ b/en/api_reference/classdronecore_1_1_follow_me.md @@ -33,7 +33,7 @@ enum [Result](#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) Type | Name | Description ---: | --- | --- -  | [FollowMe](#classdronecore_1_1_follow_me_1a2d3cbcee491efa09392e6333ae77926c) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [FollowMe](#classdronecore_1_1_follow_me_1aaaefbf5098c8a1ca69df2a170e700da0) ([Device](classdronecore_1_1_device.md) & device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md).   | [~FollowMe](#classdronecore_1_1_follow_me_1a66ffe3c9652bc08a2766f211592316ac) () | Destructor (internal use only).   | [FollowMe](#classdronecore_1_1_follow_me_1a54589c314eeba131aca1c4c56d4b15e3) (const [FollowMe](classdronecore_1_1_follow_me.md) &)=delete | Copy constructor (object is not copyable). const [Config](structdronecore_1_1_follow_me_1_1_config.md) & | [get_config](#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5) () const | Gets current [FollowMe](classdronecore_1_1_follow_me.md) configuration. @@ -56,9 +56,9 @@ std::string | [result_str](#classdronecore_1_1_follow_me_1a50d848b1c7b00e40343b8 ## Constructor & Destructor Documentation -### FollowMe() {#classdronecore_1_1_follow_me_1a2d3cbcee491efa09392e6333ae77926c} +### FollowMe() {#classdronecore_1_1_follow_me_1aaaefbf5098c8a1ca69df2a170e700da0} ```cpp -dronecore::FollowMe::FollowMe(Device *device) +dronecore::FollowMe::FollowMe(Device &device) ``` @@ -67,12 +67,12 @@ Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_devic The plugin is typically created as shown below: ```cpp -auto follow_me = std::make_shared(&device); +auto follow_me = std::make_shared(device); ``` **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. +* [Device](classdronecore_1_1_device.md) & **device** - The specific device associated with this plugin. ### ~FollowMe() {#classdronecore_1_1_follow_me_1a66ffe3c9652bc08a2766f211592316ac} ```cpp diff --git a/en/api_reference/classdronecore_1_1_gimbal.md b/en/api_reference/classdronecore_1_1_gimbal.md index ae5f284..6ab2535 100644 --- a/en/api_reference/classdronecore_1_1_gimbal.md +++ b/en/api_reference/classdronecore_1_1_gimbal.md @@ -23,7 +23,7 @@ std::function< void([Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gim Type | Name | Description ---: | --- | --- -  | [Gimbal](#classdronecore_1_1_gimbal_1a2a5ad56ba40eaacc0261f82ed49407e6) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [Gimbal](#classdronecore_1_1_gimbal_1a492027a19998e9c37eff4e29864a96c9) ([Device](classdronecore_1_1_device.md) & device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md).   | [~Gimbal](#classdronecore_1_1_gimbal_1a4f8b2a6cf5a7347a474f8e47618ad838) () | Destructor (internal use only).   | [Gimbal](#classdronecore_1_1_gimbal_1a82637c62da14ae39db96724d4273cad4) (const [Gimbal](classdronecore_1_1_gimbal.md) &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a2404686489b502fbc58e940701ba1e6f) | [set_pitch_and_yaw](#classdronecore_1_1_gimbal_1ac8ac49d29f11b2107da6b043bb57b54e) (float pitch_deg, float yaw_deg) | Set gimbal pitch and yaw angles (synchronous). @@ -41,9 +41,9 @@ const char * | [result_str](#classdronecore_1_1_gimbal_1ad60c5378cc7d160be67432f ## Constructor & Destructor Documentation -### Gimbal() {#classdronecore_1_1_gimbal_1a2a5ad56ba40eaacc0261f82ed49407e6} +### Gimbal() {#classdronecore_1_1_gimbal_1a492027a19998e9c37eff4e29864a96c9} ```cpp -dronecore::Gimbal::Gimbal(Device *device) +dronecore::Gimbal::Gimbal(Device &device) ``` @@ -52,12 +52,12 @@ Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_devic The plugin is typically created as shown below: ```cpp -auto gimbal = std::make_shared(&device); +auto gimbal = std::make_shared(device); ``` **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. +* [Device](classdronecore_1_1_device.md) & **device** - The specific device associated with this plugin. ### ~Gimbal() {#classdronecore_1_1_gimbal_1a4f8b2a6cf5a7347a474f8e47618ad838} ```cpp diff --git a/en/api_reference/classdronecore_1_1_info.md b/en/api_reference/classdronecore_1_1_info.md index 4015e7a..9c51fbe 100644 --- a/en/api_reference/classdronecore_1_1_info.md +++ b/en/api_reference/classdronecore_1_1_info.md @@ -19,7 +19,7 @@ struct [Version](structdronecore_1_1_info_1_1_version.md) Type | Name | Description ---: | --- | --- -  | [Info](#classdronecore_1_1_info_1a10ea70679e1b2d7e43bc9944fbe18aaf) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [Info](#classdronecore_1_1_info_1a6254a480305e5979c3aaa51b9378b98d) ([Device](classdronecore_1_1_device.md) & device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md).   | [~Info](#classdronecore_1_1_info_1a39e608070500b5fca0b4415cdb13f75f) () | Destructor (internal use only).   | [Info](#classdronecore_1_1_info_1af0902805d75577d1195363eda21d7bb1) (const [Info](classdronecore_1_1_info.md) &)=delete | Copy Constructor (object is not copyable). uint64_t | [uuid](#classdronecore_1_1_info_1a49c7dd5f1a369c8296f0c3a2443bc031) () const | Gets the UUID of the device. @@ -37,9 +37,9 @@ static const unsigned [GIT_HASH_STR_LEN](#classdronecore_1_1_info_1aae671143f80e ## Constructor & Destructor Documentation -### Info() {#classdronecore_1_1_info_1a10ea70679e1b2d7e43bc9944fbe18aaf} +### Info() {#classdronecore_1_1_info_1a6254a480305e5979c3aaa51b9378b98d} ```cpp -dronecore::Info::Info(Device *device) +dronecore::Info::Info(Device &device) ``` @@ -48,12 +48,12 @@ Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_devic The plugin is typically created as shown below: ```cpp -auto info = std::make_shared(&device); +auto info = std::make_shared(device); ``` **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. +* [Device](classdronecore_1_1_device.md) & **device** - The specific device associated with this plugin. ### ~Info() {#classdronecore_1_1_info_1a39e608070500b5fca0b4415cdb13f75f} ```cpp diff --git a/en/api_reference/classdronecore_1_1_logging.md b/en/api_reference/classdronecore_1_1_logging.md index 827ffd7..d513a0f 100644 --- a/en/api_reference/classdronecore_1_1_logging.md +++ b/en/api_reference/classdronecore_1_1_logging.md @@ -23,7 +23,7 @@ std::function< void([Result](classdronecore_1_1_logging.md#classdronecore_1_1_lo Type | Name | Description ---: | --- | --- -  | [Logging](#classdronecore_1_1_logging_1a191a5eaa0d4c23b634585a276a20ba97) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [Logging](#classdronecore_1_1_logging_1ace064c190f8808bb23b1c830eae7a712) ([Device](classdronecore_1_1_device.md) & device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md).   | [~Logging](#classdronecore_1_1_logging_1a49e75d77f900ba5ef59a960ae9b8dc55) () | Destructor (internal use only).   | [Logging](#classdronecore_1_1_logging_1a62a17eb90e3ec9253f1b40e94d3c1fd7) (const [Logging](classdronecore_1_1_logging.md) &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_logging.md#classdronecore_1_1_logging_1ab11e242369717d9510de1ab93bfad086) | [start_logging](#classdronecore_1_1_logging_1a4684d8226742b575fce423c9ce758fc0) () const | Start logging (synchronous). @@ -43,9 +43,9 @@ const char * | [result_str](#classdronecore_1_1_logging_1adc5a7560f1a27996fc05f2 ## Constructor & Destructor Documentation -### Logging() {#classdronecore_1_1_logging_1a191a5eaa0d4c23b634585a276a20ba97} +### Logging() {#classdronecore_1_1_logging_1ace064c190f8808bb23b1c830eae7a712} ```cpp -dronecore::Logging::Logging(Device *device) +dronecore::Logging::Logging(Device &device) ``` @@ -54,12 +54,12 @@ Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_devic The plugin is typically created as shown below: ```cpp -auto logging = std::make_shared(&device); +auto logging = std::make_shared(device); ``` **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. +* [Device](classdronecore_1_1_device.md) & **device** - The specific device associated with this plugin. ### ~Logging() {#classdronecore_1_1_logging_1a49e75d77f900ba5ef59a960ae9b8dc55} ```cpp diff --git a/en/api_reference/classdronecore_1_1_mission.md b/en/api_reference/classdronecore_1_1_mission.md index 7f7dd0d..c697fbb 100644 --- a/en/api_reference/classdronecore_1_1_mission.md +++ b/en/api_reference/classdronecore_1_1_mission.md @@ -23,7 +23,7 @@ std::function< void(int current, int total)> [progress_callback_t](#classdroneco Type | Name | Description ---: | --- | --- -  | [Mission](#classdronecore_1_1_mission_1a3835376b0fbf186ad572dbfad3bcc4e9) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [Mission](#classdronecore_1_1_mission_1a8af8e71979b15c73ced7fa2d5a6f6894) ([Device](classdronecore_1_1_device.md) & device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md).   | [~Mission](#classdronecore_1_1_mission_1a395b8c121630aa8a5dd3d48f95290659) () | Destructor (internal use only).   | [Mission](#classdronecore_1_1_mission_1a4947f79b7dd71e66bca64e5bbb0b3377) (const [Mission](classdronecore_1_1_mission.md) &)=delete | Copy constructor (object is not copyable). void | [upload_mission_async](#classdronecore_1_1_mission_1a414b5b6d0c66af695a725e92003872b5) (const std::vector< std::shared_ptr< [MissionItem](classdronecore_1_1_mission_item.md) >> & mission_items, [result_callback_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a239f8d5853785d6ccf90c8c48b5ccf06) callback) | Uploads a vector of mission items to the device (asynchronous). @@ -49,9 +49,9 @@ const char * | [result_str](#classdronecore_1_1_mission_1a0eabb2fe4db664c552d281 ## Constructor & Destructor Documentation -### Mission() {#classdronecore_1_1_mission_1a3835376b0fbf186ad572dbfad3bcc4e9} +### Mission() {#classdronecore_1_1_mission_1a8af8e71979b15c73ced7fa2d5a6f6894} ```cpp -dronecore::Mission::Mission(Device *device) +dronecore::Mission::Mission(Device &device) ``` @@ -60,12 +60,12 @@ Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_devic The plugin is typically created as shown below: ```cpp -auto mission = std::make_shared(&device); +auto mission = std::make_shared(device); ``` **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. +* [Device](classdronecore_1_1_device.md) & **device** - The specific device associated with this plugin. ### ~Mission() {#classdronecore_1_1_mission_1a395b8c121630aa8a5dd3d48f95290659} ```cpp diff --git a/en/api_reference/classdronecore_1_1_offboard.md b/en/api_reference/classdronecore_1_1_offboard.md index 38c1f95..2c421a3 100644 --- a/en/api_reference/classdronecore_1_1_offboard.md +++ b/en/api_reference/classdronecore_1_1_offboard.md @@ -36,7 +36,7 @@ std::function< void([Result](classdronecore_1_1_offboard.md#classdronecore_1_1_o Type | Name | Description ---: | --- | --- -  | [Offboard](#classdronecore_1_1_offboard_1a333ac94793dc29ed95158fb2af286fa1) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [Offboard](#classdronecore_1_1_offboard_1a784907d1ea5ac1320125f77cce53bffb) ([Device](classdronecore_1_1_device.md) & device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md).   | [~Offboard](#classdronecore_1_1_offboard_1a7cb4eff36c37fed1c6d973aa41b059b8) () | Destructor (internal use only).   | [Offboard](#classdronecore_1_1_offboard_1ac586be55cb24aa0ccd29c97352dd2ee5) (const [Offboard](classdronecore_1_1_offboard.md) &)=delete | Copy constructor (object is not copyable). [Offboard::Result](classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a0f6e5e9f73289f27dc99abbb3ab572ed) | [start](#classdronecore_1_1_offboard_1a658454f130f7b19d56f23347a448f1b9) () | Start offboard control (synchronous). @@ -59,9 +59,9 @@ const char * | [result_str](#classdronecore_1_1_offboard_1a8eb7467e48fe354d34bc4 ## Constructor & Destructor Documentation -### Offboard() {#classdronecore_1_1_offboard_1a333ac94793dc29ed95158fb2af286fa1} +### Offboard() {#classdronecore_1_1_offboard_1a784907d1ea5ac1320125f77cce53bffb} ```cpp -dronecore::Offboard::Offboard(Device *device) +dronecore::Offboard::Offboard(Device &device) ``` @@ -70,12 +70,12 @@ Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_devic The plugin is typically created as shown below: ```cpp -auto offboard = std::make_shared(&device); +auto offboard = std::make_shared(device); ``` **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. +* [Device](classdronecore_1_1_device.md) & **device** - The specific device associated with this plugin. ### ~Offboard() {#classdronecore_1_1_offboard_1a7cb4eff36c37fed1c6d973aa41b059b8} ```cpp diff --git a/en/api_reference/classdronecore_1_1_telemetry.md b/en/api_reference/classdronecore_1_1_telemetry.md index fc340b5..3682557 100644 --- a/en/api_reference/classdronecore_1_1_telemetry.md +++ b/en/api_reference/classdronecore_1_1_telemetry.md @@ -52,7 +52,7 @@ std::function< void([RCStatus](structdronecore_1_1_telemetry_1_1_r_c_status.md) Type | Name | Description ---: | --- | --- -  | [Telemetry](#classdronecore_1_1_telemetry_1ad0cb6dd62c12af390870f8b5cb5bde55) ([Device](classdronecore_1_1_device.md) * device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [Telemetry](#classdronecore_1_1_telemetry_1aa066b99449e9915b7a7588597a2da468) ([Device](classdronecore_1_1_device.md) & device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md).   | [~Telemetry](#classdronecore_1_1_telemetry_1ade5f44873d1fd5a5ec63037307920095) () | Destructor (internal use only).   | [Telemetry](#classdronecore_1_1_telemetry_1a91a3319d9040bd89d241be3d8b2e9a5e) (const [Telemetry](classdronecore_1_1_telemetry.md) &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a5bfab85edb7c160e156133a9643964bc) | [set_rate_position](#classdronecore_1_1_telemetry_1ae7a6e1313b1508fef7163287aa77a6da) (double rate_hz) | Set rate of position updates (synchronous). @@ -117,9 +117,9 @@ const char * | [result_str](#classdronecore_1_1_telemetry_1a05c6355b7f8743250b2a ## Constructor & Destructor Documentation -### Telemetry() {#classdronecore_1_1_telemetry_1ad0cb6dd62c12af390870f8b5cb5bde55} +### Telemetry() {#classdronecore_1_1_telemetry_1aa066b99449e9915b7a7588597a2da468} ```cpp -dronecore::Telemetry::Telemetry(Device *device) +dronecore::Telemetry::Telemetry(Device &device) ``` @@ -128,12 +128,12 @@ Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_devic The plugin is typically created as shown below: ```cpp -auto telemetry = std::make_shared(&device); +auto telemetry = std::make_shared(device); ``` **Parameters** -* [Device](classdronecore_1_1_device.md) * **device** - The specific device associated with this plugin. +* [Device](classdronecore_1_1_device.md) & **device** - The specific device associated with this plugin. ### ~Telemetry() {#classdronecore_1_1_telemetry_1ade5f44873d1fd5a5ec63037307920095} ```cpp From a49d2655bf40d63e5b982804211c757dab5fc439 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 15 Mar 2018 10:31:15 +1100 Subject: [PATCH 098/107] Fix up guide/examples &device to device --- en/contributing/plugins.md | 2 +- en/examples/fly_mission.md | 6 +++--- en/examples/fly_mission_qgc_plan.md | 6 +++--- en/examples/follow_me.md | 6 +++--- en/examples/offboard_velocity.md | 6 +++--- en/examples/takeoff_and_land.md | 4 ++-- en/examples/transition_vtol_fixed_wing.md | 4 ++-- en/guide/device_version.md | 2 +- en/guide/follow_me.md | 2 +- en/guide/missions.md | 2 +- en/guide/offboard.md | 2 +- en/guide/taking_off_landing.md | 2 +- en/guide/telemetry.md | 2 +- en/guide/using_plugins.md | 2 +- 14 files changed, 24 insertions(+), 24 deletions(-) diff --git a/en/contributing/plugins.md b/en/contributing/plugins.md index 7675027..4e7d993 100644 --- a/en/contributing/plugins.md +++ b/en/contributing/plugins.md @@ -267,7 +267,7 @@ TEST_F(SitlTest, ExampleHello) ASSERT_TRUE(dc.is_connected()); Device &device = dc.device(); - auto example = std::make_shared(&device); + auto example = std::make_shared(device); // Apparently it can say hello. example->say_hello(); diff --git a/en/examples/fly_mission.md b/en/examples/fly_mission.md index 37203ed..5bb5df5 100644 --- a/en/examples/fly_mission.md +++ b/en/examples/fly_mission.md @@ -218,9 +218,9 @@ int main(int /*argc*/, char ** /*argv*/) // If there were multiple, we could specify it with: // dc.device(uint64_t uuid); Device &device = dc.device(); - std::shared_ptr action = std::make_shared(&device); - std::shared_ptr mission = std::make_shared(&device); - std::shared_ptr telemetry = std::make_shared(&device); + std::shared_ptr action = std::make_shared(device); + std::shared_ptr mission = std::make_shared(device); + std::shared_ptr telemetry = std::make_shared(device); while (!telemetry->health_all_ok()) { std::cout << "Waiting for device to be ready" << std::endl; diff --git a/en/examples/fly_mission_qgc_plan.md b/en/examples/fly_mission_qgc_plan.md index dc5e294..db7d17b 100644 --- a/en/examples/fly_mission_qgc_plan.md +++ b/en/examples/fly_mission_qgc_plan.md @@ -228,9 +228,9 @@ int main(int argc, char **argv) // If there were multiple, we could specify it with: // dc.device(uint64_t uuid); Device &device = dc.device(); - std::shared_ptr action = std::make_shared(&device); - std::shared_ptr mission = std::make_shared(&device); - std::shared_ptr telemetry = std::make_shared(&device); + std::shared_ptr action = std::make_shared(device); + std::shared_ptr mission = std::make_shared(device); + std::shared_ptr telemetry = std::make_shared(device); while (!telemetry->health_all_ok()) { std::cout << "Waiting for device to be ready" << std::endl; diff --git a/en/examples/follow_me.md b/en/examples/follow_me.md index 0d758fd..08c4025 100644 --- a/en/examples/follow_me.md +++ b/en/examples/follow_me.md @@ -164,9 +164,9 @@ int main(int, char **) // Device got discovered. Device &device = dc.device(); - std::shared_ptr action = std::make_shared(&device); - std::shared_ptr follow_me = std::make_shared(&device); - std::shared_ptr telemetry = std::make_shared(&device); + std::shared_ptr action = std::make_shared(device); + std::shared_ptr follow_me = std::make_shared(device); + std::shared_ptr telemetry = std::make_shared(device); while (!telemetry->health_all_ok()) { std::cout << "Waiting for device to be ready" << std::endl; diff --git a/en/examples/offboard_velocity.md b/en/examples/offboard_velocity.md index daaeac9..81fb5dc 100644 --- a/en/examples/offboard_velocity.md +++ b/en/examples/offboard_velocity.md @@ -274,9 +274,9 @@ int main(int, char **) // Device got discovered. Device &device = dc.device(); - std::shared_ptr action = std::make_shared(&device); - std::shared_ptr offboard = std::make_shared(&device); - std::shared_ptr telemetry = std::make_shared(&device); + std::shared_ptr action = std::make_shared(device); + std::shared_ptr offboard = std::make_shared(device); + std::shared_ptr telemetry = std::make_shared(device); while (!telemetry->health_all_ok()) { std::cout << "Waiting for device to be ready" << std::endl; diff --git a/en/examples/takeoff_and_land.md b/en/examples/takeoff_and_land.md index 7a5c525..00db591 100644 --- a/en/examples/takeoff_and_land.md +++ b/en/examples/takeoff_and_land.md @@ -141,8 +141,8 @@ int main(int argc, char **argv) // dc.device(uint64_t uuid); Device &device = dc.device(); - auto telemetry = std::make_shared(&device); - auto action = std::make_shared(&device); + auto telemetry = std::make_shared(device); + auto action = std::make_shared(device); // We want to listen to the altitude of the drone at 1 Hz. const Telemetry::Result set_rate_result = telemetry->set_rate_position(1.0); diff --git a/en/examples/transition_vtol_fixed_wing.md b/en/examples/transition_vtol_fixed_wing.md index b5f8227..e0d38a2 100644 --- a/en/examples/transition_vtol_fixed_wing.md +++ b/en/examples/transition_vtol_fixed_wing.md @@ -150,7 +150,7 @@ int main(int /*argc*/, char ** /*argv*/) // If there were multiple, we could specify it with: // dc.device(uint64_t uuid); Device &device = dc.device(); - std::shared_ptr telemetry = std::make_shared(&device); + std::shared_ptr telemetry = std::make_shared(device); // We want to listen to the altitude of the drone at 1 Hz. const Telemetry::Result set_rate_result = telemetry->set_rate_position(1.0); @@ -176,7 +176,7 @@ int main(int /*argc*/, char ** /*argv*/) return 1; } - std::shared_ptr action = std::make_shared(&device); + std::shared_ptr action = std::make_shared(device); // Arm vehicle std::cout << "Arming..." << std::endl; diff --git a/en/guide/device_version.md b/en/guide/device_version.md index 0055e3e..7fccea4 100644 --- a/en/guide/device_version.md +++ b/en/guide/device_version.md @@ -16,7 +16,7 @@ Device &device = dc.device(); The code also assumes that you have defined `info`, a shared pointer to an instance of the `Info` class associated with the device (see [Using Plugins](../guide/using_plugins.md)): ```cpp #include -auto info = std::make_shared(&device); +auto info = std::make_shared(device); ``` ## Query Device Information diff --git a/en/guide/follow_me.md b/en/guide/follow_me.md index 96cee1e..00f7ce1 100644 --- a/en/guide/follow_me.md +++ b/en/guide/follow_me.md @@ -40,7 +40,7 @@ The main steps are: 1. Create a shared pointer to an instance of `FollowMe` instantiated with the `device`: ``` #include - auto follow_me = std::make_shared(&device); + auto follow_me = std::make_shared(device); ``` The `follow_me` pointer can then used to access the plugin API (as shown in the following sections). diff --git a/en/guide/missions.md b/en/guide/missions.md index 20a23bb..1ac7139 100644 --- a/en/guide/missions.md +++ b/en/guide/missions.md @@ -58,7 +58,7 @@ The main steps are: 1. Create a shared pointer to an instance of `Mission` instantiated with the `device`: ``` #include - auto mission = std::make_shared(&device); + auto mission = std::make_shared(device); ``` The `mission` pointer can then used to access the plugin API (as shown in the following sections). diff --git a/en/guide/offboard.md b/en/guide/offboard.md index 93be126..e40b518 100644 --- a/en/guide/offboard.md +++ b/en/guide/offboard.md @@ -39,7 +39,7 @@ The main steps are: 1. Create a shared pointer to an instance of `Offboard` instantiated with the `device`: ``` #include - auto offboard = std::make_shared(&device); + auto offboard = std::make_shared(device); ``` The `offboard` pointer can then used to access the plugin API (as shown in the following sections). diff --git a/en/guide/taking_off_landing.md b/en/guide/taking_off_landing.md index 4072fbd..b4614ab 100644 --- a/en/guide/taking_off_landing.md +++ b/en/guide/taking_off_landing.md @@ -39,7 +39,7 @@ The main steps are: 1. Create a shared pointer to an instance of `Action` instantiated with the `device`: ``` #include - auto action = std::make_shared(&device); + auto action = std::make_shared(device); ``` The `action` pointer can then used to access the plugin API (as shown in the following sections). diff --git a/en/guide/telemetry.md b/en/guide/telemetry.md index 414e548..5229ec4 100644 --- a/en/guide/telemetry.md +++ b/en/guide/telemetry.md @@ -55,7 +55,7 @@ The main steps are: 1. Create a shared pointer to an instance of `Telemetry` instantiated with the `device`: ``` #include - auto telemetry = std::make_shared(&device); + auto telemetry = std::make_shared(device); ``` The `telemetry` pointer can then used to access the plugin API (as shown in the following sections). diff --git a/en/guide/using_plugins.md b/en/guide/using_plugins.md index 5e0957c..d0ef395 100644 --- a/en/guide/using_plugins.md +++ b/en/guide/using_plugins.md @@ -26,7 +26,7 @@ In the application source code: 1. [Create a connection](../guide/connections.md) to a `Device` object (below named: `device`). 1. Make a shared pointer to the plugin object, specifying the `Device` it is to be used with: ```cpp - auto action = std::make_shared(&device); + auto action = std::make_shared(device); ``` 1. The pointer can then be used to invoke actions on the specified device. For example, to takeoff you would call the API as shown: ```cpp From a790f0ba65636b121d4530b62d9698d308f46574 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Fri, 16 Mar 2018 16:50:52 +1100 Subject: [PATCH 099/107] Add logo to language selector page --- book.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/book.json b/book.json index 93c9833..5fee301 100644 --- a/book.json +++ b/book.json @@ -1,6 +1,10 @@ { "gitbook": ">= 3.2.2", - "title": "DroneCore Guide", + "title": "DroneCore Guide", + "variables": { + "logo": "./assets/site/dronecore_logo_full.png", + "github_branch": "develop" + }, "plugins": [ "youtube", "richquotes", @@ -14,9 +18,6 @@ "theme-dronecode@git+https://github.com/dronecode/theme-dronecode.git", "versions" ], - "variables": { - "github_branch": "develop" - }, "pluginsConfig": { "page-footer-ex":{ From e6227db151fb8d0c48d411d083fd9ebe835dff81 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 12 Apr 2018 14:29:52 +1000 Subject: [PATCH 100/107] Change all instances and examples of Device to System --- en/README.md | 8 +- en/SUMMARY.md | 8 +- en/api_reference/README.md | 2 +- en/api_reference/classdronecore_1_1_action.md | 178 ++--- en/api_reference/classdronecore_1_1_device.md | 614 ------------------ .../classdronecore_1_1_drone_core.md | 78 +-- .../classdronecore_1_1_follow_me.md | 26 +- en/api_reference/classdronecore_1_1_gimbal.md | 55 +- en/api_reference/classdronecore_1_1_info.md | 38 +- .../classdronecore_1_1_logging.md | 20 +- .../classdronecore_1_1_mission.md | 36 +- .../classdronecore_1_1_mission_item.md | 6 +- .../classdronecore_1_1_offboard.md | 18 +- .../classdronecore_1_1_plugin_base.md | 4 +- en/api_reference/classdronecore_1_1_system.md | 140 ++++ .../classdronecore_1_1_telemetry.md | 20 +- en/api_reference/namespacedronecore.md | 96 ++- .../structdronecore_1_1_info_1_1_product.md | 2 +- .../structdronecore_1_1_info_1_1_version.md | 2 +- en/contributing/plugins.md | 18 +- en/examples/README.md | 2 +- en/examples/fly_mission.md | 50 +- en/examples/fly_mission_qgc_plan.md | 51 +- en/examples/follow_me.md | 44 +- en/examples/offboard_velocity.md | 40 +- en/examples/takeoff_and_land.md | 67 +- en/examples/transition_vtol_fixed_wing.md | 69 +- en/getting_started/faq.md | 4 +- en/guide/connections.md | 46 +- en/guide/device_version.md | 62 -- en/guide/follow_me.md | 12 +- en/guide/general_usage.md | 6 +- en/guide/missions.md | 14 +- en/guide/offboard.md | 12 +- en/guide/system_information.md | 62 ++ en/guide/taking_off_landing.md | 13 +- en/guide/telemetry.md | 14 +- en/guide/using_plugins.md | 12 +- 38 files changed, 776 insertions(+), 1173 deletions(-) delete mode 100644 en/api_reference/classdronecore_1_1_device.md create mode 100644 en/api_reference/classdronecore_1_1_system.md delete mode 100644 en/guide/device_version.md create mode 100644 en/guide/system_information.md diff --git a/en/README.md b/en/README.md index 4b8ded4..43fec52 100644 --- a/en/README.md +++ b/en/README.md @@ -50,13 +50,13 @@ See the [FAQ](getting_started/faq.md) for answers to common questions about the ## API Overview -[DroneCore](/api_reference/classdronecore_1_1_drone_core.md) is the main library class. API consumers use [DroneCore](/api_reference/classdronecore_1_1_drone_core.md) to discover and access vehicles ([Device](/api_reference/classdronecore_1_1_device.md) objects), which in turn provide access to all other drone information and control objects (e.g. [Telemetry](/api_reference/classdronecore_1_1_telemetry.md), [Mission](/api_reference/classdronecore_1_1_mission.md) etc.). +[DroneCore](/api_reference/classdronecore_1_1_drone_core.md) is the main library class. API consumers use [DroneCore](/api_reference/classdronecore_1_1_drone_core.md) to discover and access vehicles ([System](/api_reference/classdronecore_1_1_system.md) objects), which in turn provide access to all other drone information and control objects (e.g. [Telemetry](/api_reference/classdronecore_1_1_telemetry.md), [Mission](/api_reference/classdronecore_1_1_mission.md) etc.). The most important classes are: -- [DroneCore](/api_reference/classdronecore_1_1_drone_core.md): Discover and connect to vehicles ([Device](/api_reference/classdronecore_1_1_device.md)). -- [Device](/api_reference/classdronecore_1_1_device.md): Represents a connected vehicle (e.g. a copter or VTOL drone). It provides access to vehicle information and control through the classes listed below. -- [Info](/api_reference/classdronecore_1_1_info.md): Basic version information about the hardware and/or software of a device. +- [DroneCore](/api_reference/classdronecore_1_1_drone_core.md): Discover and connect to vehicles ([System](/api_reference/classdronecore_1_1_system.md)). +- [System](/api_reference/classdronecore_1_1_system.md): Represents a connected vehicle (e.g. a copter or VTOL drone). It provides access to vehicle information and control through the classes listed below. +- [Info](/api_reference/classdronecore_1_1_info.md): Basic version information about the hardware and/or software of a system. - [Telemetry](/api_reference/classdronecore_1_1_telemetry.md): Get vehicle telemetry and state information ([Battery](/api_reference/structdronecore_1_1_telemetry_1_1_battery.md), [EulerAngle](/api_reference/structdronecore_1_1_telemetry_1_1_euler_angle.md), [GPSInfo](/api_reference/structdronecore_1_1_telemetry_1_1_g_p_s_info.md), [GroundSpeedNED](/api_reference/structdronecore_1_1_telemetry_1_1_ground_speed_n_e_d.md), [Health](/api_reference/structdronecore_1_1_telemetry_1_1_health.md), [Position](/api_reference/structdronecore_1_1_telemetry_1_1_position.md), [Quaternion](/api_reference/structdronecore_1_1_telemetry_1_1_quaternion.md), [RCStatus](/api_reference/structdronecore_1_1_telemetry_1_1_r_c_status.md)) and set telemetry update rates. - [Action](/api_reference/classdronecore_1_1_action.md): Simple drone actions including arming, taking off, and landing. - [Mission](/api_reference/classdronecore_1_1_mission.md): Waypoint mission creation and upload/download. Missions are created from [MissionItem](/api_reference/classdronecore_1_1_mission_item.md) objects. diff --git a/en/SUMMARY.md b/en/SUMMARY.md index 7e3f1e8..d64cd76 100644 --- a/en/SUMMARY.md +++ b/en/SUMMARY.md @@ -5,9 +5,9 @@ * [Quick Start](getting_started/README.md) * [Guide](guide/README.md) * [Usage/Paradigms](guide/general_usage.md) - * [Connecting to Devices](guide/connections.md) - * [Managing Devices](guide/using_plugins.md) - * [Vehicle Information](guide/device_version.md) + * [Connecting to Systems (Vehicles)](guide/connections.md) + * [Managing Systems](guide/using_plugins.md) + * [System Information](guide/system_information.md) * [Telemetry](guide/telemetry.md) * [Actions - Take Off, Arm, ...](guide/taking_off_landing.md) * [Missions](guide/missions.md) @@ -25,7 +25,7 @@ * [VTOL Transitions](examples/transition_vtol_fixed_wing.md) * [API Reference](api_reference/README.md) * [class DroneCore](api_reference/classdronecore_1_1_drone_core.md) - * [class Device](api_reference/classdronecore_1_1_device.md) + * [class System](api_reference/classdronecore_1_1_system.md) * [class Info](api_reference/classdronecore_1_1_info.md) * [struct Version](api_reference/structdronecore_1_1_info_1_1_version.md) * [struct Product](api_reference/structdronecore_1_1_info_1_1_product.md) diff --git a/en/api_reference/README.md b/en/api_reference/README.md index cf91d77..36e65b7 100644 --- a/en/api_reference/README.md +++ b/en/api_reference/README.md @@ -1,7 +1,7 @@ # API Reference * [class DroneCore](classdronecore_1_1_drone_core.md) -* [class Device](classdronecore_1_1_device.md) +* [class System](classdronecore_1_1_system.md) * [class Info](classdronecore_1_1_info.md) * [struct Version](structdronecore_1_1_info_1_1_version.md) * [struct Product](structdronecore_1_1_info_1_1_product.md) diff --git a/en/api_reference/classdronecore_1_1_action.md b/en/api_reference/classdronecore_1_1_action.md index 71cf89d..94a134d 100644 --- a/en/api_reference/classdronecore_1_1_action.md +++ b/en/api_reference/classdronecore_1_1_action.md @@ -10,7 +10,7 @@ The [Action](classdronecore_1_1_action.md) class enables simple actions for a dr Synchronous and asynchronous variants of the action methods are supplied. -The action methods send their associated MAVLink commands to the vehicle and complete (return synchronously or callback asynchronously) with an [Action::Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) value indicating whether the vehicle has accepted or rejected the command, or that there has been some error. If the command is accepted, the vehicle will then start to perform the associated action. +The action methods send their associated MAVLink commands to the vehicle and complete (return synchronously or callback asynchronously) with an ActionResult value indicating whether the vehicle has accepted or rejected the command, or that there has been some error. If the command is accepted, the vehicle will then start to perform the associated action. ## Public Types @@ -18,67 +18,59 @@ The action methods send their associated MAVLink commands to the vehicle and com Type | Description --- | --- -enum [Result](#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | Possible results returned for commanded actions. -std::function< void([Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011))> [result_callback_t](#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) | Callback type for asynchronous [Action](classdronecore_1_1_action.md) calls. +std::function< void([ActionResult](namespacedronecore.md#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5))> [result_callback_t](#classdronecore_1_1_action_1a24edb68003d96a52c80de6851ca1dde5) | Callback type for asynchronous [Action](classdronecore_1_1_action.md) calls. ## Public Member Functions Type | Name | Description ---: | --- | --- -  | [Action](#classdronecore_1_1_action_1adcc408d9d18fc70e89086090d951edd0) ([Device](classdronecore_1_1_device.md) & device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [Action](#classdronecore_1_1_action_1a116c75c6b2cd6dc19788b777e56299a9) ([System](classdronecore_1_1_system.md) & system) | Constructor. Creates the plugin for a specific [System](classdronecore_1_1_system.md).   | [~Action](#classdronecore_1_1_action_1a6bb0301fecf66d75ca3b27bda25af7f2) () | Destructor (internal use only).   | [Action](#classdronecore_1_1_action_1ae48b0e06ca2b4b7544a10c7734a03f63) (const [Action](classdronecore_1_1_action.md) &)=delete | Copy constructor (object is not copyable). -[Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [arm](#classdronecore_1_1_action_1a8b8631ea15655f0c922a9ba7d2e1c72c) () const | Send command to *arm* the drone (synchronous). -[Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [disarm](#classdronecore_1_1_action_1ad4b0231afcfebc261a720194f893dcd8) () const | Send command to *disarm* the drone (synchronous). -[Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [kill](#classdronecore_1_1_action_1adc272f46adf4c52fbe7bd091a436b28b) () const | Send command to *kill* the drone (synchronous). -[Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [takeoff](#classdronecore_1_1_action_1ae159c78b1a4056137187dc6e6d878539) () const | Send command to *take off and hover* (synchronous). -[Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [land](#classdronecore_1_1_action_1ad1a50dd7bff99d3099916576efbf8cf6) () const | Send command to *land* at the current position (synchronous). -[Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [return_to_launch](#classdronecore_1_1_action_1a9af73101ce850e37cf7259dcdeda2eb9) () const | Send command to *return to the launch* (takeoff) position and *land* (asynchronous). -[Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [transition_to_fixedwing](#classdronecore_1_1_action_1a6f40384be0ad61a29b6e2fd0a0c86754) () const | Send command to transition the drone to fixedwing. -[Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) | [transition_to_multicopter](#classdronecore_1_1_action_1a0088dbe4c715e2bfbe805b89d28add5a) () const | Send command to transition the drone to multicopter. -void | [arm_async](#classdronecore_1_1_action_1a1a27165400d2a8419c2d96a1c0f2aa78) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) callback) | Send command to *arm* the drone (asynchronous). -void | [disarm_async](#classdronecore_1_1_action_1acc0a17411a25f5641ae21046b459e79e) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) callback) | Send command to *disarm* the drone (asynchronous). -void | [kill_async](#classdronecore_1_1_action_1a1d7d09191d9319c7912962b2dd02caa7) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) callback) | Send command to *kill* the drone (asynchronous). -void | [takeoff_async](#classdronecore_1_1_action_1a2aec10a2b14f5e82f05edc6e2feac83e) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) callback) | Send command to *take off and hover* (asynchronous). -void | [land_async](#classdronecore_1_1_action_1a7f10240cde2ff237795e3688802d857b) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) callback) | Send command to *land* at the current position (asynchronous). -void | [return_to_launch_async](#classdronecore_1_1_action_1aa1253c356c7628d329dfa98d78eb39ee) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) callback) | Send command to *return to the launch* (takeoff) position and *land* (asynchronous). -void | [transition_to_fixedwing_async](#classdronecore_1_1_action_1af5b02f05ffdc2e0787a7633410710d9d) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) callback) | Send command to transition the drone to fixedwing (asynchronous). -void | [transition_to_multicopter_async](#classdronecore_1_1_action_1a053aa7430852a4200b201abda1b3b3e4) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) callback) | Send command to transition the drone to multicopter (asynchronous). +[ActionResult](namespacedronecore.md#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5) | [arm](#classdronecore_1_1_action_1af71179444e1c67550202d498c19ad2ff) () const | Send command to *arm* the drone (synchronous). +[ActionResult](namespacedronecore.md#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5) | [disarm](#classdronecore_1_1_action_1a0ab29022df5d93d4f590d83a3e9c4349) () const | Send command to *disarm* the drone (synchronous). +[ActionResult](namespacedronecore.md#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5) | [kill](#classdronecore_1_1_action_1a615cff3ac4321340a9871416d2ca1db8) () const | Send command to *kill* the drone (synchronous). +[ActionResult](namespacedronecore.md#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5) | [takeoff](#classdronecore_1_1_action_1a1d6244edfd39272d97bf8b126eb98629) () const | Send command to *take off and hover* (synchronous). +[ActionResult](namespacedronecore.md#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5) | [land](#classdronecore_1_1_action_1a08367528cdf25404b7db6db457e3c6f9) () const | Send command to *land* at the current position (synchronous). +[ActionResult](namespacedronecore.md#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5) | [return_to_launch](#classdronecore_1_1_action_1a740a3bf125560edaf810865a616b2d24) () const | Send command to *return to the launch* (takeoff) position and *land* (asynchronous). +[ActionResult](namespacedronecore.md#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5) | [transition_to_fixedwing](#classdronecore_1_1_action_1a559e6cfa22f937acc0bbd1f9ac4e54fa) () const | Send command to transition the drone to fixedwing. +[ActionResult](namespacedronecore.md#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5) | [transition_to_multicopter](#classdronecore_1_1_action_1a3af080379382fedbc3ad8bdbaf3c4e4c) () const | Send command to transition the drone to multicopter. +void | [arm_async](#classdronecore_1_1_action_1a1a27165400d2a8419c2d96a1c0f2aa78) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1a24edb68003d96a52c80de6851ca1dde5) callback) | Send command to *arm* the drone (asynchronous). +void | [disarm_async](#classdronecore_1_1_action_1acc0a17411a25f5641ae21046b459e79e) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1a24edb68003d96a52c80de6851ca1dde5) callback) | Send command to *disarm* the drone (asynchronous). +void | [kill_async](#classdronecore_1_1_action_1a1d7d09191d9319c7912962b2dd02caa7) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1a24edb68003d96a52c80de6851ca1dde5) callback) | Send command to *kill* the drone (asynchronous). +void | [takeoff_async](#classdronecore_1_1_action_1a2aec10a2b14f5e82f05edc6e2feac83e) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1a24edb68003d96a52c80de6851ca1dde5) callback) | Send command to *take off and hover* (asynchronous). +void | [land_async](#classdronecore_1_1_action_1a7f10240cde2ff237795e3688802d857b) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1a24edb68003d96a52c80de6851ca1dde5) callback) | Send command to *land* at the current position (asynchronous). +void | [return_to_launch_async](#classdronecore_1_1_action_1aa1253c356c7628d329dfa98d78eb39ee) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1a24edb68003d96a52c80de6851ca1dde5) callback) | Send command to *return to the launch* (takeoff) position and *land* (asynchronous). +void | [transition_to_fixedwing_async](#classdronecore_1_1_action_1af5b02f05ffdc2e0787a7633410710d9d) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1a24edb68003d96a52c80de6851ca1dde5) callback) | Send command to transition the drone to fixedwing (asynchronous). +void | [transition_to_multicopter_async](#classdronecore_1_1_action_1a053aa7430852a4200b201abda1b3b3e4) ([result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1a24edb68003d96a52c80de6851ca1dde5) callback) | Send command to transition the drone to multicopter (asynchronous). void | [set_takeoff_altitude](#classdronecore_1_1_action_1adc6f7f6668d3681afa4d820095154c9d) (float relative_altitude_m) | Set takeoff altitude above ground. float | [get_takeoff_altitude_m](#classdronecore_1_1_action_1a1888deebcc48d906c3c19473596e6fec) () const | Get the takeoff altitude. void | [set_max_speed](#classdronecore_1_1_action_1abc27410a9b2a938b21ab59c5ef9ee941) (float speed_m_s) | Set vehicle maximum speed. float | [get_max_speed_m_s](#classdronecore_1_1_action_1ad6c8a98e0c331666c14cb996fa5dc605) () const | Get the vehicle maximum speed. const [Action](classdronecore_1_1_action.md) & | [operator=](#classdronecore_1_1_action_1a89f6cdf19fc05054fa746ebd3d88e17a) (const [Action](classdronecore_1_1_action.md) &)=delete | Equality operator (object is not copyable). -## Static Public Member Functions - - -Type | Name | Description ----: | --- | --- -const char * | [result_str](#classdronecore_1_1_action_1a1fefb474ee36cb15fe31b42313782057) ([Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) result) | Returns a human-readable English string for an [Action::Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011). - ## Constructor & Destructor Documentation -### Action() {#classdronecore_1_1_action_1adcc408d9d18fc70e89086090d951edd0} +### Action() {#classdronecore_1_1_action_1a116c75c6b2cd6dc19788b777e56299a9} ```cpp -dronecore::Action::Action(Device &device) +dronecore::Action::Action(System &system) ``` -Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +Constructor. Creates the plugin for a specific [System](classdronecore_1_1_system.md). The plugin is typically created as shown below: ```cpp -auto action = std::make_shared(device); +auto action = std::make_shared(system); ``` **Parameters** -* [Device](classdronecore_1_1_device.md) & **device** - The specific device associated with this plugin. +* [System](classdronecore_1_1_system.md)& **system** - The specific system associated with this plugin. ### ~Action() {#classdronecore_1_1_action_1a6bb0301fecf66d75ca3b27bda25af7f2} ```cpp @@ -100,50 +92,27 @@ Copy constructor (object is not copyable). **Parameters** -* const [Action](classdronecore_1_1_action.md) & - +* const [Action](classdronecore_1_1_action.md)& - ## Member Typdef Documentation -### typedef result_callback_t {#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c} +### typedef result_callback_t {#classdronecore_1_1_action_1a24edb68003d96a52c80de6851ca1dde5} ```cpp -typedef std::function dronecore::Action::result_callback_t +typedef std::function dronecore::Action::result_callback_t ``` Callback type for asynchronous [Action](classdronecore_1_1_action.md) calls. -## Member Enumeration Documentation - - -### enum Result {#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011} - - -Possible results returned for commanded actions. - - -Value | Description ---- | --- - `UNKNOWN` | Unspecified error. - `SUCCESS` | Success. The action command was accepted by the vehicle. - `NO_DEVICE` | No device is connected error. - `CONNECTION_ERROR` | Connection error. - `BUSY` | Vehicle busy error. - `COMMAND_DENIED` | Command refused by vehicle. - `COMMAND_DENIED_LANDED_STATE_UNKNOWN` | Command refused because landed state is unknown. - `COMMAND_DENIED_NOT_LANDED` | Command refused because vehicle not landed. - `TIMEOUT` | Timeout waiting for command acknowledgement from vehicle. - `VTOL_TRANSITION_SUPPORT_UNKNOWN` | hybrid/VTOL transition refused because VTOL support is unknown. - `NO_VTOL_TRANSITION_SUPPORT` | Vehicle does not support hybrid/VTOL transitions. - ## Member Function Documentation -### arm() {#classdronecore_1_1_action_1a8b8631ea15655f0c922a9ba7d2e1c72c} +### arm() {#classdronecore_1_1_action_1af71179444e1c67550202d498c19ad2ff} ```cpp -Result dronecore::Action::arm() const +ActionResult dronecore::Action::arm() const ``` @@ -153,11 +122,11 @@ Send command to *arm* the drone (synchronous). **Returns** - [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) - Result of request. + [ActionResult](namespacedronecore.md#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5) - ActionResult of request. -### disarm() {#classdronecore_1_1_action_1ad4b0231afcfebc261a720194f893dcd8} +### disarm() {#classdronecore_1_1_action_1a0ab29022df5d93d4f590d83a3e9c4349} ```cpp -Result dronecore::Action::disarm() const +ActionResult dronecore::Action::disarm() const ``` @@ -167,11 +136,11 @@ This will disarm a drone that considers itself landed. If flying, the drone shou **Returns** - [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) - Result of request. + [ActionResult](namespacedronecore.md#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5) - ActionResult of request. -### kill() {#classdronecore_1_1_action_1adc272f46adf4c52fbe7bd091a436b28b} +### kill() {#classdronecore_1_1_action_1a615cff3ac4321340a9871416d2ca1db8} ```cpp -Result dronecore::Action::kill() const +ActionResult dronecore::Action::kill() const ``` @@ -181,11 +150,11 @@ This will disarm a drone irrespective of whether it is landed or flying. Note th **Returns** - [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) - Result of request. + [ActionResult](namespacedronecore.md#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5) - ActionResult of request. -### takeoff() {#classdronecore_1_1_action_1ae159c78b1a4056137187dc6e6d878539} +### takeoff() {#classdronecore_1_1_action_1a1d6244edfd39272d97bf8b126eb98629} ```cpp -Result dronecore::Action::takeoff() const +ActionResult dronecore::Action::takeoff() const ``` @@ -198,11 +167,11 @@ Note that the vehicle must be armed before it can take off. **Returns** - [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) - Result of request. + [ActionResult](namespacedronecore.md#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5) - ActionResult of request. -### land() {#classdronecore_1_1_action_1ad1a50dd7bff99d3099916576efbf8cf6} +### land() {#classdronecore_1_1_action_1a08367528cdf25404b7db6db457e3c6f9} ```cpp -Result dronecore::Action::land() const +ActionResult dronecore::Action::land() const ``` @@ -212,11 +181,11 @@ This switches the drone to [Land mode](https://docs.px4.io/en/flight_modes/land. **Returns** - [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) - Result of request. + [ActionResult](namespacedronecore.md#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5) - ActionResult of request. -### return_to_launch() {#classdronecore_1_1_action_1a9af73101ce850e37cf7259dcdeda2eb9} +### return_to_launch() {#classdronecore_1_1_action_1a740a3bf125560edaf810865a616b2d24} ```cpp -Result dronecore::Action::return_to_launch() const +ActionResult dronecore::Action::return_to_launch() const ``` @@ -226,35 +195,35 @@ This switches the drone into [RTL mode](https://docs.px4.io/en/flight_modes/rtl. **Returns** - [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) - Result of request. + [ActionResult](namespacedronecore.md#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5) - ActionResult of request. -### transition_to_fixedwing() {#classdronecore_1_1_action_1a6f40384be0ad61a29b6e2fd0a0c86754} +### transition_to_fixedwing() {#classdronecore_1_1_action_1a559e6cfa22f937acc0bbd1f9ac4e54fa} ```cpp -Result dronecore::Action::transition_to_fixedwing() const +ActionResult dronecore::Action::transition_to_fixedwing() const ``` Send command to transition the drone to fixedwing. -The associated action will only be executed for VTOL vehicles (on other vehicle types the command will fail with a Result). The command will succeed if called when the vehicle is already in fixedwing mode. +The associated action will only be executed for VTOL vehicles (on other vehicle types the command will fail with an ActionResult). The command will succeed if called when the vehicle is already in fixedwing mode. **Returns** - [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) - Result of request. + [ActionResult](namespacedronecore.md#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5) - ActionResult of request. -### transition_to_multicopter() {#classdronecore_1_1_action_1a0088dbe4c715e2bfbe805b89d28add5a} +### transition_to_multicopter() {#classdronecore_1_1_action_1a3af080379382fedbc3ad8bdbaf3c4e4c} ```cpp -Result dronecore::Action::transition_to_multicopter() const +ActionResult dronecore::Action::transition_to_multicopter() const ``` Send command to transition the drone to multicopter. -The associated action will only be executed for VTOL vehicles (on other vehicle types the command will fail with a Result). The command will succeed if called when the vehicle is already in multicopter mode. +The associated action will only be executed for VTOL vehicles (on other vehicle types the command will fail with an ActionResult). The command will succeed if called when the vehicle is already in multicopter mode. **Returns** - [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) - Result of request. + [ActionResult](namespacedronecore.md#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5) - ActionResult of request. ### arm_async() {#classdronecore_1_1_action_1a1a27165400d2a8419c2d96a1c0f2aa78} ```cpp @@ -268,7 +237,7 @@ Note that arming a drone normally means that the motors will spin at idle. There **Parameters** -* [result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) **callback** - Function to call with result of request. +* [result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1a24edb68003d96a52c80de6851ca1dde5) **callback** - Function to call with result of request. ### disarm_async() {#classdronecore_1_1_action_1acc0a17411a25f5641ae21046b459e79e} ```cpp @@ -282,7 +251,7 @@ This will disarm a drone that considers itself landed. If flying, the drone shou **Parameters** -* [result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) **callback** - Function to call with result of request. +* [result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1a24edb68003d96a52c80de6851ca1dde5) **callback** - Function to call with result of request. ### kill_async() {#classdronecore_1_1_action_1a1d7d09191d9319c7912962b2dd02caa7} ```cpp @@ -296,7 +265,7 @@ This will disarm a drone irrespective of whether it is landed or flying. Note th **Parameters** -* [result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) **callback** - Function to call with result of request. +* [result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1a24edb68003d96a52c80de6851ca1dde5) **callback** - Function to call with result of request. ### takeoff_async() {#classdronecore_1_1_action_1a2aec10a2b14f5e82f05edc6e2feac83e} ```cpp @@ -313,7 +282,7 @@ Note that the vehicle must be armed before it can take off. **Parameters** -* [result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) **callback** - Function to call with result of request +* [result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1a24edb68003d96a52c80de6851ca1dde5) **callback** - Function to call with result of request ### land_async() {#classdronecore_1_1_action_1a7f10240cde2ff237795e3688802d857b} ```cpp @@ -327,7 +296,7 @@ This switches the drone to [Land mode](https://docs.px4.io/en/flight_modes/land. **Parameters** -* [result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) **callback** - Function to call with result of request. +* [result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1a24edb68003d96a52c80de6851ca1dde5) **callback** - Function to call with result of request. ### return_to_launch_async() {#classdronecore_1_1_action_1aa1253c356c7628d329dfa98d78eb39ee} ```cpp @@ -341,7 +310,7 @@ This switches the drone into [RTL mode](https://docs.px4.io/en/flight_modes/rtl. **Parameters** -* [result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) **callback** - Function to call with result of request. +* [result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1a24edb68003d96a52c80de6851ca1dde5) **callback** - Function to call with result of request. ### transition_to_fixedwing_async() {#classdronecore_1_1_action_1af5b02f05ffdc2e0787a7633410710d9d} ```cpp @@ -351,11 +320,11 @@ void dronecore::Action::transition_to_fixedwing_async(result_callback_t callback Send command to transition the drone to fixedwing (asynchronous). -The associated action will only be executed for VTOL vehicles (on other vehicle types the command will fail with a Result). The command will succeed if called when the vehicle is already in fixedwing mode. +The associated action will only be executed for VTOL vehicles (on other vehicle types the command will fail with an ActionResult). The command will succeed if called when the vehicle is already in fixedwing mode. **Parameters** -* [result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) **callback** - Function to call with result of request. +* [result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1a24edb68003d96a52c80de6851ca1dde5) **callback** - Function to call with result of request. ### transition_to_multicopter_async() {#classdronecore_1_1_action_1a053aa7430852a4200b201abda1b3b3e4} ```cpp @@ -365,11 +334,11 @@ void dronecore::Action::transition_to_multicopter_async(result_callback_t callba Send command to transition the drone to multicopter (asynchronous). -The associated action will only be executed for VTOL vehicles (on other vehicle types the command will fail with a Result). The command will succeed if called when the vehicle is already in multicopter mode. +The associated action will only be executed for VTOL vehicles (on other vehicle types the command will fail with an ActionResult). The command will succeed if called when the vehicle is already in multicopter mode. **Parameters** -* [result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1af611bba8734802ab2e32711aa5f3d74c) **callback** - Function to call with result of request. +* [result_callback_t](classdronecore_1_1_action.md#classdronecore_1_1_action_1a24edb68003d96a52c80de6851ca1dde5) **callback** - Function to call with result of request. ### set_takeoff_altitude() {#classdronecore_1_1_action_1adc6f7f6668d3681afa4d820095154c9d} ```cpp @@ -434,25 +403,8 @@ Equality operator (object is not copyable). **Parameters** -* const [Action](classdronecore_1_1_action.md) & - - -**Returns** - - const [Action](classdronecore_1_1_action.md) & - - -### result_str() {#classdronecore_1_1_action_1a1fefb474ee36cb15fe31b42313782057} -```cpp -static const char* dronecore::Action::result_str(Result result) -``` - - -Returns a human-readable English string for an [Action::Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011). - - -**Parameters** - -* [Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011) **result** - The enum value for which a human readable string is required. +* const [Action](classdronecore_1_1_action.md)& - **Returns** - const char * - Human readable string for the [Action::Result](classdronecore_1_1_action.md#classdronecore_1_1_action_1ad92c9d2e08f60f54b17ea0d861339011). \ No newline at end of file + const [Action](classdronecore_1_1_action.md) & - \ No newline at end of file diff --git a/en/api_reference/classdronecore_1_1_device.md b/en/api_reference/classdronecore_1_1_device.md deleted file mode 100644 index 61eb39e..0000000 --- a/en/api_reference/classdronecore_1_1_device.md +++ /dev/null @@ -1,614 +0,0 @@ -# dronecore::Device Class Reference -`#include: UNKNOWN` - ----- - - -## Data Structures - - -struct [MavlinkHandlerTableEntry](structdronecore_1_1_device_1_1_mavlink_handler_table_entry.md) - -## Public Types - - -Type | Description ---- | --- -enum [FlightMode](#classdronecore_1_1_device_1abe2b638e92f46ad3bdc124429a5929e8) | -std::function< void(const mavlink_message_t &)> [mavlink_message_handler_t](#classdronecore_1_1_device_1a1bca06c484ee8a4f18f0371a2a492e7b) | -std::function< void(MavlinkCommands::Result, float)> [command_result_callback_t](#classdronecore_1_1_device_1a6ee9b5b6b3d40554ced23537168d801e) | -std::function< void(bool success)> [success_t](#classdronecore_1_1_device_1aa90d45a543d894492d30618438e5ced4) | -std::function< void(bool success, float value)> [get_param_float_callback_t](#classdronecore_1_1_device_1a8eabc97aec9a0ac69f79df2caabd8687) | -std::function< void(bool success, int32_t value)> [get_param_int_callback_t](#classdronecore_1_1_device_1a38ead6807abd7c8d72a8cf3909b4560d) | - -## Public Member Functions - - -Type | Name | Description ----: | --- | --- -  | [Device](#classdronecore_1_1_device_1a507d542a9a948033f2873dd17156fdc7) (DroneCoreImpl & parent, uint8_t target_system_id) | -  | [~Device](#classdronecore_1_1_device_1a65c697e12eed30109074e18a9cfdc836) () | -  | [Device](#classdronecore_1_1_device_1acf95b02d5d1d705ce3dc1438786e0c91) (const [Device](classdronecore_1_1_device.md) &)=delete | -void | [process_mavlink_message](#classdronecore_1_1_device_1a7324f5f4cc1f7bce40a2e8c237f1212e) (const mavlink_message_t & message) | -void | [register_mavlink_message_handler](#classdronecore_1_1_device_1aa7ae3afa910a2043185e319cfaaa4196) (uint16_t msg_id, mavlink_message_handler_t callback, const void * cookie) | -void | [unregister_all_mavlink_message_handlers](#classdronecore_1_1_device_1a7fd2014818f2e41cc93b6c31d259f21c) (const void * cookie) | -void | [register_timeout_handler](#classdronecore_1_1_device_1afc704e09b8331cdd36341a1ffd331c11) (std::function< void()> callback, double duration_s, void ** cookie) | -void | [refresh_timeout_handler](#classdronecore_1_1_device_1ad7d945426276c079ffc9d173583d1427) (const void * cookie) | -void | [unregister_timeout_handler](#classdronecore_1_1_device_1a95673878b3a69db3817def10310a565d) (const void * cookie) | -void | [add_call_every](#classdronecore_1_1_device_1a466bede03fdf9be31cefb206ef561114) (std::function< void()> callback, float interval_s, void ** cookie) | -void | [change_call_every](#classdronecore_1_1_device_1aed059a1d5a9f2ee4e11963e5d371577c) (float interval_s, const void * cookie) | -void | [reset_call_every](#classdronecore_1_1_device_1a38c719f6ccadf6a17e61c47c14cdf234) (const void * cookie) | -void | [remove_call_every](#classdronecore_1_1_device_1a5a101b41ec651a6a764a01d3208934e2) (const void * cookie) | -bool | [send_message](#classdronecore_1_1_device_1a9d09cd1b8b9689080337f7efd9e9d77d) (const mavlink_message_t & message) | -MavlinkCommands::Result | [send_command_with_ack](#classdronecore_1_1_device_1afcc8c11d47f681c41705d82ee3cd74ea) (uint16_t command, const MavlinkCommands::Params & params, uint8_t component_id=0) | -void | [send_command_with_ack_async](#classdronecore_1_1_device_1a0ef6cf5c11820fb2ae00bd96f9abd4de) (uint16_t command, const MavlinkCommands::Params & params, command_result_callback_t callback, uint8_t component_id=0) | -MavlinkCommands::Result | [set_msg_rate](#classdronecore_1_1_device_1af10ca5a146f0129c51566486a20d98ed) (uint16_t message_id, double rate_hz, uint8_t component_id=0) | -void | [set_msg_rate_async](#classdronecore_1_1_device_1ad3af9775d80d5301c19808822da6f9aa) (uint16_t message_id, double rate_hz, command_result_callback_t callback, uint8_t component_id=0) | -void | [request_autopilot_version](#classdronecore_1_1_device_1abd185340eaad71374b8f8647a5594502) () | -uint64_t | [get_target_uuid](#classdronecore_1_1_device_1a54bdadb4e8e52c9d159099749c29b7b4) () const | -uint8_t | [get_target_system_id](#classdronecore_1_1_device_1a55d2b2b871b2435420885b9594ca5b9b) () const | -uint8_t | [get_target_component_id](#classdronecore_1_1_device_1a41f2b9cf224c09d0c17081620ac201c5) () const | -void | [set_target_system_id](#classdronecore_1_1_device_1a01f14b9dffc35b045bbfe76f411c84f8) (uint8_t system_id) | -bool | [target_supports_mission_int](#classdronecore_1_1_device_1afbe6f90ecace24d8b7081a01be3686c3) () const | -bool | [is_armed](#classdronecore_1_1_device_1ad8b067dc607c3fd7bd86c2961409ce60) () const | -void | [set_param_float_async](#classdronecore_1_1_device_1a1b784f4c51451f23cb978b1982ead1bf) (const std::string & name, float value, success_t callback) | -void | [set_param_int_async](#classdronecore_1_1_device_1aa8fe748620f9934df97582943b20b372) (const std::string & name, int32_t value, success_t callback) | -void | [set_param_ext_float_async](#classdronecore_1_1_device_1a46ca0087cd5135a12a9f163455876fe2) (const std::string & name, float value, success_t callback) | -void | [set_param_ext_int_async](#classdronecore_1_1_device_1ab494873b3e6e99706c89c669d867c0bf) (const std::string & name, int32_t value, success_t callback) | -MavlinkCommands::Result | [set_flight_mode](#classdronecore_1_1_device_1acafac8ecf0801045ad894e80bcd9d9a8) (FlightMode mode) | -void | [set_flight_mode_async](#classdronecore_1_1_device_1a56d240c32839524470a8784f5c72e8a0) (FlightMode mode, command_result_callback_t callback) | -void | [get_param_float_async](#classdronecore_1_1_device_1a48dbd54b03ad86c9784dfac75274713f) (const std::string & name, get_param_float_callback_t callback) | -void | [get_param_int_async](#classdronecore_1_1_device_1a682a74475e24cac262ac90b18e5dd49a) (const std::string & name, get_param_int_callback_t callback) | -void | [get_param_ext_float_async](#classdronecore_1_1_device_1a6050f2993f78689c778cdb4240bb3606) (const std::string & name, get_param_float_callback_t callback) | -void | [get_param_ext_int_async](#classdronecore_1_1_device_1a7b4050c8aa12e198d99b23be4f281c7f) (const std::string & name, get_param_int_callback_t callback) | -bool | [is_connected](#classdronecore_1_1_device_1afac855ffb266017d932c4060140af717) () const | -Time & | [get_time](#classdronecore_1_1_device_1a6009c92dbd4ffd14367ad4ee1d4b3054) () | -void | [register_plugin](#classdronecore_1_1_device_1a7622b2667c5454c490a0d6722f738ec3) (PluginImplBase * plugin_impl) | -void | [unregister_plugin](#classdronecore_1_1_device_1aac00d6ae3d53154900785b882df5edf4) (PluginImplBase * plugin_impl) | -void | [lock_communication](#classdronecore_1_1_device_1a15d93e6a12f2208f8fa56466b7f2f819) () | -void | [unlock_communication](#classdronecore_1_1_device_1a801aab463023eb3e64670c86349fa54c) () | -const [Device](classdronecore_1_1_device.md) & | [operator=](#classdronecore_1_1_device_1ad03d3cdf0aaa8e4cb21becb6c7806c33) (const [Device](classdronecore_1_1_device.md) &)=delete | - -## Static Public Member Functions - - -Type | Name | Description ----: | --- | --- -uint8_t | [get_own_system_id](#classdronecore_1_1_device_1ab598504aa60a5acf830161daf8eed908) () | -uint8_t | [get_own_component_id](#classdronecore_1_1_device_1aa6dc1543b0ae9439a6bacca0dc9c52e6) () | - - -## Constructor & Destructor Documentation - - -### Device() {#classdronecore_1_1_device_1a507d542a9a948033f2873dd17156fdc7} -```cpp -dronecore::Device::Device(DroneCoreImpl &parent, uint8_t target_system_id) -``` - - -**Parameters** - -* DroneCoreImpl & **parent** - -* uint8_t **target_system_id** - - -### ~Device() {#classdronecore_1_1_device_1a65c697e12eed30109074e18a9cfdc836} -```cpp -dronecore::Device::~Device() -``` - - -### Device() {#classdronecore_1_1_device_1acf95b02d5d1d705ce3dc1438786e0c91} -```cpp -dronecore::Device::Device(const Device &)=delete -``` - - -**Parameters** - -* const [Device](classdronecore_1_1_device.md) & - - -## Member Typdef Documentation - - -### typedef mavlink_message_handler_t {#classdronecore_1_1_device_1a1bca06c484ee8a4f18f0371a2a492e7b} - -```cpp -typedef std::function dronecore::Device::mavlink_message_handler_t -``` - - -### typedef command_result_callback_t {#classdronecore_1_1_device_1a6ee9b5b6b3d40554ced23537168d801e} - -```cpp -typedef std::function dronecore::Device::command_result_callback_t -``` - - -### typedef success_t {#classdronecore_1_1_device_1aa90d45a543d894492d30618438e5ced4} - -```cpp -typedef std::function dronecore::Device::success_t -``` - - -### typedef get_param_float_callback_t {#classdronecore_1_1_device_1a8eabc97aec9a0ac69f79df2caabd8687} - -```cpp -typedef std::function dronecore::Device::get_param_float_callback_t -``` - - -### typedef get_param_int_callback_t {#classdronecore_1_1_device_1a38ead6807abd7c8d72a8cf3909b4560d} - -```cpp -typedef std::function dronecore::Device::get_param_int_callback_t -``` - - -## Member Enumeration Documentation - - -### enum FlightMode {#classdronecore_1_1_device_1abe2b638e92f46ad3bdc124429a5929e8} - - -Value | Description ---- | --- - `HOLD` | - `RETURN_TO_LAUNCH` | - `TAKEOFF` | - `LAND` | - `MISSION` | - `FOLLOW_ME` | - `OFFBOARD` | - -## Member Function Documentation - - -### process_mavlink_message() {#classdronecore_1_1_device_1a7324f5f4cc1f7bce40a2e8c237f1212e} -```cpp -void dronecore::Device::process_mavlink_message(const mavlink_message_t &message) -``` - - -**Parameters** - -* const mavlink_message_t & **message** - - -### register_mavlink_message_handler() {#classdronecore_1_1_device_1aa7ae3afa910a2043185e319cfaaa4196} -```cpp -void dronecore::Device::register_mavlink_message_handler(uint16_t msg_id, mavlink_message_handler_t callback, const void *cookie) -``` - - -**Parameters** - -* uint16_t **msg_id** - -* mavlink_message_handler_t **callback** - -* const void * **cookie** - - -### unregister_all_mavlink_message_handlers() {#classdronecore_1_1_device_1a7fd2014818f2e41cc93b6c31d259f21c} -```cpp -void dronecore::Device::unregister_all_mavlink_message_handlers(const void *cookie) -``` - - -**Parameters** - -* const void * **cookie** - - -### register_timeout_handler() {#classdronecore_1_1_device_1afc704e09b8331cdd36341a1ffd331c11} -```cpp -void dronecore::Device::register_timeout_handler(std::function< void()> callback, double duration_s, void **cookie) -``` - - -**Parameters** - -* std::function< void()> **callback** - -* double **duration_s** - -* void ** **cookie** - - -### refresh_timeout_handler() {#classdronecore_1_1_device_1ad7d945426276c079ffc9d173583d1427} -```cpp -void dronecore::Device::refresh_timeout_handler(const void *cookie) -``` - - -**Parameters** - -* const void * **cookie** - - -### unregister_timeout_handler() {#classdronecore_1_1_device_1a95673878b3a69db3817def10310a565d} -```cpp -void dronecore::Device::unregister_timeout_handler(const void *cookie) -``` - - -**Parameters** - -* const void * **cookie** - - -### add_call_every() {#classdronecore_1_1_device_1a466bede03fdf9be31cefb206ef561114} -```cpp -void dronecore::Device::add_call_every(std::function< void()> callback, float interval_s, void **cookie) -``` - - -**Parameters** - -* std::function< void()> **callback** - -* float **interval_s** - -* void ** **cookie** - - -### change_call_every() {#classdronecore_1_1_device_1aed059a1d5a9f2ee4e11963e5d371577c} -```cpp -void dronecore::Device::change_call_every(float interval_s, const void *cookie) -``` - - -**Parameters** - -* float **interval_s** - -* const void * **cookie** - - -### reset_call_every() {#classdronecore_1_1_device_1a38c719f6ccadf6a17e61c47c14cdf234} -```cpp -void dronecore::Device::reset_call_every(const void *cookie) -``` - - -**Parameters** - -* const void * **cookie** - - -### remove_call_every() {#classdronecore_1_1_device_1a5a101b41ec651a6a764a01d3208934e2} -```cpp -void dronecore::Device::remove_call_every(const void *cookie) -``` - - -**Parameters** - -* const void * **cookie** - - -### send_message() {#classdronecore_1_1_device_1a9d09cd1b8b9689080337f7efd9e9d77d} -```cpp -bool dronecore::Device::send_message(const mavlink_message_t &message) -``` - - -**Parameters** - -* const mavlink_message_t & **message** - - -**Returns** - - bool - - -### send_command_with_ack() {#classdronecore_1_1_device_1afcc8c11d47f681c41705d82ee3cd74ea} -```cpp -MavlinkCommands::Result dronecore::Device::send_command_with_ack(uint16_t command, const MavlinkCommands::Params ¶ms, uint8_t component_id=0) -``` - - -**Parameters** - -* uint16_t **command** - -* const MavlinkCommands::Params & **params** - -* uint8_t **component_id** - - -**Returns** - - MavlinkCommands::Result - - -### send_command_with_ack_async() {#classdronecore_1_1_device_1a0ef6cf5c11820fb2ae00bd96f9abd4de} -```cpp -void dronecore::Device::send_command_with_ack_async(uint16_t command, const MavlinkCommands::Params ¶ms, command_result_callback_t callback, uint8_t component_id=0) -``` - - -**Parameters** - -* uint16_t **command** - -* const MavlinkCommands::Params & **params** - -* command_result_callback_t **callback** - -* uint8_t **component_id** - - -### set_msg_rate() {#classdronecore_1_1_device_1af10ca5a146f0129c51566486a20d98ed} -```cpp -MavlinkCommands::Result dronecore::Device::set_msg_rate(uint16_t message_id, double rate_hz, uint8_t component_id=0) -``` - - -**Parameters** - -* uint16_t **message_id** - -* double **rate_hz** - -* uint8_t **component_id** - - -**Returns** - - MavlinkCommands::Result - - -### set_msg_rate_async() {#classdronecore_1_1_device_1ad3af9775d80d5301c19808822da6f9aa} -```cpp -void dronecore::Device::set_msg_rate_async(uint16_t message_id, double rate_hz, command_result_callback_t callback, uint8_t component_id=0) -``` - - -**Parameters** - -* uint16_t **message_id** - -* double **rate_hz** - -* command_result_callback_t **callback** - -* uint8_t **component_id** - - -### request_autopilot_version() {#classdronecore_1_1_device_1abd185340eaad71374b8f8647a5594502} -```cpp -void dronecore::Device::request_autopilot_version() -``` - - -### get_target_uuid() {#classdronecore_1_1_device_1a54bdadb4e8e52c9d159099749c29b7b4} -```cpp -uint64_t dronecore::Device::get_target_uuid() const -``` - - -**Returns** - - uint64_t - - -### get_target_system_id() {#classdronecore_1_1_device_1a55d2b2b871b2435420885b9594ca5b9b} -```cpp -uint8_t dronecore::Device::get_target_system_id() const -``` - - -**Returns** - - uint8_t - - -### get_target_component_id() {#classdronecore_1_1_device_1a41f2b9cf224c09d0c17081620ac201c5} -```cpp -uint8_t dronecore::Device::get_target_component_id() const -``` - - -**Returns** - - uint8_t - - -### set_target_system_id() {#classdronecore_1_1_device_1a01f14b9dffc35b045bbfe76f411c84f8} -```cpp -void dronecore::Device::set_target_system_id(uint8_t system_id) -``` - - -**Parameters** - -* uint8_t **system_id** - - -### target_supports_mission_int() {#classdronecore_1_1_device_1afbe6f90ecace24d8b7081a01be3686c3} -```cpp -bool dronecore::Device::target_supports_mission_int() const -``` - - -**Returns** - - bool - - -### is_armed() {#classdronecore_1_1_device_1ad8b067dc607c3fd7bd86c2961409ce60} -```cpp -bool dronecore::Device::is_armed() const -``` - - -**Returns** - - bool - - -### set_param_float_async() {#classdronecore_1_1_device_1a1b784f4c51451f23cb978b1982ead1bf} -```cpp -void dronecore::Device::set_param_float_async(const std::string &name, float value, success_t callback) -``` - - -**Parameters** - -* const std::string & **name** - -* float **value** - -* success_t **callback** - - -### set_param_int_async() {#classdronecore_1_1_device_1aa8fe748620f9934df97582943b20b372} -```cpp -void dronecore::Device::set_param_int_async(const std::string &name, int32_t value, success_t callback) -``` - - -**Parameters** - -* const std::string & **name** - -* int32_t **value** - -* success_t **callback** - - -### set_param_ext_float_async() {#classdronecore_1_1_device_1a46ca0087cd5135a12a9f163455876fe2} -```cpp -void dronecore::Device::set_param_ext_float_async(const std::string &name, float value, success_t callback) -``` - - -**Parameters** - -* const std::string & **name** - -* float **value** - -* success_t **callback** - - -### set_param_ext_int_async() {#classdronecore_1_1_device_1ab494873b3e6e99706c89c669d867c0bf} -```cpp -void dronecore::Device::set_param_ext_int_async(const std::string &name, int32_t value, success_t callback) -``` - - -**Parameters** - -* const std::string & **name** - -* int32_t **value** - -* success_t **callback** - - -### set_flight_mode() {#classdronecore_1_1_device_1acafac8ecf0801045ad894e80bcd9d9a8} -```cpp -MavlinkCommands::Result dronecore::Device::set_flight_mode(FlightMode mode) -``` - - -**Parameters** - -* FlightMode **mode** - - -**Returns** - - MavlinkCommands::Result - - -### set_flight_mode_async() {#classdronecore_1_1_device_1a56d240c32839524470a8784f5c72e8a0} -```cpp -void dronecore::Device::set_flight_mode_async(FlightMode mode, command_result_callback_t callback) -``` - - -**Parameters** - -* FlightMode **mode** - -* command_result_callback_t **callback** - - -### get_param_float_async() {#classdronecore_1_1_device_1a48dbd54b03ad86c9784dfac75274713f} -```cpp -void dronecore::Device::get_param_float_async(const std::string &name, get_param_float_callback_t callback) -``` - - -**Parameters** - -* const std::string & **name** - -* get_param_float_callback_t **callback** - - -### get_param_int_async() {#classdronecore_1_1_device_1a682a74475e24cac262ac90b18e5dd49a} -```cpp -void dronecore::Device::get_param_int_async(const std::string &name, get_param_int_callback_t callback) -``` - - -**Parameters** - -* const std::string & **name** - -* get_param_int_callback_t **callback** - - -### get_param_ext_float_async() {#classdronecore_1_1_device_1a6050f2993f78689c778cdb4240bb3606} -```cpp -void dronecore::Device::get_param_ext_float_async(const std::string &name, get_param_float_callback_t callback) -``` - - -**Parameters** - -* const std::string & **name** - -* get_param_float_callback_t **callback** - - -### get_param_ext_int_async() {#classdronecore_1_1_device_1a7b4050c8aa12e198d99b23be4f281c7f} -```cpp -void dronecore::Device::get_param_ext_int_async(const std::string &name, get_param_int_callback_t callback) -``` - - -**Parameters** - -* const std::string & **name** - -* get_param_int_callback_t **callback** - - -### is_connected() {#classdronecore_1_1_device_1afac855ffb266017d932c4060140af717} -```cpp -bool dronecore::Device::is_connected() const -``` - - -**Returns** - - bool - - -### get_time() {#classdronecore_1_1_device_1a6009c92dbd4ffd14367ad4ee1d4b3054} -```cpp -Time& dronecore::Device::get_time() -``` - - -**Returns** - - Time & - - -### register_plugin() {#classdronecore_1_1_device_1a7622b2667c5454c490a0d6722f738ec3} -```cpp -void dronecore::Device::register_plugin(PluginImplBase *plugin_impl) -``` - - -**Parameters** - -* PluginImplBase * **plugin_impl** - - -### unregister_plugin() {#classdronecore_1_1_device_1aac00d6ae3d53154900785b882df5edf4} -```cpp -void dronecore::Device::unregister_plugin(PluginImplBase *plugin_impl) -``` - - -**Parameters** - -* PluginImplBase * **plugin_impl** - - -### lock_communication() {#classdronecore_1_1_device_1a15d93e6a12f2208f8fa56466b7f2f819} -```cpp -void dronecore::Device::lock_communication() -``` - - -### unlock_communication() {#classdronecore_1_1_device_1a801aab463023eb3e64670c86349fa54c} -```cpp -void dronecore::Device::unlock_communication() -``` - - -### operator=() {#classdronecore_1_1_device_1ad03d3cdf0aaa8e4cb21becb6c7806c33} -```cpp -const Device& dronecore::Device::operator=(const Device &)=delete -``` - - -**Parameters** - -* const [Device](classdronecore_1_1_device.md) & - - -**Returns** - - const [Device](classdronecore_1_1_device.md) & - - -### get_own_system_id() {#classdronecore_1_1_device_1ab598504aa60a5acf830161daf8eed908} -```cpp -static uint8_t dronecore::Device::get_own_system_id() -``` - - -**Returns** - - uint8_t - - -### get_own_component_id() {#classdronecore_1_1_device_1aa6dc1543b0ae9439a6bacca0dc9c52e6} -```cpp -static uint8_t dronecore::Device::get_own_component_id() -``` - - -**Returns** - - uint8_t - \ No newline at end of file diff --git a/en/api_reference/classdronecore_1_1_drone_core.md b/en/api_reference/classdronecore_1_1_drone_core.md index a919f85..ef6f597 100644 --- a/en/api_reference/classdronecore_1_1_drone_core.md +++ b/en/api_reference/classdronecore_1_1_drone_core.md @@ -31,13 +31,13 @@ Type | Name | Description [ConnectionResult](namespacedronecore.md#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) | [add_udp_connection](#classdronecore_1_1_drone_core_1a7a04fbacf95eb6b21418032c8287dfbb) (int local_port_number=DEFAULT_UDP_PORT) | Adds a UDP connection to the specified port number. [ConnectionResult](namespacedronecore.md#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) | [add_tcp_connection](#classdronecore_1_1_drone_core_1a725640cb53c0d077e753ea2d22717b68) (const std::string & remote_ip=DEFAULT_TCP_REMOTE_IP, int remote_port=DEFAULT_TCP_REMOTE_PORT) | Adds a TCP connection with a specific IP address and port number. [ConnectionResult](namespacedronecore.md#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) | [add_serial_connection](#classdronecore_1_1_drone_core_1abde7ed4d42875dc85c73d34fedab2902) (const std::string & dev_path=DEFAULT_SERIAL_DEV_PATH, int baudrate=DEFAULT_SERIAL_BAUDRATE) | Adds a serial connection with a specific port (COM or UART dev node) and baudrate as specified. -const std::vector< uint64_t > & | [device_uuids](#classdronecore_1_1_drone_core_1a20490717da3893be2c6965b905a7c1db) () const | Get vector of device UUIDs. -[Device](classdronecore_1_1_device.md) & | [device](#classdronecore_1_1_drone_core_1a5bac6e419e56a1f77a51adef98e94e7c) () const | Get the first discovered device. -[Device](classdronecore_1_1_device.md) & | [device](#classdronecore_1_1_drone_core_1a7d18869c8c8f518af78bee313b554a2a) (uint64_t uuid)const | Get the device with the specified UUID. -bool | [is_connected](#classdronecore_1_1_drone_core_1a2adf0c6fc5521fa8f446e048a09f5ec1) () const | Returns `true` if exactly one device is currently connected. -bool | [is_connected](#classdronecore_1_1_drone_core_1a2f78c2263df997d38cf508e327fcde23) (uint64_t uuid)const | Returns `true` if a device is currently connected. -void | [register_on_discover](#classdronecore_1_1_drone_core_1a864ec7349eba67b02b8b3792f6c388f9) ([event_callback_t](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1abb488f975ee7e199cd1cb08a317a52c3) callback) | Register callback for device discovery. -void | [register_on_timeout](#classdronecore_1_1_drone_core_1ad8c0dc0100449d21a46a787c810e8978) ([event_callback_t](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1abb488f975ee7e199cd1cb08a317a52c3) callback) | Register callback for device timeout. +std::vector< uint64_t > | [system_uuids](#classdronecore_1_1_drone_core_1ac9503e701727ffa0293a30a6c8326f10) () const | Get vector of system UUIDs. +[System](classdronecore_1_1_system.md) & | [system](#classdronecore_1_1_drone_core_1ac9b0cdfc518ff036d7edf450153fe941) () const | Get the first discovered system. +[System](classdronecore_1_1_system.md) & | [system](#classdronecore_1_1_drone_core_1ab6082fca008ae58b79e87676336506ac) (uint64_t uuid)const | Get the system with the specified UUID. +bool | [is_connected](#classdronecore_1_1_drone_core_1a2adf0c6fc5521fa8f446e048a09f5ec1) () const | Returns `true` if exactly one system is currently connected. +bool | [is_connected](#classdronecore_1_1_drone_core_1a2f78c2263df997d38cf508e327fcde23) (uint64_t uuid)const | Returns `true` if a system is currently connected. +void | [register_on_discover](#classdronecore_1_1_drone_core_1a864ec7349eba67b02b8b3792f6c388f9) ([event_callback_t](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1abb488f975ee7e199cd1cb08a317a52c3) callback) | Register callback for system discovery. +void | [register_on_timeout](#classdronecore_1_1_drone_core_1ad8c0dc0100449d21a46a787c810e8978) ([event_callback_t](classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1abb488f975ee7e199cd1cb08a317a52c3) callback) | Register callback for system timeout. ## Static Public Attributes @@ -97,7 +97,7 @@ Callback type for discover and timeout notifications. **Parameters** -* **uuid** - UUID of device (or MAVLink system ID for devices that don't have a UUID). +* **uuid** - UUID of system (or MAVLink system ID for systems that don't have a UUID). ## Member Function Documentation @@ -125,7 +125,7 @@ Default URL : udp://:14540. **Parameters** -* const std::string & **connection_url** - connection URL string. +* const std::string& **connection_url** - connection URL string. **Returns** @@ -159,7 +159,7 @@ Adds a TCP connection with a specific IP address and port number. **Parameters** -* const std::string & **remote_ip** - Remote IP address to connect to (defaults to 127.0.0.1). +* const std::string& **remote_ip** - Remote IP address to connect to (defaults to 127.0.0.1). * int **remote_port** - The TCP port to connect to (defaults to 5760). **Returns** @@ -177,58 +177,58 @@ Adds a serial connection with a specific port (COM or UART dev node) and baudrat **Parameters** -* const std::string & **dev_path** - COM or UART dev node name/path (defaults to "/dev/ttyS0"). +* const std::string& **dev_path** - COM or UART dev node name/path (defaults to "/dev/ttyS0"). * int **baudrate** - Baudrate of the serial port (defaults to 57600). **Returns**  [ConnectionResult](namespacedronecore.md#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) - The result of adding the connection. -### device_uuids() {#classdronecore_1_1_drone_core_1a20490717da3893be2c6965b905a7c1db} +### system_uuids() {#classdronecore_1_1_drone_core_1ac9503e701727ffa0293a30a6c8326f10} ```cpp -const std::vector& dronecore::DroneCore::device_uuids() const +std::vector dronecore::DroneCore::system_uuids() const ``` -Get vector of device UUIDs. +Get vector of system UUIDs. -This returns a vector of the UUIDs of all devices that have been discovered. If a device doesn't have a UUID then [DroneCore](classdronecore_1_1_drone_core.md) will instead use its MAVLink system ID (range: 0..255). +This returns a vector of the UUIDs of all systems that have been discovered. If a system doesn't have a UUID then [DroneCore](classdronecore_1_1_drone_core.md) will instead use its MAVLink system ID (range: 0..255). **Returns** - const std::vector< uint64_t > & - A reference to the vector containing the UUIDs. + std::vector< uint64_t > - A vector containing the UUIDs. -### device() {#classdronecore_1_1_drone_core_1a5bac6e419e56a1f77a51adef98e94e7c} +### system() {#classdronecore_1_1_drone_core_1ac9b0cdfc518ff036d7edf450153fe941} ```cpp -Device& dronecore::DroneCore::device() const +System& dronecore::DroneCore::system() const ``` -Get the first discovered device. +Get the first discovered system. -This returns the first discovered device or a null device if no device has yet been found. +This returns the first discovered system or a null system if no system has yet been found. **Returns** - [Device](classdronecore_1_1_device.md) & - A reference to a device. + [System](classdronecore_1_1_system.md) & - A reference to a system. -### device() {#classdronecore_1_1_drone_core_1a7d18869c8c8f518af78bee313b554a2a} +### system() {#classdronecore_1_1_drone_core_1ab6082fca008ae58b79e87676336506ac} ```cpp -Device& dronecore::DroneCore::device(uint64_t uuid) const +System& dronecore::DroneCore::system(uint64_t uuid) const ``` -Get the device with the specified UUID. +Get the system with the specified UUID. -This returns a device for a given UUID if such a device has been discovered and a null device otherwise. +This returns a system for a given UUID if such a system has been discovered and a null system otherwise. **Parameters** -* uint64_t **uuid** - UUID of device to get. +* uint64_t **uuid** - UUID of system to get. **Returns** - [Device](classdronecore_1_1_device.md) & - A reference to the specified device. + [System](classdronecore_1_1_system.md) & - A reference to the specified system. ### is_connected() {#classdronecore_1_1_drone_core_1a2adf0c6fc5521fa8f446e048a09f5ec1} ```cpp @@ -236,16 +236,16 @@ bool dronecore::DroneCore::is_connected() const ``` -Returns `true` if exactly one device is currently connected. +Returns `true` if exactly one system is currently connected. -Connected means we are receiving heartbeats from this device. It means the same as "discovered" and "not timed out". +Connected means we are receiving heartbeats from this system. It means the same as "discovered" and "not timed out". -If multiple devices have connected, this will return `false`. +If multiple systems have connected, this will return `false`. **Returns** - bool - `true` if exactly one device is connected. + bool - `true` if exactly one system is connected. ### is_connected() {#classdronecore_1_1_drone_core_1a2f78c2263df997d38cf508e327fcde23} ```cpp @@ -253,17 +253,17 @@ bool dronecore::DroneCore::is_connected(uint64_t uuid) const ``` -Returns `true` if a device is currently connected. +Returns `true` if a system is currently connected. -Connected means we are receiving heartbeats from this device. It means the same as "discovered" and "not timed out". +Connected means we are receiving heartbeats from this system. It means the same as "discovered" and "not timed out". **Parameters** -* uint64_t **uuid** - UUID of device to check. +* uint64_t **uuid** - UUID of system to check. **Returns** - bool - `true` if device is connected. + bool - `true` if system is connected. ### register_on_discover() {#classdronecore_1_1_drone_core_1a864ec7349eba67b02b8b3792f6c388f9} ```cpp @@ -271,9 +271,9 @@ void dronecore::DroneCore::register_on_discover(event_callback_t callback) ``` -Register callback for device discovery. +Register callback for system discovery. -This sets a callback that will be notified if a new device is discovered. +This sets a callback that will be notified if a new system is discovered. **Note** Only one callback can be registered at a time. If this function is called several times, previous callbacks will be overwritten. @@ -288,9 +288,9 @@ void dronecore::DroneCore::register_on_timeout(event_callback_t callback) ``` -Register callback for device timeout. +Register callback for system timeout. -This sets a callback that will be notified if no heartbeat of the device has been received in 3 seconds. +This sets a callback that will be notified if no heartbeat of the system has been received in 3 seconds. **Note** Only one callback can be registered at a time. If this function is called several times, previous callbacks will be overwritten. diff --git a/en/api_reference/classdronecore_1_1_follow_me.md b/en/api_reference/classdronecore_1_1_follow_me.md index 3d2cc7f..16b5b18 100644 --- a/en/api_reference/classdronecore_1_1_follow_me.md +++ b/en/api_reference/classdronecore_1_1_follow_me.md @@ -33,11 +33,11 @@ enum [Result](#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) Type | Name | Description ---: | --- | --- -  | [FollowMe](#classdronecore_1_1_follow_me_1aaaefbf5098c8a1ca69df2a170e700da0) ([Device](classdronecore_1_1_device.md) & device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [FollowMe](#classdronecore_1_1_follow_me_1a6a830b5927b42d1a244f84eac01cd485) ([System](classdronecore_1_1_system.md) & system) | Constructor. Creates the plugin for a specific [System](classdronecore_1_1_system.md).   | [~FollowMe](#classdronecore_1_1_follow_me_1a66ffe3c9652bc08a2766f211592316ac) () | Destructor (internal use only).   | [FollowMe](#classdronecore_1_1_follow_me_1a54589c314eeba131aca1c4c56d4b15e3) (const [FollowMe](classdronecore_1_1_follow_me.md) &)=delete | Copy constructor (object is not copyable). const [Config](structdronecore_1_1_follow_me_1_1_config.md) & | [get_config](#classdronecore_1_1_follow_me_1a054aebafe0839a1028f277285b769fe5) () const | Gets current [FollowMe](classdronecore_1_1_follow_me.md) configuration. -[Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) | [set_config](#classdronecore_1_1_follow_me_1aedf746d4a0eebdaaddc3d1ba0aeb6720) (const [Config](structdronecore_1_1_follow_me_1_1_config.md) & config) | Applies [FollowMe](classdronecore_1_1_follow_me.md) configuration by sending it to device. +[Result](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1aee7e30070ac95bc63b68c10bd7253b02) | [set_config](#classdronecore_1_1_follow_me_1aedf746d4a0eebdaaddc3d1ba0aeb6720) (const [Config](structdronecore_1_1_follow_me_1_1_config.md) & config) | Applies [FollowMe](classdronecore_1_1_follow_me.md) configuration by sending it to system. bool | [is_active](#classdronecore_1_1_follow_me_1a467349820ac5f42cc388228c399a93ef) () const | Checks whether [FollowMe](classdronecore_1_1_follow_me.md) is active. void | [set_target_location](#classdronecore_1_1_follow_me_1a1220596b8bb51d2ca52248a92e300ad5) (const [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & location) | Sets location of the moving target. const [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & | [get_last_location](#classdronecore_1_1_follow_me_1a16da2bf7d0384e2bff4440600b523f8c) () const | Returns the last location of the target. @@ -56,23 +56,23 @@ std::string | [result_str](#classdronecore_1_1_follow_me_1a50d848b1c7b00e40343b8 ## Constructor & Destructor Documentation -### FollowMe() {#classdronecore_1_1_follow_me_1aaaefbf5098c8a1ca69df2a170e700da0} +### FollowMe() {#classdronecore_1_1_follow_me_1a6a830b5927b42d1a244f84eac01cd485} ```cpp -dronecore::FollowMe::FollowMe(Device &device) +dronecore::FollowMe::FollowMe(System &system) ``` -Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +Constructor. Creates the plugin for a specific [System](classdronecore_1_1_system.md). The plugin is typically created as shown below: ```cpp -auto follow_me = std::make_shared(device); +auto follow_me = std::make_shared(system); ``` **Parameters** -* [Device](classdronecore_1_1_device.md) & **device** - The specific device associated with this plugin. +* [System](classdronecore_1_1_system.md)& **system** - The specific system associated with this plugin. ### ~FollowMe() {#classdronecore_1_1_follow_me_1a66ffe3c9652bc08a2766f211592316ac} ```cpp @@ -94,7 +94,7 @@ Copy constructor (object is not copyable). **Parameters** -* const [FollowMe](classdronecore_1_1_follow_me.md) & - +* const [FollowMe](classdronecore_1_1_follow_me.md)& - ## Member Enumeration Documentation @@ -108,7 +108,7 @@ Results of [FollowMe](classdronecore_1_1_follow_me.md) operations. Value | Description --- | --- `SUCCESS` | Request succeeded. - `NO_DEVICE` | No device connected. + `NO_SYSTEM` | No system connected. `CONNECTION_ERROR` | Connection error. `BUSY` | Vehicle busy. `COMMAND_DENIED` | Command denied. @@ -147,12 +147,12 @@ Result dronecore::FollowMe::set_config(const Config &config) ``` -Applies [FollowMe](classdronecore_1_1_follow_me.md) configuration by sending it to device. +Applies [FollowMe](classdronecore_1_1_follow_me.md) configuration by sending it to system. **Parameters** -* const [Config](structdronecore_1_1_follow_me_1_1_config.md) & **config** - [FollowMe](classdronecore_1_1_follow_me.md) configuration to be applied. +* const [Config](structdronecore_1_1_follow_me_1_1_config.md)& **config** - [FollowMe](classdronecore_1_1_follow_me.md) configuration to be applied. **Returns** @@ -198,7 +198,7 @@ The following links provide information about location services on different pla **Parameters** -* const [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md) & **location** - Location of the moving target. +* const [TargetLocation](structdronecore_1_1_follow_me_1_1_target_location.md)& **location** - Location of the moving target. **See Also:** - [get_last_location()](classdronecore_1_1_follow_me.md#classdronecore_1_1_follow_me_1a16da2bf7d0384e2bff4440600b523f8c) @@ -258,7 +258,7 @@ Equality operator (object is not copyable). **Parameters** -* const [FollowMe](classdronecore_1_1_follow_me.md) & - +* const [FollowMe](classdronecore_1_1_follow_me.md)& - **Returns** diff --git a/en/api_reference/classdronecore_1_1_gimbal.md b/en/api_reference/classdronecore_1_1_gimbal.md index 6ab2535..902b543 100644 --- a/en/api_reference/classdronecore_1_1_gimbal.md +++ b/en/api_reference/classdronecore_1_1_gimbal.md @@ -23,11 +23,13 @@ std::function< void([Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gim Type | Name | Description ---: | --- | --- -  | [Gimbal](#classdronecore_1_1_gimbal_1a492027a19998e9c37eff4e29864a96c9) ([Device](classdronecore_1_1_device.md) & device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [Gimbal](#classdronecore_1_1_gimbal_1a70cd26205293e850839410de35d8a344) ([System](classdronecore_1_1_system.md) & system) | Constructor. Creates the plugin for a specific [System](classdronecore_1_1_system.md).   | [~Gimbal](#classdronecore_1_1_gimbal_1a4f8b2a6cf5a7347a474f8e47618ad838) () | Destructor (internal use only).   | [Gimbal](#classdronecore_1_1_gimbal_1a82637c62da14ae39db96724d4273cad4) (const [Gimbal](classdronecore_1_1_gimbal.md) &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a2404686489b502fbc58e940701ba1e6f) | [set_pitch_and_yaw](#classdronecore_1_1_gimbal_1ac8ac49d29f11b2107da6b043bb57b54e) (float pitch_deg, float yaw_deg) | Set gimbal pitch and yaw angles (synchronous). void | [set_pitch_and_yaw_async](#classdronecore_1_1_gimbal_1a3aea07049f32f8bc5b2edaee8cb2ac16) (float pitch_deg, float yaw_deg, [result_callback_t](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a309448760ba62635fce7139be44788ff) callback) | Set gimbal pitch and yaw angles (asynchronous). +[Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a2404686489b502fbc58e940701ba1e6f) | [set_roi_location](#classdronecore_1_1_gimbal_1a344449a99f7938a4053b6fcf8c3b4f67) (double latitude_deg, double longitude_deg, float altitude_m) | Set gimbal region of interest (ROI). +void | [set_roi_location_async](#classdronecore_1_1_gimbal_1ae6c0f05951fd4c85bbd5a50b6c9c8e21) (double latitude_deg, double longitude_deg, float altitude_m, [result_callback_t](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a309448760ba62635fce7139be44788ff) callback) | Set gimbal region of interest (ROI) (asynchronous). const [Gimbal](classdronecore_1_1_gimbal.md) & | [operator=](#classdronecore_1_1_gimbal_1ad15551254ea56674c576bbcbec6e7eac) (const [Gimbal](classdronecore_1_1_gimbal.md) &)=delete | Equality operator (object is not copyable). ## Static Public Member Functions @@ -41,23 +43,23 @@ const char * | [result_str](#classdronecore_1_1_gimbal_1ad60c5378cc7d160be67432f ## Constructor & Destructor Documentation -### Gimbal() {#classdronecore_1_1_gimbal_1a492027a19998e9c37eff4e29864a96c9} +### Gimbal() {#classdronecore_1_1_gimbal_1a70cd26205293e850839410de35d8a344} ```cpp -dronecore::Gimbal::Gimbal(Device &device) +dronecore::Gimbal::Gimbal(System &system) ``` -Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +Constructor. Creates the plugin for a specific [System](classdronecore_1_1_system.md). The plugin is typically created as shown below: ```cpp -auto gimbal = std::make_shared(device); +auto gimbal = std::make_shared(system); ``` **Parameters** -* [Device](classdronecore_1_1_device.md) & **device** - The specific device associated with this plugin. +* [System](classdronecore_1_1_system.md)& **system** - The specific system associated with this plugin. ### ~Gimbal() {#classdronecore_1_1_gimbal_1a4f8b2a6cf5a7347a474f8e47618ad838} ```cpp @@ -79,7 +81,7 @@ Copy constructor (object is not copyable). **Parameters** -* const [Gimbal](classdronecore_1_1_gimbal.md) & - +* const [Gimbal](classdronecore_1_1_gimbal.md)& - ## Member Typdef Documentation @@ -148,6 +150,43 @@ This sets the desired pitch and yaw angles of a gimbal. The callback will be cal * float **yaw_deg** - The yaw angle in degrees. Positive for clock-wise, range -180..180 or 0..360. * [result_callback_t](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a309448760ba62635fce7139be44788ff) **callback** - Function to call with result of request. +### set_roi_location() {#classdronecore_1_1_gimbal_1a344449a99f7938a4053b6fcf8c3b4f67} +```cpp +Result dronecore::Gimbal::set_roi_location(double latitude_deg, double longitude_deg, float altitude_m) +``` + + +Set gimbal region of interest (ROI). + +This sets a region of interest that the gimbal will point to. The gimbal will continue to point to the specified region until it receives a new command. The function will return when the command is accepted, however, it might take the gimbal longer to actually rotate to the ROI. + +**Parameters** + +* double **latitude_deg** - Latitude in degrees. +* double **longitude_deg** - Longitude in degrees. +* float **altitude_m** - Altitude in meters (ASML). + +**Returns** + + [Result](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a2404686489b502fbc58e940701ba1e6f) - Result of request. + +### set_roi_location_async() {#classdronecore_1_1_gimbal_1ae6c0f05951fd4c85bbd5a50b6c9c8e21} +```cpp +void dronecore::Gimbal::set_roi_location_async(double latitude_deg, double longitude_deg, float altitude_m, result_callback_t callback) +``` + + +Set gimbal region of interest (ROI) (asynchronous). + +This sets a region of interest that the gimbal will point to. The gimbal will continue to point to the specified region until it receives a new command. The callback will be called when the command is accepted, however, it might take the gimbal longer to actually be set to the new angles. + +**Parameters** + +* double **latitude_deg** - Latitude in degrees. +* double **longitude_deg** - Longitude in degrees. +* float **altitude_m** - Altitude in meters (ASML). +* [result_callback_t](classdronecore_1_1_gimbal.md#classdronecore_1_1_gimbal_1a309448760ba62635fce7139be44788ff) **callback** - Function to call with result of request. + ### operator=() {#classdronecore_1_1_gimbal_1ad15551254ea56674c576bbcbec6e7eac} ```cpp const Gimbal& dronecore::Gimbal::operator=(const Gimbal &)=delete @@ -159,7 +198,7 @@ Equality operator (object is not copyable). **Parameters** -* const [Gimbal](classdronecore_1_1_gimbal.md) & - +* const [Gimbal](classdronecore_1_1_gimbal.md)& - **Returns** diff --git a/en/api_reference/classdronecore_1_1_info.md b/en/api_reference/classdronecore_1_1_info.md index 9c51fbe..001d89d 100644 --- a/en/api_reference/classdronecore_1_1_info.md +++ b/en/api_reference/classdronecore_1_1_info.md @@ -4,7 +4,7 @@ ---- -The [Info](classdronecore_1_1_info.md) class provides basic infomation about the hardware and/or software of a device. +The [Info](classdronecore_1_1_info.md) class provides basic infomation about the hardware and/or software of a system. ## Data Structures @@ -19,13 +19,13 @@ struct [Version](structdronecore_1_1_info_1_1_version.md) Type | Name | Description ---: | --- | --- -  | [Info](#classdronecore_1_1_info_1a6254a480305e5979c3aaa51b9378b98d) ([Device](classdronecore_1_1_device.md) & device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [Info](#classdronecore_1_1_info_1aca2b1b6ca1b8ca0c5ee91d1a3f531fc5) ([System](classdronecore_1_1_system.md) & system) | Constructor. Creates the plugin for a specific [System](classdronecore_1_1_system.md).   | [~Info](#classdronecore_1_1_info_1a39e608070500b5fca0b4415cdb13f75f) () | Destructor (internal use only).   | [Info](#classdronecore_1_1_info_1af0902805d75577d1195363eda21d7bb1) (const [Info](classdronecore_1_1_info.md) &)=delete | Copy Constructor (object is not copyable). -uint64_t | [uuid](#classdronecore_1_1_info_1a49c7dd5f1a369c8296f0c3a2443bc031) () const | Gets the UUID of the device. +uint64_t | [uuid](#classdronecore_1_1_info_1a49c7dd5f1a369c8296f0c3a2443bc031) () const | Gets the UUID of the system. bool | [is_complete](#classdronecore_1_1_info_1a088438b73c715fb20c02792fed1815f7) () const | Tests if the [Version](structdronecore_1_1_info_1_1_version.md) and [Product](structdronecore_1_1_info_1_1_product.md) objects are fully populated from hardware. -[Version](structdronecore_1_1_info_1_1_version.md) | [get_version](#classdronecore_1_1_info_1a6e41fae8c6ad352e70b1e93b4a1589f9) () const | Get device version information. -[Product](structdronecore_1_1_info_1_1_product.md) | [get_product](#classdronecore_1_1_info_1adb7999bf9e92f95e3dfa5eaea216807a) () const | Get device product information. +[Version](structdronecore_1_1_info_1_1_version.md) | [get_version](#classdronecore_1_1_info_1a6e41fae8c6ad352e70b1e93b4a1589f9) () const | Get system version information. +[Product](structdronecore_1_1_info_1_1_product.md) | [get_product](#classdronecore_1_1_info_1adb7999bf9e92f95e3dfa5eaea216807a) () const | Get system product information. const [Info](classdronecore_1_1_info.md) & | [operator=](#classdronecore_1_1_info_1ac82758b486f00562e193a89e3dbff6d3) (const [Info](classdronecore_1_1_info.md) &)=delete | Equality operator (object is not copyable). ## Static Public Attributes @@ -37,23 +37,23 @@ static const unsigned [GIT_HASH_STR_LEN](#classdronecore_1_1_info_1aae671143f80e ## Constructor & Destructor Documentation -### Info() {#classdronecore_1_1_info_1a6254a480305e5979c3aaa51b9378b98d} +### Info() {#classdronecore_1_1_info_1aca2b1b6ca1b8ca0c5ee91d1a3f531fc5} ```cpp -dronecore::Info::Info(Device &device) +dronecore::Info::Info(System &system) ``` -Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +Constructor. Creates the plugin for a specific [System](classdronecore_1_1_system.md). The plugin is typically created as shown below: ```cpp -auto info = std::make_shared(device); +auto info = std::make_shared(system); ``` **Parameters** -* [Device](classdronecore_1_1_device.md) & **device** - The specific device associated with this plugin. +* [System](classdronecore_1_1_system.md)& **system** - The specific system associated with this plugin. ### ~Info() {#classdronecore_1_1_info_1a39e608070500b5fca0b4415cdb13f75f} ```cpp @@ -75,7 +75,7 @@ Copy Constructor (object is not copyable). **Parameters** -* const [Info](classdronecore_1_1_info.md) & - +* const [Info](classdronecore_1_1_info.md)& - ## Member Function Documentation @@ -86,13 +86,13 @@ uint64_t dronecore::Info::uuid() const ``` -Gets the UUID of the device. +Gets the UUID of the system. If possible this will be a unique identifier provided by hardware. **Returns** - uint64_t - The UUID of the device. + uint64_t - The UUID of the system. ### is_complete() {#classdronecore_1_1_info_1a088438b73c715fb20c02792fed1815f7} ```cpp @@ -105,7 +105,7 @@ Tests if the [Version](structdronecore_1_1_info_1_1_version.md) and [Product](st **Returns** - bool - `true` if [Version](structdronecore_1_1_info_1_1_version.md) and [Product](structdronecore_1_1_info_1_1_product.md) objects are fully populated from device. + bool - `true` if [Version](structdronecore_1_1_info_1_1_version.md) and [Product](structdronecore_1_1_info_1_1_product.md) objects are fully populated from system. ### get_version() {#classdronecore_1_1_info_1a6e41fae8c6ad352e70b1e93b4a1589f9} ```cpp @@ -113,12 +113,12 @@ Version dronecore::Info::get_version() const ``` -Get device version information. +Get system version information. **Returns** - [Version](structdronecore_1_1_info_1_1_version.md) - The version object for the device. + [Version](structdronecore_1_1_info_1_1_version.md) - The version object for the system. ### get_product() {#classdronecore_1_1_info_1adb7999bf9e92f95e3dfa5eaea216807a} ```cpp @@ -126,12 +126,12 @@ Product dronecore::Info::get_product() const ``` -Get device product information. +Get system product information. **Returns** - [Product](structdronecore_1_1_info_1_1_product.md) - The product object for the device. + [Product](structdronecore_1_1_info_1_1_product.md) - The product object for the system. ### operator=() {#classdronecore_1_1_info_1ac82758b486f00562e193a89e3dbff6d3} ```cpp @@ -144,7 +144,7 @@ Equality operator (object is not copyable). **Parameters** -* const [Info](classdronecore_1_1_info.md) & - +* const [Info](classdronecore_1_1_info.md)& - **Returns** diff --git a/en/api_reference/classdronecore_1_1_logging.md b/en/api_reference/classdronecore_1_1_logging.md index d513a0f..0dd21c5 100644 --- a/en/api_reference/classdronecore_1_1_logging.md +++ b/en/api_reference/classdronecore_1_1_logging.md @@ -23,7 +23,7 @@ std::function< void([Result](classdronecore_1_1_logging.md#classdronecore_1_1_lo Type | Name | Description ---: | --- | --- -  | [Logging](#classdronecore_1_1_logging_1ace064c190f8808bb23b1c830eae7a712) ([Device](classdronecore_1_1_device.md) & device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [Logging](#classdronecore_1_1_logging_1a5de2fef7e3672df617ce79ed1bae05b8) ([System](classdronecore_1_1_system.md) & system) | Constructor. Creates the plugin for a specific [System](classdronecore_1_1_system.md).   | [~Logging](#classdronecore_1_1_logging_1a49e75d77f900ba5ef59a960ae9b8dc55) () | Destructor (internal use only).   | [Logging](#classdronecore_1_1_logging_1a62a17eb90e3ec9253f1b40e94d3c1fd7) (const [Logging](classdronecore_1_1_logging.md) &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_logging.md#classdronecore_1_1_logging_1ab11e242369717d9510de1ab93bfad086) | [start_logging](#classdronecore_1_1_logging_1a4684d8226742b575fce423c9ce758fc0) () const | Start logging (synchronous). @@ -43,23 +43,23 @@ const char * | [result_str](#classdronecore_1_1_logging_1adc5a7560f1a27996fc05f2 ## Constructor & Destructor Documentation -### Logging() {#classdronecore_1_1_logging_1ace064c190f8808bb23b1c830eae7a712} +### Logging() {#classdronecore_1_1_logging_1a5de2fef7e3672df617ce79ed1bae05b8} ```cpp -dronecore::Logging::Logging(Device &device) +dronecore::Logging::Logging(System &system) ``` -Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +Constructor. Creates the plugin for a specific [System](classdronecore_1_1_system.md). The plugin is typically created as shown below: ```cpp -auto logging = std::make_shared(device); +auto logging = std::make_shared(system); ``` **Parameters** -* [Device](classdronecore_1_1_device.md) & **device** - The specific device associated with this plugin. +* [System](classdronecore_1_1_system.md)& **system** - The specific system associated with this plugin. ### ~Logging() {#classdronecore_1_1_logging_1a49e75d77f900ba5ef59a960ae9b8dc55} ```cpp @@ -81,7 +81,7 @@ Copy constructor (object is not copyable). **Parameters** -* const [Logging](classdronecore_1_1_logging.md) & - +* const [Logging](classdronecore_1_1_logging.md)& - ## Member Typdef Documentation @@ -108,9 +108,9 @@ Results for logging requests. Value | Description --- | --- `SUCCESS` | Request succeeded. - `NO_DEVICE` | No device connected. + `NO_SYSTEM` | No system connected. `CONNECTION_ERROR` | Connection error. - `BUSY` | Device busy. + `BUSY` | System busy. `COMMAND_DENIED` | Command denied. `TIMEOUT` | Timeout. `UNKNOWN` | Unknown error. @@ -185,7 +185,7 @@ Equality operator (object is not copyable). **Parameters** -* const [Logging](classdronecore_1_1_logging.md) & - +* const [Logging](classdronecore_1_1_logging.md)& - **Returns** diff --git a/en/api_reference/classdronecore_1_1_mission.md b/en/api_reference/classdronecore_1_1_mission.md index c697fbb..d8e0c84 100644 --- a/en/api_reference/classdronecore_1_1_mission.md +++ b/en/api_reference/classdronecore_1_1_mission.md @@ -23,11 +23,11 @@ std::function< void(int current, int total)> [progress_callback_t](#classdroneco Type | Name | Description ---: | --- | --- -  | [Mission](#classdronecore_1_1_mission_1a8af8e71979b15c73ced7fa2d5a6f6894) ([Device](classdronecore_1_1_device.md) & device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [Mission](#classdronecore_1_1_mission_1a6cd5e06174e78ef8cddc59421303bec4) ([System](classdronecore_1_1_system.md) & system) | Constructor. Creates the plugin for a specific [System](classdronecore_1_1_system.md).   | [~Mission](#classdronecore_1_1_mission_1a395b8c121630aa8a5dd3d48f95290659) () | Destructor (internal use only).   | [Mission](#classdronecore_1_1_mission_1a4947f79b7dd71e66bca64e5bbb0b3377) (const [Mission](classdronecore_1_1_mission.md) &)=delete | Copy constructor (object is not copyable). -void | [upload_mission_async](#classdronecore_1_1_mission_1a414b5b6d0c66af695a725e92003872b5) (const std::vector< std::shared_ptr< [MissionItem](classdronecore_1_1_mission_item.md) >> & mission_items, [result_callback_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a239f8d5853785d6ccf90c8c48b5ccf06) callback) | Uploads a vector of mission items to the device (asynchronous). -void | [download_mission_async](#classdronecore_1_1_mission_1a1bd15f508fe7da39b587a8e4d5e59ae2) ([mission_items_and_result_callback_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a7cb36c0356a867e90f3c4c764d424d32) callback) | Downloads a vector of mission items from the device (asynchronous). +void | [upload_mission_async](#classdronecore_1_1_mission_1a414b5b6d0c66af695a725e92003872b5) (const std::vector< std::shared_ptr< [MissionItem](classdronecore_1_1_mission_item.md) >> & mission_items, [result_callback_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a239f8d5853785d6ccf90c8c48b5ccf06) callback) | Uploads a vector of mission items to the system (asynchronous). +void | [download_mission_async](#classdronecore_1_1_mission_1a1bd15f508fe7da39b587a8e4d5e59ae2) ([mission_items_and_result_callback_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a7cb36c0356a867e90f3c4c764d424d32) callback) | Downloads a vector of mission items from the system (asynchronous). void | [start_mission_async](#classdronecore_1_1_mission_1a9e032c6b2bc35cf6e7e19e07747fb0d3) ([result_callback_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a239f8d5853785d6ccf90c8c48b5ccf06) callback) | Starts the mission (asynchronous). void | [pause_mission_async](#classdronecore_1_1_mission_1a65f729cf954586507ecd8dc07a510dd1) ([result_callback_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a239f8d5853785d6ccf90c8c48b5ccf06) callback) | Pauses the mission (asynchronous). void | [set_current_mission_item_async](#classdronecore_1_1_mission_1af8d06941d424d57bcc2b55f8f9a2ea27) (int current, [result_callback_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a239f8d5853785d6ccf90c8c48b5ccf06) callback) | Sets the mission item index to go to (asynchronous). @@ -49,23 +49,23 @@ const char * | [result_str](#classdronecore_1_1_mission_1a0eabb2fe4db664c552d281 ## Constructor & Destructor Documentation -### Mission() {#classdronecore_1_1_mission_1a8af8e71979b15c73ced7fa2d5a6f6894} +### Mission() {#classdronecore_1_1_mission_1a6cd5e06174e78ef8cddc59421303bec4} ```cpp -dronecore::Mission::Mission(Device &device) +dronecore::Mission::Mission(System &system) ``` -Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +Constructor. Creates the plugin for a specific [System](classdronecore_1_1_system.md). The plugin is typically created as shown below: ```cpp -auto mission = std::make_shared(device); +auto mission = std::make_shared(system); ``` **Parameters** -* [Device](classdronecore_1_1_device.md) & **device** - The specific device associated with this plugin. +* [System](classdronecore_1_1_system.md)& **system** - The specific system associated with this plugin. ### ~Mission() {#classdronecore_1_1_mission_1a395b8c121630aa8a5dd3d48f95290659} ```cpp @@ -87,7 +87,7 @@ Copy constructor (object is not copyable). **Parameters** -* const [Mission](classdronecore_1_1_mission.md) & - +* const [Mission](classdronecore_1_1_mission.md)& - ## Member Typdef Documentation @@ -149,18 +149,18 @@ Possible results returned for mission requests. Value | Description --- | --- + `UNKNOWN` | Unknown error. `SUCCESS` | Request succeeded. `ERROR` | Error. `TOO_MANY_MISSION_ITEMS` | Too many [MissionItem](classdronecore_1_1_mission_item.md) objects in the mission. `BUSY` | Vehicle busy. `TIMEOUT` | Request timed out. `INVALID_ARGUMENT` | Invalid argument. - `UNSUPPORTED` | The mission downloaded from the device is not supported. - `NO_MISSION_AVAILABLE` | No mission available on device. + `UNSUPPORTED` | The mission downloaded from the system is not supported. + `NO_MISSION_AVAILABLE` | No mission available on system. `FAILED_TO_OPEN_QGC_PLAN` | Failed to open QGroundControl plan. `FAILED_TO_PARSE_QGC_PLAN` | Failed to parse QGroundControl plan. `UNSUPPORTED_MISSION_CMD` | Unsupported mission command. - `UNKNOWN` | Unknown error. ## Member Function Documentation @@ -171,13 +171,13 @@ void dronecore::Mission::upload_mission_async(const std::vector< std::shared_ptr ``` -Uploads a vector of mission items to the device (asynchronous). +Uploads a vector of mission items to the system (asynchronous). The mission items are uploaded to a drone. Once uploaded the mission can be started and executed even if a connection is lost. **Parameters** -* const std::vector< std::shared_ptr< [MissionItem](classdronecore_1_1_mission_item.md) >> & **mission_items** - Reference to vector of mission items. +* const std::vector< std::shared_ptr< [MissionItem](classdronecore_1_1_mission_item.md) >>& **mission_items** - Reference to vector of mission items. * [result_callback_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1a239f8d5853785d6ccf90c8c48b5ccf06) **callback** - Callback to receive result of this request. ### download_mission_async() {#classdronecore_1_1_mission_1a1bd15f508fe7da39b587a8e4d5e59ae2} @@ -186,7 +186,7 @@ void dronecore::Mission::download_mission_async(mission_items_and_result_callbac ``` -Downloads a vector of mission items from the device (asynchronous). +Downloads a vector of mission items from the system (asynchronous). The method will fail if any of the downloaded mission items are not supported by the [DroneCore](classdronecore_1_1_drone_core.md) API. @@ -304,7 +304,7 @@ Equality operator (object is not copyable). **Parameters** -* const [Mission](classdronecore_1_1_mission.md) & - +* const [Mission](classdronecore_1_1_mission.md)& - **Returns** @@ -339,8 +339,8 @@ The method composes the plan into a vector of [MissionItem](classdronecore_1_1_m **Parameters** -* [mission_items_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1aeedbc1d50fec7304f0d140ce9748a5e2) & **mission_items** - Vector of mission items imported from QGC plan. -* const std::string & **qgc_plan_file** - File path of the QGC plan. +* [mission_items_t](classdronecore_1_1_mission.md#classdronecore_1_1_mission_1aeedbc1d50fec7304f0d140ce9748a5e2)& **mission_items** - Vector of mission items imported from QGC plan. +* const std::string& **qgc_plan_file** - File path of the QGC plan. **Returns** diff --git a/en/api_reference/classdronecore_1_1_mission_item.md b/en/api_reference/classdronecore_1_1_mission_item.md index 16d5d55..4806198 100644 --- a/en/api_reference/classdronecore_1_1_mission_item.md +++ b/en/api_reference/classdronecore_1_1_mission_item.md @@ -7,7 +7,7 @@ A mission is a vector of [MissionItem](classdronecore_1_1_mission_item.md)s. -Each [MissionItem](classdronecore_1_1_mission_item.md) can contain a position and/or actions. [Mission](classdronecore_1_1_mission.md) items are just building blocks to assemble a mission, which can be sent to (or received from) a device. They cannot be used independently. +Each [MissionItem](classdronecore_1_1_mission_item.md) can contain a position and/or actions. [Mission](classdronecore_1_1_mission.md) items are just building blocks to assemble a mission, which can be sent to (or received from) a system. They cannot be used independently. ## Public Types @@ -84,7 +84,7 @@ Copy constructor (object is not copyable). **Parameters** -* const [MissionItem](classdronecore_1_1_mission_item.md) & - +* const [MissionItem](classdronecore_1_1_mission_item.md)& - ## Member Enumeration Documentation @@ -348,7 +348,7 @@ Equality operator (object is not copyable). **Parameters** -* const [MissionItem](classdronecore_1_1_mission_item.md) & - +* const [MissionItem](classdronecore_1_1_mission_item.md)& - **Returns** diff --git a/en/api_reference/classdronecore_1_1_offboard.md b/en/api_reference/classdronecore_1_1_offboard.md index 2c421a3..ffd5192 100644 --- a/en/api_reference/classdronecore_1_1_offboard.md +++ b/en/api_reference/classdronecore_1_1_offboard.md @@ -36,7 +36,7 @@ std::function< void([Result](classdronecore_1_1_offboard.md#classdronecore_1_1_o Type | Name | Description ---: | --- | --- -  | [Offboard](#classdronecore_1_1_offboard_1a784907d1ea5ac1320125f77cce53bffb) ([Device](classdronecore_1_1_device.md) & device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [Offboard](#classdronecore_1_1_offboard_1ae5d68b998d69577e47ae649c7ee3b650) ([System](classdronecore_1_1_system.md) & system) | Constructor. Creates the plugin for a specific [System](classdronecore_1_1_system.md).   | [~Offboard](#classdronecore_1_1_offboard_1a7cb4eff36c37fed1c6d973aa41b059b8) () | Destructor (internal use only).   | [Offboard](#classdronecore_1_1_offboard_1ac586be55cb24aa0ccd29c97352dd2ee5) (const [Offboard](classdronecore_1_1_offboard.md) &)=delete | Copy constructor (object is not copyable). [Offboard::Result](classdronecore_1_1_offboard.md#classdronecore_1_1_offboard_1a0f6e5e9f73289f27dc99abbb3ab572ed) | [start](#classdronecore_1_1_offboard_1a658454f130f7b19d56f23347a448f1b9) () | Start offboard control (synchronous). @@ -59,23 +59,23 @@ const char * | [result_str](#classdronecore_1_1_offboard_1a8eb7467e48fe354d34bc4 ## Constructor & Destructor Documentation -### Offboard() {#classdronecore_1_1_offboard_1a784907d1ea5ac1320125f77cce53bffb} +### Offboard() {#classdronecore_1_1_offboard_1ae5d68b998d69577e47ae649c7ee3b650} ```cpp -dronecore::Offboard::Offboard(Device &device) +dronecore::Offboard::Offboard(System &system) ``` -Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +Constructor. Creates the plugin for a specific [System](classdronecore_1_1_system.md). The plugin is typically created as shown below: ```cpp -auto offboard = std::make_shared(device); +auto offboard = std::make_shared(system); ``` **Parameters** -* [Device](classdronecore_1_1_device.md) & **device** - The specific device associated with this plugin. +* [System](classdronecore_1_1_system.md)& **system** - The specific system associated with this plugin. ### ~Offboard() {#classdronecore_1_1_offboard_1a7cb4eff36c37fed1c6d973aa41b059b8} ```cpp @@ -97,7 +97,7 @@ Copy constructor (object is not copyable). **Parameters** -* const [Offboard](classdronecore_1_1_offboard.md) & - +* const [Offboard](classdronecore_1_1_offboard.md)& - ## Member Typdef Documentation @@ -124,7 +124,7 @@ Results for offboard requests. Value | Description --- | --- `SUCCESS` | Request succeeded. - `NO_DEVICE` | No device connected. + `NO_SYSTEM` | No system connected. `CONNECTION_ERROR` | Connection error. `BUSY` | Vehicle busy. `COMMAND_DENIED` | Command denied. @@ -242,7 +242,7 @@ Equality operator (object is not copyable). **Parameters** -* const [Offboard](classdronecore_1_1_offboard.md) & - +* const [Offboard](classdronecore_1_1_offboard.md)& - **Returns** diff --git a/en/api_reference/classdronecore_1_1_plugin_base.md b/en/api_reference/classdronecore_1_1_plugin_base.md index e01dd54..3f80dd1 100644 --- a/en/api_reference/classdronecore_1_1_plugin_base.md +++ b/en/api_reference/classdronecore_1_1_plugin_base.md @@ -38,7 +38,7 @@ dronecore::PluginBase::PluginBase(const PluginBase &)=delete **Parameters** -* const [PluginBase](classdronecore_1_1_plugin_base.md) & - +* const [PluginBase](classdronecore_1_1_plugin_base.md)& - ## Member Function Documentation @@ -51,7 +51,7 @@ const PluginBase& dronecore::PluginBase::operator=(const PluginBase &)=delete **Parameters** -* const [PluginBase](classdronecore_1_1_plugin_base.md) & - +* const [PluginBase](classdronecore_1_1_plugin_base.md)& - **Returns** diff --git a/en/api_reference/classdronecore_1_1_system.md b/en/api_reference/classdronecore_1_1_system.md new file mode 100644 index 0000000..0646625 --- /dev/null +++ b/en/api_reference/classdronecore_1_1_system.md @@ -0,0 +1,140 @@ +# dronecore::System Class Reference +`#include: system.h` + +---- + + +This class represents a system, made up of one or more components (e.g. autopilot, cameras, servos, gimbals, etc). Commonly [System](classdronecore_1_1_system.md) objects are used to interact with UAVs (including their components) and standalone cameras. + + +## Public Member Functions + + +Type | Name | Description +---: | --- | --- +  | [System](#classdronecore_1_1_system_1a04b6c349f03f7e733f36cbbdd2db49b6) (DroneCoreImpl & parent, uint8_t system_id, uint8_t comp_id) | Constructor. +  | [~System](#classdronecore_1_1_system_1abeed98bdc18e63fc3632a3a0d1c9c097) () | Destructor. +  | [System](#classdronecore_1_1_system_1a61860ab94c3fdcab5c2321aedd69faf1) (const [System](classdronecore_1_1_system.md) &)=delete | Copy constructor (object is not copyable). +bool | [has_autopilot](#classdronecore_1_1_system_1ab8b0fca82ac033d36d602231bee65a15) () const | Checks whether the system has an autopilot. +bool | [is_standalone](#classdronecore_1_1_system_1a07624a4ea1e4d22be85e9c4b635ea921) () const | Checks whether the system is a standalone (non-autopilot). +bool | [has_camera](#classdronecore_1_1_system_1a29398f091973a76b5631e37a71af0e43) (int camera_id=-1)const | Checks whether the system has a camera with the given camera ID. +bool | [has_gimbal](#classdronecore_1_1_system_1ae4e577b84fc7ff268935264e247a6668) () const | Checks whether the system has a gimbal. +const [System](classdronecore_1_1_system.md) & | [operator=](#classdronecore_1_1_system_1ab7e8e98e739dd153d775c4dec1f322a7) (const [System](classdronecore_1_1_system.md) &)=delete | Equality operator (object is not copyable). + + +## Constructor & Destructor Documentation + + +### System() {#classdronecore_1_1_system_1a04b6c349f03f7e733f36cbbdd2db49b6} +```cpp +dronecore::System::System(DroneCoreImpl &parent, uint8_t system_id, uint8_t comp_id) +``` + + +Constructor. + + +**Parameters** + +* DroneCoreImpl& **parent** - +* uint8_t **system_id** - MAVLink system id. +* uint8_t **comp_id** - MAVLink component id. + +### ~System() {#classdronecore_1_1_system_1abeed98bdc18e63fc3632a3a0d1c9c097} +```cpp +dronecore::System::~System() +``` + + +Destructor. + + +### System() {#classdronecore_1_1_system_1a61860ab94c3fdcab5c2321aedd69faf1} +```cpp +dronecore::System::System(const System &)=delete +``` + + +Copy constructor (object is not copyable). + + +**Parameters** + +* const [System](classdronecore_1_1_system.md)& - + +## Member Function Documentation + + +### has_autopilot() {#classdronecore_1_1_system_1ab8b0fca82ac033d36d602231bee65a15} +```cpp +bool dronecore::System::has_autopilot() const +``` + + +Checks whether the system has an autopilot. + + +**Returns** + + bool - `true` if it has an autopilot, `false` otherwise. + +### is_standalone() {#classdronecore_1_1_system_1a07624a4ea1e4d22be85e9c4b635ea921} +```cpp +bool dronecore::System::is_standalone() const +``` + + +Checks whether the system is a standalone (non-autopilot). + + +**Returns** + + bool - `true` if stand alone, `false` otherwise. + +### has_camera() {#classdronecore_1_1_system_1a29398f091973a76b5631e37a71af0e43} +```cpp +bool dronecore::System::has_camera(int camera_id=-1) const +``` + + +Checks whether the system has a camera with the given camera ID. + +A [System](classdronecore_1_1_system.md) may have several cameras, with IDs starting from 0. When called without passing a camera ID, it checks whether the system has any camera. + +**Parameters** + +* int **camera_id** - ID of the camera starting from 0 onwards. + +**Returns** + + bool - `true` if camera with the given camera ID is found, `false` otherwise. + +### has_gimbal() {#classdronecore_1_1_system_1ae4e577b84fc7ff268935264e247a6668} +```cpp +bool dronecore::System::has_gimbal() const +``` + + +Checks whether the system has a gimbal. + + +**Returns** + + bool - `true` if the system has a gimbal, false otherwise. + +### operator=() {#classdronecore_1_1_system_1ab7e8e98e739dd153d775c4dec1f322a7} +```cpp +const System& dronecore::System::operator=(const System &)=delete +``` + + +Equality operator (object is not copyable). + + +**Parameters** + +* const [System](classdronecore_1_1_system.md)& - + +**Returns** + + const [System](classdronecore_1_1_system.md) & - \ No newline at end of file diff --git a/en/api_reference/classdronecore_1_1_telemetry.md b/en/api_reference/classdronecore_1_1_telemetry.md index 3682557..fb2d54c 100644 --- a/en/api_reference/classdronecore_1_1_telemetry.md +++ b/en/api_reference/classdronecore_1_1_telemetry.md @@ -52,7 +52,7 @@ std::function< void([RCStatus](structdronecore_1_1_telemetry_1_1_r_c_status.md) Type | Name | Description ---: | --- | --- -  | [Telemetry](#classdronecore_1_1_telemetry_1aa066b99449e9915b7a7588597a2da468) ([Device](classdronecore_1_1_device.md) & device) | Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +  | [Telemetry](#classdronecore_1_1_telemetry_1acf7e2bbc7351de67be6d2a4ad03f5268) ([System](classdronecore_1_1_system.md) & system) | Constructor. Creates the plugin for a specific [System](classdronecore_1_1_system.md).   | [~Telemetry](#classdronecore_1_1_telemetry_1ade5f44873d1fd5a5ec63037307920095) () | Destructor (internal use only).   | [Telemetry](#classdronecore_1_1_telemetry_1a91a3319d9040bd89d241be3d8b2e9a5e) (const [Telemetry](classdronecore_1_1_telemetry.md) &)=delete | Copy constructor (object is not copyable). [Result](classdronecore_1_1_telemetry.md#classdronecore_1_1_telemetry_1a5bfab85edb7c160e156133a9643964bc) | [set_rate_position](#classdronecore_1_1_telemetry_1ae7a6e1313b1508fef7163287aa77a6da) (double rate_hz) | Set rate of position updates (synchronous). @@ -117,23 +117,23 @@ const char * | [result_str](#classdronecore_1_1_telemetry_1a05c6355b7f8743250b2a ## Constructor & Destructor Documentation -### Telemetry() {#classdronecore_1_1_telemetry_1aa066b99449e9915b7a7588597a2da468} +### Telemetry() {#classdronecore_1_1_telemetry_1acf7e2bbc7351de67be6d2a4ad03f5268} ```cpp -dronecore::Telemetry::Telemetry(Device &device) +dronecore::Telemetry::Telemetry(System &system) ``` -Constructor. Creates the plugin for a specific [Device](classdronecore_1_1_device.md). +Constructor. Creates the plugin for a specific [System](classdronecore_1_1_system.md). The plugin is typically created as shown below: ```cpp -auto telemetry = std::make_shared(device); +auto telemetry = std::make_shared(system); ``` **Parameters** -* [Device](classdronecore_1_1_device.md) & **device** - The specific device associated with this plugin. +* [System](classdronecore_1_1_system.md)& **system** - The specific system associated with this plugin. ### ~Telemetry() {#classdronecore_1_1_telemetry_1ade5f44873d1fd5a5ec63037307920095} ```cpp @@ -155,7 +155,7 @@ Copy constructor (object is not copyable). **Parameters** -* const [Telemetry](classdronecore_1_1_telemetry.md) & - +* const [Telemetry](classdronecore_1_1_telemetry.md)& - ## Member Typdef Documentation @@ -365,9 +365,9 @@ Results enum for telemetry requests. Value | Description --- | --- `SUCCESS` | Request succeeded. - `NO_DEVICE` | No device connected. + `NO_SYSTEM` | No system connected. `CONNECTION_ERROR` | Connection error. - `BUSY` | [Device](classdronecore_1_1_device.md) busy. + `BUSY` | [System](classdronecore_1_1_system.md) busy. `COMMAND_DENIED` | Command denied. `TIMEOUT` | Request timeout. `UNKNOWN` | Unknown error. @@ -1061,7 +1061,7 @@ Equality operator (object is not copyable). **Parameters** -* const [Telemetry](classdronecore_1_1_telemetry.md) & - +* const [Telemetry](classdronecore_1_1_telemetry.md)& - **Returns** diff --git a/en/api_reference/namespacedronecore.md b/en/api_reference/namespacedronecore.md index fbb49ec..dce4cf7 100644 --- a/en/api_reference/namespacedronecore.md +++ b/en/api_reference/namespacedronecore.md @@ -8,7 +8,6 @@ Namespace for all dronecore types. ## Data Structures * [dronecore::Action](classdronecore_1_1_action.md) -* [dronecore::Device](classdronecore_1_1_device.md) * [dronecore::DroneCore](classdronecore_1_1_drone_core.md) * [dronecore::FollowMe](classdronecore_1_1_follow_me.md) * [dronecore::Gimbal](classdronecore_1_1_gimbal.md) @@ -18,23 +17,53 @@ Namespace for all dronecore types. * [dronecore::MissionItem](classdronecore_1_1_mission_item.md) * [dronecore::Offboard](classdronecore_1_1_offboard.md) * [dronecore::PluginBase](classdronecore_1_1_plugin_base.md) +* [dronecore::System](classdronecore_1_1_system.md) * [dronecore::Telemetry](classdronecore_1_1_telemetry.md) ## Enumerations Type | Description --- | --- +enum [ActionResult](#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5) | Possible results returned for commanded actions. enum [ConnectionResult](#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) | Result type returned when adding a connection. ## Functions Type | Name | Description --- | --- | --- +const char * | [action_result_str](#namespacedronecore_1aa3b1897424479e1e7d5d079a5037957d) ([ActionResult](namespacedronecore.md#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5) result) | Returns a human-readable English string for an ActionResult. const char * | [connection_result_str](#namespacedronecore_1a71899c532d8bedfa9654160fc175cce8) (const [ConnectionResult](namespacedronecore.md#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) result) | Returns a human-readable English string for a ConnectionResult. +bool | [operator==](#namespacedronecore_1a0363203162fba53fefe7d4d60cd3b1c9) (const [Telemetry::Position](structdronecore_1_1_telemetry_1_1_position.md) & lhs, const [Telemetry::Position](structdronecore_1_1_telemetry_1_1_position.md) & rhs) | +std::ostream & | [operator<<](#namespacedronecore_1a9bc5f60e2e310023bbd0ed436250b217) (std::ostream & str, [Telemetry::Position](structdronecore_1_1_telemetry_1_1_position.md) const & position) | ## Enumeration Type Documentation +### enum ActionResult {#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5} + +``` +#include: action_result.h +``` + + +Possible results returned for commanded actions. + +**Note**: [DroneCore](classdronecore_1_1_drone_core.md) does not throw exceptions. Instead a result of this type will be returned when you execute actions. + +Value | Description +--- | --- + `UNKNOWN` | Unspecified error. + `SUCCESS` | Success. The action command was accepted by the vehicle. + `NO_SYSTEM` | No system is connected error. + `CONNECTION_ERROR` | Connection error. + `BUSY` | Vehicle busy error. + `COMMAND_DENIED` | Command refused by vehicle. + `COMMAND_DENIED_LANDED_STATE_UNKNOWN` | Command refused because landed state is unknown. + `COMMAND_DENIED_NOT_LANDED` | Command refused because vehicle not landed. + `TIMEOUT` | Timeout waiting for command acknowledgement from vehicle. + `VTOL_TRANSITION_SUPPORT_UNKNOWN` | hybrid/VTOL transition refused because VTOL support is unknown. + `NO_VTOL_TRANSITION_SUPPORT` | Vehicle does not support hybrid/VTOL transitions. + ### enum ConnectionResult {#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc} ``` @@ -55,8 +84,8 @@ Value | Description `SOCKET_CONNECTION_ERROR` | Socket connection error. `CONNECTION_ERROR` | Connection error. `NOT_IMPLEMENTED` | Connection type not implemented. - `DEVICE_NOT_CONNECTED` | No device is connected. - `DEVICE_BUSY` | Device is busy. + `SYSTEM_NOT_CONNECTED` | No system is connected. + `SYSTEM_BUSY` | System is busy. `COMMAND_DENIED` | Command is denied. `DESTINATION_IP_UNKNOWN` | Connection IP is unknown. `CONNECTIONS_EXHAUSTED` | Connections exhausted. @@ -65,6 +94,27 @@ Value | Description ## Function Documentation +### action_result_str() {#namespacedronecore_1aa3b1897424479e1e7d5d079a5037957d} + +``` +#include: action_result.h +``` +```cpp +const char* dronecore::action_result_str(ActionResult result) +``` + + +Returns a human-readable English string for an ActionResult. + + +**Parameters** + +* [ActionResult](namespacedronecore.md#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5) **result** - The enum value for which a human readable string is required. + +**Returns** + + const char * - Human readable string for the ActionResult. + ### connection_result_str() {#namespacedronecore_1a71899c532d8bedfa9654160fc175cce8} ``` @@ -84,4 +134,42 @@ Returns a human-readable English string for a ConnectionResult. **Returns** - const char * - Human readable string for the ConnectionResult. \ No newline at end of file + const char * - Human readable string for the ConnectionResult. + +### operator==() {#namespacedronecore_1a0363203162fba53fefe7d4d60cd3b1c9} + +``` +#include: telemetry.h +``` +```cpp +bool dronecore::operator==(const Telemetry::Position &lhs, const Telemetry::Position &rhs) +``` + + +**Parameters** + +* const [Telemetry::Position](structdronecore_1_1_telemetry_1_1_position.md)& **lhs** - +* const [Telemetry::Position](structdronecore_1_1_telemetry_1_1_position.md)& **rhs** - + +**Returns** + + bool - + +### operator<<() {#namespacedronecore_1a9bc5f60e2e310023bbd0ed436250b217} + +``` +#include: telemetry.h +``` +```cpp +std::ostream& dronecore::operator<<(std::ostream &str, Telemetry::Position const &position) +``` + + +**Parameters** + +* std::ostream& **str** - +* [Telemetry::Position](structdronecore_1_1_telemetry_1_1_position.md) const& **position** - + +**Returns** + + std::ostream & - \ No newline at end of file diff --git a/en/api_reference/structdronecore_1_1_info_1_1_product.md b/en/api_reference/structdronecore_1_1_info_1_1_product.md index f6673d7..d173fbf 100644 --- a/en/api_reference/structdronecore_1_1_info_1_1_product.md +++ b/en/api_reference/structdronecore_1_1_info_1_1_product.md @@ -4,7 +4,7 @@ ---- -Type containing device product information. +Type containing system product information. ## Data Fields diff --git a/en/api_reference/structdronecore_1_1_info_1_1_version.md b/en/api_reference/structdronecore_1_1_info_1_1_version.md index ab732a8..b99b26a 100644 --- a/en/api_reference/structdronecore_1_1_info_1_1_version.md +++ b/en/api_reference/structdronecore_1_1_info_1_1_version.md @@ -4,7 +4,7 @@ ---- -Type containing device version information. +Type containing system version information. ## Data Fields diff --git a/en/contributing/plugins.md b/en/contributing/plugins.md index 4e7d993..ab9d528 100644 --- a/en/contributing/plugins.md +++ b/en/contributing/plugins.md @@ -75,11 +75,11 @@ All plugins should derive their implementation from `PluginImplBase` (**core/plu ### Plugin Enable/Disable -DroneCore provides virtual methods that a plugin should implement allow DroneCore to better manage resources. For example, to prevent callback being created before the `Device` is instantiated, or messages being sent when a vehicle is not connected. +DroneCore provides virtual methods that a plugin should implement allow DroneCore to better manage resources. For example, to prevent callback being created before the `System` is instantiated, or messages being sent when a vehicle is not connected. Plugin authors should provide an implementation of the following `PluginImplBase` pure virtual methods: -* [init()](#init)/[deinit()](#deinit): These are called when a device is created and just before it is destroyed. These should be used for setting up and cleaning everything that depends on having the `Device` instantiated. This includes calls that set up callbacks. -* [enable()](#enable)/[disable()](#disable): These are called when a vehicle is discovered or has timed out. They should be used for managing resources needed to access a connected device/vehicle (e.g. getting a parameter or changing a setting). +* [init()](#init)/[deinit()](#deinit): These are called when a system is created and just before it is destroyed. These should be used for setting up and cleaning everything that depends on having the `System` instantiated. This includes calls that set up callbacks. +* [enable()](#enable)/[disable()](#disable): These are called when a vehicle is discovered or has timed out. They should be used for managing resources needed to access a connected system/vehicle (e.g. getting a parameter or changing a setting). The [external example](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/external_example) provides a minimal implementation. @@ -91,7 +91,7 @@ Additional detail is provided for methods below. virtual void init() = 0 ``` -The `init()` method is called when a plugin is instantiated. This happens when a `Device` is constructed (this does not mean that the device actually exists and is connected - it might just be an empty dummy device). +The `init()` method is called when a plugin is instantiated. This happens when a `System` is constructed (this does not mean that the system actually exists and is connected - it might just be an empty dummy system). Plugins should do initialization steps with other parts of DroneCore at this state, e.g. set up callbacks with `_parent` (`DeviceImpl`). @@ -107,7 +107,7 @@ Plugins should cleanup anything that was set up during `init()`. ```cpp virtual void enable() = 0 ``` -The `enable()` method is called when a device is discovered (connected). Plugins should do all initialization/configuration steps that require a device to be connected. For example, setting/getting parameters. +The `enable()` method is called when a system is discovered (connected). Plugins should do all initialization/configuration steps that require a system to be connected. For example, setting/getting parameters. If any threads, call_every or timeouts are needed, they can be started in this method. @@ -115,7 +115,7 @@ If any threads, call_every or timeouts are needed, they can be started in this m ```cpp virtual void disable() = 0 ``` -The `disable()` method is called when a device has timed out. The method is also called before `deinit()` is called to stop any devices with active plugins from communicating (in order to prevent warnings and errors because communication to the device no longer works). +The `disable()` method is called when a system has timed out. The method is also called before `deinit()` is called to stop any systems with active plugins from communicating (in order to prevent warnings and errors because communication to the system no longer works). If any threads, call_every, or timeouts are running, they should be stopped in this method. @@ -262,12 +262,12 @@ TEST_F(SitlTest, ExampleHello) ConnectionResult ret = dc.add_udp_connection(); ASSERT_EQ(ret, ConnectionResult::SUCCESS); - // Wait for device to connect via heartbeat. + // Wait for system to connect via heartbeat. std::this_thread::sleep_for(std::chrono::seconds(2)); ASSERT_TRUE(dc.is_connected()); - Device &device = dc.device(); - auto example = std::make_shared(device); + System &system = dc.system(); + auto example = std::make_shared(system); // Apparently it can say hello. example->say_hello(); diff --git a/en/examples/README.md b/en/examples/README.md index 8480d7e..8439b59 100644 --- a/en/examples/README.md +++ b/en/examples/README.md @@ -6,7 +6,7 @@ This section contains examples showing how to use DroneCore. Example | Description --- | --- -[Takeoff and Land](../examples/takeoff_and_land.md) | Shows basic usage of DroneCore (connect to port, detect device, arm, takeoff, land, get telemetry) +[Takeoff and Land](../examples/takeoff_and_land.md) | Shows basic usage of DroneCore (connect to port, detect system (vehicle), arm, takeoff, land, get telemetry) [Fly Mission](../examples/fly_mission.md) | Shows how to create, upload, and run missions. [Fly QGC Plan Mission](../examples/fly_mission_qgc_plan.md) | Fly a mission imported from a *QGroundControl* mission plan. [Offboard Velocity Control](../examples/offboard_velocity.md) | Demonstrates how to control a vehicle in Offboard mode using velocity commands (in both the NED and body frames). diff --git a/en/examples/fly_mission.md b/en/examples/fly_mission.md index 5bb5df5..3a17cd6 100644 --- a/en/examples/fly_mission.md +++ b/en/examples/fly_mission.md @@ -15,15 +15,15 @@ The example terminal output should be similar to that shown below: ``` $ ./fly_mission -Waiting to discover device... -[03:42:51|Info ] New device on: 127.0.0.1:14557 (udp_connection.cpp:210) +Waiting to discover system... +[03:42:51|Info ] New system on: 127.0.0.1:14557 (udp_connection.cpp:210) [03:42:51|Debug] MAVLink: info: [logger] file: rootfs/fs/microsd/log/2017-11-14/2 (device_impl.cpp:225) [03:42:51|Debug] Discovered 4294967298 (dronecore_impl.cpp:234) -Discovered device with UUID: 4294967298 -Waiting for device to be ready +Discovered system with UUID: 4294967298 +Waiting for system to be ready ... -Waiting for device to be ready -Device ready +Waiting for system to be ready +System ready Creating and uploading mission Uploading mission... [03:43:07|Debug] Send mission item 0 (mission_impl.cpp:712) @@ -172,7 +172,7 @@ using namespace std::chrono; // for seconds(), milliseconds() using namespace std::this_thread; // for sleep_for() // Handles Action's result -inline void handle_action_err_exit(Action::Result result, const std::string &message); +inline void handle_action_err_exit(ActionResult result, const std::string &message); // Handles Mission's result inline void handle_mission_err_exit(Mission::Result result, const std::string &message); // Handles Connection result @@ -196,9 +196,9 @@ int main(int /*argc*/, char ** /*argv*/) auto prom = std::make_shared>(); auto future_result = prom->get_future(); - std::cout << "Waiting to discover device..." << std::endl; + std::cout << "Waiting to discover system..." << std::endl; dc.register_on_discover([prom](uint64_t uuid) { - std::cout << "Discovered device with UUID: " << uuid << std::endl; + std::cout << "Discovered system with UUID: " << uuid << std::endl; prom->set_value(); }); @@ -209,25 +209,25 @@ int main(int /*argc*/, char ** /*argv*/) } dc.register_on_timeout([](uint64_t uuid) { - std::cout << "Device with UUID timed out: " << uuid << std::endl; + std::cout << "System with UUID timed out: " << uuid << std::endl; std::cout << "Exiting." << std::endl; exit(0); }); - // We don't need to specifiy the UUID if it's only one device anyway. + // We don't need to specifiy the UUID if it's only one system anyway. // If there were multiple, we could specify it with: - // dc.device(uint64_t uuid); - Device &device = dc.device(); - std::shared_ptr action = std::make_shared(device); - std::shared_ptr mission = std::make_shared(device); - std::shared_ptr telemetry = std::make_shared(device); + // dc.system(uint64_t uuid); + System &system = dc.system(); + auto action = std::make_shared(system); + auto mission = std::make_shared(system); + auto telemetry = std::make_shared(system); while (!telemetry->health_all_ok()) { - std::cout << "Waiting for device to be ready" << std::endl; + std::cout << "Waiting for system to be ready" << std::endl; sleep_for(seconds(1)); } - std::cout << "Device ready" << std::endl; + std::cout << "System ready" << std::endl; std::cout << "Creating and uploading mission" << std::endl; std::vector> mission_items; @@ -293,7 +293,7 @@ int main(int /*argc*/, char ** /*argv*/) } std::cout << "Arming..." << std::endl; - const Action::Result arm_result = action->arm(); + const ActionResult arm_result = action->arm(); handle_action_err_exit(arm_result, "Arm failed: "); std::cout << "Armed." << std::endl; @@ -375,9 +375,9 @@ int main(int /*argc*/, char ** /*argv*/) { // We are done, and can do RTL to go home. std::cout << "Commanding RTL..." << std::endl; - const Action::Result result = action->return_to_launch(); - if (result != Action::Result::SUCCESS) { - std::cout << "Failed to command RTL (" << Action::result_str(result) << ")" << std::endl; + const ActionResult result = action->return_to_launch(); + if (result != ActionResult::SUCCESS) { + std::cout << "Failed to command RTL (" << action_result_str(result) << ")" << std::endl; } else { std::cout << "Commanded RTL." << std::endl; } @@ -412,10 +412,10 @@ std::shared_ptr make_mission_item(double latitude_deg, return new_item; } -inline void handle_action_err_exit(Action::Result result, const std::string &message) +inline void handle_action_err_exit(ActionResult result, const std::string &message) { - if (result != Action::Result::SUCCESS) { - std::cerr << ERROR_CONSOLE_TEXT << message << Action::result_str( + if (result != ActionResult::SUCCESS) { + std::cerr << ERROR_CONSOLE_TEXT << message << action_result_str( result) << NORMAL_CONSOLE_TEXT << std::endl; exit(EXIT_FAILURE); } diff --git a/en/examples/fly_mission_qgc_plan.md b/en/examples/fly_mission_qgc_plan.md index db7d17b..63c030f 100644 --- a/en/examples/fly_mission_qgc_plan.md +++ b/en/examples/fly_mission_qgc_plan.md @@ -23,14 +23,14 @@ The example terminal output should be similar to that shown below: $ ./fly_qgc_mission Usage: ./fly_qgc_mission Importing mission from Default mission plan: ../../../plugins/mission/qgroundcontrol_sample.plan -Waiting to discover device... -[02:25:09|Info ] New device on: 127.0.0.1:14557 (udp_connection.cpp:211) +Waiting to discover system... +[02:25:09|Info ] New system on: 127.0.0.1:14557 (udp_connection.cpp:211) [02:25:09|Debug] MAVLink: info: DISARMED by auto disarm on land (device.cpp:247) [02:25:09|Debug] Discovered 4294967298 (dronecore_impl.cpp:219) -Discovered device with UUID: 4294967298 -Waiting for device to be ready -Waiting for device to be ready -Device ready +Discovered system with UUID: 4294967298 +Waiting for system to be ready +Waiting for system to be ready +System ready Found 8 mission items in the given QGC plan. Uploading mission... [02:25:11|Debug] Send mission item 0 (mission_impl.cpp:781) @@ -180,7 +180,7 @@ using namespace std::chrono; // for seconds(), milliseconds() using namespace std::this_thread; // for sleep_for() // Handles Action's result -inline void handle_action_err_exit(Action::Result result, const std::string &message); +inline void handle_action_err_exit(ActionResult result, const std::string &message); // Handles Mission's result inline void handle_mission_err_exit(Mission::Result result, const std::string &message); // Handles Connection result @@ -206,9 +206,9 @@ int main(int argc, char **argv) auto prom = std::make_shared>(); auto future_result = prom->get_future(); - std::cout << "Waiting to discover device..." << std::endl; + std::cout << "Waiting to discover system..." << std::endl; dc.register_on_discover([prom](uint64_t uuid) { - std::cout << "Discovered device with UUID: " << uuid << std::endl; + std::cout << "Discovered system with UUID: " << uuid << std::endl; prom->set_value(); }); @@ -219,25 +219,25 @@ int main(int argc, char **argv) } dc.register_on_timeout([](uint64_t uuid) { - std::cout << "Device with UUID timed out: " << uuid << std::endl; + std::cout << "System with UUID timed out: " << uuid << std::endl; std::cout << "Exiting." << std::endl; exit(0); }); - // We don't need to specify the UUID if it's only one device anyway. + // We don't need to specify the UUID if it's only one system anyway. // If there were multiple, we could specify it with: - // dc.device(uint64_t uuid); - Device &device = dc.device(); - std::shared_ptr action = std::make_shared(device); - std::shared_ptr mission = std::make_shared(device); - std::shared_ptr telemetry = std::make_shared(device); + // dc.system(uint64_t uuid); + System &system = dc.system(); + auto action = std::make_shared(system); + auto mission = std::make_shared(system); + auto telemetry = std::make_shared(system); while (!telemetry->health_all_ok()) { - std::cout << "Waiting for device to be ready" << std::endl; + std::cout << "Waiting for system to be ready" << std::endl; sleep_for(seconds(1)); } - std::cout << "Device ready" << std::endl; + std::cout << "System ready" << std::endl; // Import Mission items from QGC plan Mission::mission_items_t mission_items; @@ -267,7 +267,7 @@ int main(int argc, char **argv) } std::cout << "Arming..." << std::endl; - const Action::Result arm_result = action->arm(); + const ActionResult arm_result = action->arm(); handle_action_err_exit(arm_result, "Arm failed: "); std::cout << "Armed." << std::endl; @@ -301,9 +301,9 @@ int main(int argc, char **argv) { // Mission complete. Command RTL to go home. std::cout << "Commanding RTL..." << std::endl; - const Action::Result result = action->return_to_launch(); - if (result != Action::Result::SUCCESS) { - std::cout << "Failed to command RTL (" << Action::result_str(result) << ")" << std::endl; + const ActionResult result = action->return_to_launch(); + if (result != ActionResult::SUCCESS) { + std::cout << "Failed to command RTL (" << action_result_str(result) << ")" << std::endl; } else { std::cout << "Commanded RTL." << std::endl; } @@ -312,10 +312,10 @@ int main(int argc, char **argv) return 0; } -inline void handle_action_err_exit(Action::Result result, const std::string &message) +inline void handle_action_err_exit(ActionResult result, const std::string &message) { - if (result != Action::Result::SUCCESS) { - std::cerr << ERROR_CONSOLE_TEXT << message << Action::result_str( + if (result != ActionResult::SUCCESS) { + std::cerr << ERROR_CONSOLE_TEXT << message << action_result_str( result) << NORMAL_CONSOLE_TEXT << std::endl; exit(EXIT_FAILURE); } @@ -342,4 +342,3 @@ inline void handle_connection_err_exit(ConnectionResult result, } } ``` - diff --git a/en/examples/follow_me.md b/en/examples/follow_me.md index 08c4025..de8a265 100644 --- a/en/examples/follow_me.md +++ b/en/examples/follow_me.md @@ -5,7 +5,7 @@ It shows how to send the drone both the current position of the target (`FollowM ![Follow Me QGC Screenshot](../../assets/examples/follow_me/follow_me_example_qgc.jpg) -> **Note** A real application using this API will get the position information from the underlying device. The example uses a fake position source (`FakeLocationProvider`) to enable it to be run on computers that do not have position information. The `FakeLocationProvider` emulates the typical usage of common positioning APIs used in Android, Linux and iPhone. +> **Note** A real application using this API will get the position information from the underlying operating system. The example uses a fake position source (`FakeLocationProvider`) to enable it to be run on computers that do not have position information. The `FakeLocationProvider` emulates the typical usage of common positioning APIs used in Android, Linux and iPhone. ## Running the Example {#run_example} @@ -26,12 +26,12 @@ The example terminal output should be similar to that shown below: ``` $ ./follow_me -Wait for device to connect via heartbeat -[11:40:49|Info ] New device on: 127.0.0.1:14557 (udp_connection.cpp:211) +Wait for system to connect via heartbeat +[11:40:49|Info ] New system on: 127.0.0.1:14557 (udp_connection.cpp:211) [11:40:49|Debug] MAVLink: info: DISARMED by auto disarm on land (device.cpp:247) [11:40:50|Debug] Discovered 4294967298 (dronecore_impl.cpp:219) -[11:40:50|Info ] FollowMe: Applying default FollowMe configuration FollowMe to the device... (follow_me_impl.cpp:186) -Device is ready +[11:40:50|Info ] FollowMe: Applying default FollowMe configuration FollowMe to the system... (follow_me_impl.cpp:186) +System is ready Armed [11:40:51|Debug] MAVLink: info: ARMED by arm/disarm component command (device.cpp:247) [11:40:51|Debug] MAVLink: info: [logger] file: rootfs/fs/microsd/log/2018-02-14/0 (device.cpp:247) @@ -145,7 +145,7 @@ using namespace std::this_thread; // for sleep_for() #define TELEMETRY_CONSOLE_TEXT "\033[34m" //Turn text on console blue #define NORMAL_CONSOLE_TEXT "\033[0m" //Restore normal console colour -inline void action_error_exit(Action::Result result, const std::string &message); +inline void action_error_exit(ActionResult result, const std::string &message); inline void follow_me_error_exit(FollowMe::Result result, const std::string &message); inline void connection_error_exit(ConnectionResult result, const std::string &message); @@ -156,26 +156,26 @@ int main(int, char **) ConnectionResult conn_result = dc.add_udp_connection(); connection_error_exit(conn_result, "Connection failed"); - // Wait for the device to connect via heartbeat + // Wait for the system to connect via heartbeat while (!dc.is_connected()) { - std::cout << "Wait for device to connect via heartbeat" << std::endl; + std::cout << "Wait for system to connect via heartbeat" << std::endl; sleep_for(seconds(1)); } - // Device got discovered. - Device &device = dc.device(); - std::shared_ptr action = std::make_shared(device); - std::shared_ptr follow_me = std::make_shared(device); - std::shared_ptr telemetry = std::make_shared(device); + // System got discovered. + System &system = dc.system(); + auto action = std::make_shared(system); + auto follow_me = std::make_shared(system); + auto telemetry = std::make_shared(system); while (!telemetry->health_all_ok()) { - std::cout << "Waiting for device to be ready" << std::endl; + std::cout << "Waiting for system to be ready" << std::endl; sleep_for(seconds(1)); } - std::cout << "Device is ready" << std::endl; + std::cout << "System is ready" << std::endl; // Arm - Action::Result arm_result = action->arm(); + ActionResult arm_result = action->arm(); action_error_exit(arm_result, "Arming failed"); std::cout << "Armed" << std::endl; @@ -189,7 +189,7 @@ int main(int, char **) }, std::placeholders::_1)); // Takeoff - Action::Result takeoff_result = action->takeoff(); + ActionResult takeoff_result = action->takeoff(); action_error_exit(takeoff_result, "Takeoff failed"); std::cout << "In Air..." << std::endl; sleep_for(seconds(5)); // Wait for drone to reach takeoff altitude @@ -207,7 +207,7 @@ int main(int, char **) boost::asio::io_service io; // for event loop std::unique_ptr location_provider(new FakeLocationProvider(io)); // Register for platform-specific Location provider. We're using FakeLocationProvider for the example. - location_provider->request_location_updates([&device, &follow_me](double lat, double lon) { + location_provider->request_location_updates([&system, &follow_me](double lat, double lon) { follow_me->set_target_location({lat, lon, 0.0, 0.f, 0.f, 0.f}); }); io.run(); // will run as long as location updates continue to happen. @@ -220,7 +220,7 @@ int main(int, char **) telemetry->flight_mode_async(nullptr); // Land - const Action::Result land_result = action->land(); + const ActionResult land_result = action->land(); action_error_exit(land_result, "Landing failed"); while (telemetry->in_air()) { std::cout << "waiting until landed" << std::endl; @@ -231,10 +231,10 @@ int main(int, char **) } // Handles Action's result -inline void action_error_exit(Action::Result result, const std::string &message) +inline void action_error_exit(ActionResult result, const std::string &message) { - if (result != Action::Result::SUCCESS) { - std::cerr << ERROR_CONSOLE_TEXT << message << Action::result_str( + if (result != ActionResult::SUCCESS) { + std::cerr << ERROR_CONSOLE_TEXT << message << action_result_str( result) << NORMAL_CONSOLE_TEXT << std::endl; exit(EXIT_FAILURE); } diff --git a/en/examples/offboard_velocity.md b/en/examples/offboard_velocity.md index 81fb5dc..c2eb71a 100644 --- a/en/examples/offboard_velocity.md +++ b/en/examples/offboard_velocity.md @@ -16,14 +16,14 @@ The example terminal output should be similar to that shown below: ``` $ ./offboard ubuntu@ubuntu:~/DroneCore/example/offboard_velocity/build$ ./offboard -Wait for device to connect via heartbeat -[03:48:52|Info ] New device on: 127.0.0.1:14557 (udp_connection.cpp:210) +Wait for system to connect via heartbeat +[03:48:52|Info ] New system on: 127.0.0.1:14557 (udp_connection.cpp:210) [03:48:52|Debug] MAVLink: info: [logger] file: rootfs/fs/microsd/log/2017-11-14/2 (device_impl.cpp:225) [03:48:53|Debug] Discovered 4294967298 (dronecore_impl.cpp:234) -Waiting for device to be ready +Waiting for system to be ready ... -Waiting for device to be ready -Device is ready +Waiting for system to be ready +System is ready Armed [03:49:07|Debug] MAVLink: info: ARMED by arm/disarm component command (device_impl.cpp:225) In Air... @@ -118,10 +118,10 @@ using std::chrono::seconds; #define NORMAL_CONSOLE_TEXT "\033[0m" //Restore normal console colour // Handles Action's result -inline void action_error_exit(Action::Result result, const std::string &message) +inline void action_error_exit(ActionResult result, const std::string &message) { - if (result != Action::Result::SUCCESS) { - std::cerr << ERROR_CONSOLE_TEXT << message << Action::result_str( + if (result != ActionResult::SUCCESS) { + std::cerr << ERROR_CONSOLE_TEXT << message << action_result_str( result) << NORMAL_CONSOLE_TEXT << std::endl; exit(EXIT_FAILURE); } @@ -266,29 +266,29 @@ int main(int, char **) ConnectionResult conn_result = dc.add_udp_connection(); connection_error_exit(conn_result, "Connection failed"); - // Wait for the device to connect via heartbeat + // Wait for the system to connect via heartbeat while (!dc.is_connected()) { - std::cout << "Wait for device to connect via heartbeat" << std::endl; + std::cout << "Wait for system to connect via heartbeat" << std::endl; sleep_for(seconds(1)); } - // Device got discovered. - Device &device = dc.device(); - std::shared_ptr action = std::make_shared(device); - std::shared_ptr offboard = std::make_shared(device); - std::shared_ptr telemetry = std::make_shared(device); + // System got discovered. + System &system = dc.system(); + auto action = std::make_shared(system); + auto offboard = std::make_shared(system); + auto telemetry = std::make_shared(system); while (!telemetry->health_all_ok()) { - std::cout << "Waiting for device to be ready" << std::endl; + std::cout << "Waiting for system to be ready" << std::endl; sleep_for(seconds(1)); } - std::cout << "Device is ready" << std::endl; + std::cout << "System is ready" << std::endl; - Action::Result arm_result = action->arm(); + ActionResult arm_result = action->arm(); action_error_exit(arm_result, "Arming failed"); std::cout << "Armed" << std::endl; - Action::Result takeoff_result = action->takeoff(); + ActionResult takeoff_result = action->takeoff(); action_error_exit(takeoff_result, "Takeoff failed"); std::cout << "In Air..." << std::endl; sleep_for(seconds(5)); @@ -306,7 +306,7 @@ int main(int, char **) return EXIT_FAILURE; } - const Action::Result land_result = action->land(); + const ActionResult land_result = action->land(); action_error_exit(land_result, "Landing failed"); // We are relying on auto-disarming but let's keep watching the telemetry for a bit longer. diff --git a/en/examples/takeoff_and_land.md b/en/examples/takeoff_and_land.md index 00db591..b6b360b 100644 --- a/en/examples/takeoff_and_land.md +++ b/en/examples/takeoff_and_land.md @@ -2,7 +2,7 @@ This simple example shows the basic use of many DroneCore features. -It sets up a UDP connection, waits for a device to appear, arms it, and commands it to takeoff and then land again. While flying the vehicle receives telemetry. The example is implemented in C++ (only). +It sets up a UDP connection, waits for a vehicle (system) to appear, arms it, and commands it to takeoff and then land again. While flying the vehicle receives telemetry. The example is implemented in C++ (only). > **Tip** The full source code for the example [can be found here](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/example/takeoff_land). @@ -16,10 +16,10 @@ The example terminal output should be similar to that shown below: ```sh $ ./takeoff_and_land -Waiting to discover device... -[03:34:57|Info ] New device on: 127.0.0.1:14557 (udp_connection.cpp:210) +Waiting to discover system... +[03:34:57|Info ] New system on: 127.0.0.1:14557 (udp_connection.cpp:210) [03:34:57|Debug] Discovered 4294967298 (dronecore_impl.cpp:234) -Discovered device with UUID: 4294967298 +Discovered system with UUID: 4294967298 Arming... Taking off... [03:34:59|Debug] MAVLink: info: ARMED by arm/disarm component command (device_impl.cpp:225) @@ -93,6 +93,8 @@ target_link_libraries(takeoff_and_land #include using namespace dronecore; +using namespace std::this_thread; +using namespace std::chrono; #define ERROR_CONSOLE_TEXT "\033[31m" //Turn text on console red #define TELEMETRY_CONSOLE_TEXT "\033[34m" //Turn text on console blue @@ -106,7 +108,7 @@ int main(int argc, char **argv) std::string connection_url; ConnectionResult connection_result; - bool discovered_device = false; + bool discovered_system = false; if (argc == 1) { usage(argv[0]); connection_result = dc.add_any_connection(); @@ -122,27 +124,27 @@ int main(int argc, char **argv) return 1; } - std::cout << "Waiting to discover device..." << std::endl; - dc.register_on_discover([&discovered_device](uint64_t uuid) { - std::cout << "Discovered device with UUID: " << uuid << std::endl; - discovered_device = true; + std::cout << "Waiting to discover system..." << std::endl; + dc.register_on_discover([&discovered_system](uint64_t uuid) { + std::cout << "Discovered system with UUID: " << uuid << std::endl; + discovered_system = true; }); - // We usually receive heartbeats at 1Hz, therefore we should find a device after around 2 seconds. - std::this_thread::sleep_for(std::chrono::seconds(2)); + // We usually receive heartbeats at 1Hz, therefore we should find a system after around 2 seconds. + sleep_for(seconds(2)); - if (!discovered_device) { - std::cout << ERROR_CONSOLE_TEXT << "No device found, exiting." << NORMAL_CONSOLE_TEXT << std::endl; + if (!discovered_system) { + std::cout << ERROR_CONSOLE_TEXT << "No system found, exiting." << NORMAL_CONSOLE_TEXT << std::endl; return 1; } - // We don't need to specify the UUID if it's only one device anyway. + // We don't need to specify the UUID if it's only one system anyway. // If there were multiple, we could specify it with: - // dc.device(uint64_t uuid); - Device &device = dc.device(); + // dc.system(uint64_t uuid); + System &system = dc.system(); - auto telemetry = std::make_shared(device); - auto action = std::make_shared(device); + auto telemetry = std::make_shared(system); + auto action = std::make_shared(system); // We want to listen to the altitude of the drone at 1 Hz. const Telemetry::Result set_rate_result = telemetry->set_rate_position(1.0); @@ -161,45 +163,44 @@ int main(int argc, char **argv) << std::endl; }); - // Check if vehicle is ready to arm - if (telemetry->health_all_ok() != true) { - std::cout << ERROR_CONSOLE_TEXT << "Vehicle not ready to arm" << NORMAL_CONSOLE_TEXT << std::endl; - return 1; + while (telemetry->health_all_ok() != true) { + std::cout << "Vehicle is getting ready to arm" << std::endl; + sleep_for(seconds(1)); } // Arm vehicle std::cout << "Arming..." << std::endl; - const Action::Result arm_result = action->arm(); + const ActionResult arm_result = action->arm(); - if (arm_result != Action::Result::SUCCESS) { - std::cout << ERROR_CONSOLE_TEXT << "Arming failed:" << Action::result_str( + if (arm_result != ActionResult::SUCCESS) { + std::cout << ERROR_CONSOLE_TEXT << "Arming failed:" << action_result_str( arm_result) << NORMAL_CONSOLE_TEXT << std::endl; return 1; } // Take off std::cout << "Taking off..." << std::endl; - const Action::Result takeoff_result = action->takeoff(); - if (takeoff_result != Action::Result::SUCCESS) { - std::cout << ERROR_CONSOLE_TEXT << "Takeoff failed:" << Action::result_str( + const ActionResult takeoff_result = action->takeoff(); + if (takeoff_result != ActionResult::SUCCESS) { + std::cout << ERROR_CONSOLE_TEXT << "Takeoff failed:" << action_result_str( takeoff_result) << NORMAL_CONSOLE_TEXT << std::endl; return 1; } // Let it hover for a bit before landing again. - std::this_thread::sleep_for(std::chrono::seconds(10)); + sleep_for(seconds(10)); std::cout << "Landing..." << std::endl; - const Action::Result land_result = action->land(); - if (land_result != Action::Result::SUCCESS) { - std::cout << ERROR_CONSOLE_TEXT << "Land failed:" << Action::result_str( + const ActionResult land_result = action->land(); + if (land_result != ActionResult::SUCCESS) { + std::cout << ERROR_CONSOLE_TEXT << "Land failed:" << action_result_str( land_result) << NORMAL_CONSOLE_TEXT << std::endl; return 1; } // We are relying on auto-disarming but let's keep watching the telemetry for a bit longer. - std::this_thread::sleep_for(std::chrono::seconds(5)); + sleep_for(seconds(5)); std::cout << "Finished..." << std::endl; return 0; } diff --git a/en/examples/transition_vtol_fixed_wing.md b/en/examples/transition_vtol_fixed_wing.md index e0d38a2..44abb2b 100644 --- a/en/examples/transition_vtol_fixed_wing.md +++ b/en/examples/transition_vtol_fixed_wing.md @@ -15,12 +15,12 @@ The example terminal output for a debug build of DroneCore should be similar to ``` $ ./transition_vtol_fixed_wing -Waiting to discover device... -[10:24:42|Info ] New device on: 127.0.0.1:14557 (udp_connection.cpp:210) +Waiting to discover system... +[10:24:42|Info ] New system on: 127.0.0.1:14557 (udp_connection.cpp:210) [10:24:42|Debug] MAVLink: info: [logger] file: rootfs/fs/microsd/log/2017-11-21/0 (device_impl.cpp:229) [10:24:42|Debug] MAVLink: info: Landing detected (device_impl.cpp:229) [10:24:43|Debug] Discovered 4294967298 (dronecore_impl.cpp:234) -Discovered device with UUID: 4294967298 +Discovered system with UUID: 4294967298 Arming... Taking off... [10:24:44|Debug] MAVLink: info: ARMED by arm/disarm component command (device_impl.cpp:229) @@ -100,7 +100,6 @@ target_link_libraries(transition_vtol_fixed_wing [transition_vtol_fixed_wing.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/example/transition_vtol_fixed_wing/transition_vtol_fixed_wing.cpp) ```cpp - #include #include #include @@ -121,7 +120,7 @@ int main(int /*argc*/, char ** /*argv*/) { DroneCore dc; - bool discovered_device = false; + bool discovered_system = false; ConnectionResult connection_result = dc.add_udp_connection(); @@ -132,25 +131,25 @@ int main(int /*argc*/, char ** /*argv*/) return 1; } - std::cout << "Waiting to discover device..." << std::endl; - dc.register_on_discover([&discovered_device](uint64_t uuid) { - std::cout << "Discovered device with UUID: " << uuid << std::endl; - discovered_device = true; + std::cout << "Waiting to discover system..." << std::endl; + dc.register_on_discover([&discovered_system](uint64_t uuid) { + std::cout << "Discovered system with UUID: " << uuid << std::endl; + discovered_system = true; }); - // We usually receive heartbeats at 1Hz, therefore we should find a device after around 2 seconds. + // We usually receive heartbeats at 1Hz, therefore we should find a system after around 2 seconds. std::this_thread::sleep_for(std::chrono::seconds(2)); - if (!discovered_device) { - std::cout << ERROR_CONSOLE_TEXT << "No device found, exiting." << NORMAL_CONSOLE_TEXT << std::endl; + if (!discovered_system) { + std::cout << ERROR_CONSOLE_TEXT << "No system found, exiting." << NORMAL_CONSOLE_TEXT << std::endl; return 1; } - // We don't need to specify the UUID if it's only one device anyway. + // We don't need to specify the UUID if it's only one system anyway. // If there were multiple, we could specify it with: - // dc.device(uint64_t uuid); - Device &device = dc.device(); - std::shared_ptr telemetry = std::make_shared(device); + // dc.system(uint64_t uuid); + System &system = dc.system(); + auto telemetry = std::make_shared(system); // We want to listen to the altitude of the drone at 1 Hz. const Telemetry::Result set_rate_result = telemetry->set_rate_position(1.0); @@ -176,23 +175,23 @@ int main(int /*argc*/, char ** /*argv*/) return 1; } - std::shared_ptr action = std::make_shared(device); + auto action = std::make_shared(system); // Arm vehicle std::cout << "Arming..." << std::endl; - const Action::Result arm_result = action->arm(); + const ActionResult arm_result = action->arm(); - if (arm_result != Action::Result::SUCCESS) { - std::cout << ERROR_CONSOLE_TEXT << "Arming failed:" << Action::result_str( + if (arm_result != ActionResult::SUCCESS) { + std::cout << ERROR_CONSOLE_TEXT << "Arming failed:" << action_result_str( arm_result) << NORMAL_CONSOLE_TEXT << std::endl; return 1; } // Take off std::cout << "Taking off..." << std::endl; - const Action::Result takeoff_result = action->takeoff(); - if (takeoff_result != Action::Result::SUCCESS) { - std::cout << ERROR_CONSOLE_TEXT << "Takeoff failed:" << Action::result_str( + const ActionResult takeoff_result = action->takeoff(); + if (takeoff_result != ActionResult::SUCCESS) { + std::cout << ERROR_CONSOLE_TEXT << "Takeoff failed:" << action_result_str( takeoff_result) << NORMAL_CONSOLE_TEXT << std::endl; return 1; } @@ -201,10 +200,10 @@ int main(int /*argc*/, char ** /*argv*/) std::this_thread::sleep_for(std::chrono::seconds(10)); std::cout << "Transition to fixedwing..." << std::endl; - const Action::Result fw_result = action->transition_to_fixedwing(); + const ActionResult fw_result = action->transition_to_fixedwing(); - if (fw_result != Action::Result::SUCCESS) { - std::cout << ERROR_CONSOLE_TEXT << "Transition to fixed wing failed: " << Action::result_str( + if (fw_result != ActionResult::SUCCESS) { + std::cout << ERROR_CONSOLE_TEXT << "Transition to fixed wing failed: " << action_result_str( fw_result) << NORMAL_CONSOLE_TEXT << std::endl; //return 1; } @@ -213,9 +212,9 @@ int main(int /*argc*/, char ** /*argv*/) std::this_thread::sleep_for(std::chrono::seconds(10)); std::cout << "Transition back to multicopter..." << std::endl; - const Action::Result mc_result = action->transition_to_multicopter(); - if (mc_result != Action::Result::SUCCESS) { - std::cout << ERROR_CONSOLE_TEXT << "Transition to multi copter failed:" << Action::result_str( + const ActionResult mc_result = action->transition_to_multicopter(); + if (mc_result != ActionResult::SUCCESS) { + std::cout << ERROR_CONSOLE_TEXT << "Transition to multi copter failed:" << action_result_str( mc_result) << NORMAL_CONSOLE_TEXT << std::endl; // return 1; } @@ -225,9 +224,9 @@ int main(int /*argc*/, char ** /*argv*/) // Return to launch std::cout << "Return to launch..." << std::endl; - const Action::Result rtl_result = action->return_to_launch(); - if (rtl_result != Action::Result::SUCCESS) { - std::cout << ERROR_CONSOLE_TEXT << "Returning to launch failed:" << Action::result_str( + const ActionResult rtl_result = action->return_to_launch(); + if (rtl_result != ActionResult::SUCCESS) { + std::cout << ERROR_CONSOLE_TEXT << "Returning to launch failed:" << action_result_str( rtl_result) << NORMAL_CONSOLE_TEXT << std::endl; // return 1; } @@ -237,9 +236,9 @@ int main(int /*argc*/, char ** /*argv*/) // Land std::cout << "Landing..." << std::endl; - const Action::Result land_result = action->land(); - if (land_result != Action::Result::SUCCESS) { - std::cout << ERROR_CONSOLE_TEXT << "Land failed:" << Action::result_str( + const ActionResult land_result = action->land(); + if (land_result != ActionResult::SUCCESS) { + std::cout << ERROR_CONSOLE_TEXT << "Land failed:" << action_result_str( land_result) << NORMAL_CONSOLE_TEXT << std::endl; // return 1; } diff --git a/en/getting_started/faq.md b/en/getting_started/faq.md index 2b843b9..c2e67db 100644 --- a/en/getting_started/faq.md +++ b/en/getting_started/faq.md @@ -6,9 +6,9 @@ The aim was to have an API in a language which is cross-platform and has many la ### Does DroneCore support multiple vehicles? -Yes, DroneCore is designed to support multiple vehicles. A vehicle is called a device in DroneCore. +Yes, DroneCore is designed to support multiple vehicles. A vehicle is called a system in DroneCore. -A device needs to have a specific MAVLink system ID but can consist of multiple components with different component IDs. An example would be a drone with a gimbal and a camera talking MAVLink with the same system ID but different component IDs. +A system needs to have a specific MAVLink system ID but can consist of multiple components with different component IDs. An example would be a drone with a gimbal and a camera talking MAVLink with the same system ID but different component IDs. The limit is in theory 255 vehicles for system IDs ranging from 1 to 255. diff --git a/en/guide/connections.md b/en/guide/connections.md index 0bcd3ca..49dc0ca 100644 --- a/en/guide/connections.md +++ b/en/guide/connections.md @@ -1,8 +1,8 @@ -# Connecting to Devices +# Connecting to Systems (Vehicles) DroneCore allows you to connect to multiple vehicles attached to the local wifi network and/or via serial ports. -In order to detect vehicles you must first specify the communication ports that DroneCore will monitor for devices. Once monitoring a port, DroneCore will automatically detect connected vehicles, add them to its collection, and notify registered users of connection and disconnection events. +In order to detect vehicles you must first specify the communication ports that DroneCore will monitor for new systems. Once monitoring a port, DroneCore will automatically detect connected vehicles, add them to its collection, and notify registered users of connection and disconnection events. ## Monitoring a Port @@ -34,13 +34,13 @@ std::cout << "Connection string: " << connection_result_str(connection_result) < ``` -### Register for Device Notifications +### Register for System-Detection Notifications -DroneCore monitors any added communication ports for new devices, which are distinguished by vehicle [UUID](../api_reference/classdronecore_1_1_info.md#classdronecore_1_1_info_1a49c7dd5f1a369c8296f0c3a2443bc031). Clients can register for notification when new devices are discovered using [register_on_discover()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a864ec7349eba67b02b8b3792f6c388f9), and for devices timing out (no longer connected) using [register_on_timeout()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1ad8c0dc0100449d21a46a787c810e8978). +DroneCore monitors any added communication ports for new systems, which are distinguished by vehicle [UUID](../api_reference/classdronecore_1_1_info.md#classdronecore_1_1_info_1a49c7dd5f1a369c8296f0c3a2443bc031). Clients can register for notification when new systems are discovered using [register_on_discover()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a864ec7349eba67b02b8b3792f6c388f9), and for systems timing out (no longer connected) using [register_on_timeout()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1ad8c0dc0100449d21a46a787c810e8978). -The methods are used in the same way, and invoke a callback function with the UUID of the device that was discovered/disconnected. This UUID can then be used to get a `Device` object for managing the associated vehicle (see [Accessing Devices](#accessing-devices) below). +The methods are used in the same way, and invoke a callback function with the UUID of the system that was discovered/disconnected. This UUID can then be used to get a `System` object for managing the associated vehicle (see [Accessing Systems](#accessing-systems) below). -> **Note** If a device does not have a UUID then DroneCore will instead use its MAVLink system ID (a number in the range of 0 to 255). +> **Note** If a system does not have a UUID then DroneCore will instead use its MAVLink system ID (a number in the range of 0 to 255). On a properly configured MAVLink network this will be unique. The code fragment below shows how to register a callback (in this case the callback is a lambda function that just prints the UUID value to standard `cout`). @@ -49,44 +49,44 @@ The code fragment below shows how to register a callback (in this case the callb DroneCore dc; ... //add ports dc.register_on_discover([](uint64_t uuid) { - std::cout << "Discovered device with UUID: " << uuid << std::endl; + std::cout << "Discovered system with UUID: " << uuid << std::endl; }); ``` -## Iterating all Devices +## Iterating all Systems -You can iterate all device UUIDs that have been detected by DroneCore -(since it was started, over all communication ports) using the [device_uuids()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a20490717da3893be2c6965b905a7c1db) method. This returns a vector of [UUID](../api_reference/classdronecore_1_1_info.md#classdronecore_1_1_info_1a49c7dd5f1a369c8296f0c3a2443bc031) values, from which you can get `Device` objects that are used to manage vehicles. +You can iterate all system UUIDs that have been detected by DroneCore +(since it was started, over all communication ports) using the [system_uuids()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1ac9503e701727ffa0293a30a6c8326f10) method. This returns a vector of [UUID](../api_reference/classdronecore_1_1_info.md#classdronecore_1_1_info_1a49c7dd5f1a369c8296f0c3a2443bc031) values, from which you can get `System` objects that are used to manage vehicles. The following code fragment shows how to iterate through the UUIDs (in this case, just printing them to standard `cout`). ```cpp -//Iterate through detected devices -std::vector device_vector= dc.device_uuids(); -for ( auto i = device_vector.begin(); i != device_vector.end(); i++ ) { +//Iterate through detected systems +std::vector system_vector= dc.system_uuids(); +for ( auto i = system_vector.begin(); i != system_vector.end(); i++ ) { std::cout << *i << std::endl; } ``` -The vector contains UUIDs for all devices detected by DroneCore, including those that may no longer be connected. -You can use [DroneCore::is_connected(uint64_t)](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a2f78c2263df997d38cf508e327fcde23) to determine if the device with a particular UUID is connected or not. If you're only expecting a single connection, then you can use the parameterless `is_connected()` method. +The vector contains UUIDs for all systems detected by DroneCore, including those that may no longer be connected. +You can use [DroneCore::is_connected(uint64_t)](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a2f78c2263df997d38cf508e327fcde23) to determine if the system with a particular UUID is connected or not. If you're only expecting a single connection, then you can use the parameterless `is_connected()` method. -## Accessing Devices +## Accessing Systems -Once `DroneCore` has provided you with a vehicle `UUID` you can use the [DroneCore::device()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a5bac6e419e56a1f77a51adef98e94e7c) method to get its associated [Device](../api_reference/classdronecore_1_1_device.md) object: +Once `DroneCore` has provided you with a vehicle `UUID` you can use the [DroneCore::system()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1ab6082fca008ae58b79e87676336506ac) method to get its associated [System](../api_reference/classdronecore_1_1_system.md) object: ```cpp DroneCore dc; //... -//Use UUID named uuid to get the associated Device -Device &device = dc.device(uuid); +//Use UUID named uuid to get the associated System +System &system = dc.system(uuid); ``` -> **Tip** If you know that there is only one connected device you can instead call `device()` without any UUID. This will -return the first device detected, or a null `Device` if none have been discovered. +> **Tip** If you know that there is only one connected system you can instead call `system()` without any UUID. This will +return the first system detected, or a null `System` if none have been discovered. ``` -Device &device = dc.device() +System &system = dc.system() ``` -The `Device` is used by DroneCore plugin classes to query and control the vehicle. For more information see [Using Plugins](../guide/using_plugins.md) (and the other guide topics). +The `System` is used by DroneCore plugin classes to query and control the vehicle. For more information see [Using Plugins](../guide/using_plugins.md) (and the other guide topics). diff --git a/en/guide/device_version.md b/en/guide/device_version.md deleted file mode 100644 index 7fccea4..0000000 --- a/en/guide/device_version.md +++ /dev/null @@ -1,62 +0,0 @@ -## Device Information - -The [Info](../api_reference/classdronecore_1_1_info.md) class is used to get device information, including the device UUID (MAVLink `SYS_ID` if no UUID is stored in hardware), PX4 firmware version, vendor firmware version, host OS version (e.g. for NuttX) and vendor and product ids/names. - -> **Note** Not all version information will necessarily be relevant on all vehicles. Where this occurs the -hardware may return garbage values (for example, the simulator provides garbage values for the vendor -firmware semantic version). - -## Preconditions - -The following code assumes that you already have included DroneCore (`#include `) and that there is a [connection to a device](../guide/connections.md) obtained as shown below: -```cpp -Device &device = dc.device(); -``` - -The code also assumes that you have defined `info`, a shared pointer to an instance of the `Info` class associated with the device (see [Using Plugins](../guide/using_plugins.md)): -```cpp -#include -auto info = std::make_shared(device); -``` - -## Query Device Information - -The code below shows how to query the UUID, version, and product, information and print it to the console: - -```cpp -// Get device UUID -std::cout << " UUID: " << info->uuid() << std::endl; - -// Wait until version/firmware information has been populated from the vehicle -while (!info->is_complete()) { - std::cout << "Waiting for Version information to populate from device." << std::endl; - std::this_thread::sleep_for(std::chrono::seconds(1)); -} - -// Get the device Version struct -const Info::Version &deviceVersion = info->get_version(); - -// Print out the vehicle version information. -std::cout << " flight_sw_major: " << deviceVersion.flight_sw_major<< std::endl - << " flight_sw_minor: " << deviceVersion.flight_sw_minor<< std::endl - << " flight_sw_patch: " << deviceVersion.flight_sw_patch<< std::endl - << " flight_sw_vendor_major: " << deviceVersion.flight_sw_vendor_major<< std::endl - << " flight_sw_vendor_minor: " << deviceVersion.flight_sw_vendor_minor<< std::endl - << " flight_sw_vendor_patch: " << deviceVersion.flight_sw_vendor_patch<< std::endl - << " flight_sw_git_hash: " << deviceVersion.flight_sw_git_hash<< std::endl - << " os_sw_major: " << deviceVersion.os_sw_major<< std::endl - << " os_sw_minor: " << deviceVersion.os_sw_minor<< std::endl - << " os_sw_patch: " << deviceVersion.os_sw_patch<< std::endl - << " os_sw_git_hash: " << deviceVersion.os_sw_git_hash<< std::endl; - -// Get the device Product struct -const Info::Product &deviceProduct = info->get_product(); - -// Print out the vehicle product information. -std::cout << " vendor_id: " << deviceProduct.vendor_id<< std::endl - << " vendor_name: " << deviceProduct.vendor_name<< std::endl - << " product_id: " << deviceProduct.product_id<< std::endl - << " product_name: " << deviceProduct.product_id<< std::endl; -``` - -> **Tip** It is possible to query for the information before all values have been retrieved. Note above how we use `Info::is_complete()` to check that the version information (`Info::Version` and `Info::Product`) has all been obtained from the vehicle before printing it. diff --git a/en/guide/follow_me.md b/en/guide/follow_me.md index 00f7ce1..5dc44b1 100644 --- a/en/guide/follow_me.md +++ b/en/guide/follow_me.md @@ -25,22 +25,22 @@ The main steps are: ... ) ``` -1. [Create a connection](../guide/connections.md) to a `device`. For example (basic code without error checking): +1. [Create a connection](../guide/connections.md) to a `system`. For example (basic code without error checking): ``` #include DroneCore dc; ConnectionResult conn_result = dc.add_udp_connection(); - // Wait for the device to connect via heartbeat + // Wait for the system to connect via heartbeat while (!dc.is_connected()) { sleep_for(seconds(1)); } - // Device got discovered. - Device &device = dc.device(); + // System got discovered. + System &system = dc.system(); ``` -1. Create a shared pointer to an instance of `FollowMe` instantiated with the `device`: +1. Create a shared pointer to an instance of `FollowMe` instantiated with the `system`: ``` #include - auto follow_me = std::make_shared(device); + auto follow_me = std::make_shared(system); ``` The `follow_me` pointer can then used to access the plugin API (as shown in the following sections). diff --git a/en/guide/general_usage.md b/en/guide/general_usage.md index bc8babf..9f1453a 100644 --- a/en/guide/general_usage.md +++ b/en/guide/general_usage.md @@ -6,9 +6,9 @@ This topic provides general/overview information about how DroneCore is used, de [DroneCore](../api_reference/classdronecore_1_1_drone_core.md) is the main library class. Applications must create a `DroneCore` object and destroy it during application shut down. The object is usually created as an automatic variable that is cleaned up when it goes out of scope (you can also dynamically create/destroy the object using `new`/`delete`). -API consumers use [DroneCore](../api_reference/classdronecore_1_1_drone_core.md) to discover and connect to [Device](../api_reference/classdronecore_1_1_device.md) objects (vehicles/cameras etc.). +API consumers use [DroneCore](../api_reference/classdronecore_1_1_drone_core.md) to discover and connect to [System](../api_reference/classdronecore_1_1_system.md) objects (vehicles/cameras etc.). -Access to drone information and control objects are provided [by plugins](../guide/using_plugins.md) (e.g. Telemetry, Action, Mission etc.). Plugin objects are instantiated with a *specific* `Device` object (a plugin instance must be created for every device that needs it). +Access to drone information and control objects are provided [by plugins](../guide/using_plugins.md) (e.g. Telemetry, Action, Mission etc.). Plugin objects are instantiated with a *specific* `System` object (a plugin instance must be created for every system that needs it). Plugin objects are created as shared pointers that will be destroyed when all associated handles are out of scope. All objects are automatically cleaned up when the parent `DroneCore` object is destroyed. @@ -68,5 +68,5 @@ The API allows you to download/import missions. Note however that this will fail ### Connection Status -A device is considered to be disconnected (timed-out) if its heartbeat message is not detected within 3 seconds. +A system is considered to be disconnected (timed-out) if its heartbeat message is not detected within 3 seconds. diff --git a/en/guide/missions.md b/en/guide/missions.md index 1ac7139..219a463 100644 --- a/en/guide/missions.md +++ b/en/guide/missions.md @@ -2,7 +2,7 @@ The DroneCore Mission API allows you to create, upload, download, import from *QGroundControl*, run, pause, restart, jump to item in, and track missions. Missions can have multiple "mission items", each which may specify a position, altitude, fly-through behaviour, camera action, gimbal position, and the speed to use when traveling to the next position. -Missions are *managed* though the [Mission](../api_reference/classdronecore_1_1_mission.md) class, which communicates with the device to upload mission information and run, pause, track the mission progress etc. The mission that is uploaded to the vehicle is defined as a vector of [MissionItem](../api_reference/classdronecore_1_1_mission_item.md) objects. +Missions are *managed* though the [Mission](../api_reference/classdronecore_1_1_mission.md) class, which communicates with the vehicle to upload mission information and run, pause, track the mission progress etc. The mission that is uploaded to the vehicle is defined as a vector of [MissionItem](../api_reference/classdronecore_1_1_mission_item.md) objects. ## Supported Mission Commands {#supported_mission_commands} @@ -43,22 +43,22 @@ The main steps are: ... ) ``` -1. [Create a connection](../guide/connections.md) to a `device`. For example (basic code without error checking): +1. [Create a connection](../guide/connections.md) to a `system`. For example (basic code without error checking): ``` #include DroneCore dc; ConnectionResult conn_result = dc.add_udp_connection(); - // Wait for the device to connect via heartbeat + // Wait for the system to connect via heartbeat while (!dc.is_connected()) { sleep_for(seconds(1)); } - // Device got discovered. - Device &device = dc.device(); + // System got discovered. + System &system = dc.system(); ``` -1. Create a shared pointer to an instance of `Mission` instantiated with the `device`: +1. Create a shared pointer to an instance of `Mission` instantiated with the `system`: ``` #include - auto mission = std::make_shared(device); + auto mission = std::make_shared(system); ``` The `mission` pointer can then used to access the plugin API (as shown in the following sections). diff --git a/en/guide/offboard.md b/en/guide/offboard.md index e40b518..d5e4114 100644 --- a/en/guide/offboard.md +++ b/en/guide/offboard.md @@ -24,22 +24,22 @@ The main steps are: ... ) ``` -1. [Create a connection](../guide/connections.md) to a `device`. For example (basic code without error checking): +1. [Create a connection](../guide/connections.md) to a `system`. For example (basic code without error checking): ``` #include DroneCore dc; ConnectionResult conn_result = dc.add_udp_connection(); - // Wait for the device to connect via heartbeat + // Wait for the system to connect via heartbeat while (!dc.is_connected()) { sleep_for(seconds(1)); } - // Device got discovered. - Device &device = dc.device(); + // System got discovered. + System &system = dc.system(); ``` -1. Create a shared pointer to an instance of `Offboard` instantiated with the `device`: +1. Create a shared pointer to an instance of `Offboard` instantiated with the `system`: ``` #include - auto offboard = std::make_shared(device); + auto offboard = std::make_shared(system); ``` The `offboard` pointer can then used to access the plugin API (as shown in the following sections). diff --git a/en/guide/system_information.md b/en/guide/system_information.md new file mode 100644 index 0000000..dd780b6 --- /dev/null +++ b/en/guide/system_information.md @@ -0,0 +1,62 @@ +# System Information + +The [Info](../api_reference/classdronecore_1_1_info.md) class is used to get system (vehicle) information, including the UUID (MAVLink `SYS_ID` if no UUID is stored in hardware), PX4 firmware version, vendor firmware version, host OS version (e.g. for NuttX) and vendor and product ids/names. + +> **Note** Not all version information will necessarily be relevant on all vehicles. Where this occurs the +hardware may return garbage values (for example, the simulator provides garbage values for the vendor +firmware semantic version). + +## Preconditions + +The following code assumes that you already have included DroneCore (`#include `) and that there is a [connection to a system](../guide/connections.md) obtained as shown below: +```cpp +System &system = dc.system(); +``` + +The code also assumes that you have defined `info`, a shared pointer to an instance of the `Info` class associated with the system (see [Using Plugins](../guide/using_plugins.md)): +```cpp +#include +auto info = std::make_shared(system); +``` + +## Query System Information + +The code below shows how to query the UUID, version, and product, information and print it to the console: + +```cpp +// Get system UUID +std::cout << " UUID: " << info->uuid() << std::endl; + +// Wait until version/firmware information has been populated from the vehicle +while (!info->is_complete()) { + std::cout << "Waiting for Version information to populate from system." << std::endl; + std::this_thread::sleep_for(std::chrono::seconds(1)); +} + +// Get the system Version struct +const Info::Version &systemVersion = info->get_version(); + +// Print out the vehicle version information. +std::cout << " flight_sw_major: " << systemVersion.flight_sw_major<< std::endl + << " flight_sw_minor: " << systemVersion.flight_sw_minor<< std::endl + << " flight_sw_patch: " << systemVersion.flight_sw_patch<< std::endl + << " flight_sw_vendor_major: " << systemVersion.flight_sw_vendor_major<< std::endl + << " flight_sw_vendor_minor: " << systemVersion.flight_sw_vendor_minor<< std::endl + << " flight_sw_vendor_patch: " << systemVersion.flight_sw_vendor_patch<< std::endl + << " flight_sw_git_hash: " << systemVersion.flight_sw_git_hash<< std::endl + << " os_sw_major: " << systemVersion.os_sw_major<< std::endl + << " os_sw_minor: " << systemVersion.os_sw_minor<< std::endl + << " os_sw_patch: " << systemVersion.os_sw_patch<< std::endl + << " os_sw_git_hash: " << systemVersion.os_sw_git_hash<< std::endl; + +// Get the system Product struct +const Info::Product &systemProduct = info->get_product(); + +// Print out the vehicle product information. +std::cout << " vendor_id: " << systemProduct.vendor_id<< std::endl + << " vendor_name: " << systemProduct.vendor_name<< std::endl + << " product_id: " << systemProduct.product_id<< std::endl + << " product_name: " << systemProduct.product_id<< std::endl; +``` + +> **Tip** It is possible to query for the information before all values have been retrieved. Note above how we use `Info::is_complete()` to check that the version information (`Info::Version` and `Info::Product`) has all been obtained from the vehicle before printing it. diff --git a/en/guide/taking_off_landing.md b/en/guide/taking_off_landing.md index b4614ab..dbb3836 100644 --- a/en/guide/taking_off_landing.md +++ b/en/guide/taking_off_landing.md @@ -24,27 +24,26 @@ The main steps are: ... ) ``` -1. [Create a connection](../guide/connections.md) to a `device`. For example (basic code without error checking): +1. [Create a connection](../guide/connections.md) to a `system`. For example (basic code without error checking): ``` #include DroneCore dc; ConnectionResult conn_result = dc.add_udp_connection(); - // Wait for the device to connect via heartbeat + // Wait for the system to connect via heartbeat while (!dc.is_connected()) { sleep_for(seconds(1)); } - // Device got discovered. - Device &device = dc.device(); + // System got discovered. + System &system = dc.system(); ``` -1. Create a shared pointer to an instance of `Action` instantiated with the `device`: +1. Create a shared pointer to an instance of `Action` instantiated with the `system`: ``` #include - auto action = std::make_shared(device); + auto action = std::make_shared(system); ``` The `action` pointer can then used to access the plugin API (as shown in the following sections). - > **Note** Some of the sections below additionally assume you have created a `Telemetry` instance that can be accessed using `telemetry`. diff --git a/en/guide/telemetry.md b/en/guide/telemetry.md index 5229ec4..8773f08 100644 --- a/en/guide/telemetry.md +++ b/en/guide/telemetry.md @@ -40,22 +40,22 @@ The main steps are: ... ) ``` -1. [Create a connection](../guide/connections.md) to a `device`. For example (basic code without error checking): +1. [Create a connection](../guide/connections.md) to a `system`. For example (basic code without error checking): ``` #include DroneCore dc; ConnectionResult conn_result = dc.add_udp_connection(); - // Wait for the device to connect via heartbeat + // Wait for the system to connect via heartbeat while (!dc.is_connected()) { sleep_for(seconds(1)); } - // Device got discovered. - Device &device = dc.device(); + // System got discovered. + System &system = dc.system(); ``` -1. Create a shared pointer to an instance of `Telemetry` instantiated with the `device`: +1. Create a shared pointer to an instance of `Telemetry` instantiated with the `system`: ``` #include - auto telemetry = std::make_shared(device); + auto telemetry = std::make_shared(system); ``` The `telemetry` pointer can then used to access the plugin API (as shown in the following sections). @@ -162,7 +162,7 @@ Similarly, you can use the asynchronous method and block ```cpp { - std::cout << "Waiting for device to be ready" << std::endl; + std::cout << "Waiting for system to be ready" << std::endl; auto prom = std::make_shared>(); auto future_result = prom->get_future(); telemetry->health_all_ok_async( diff --git a/en/guide/using_plugins.md b/en/guide/using_plugins.md index d0ef395..939f68b 100644 --- a/en/guide/using_plugins.md +++ b/en/guide/using_plugins.md @@ -1,6 +1,6 @@ -# Using Plugins (Managing Devices) +# Managing Systems/Vehicles (Using Plugins) -Access to drone information, telemetry and control objects are provided by a number of different *plugins*. For example, the [Action](../api_reference/classdronecore_1_1_action.md) plugin is used to arm, takeoff and land the vehicle, while the [Telemetry](../guide/telemetry.md) plugin can be used to query the device GPS status, flight mode, etc. A separate plugin instance must be created for each device that needs it. +Access to drone information, telemetry and control objects are provided by a number of different *plugins*. For example, the [Action](../api_reference/classdronecore_1_1_action.md) plugin is used to arm, takeoff and land the vehicle, while the [Telemetry](../guide/telemetry.md) plugin can be used to query the vehicle GPS status, flight mode, etc. A separate plugin instance must be created for each system that needs it. > **Note** All plugins are declared/used in the same way. This topic uses the `Action` plugin for the purposes of the demonstration. @@ -23,12 +23,12 @@ In the application source code: ```cpp #include ``` -1. [Create a connection](../guide/connections.md) to a `Device` object (below named: `device`). -1. Make a shared pointer to the plugin object, specifying the `Device` it is to be used with: +1. [Create a connection](../guide/connections.md) to a `System` object (below named: `system`). +1. Make a shared pointer to the plugin object, specifying the `System` it is to be used with: ```cpp - auto action = std::make_shared(device); + auto action = std::make_shared(system); ``` -1. The pointer can then be used to invoke actions on the specified device. For example, to takeoff you would call the API as shown: +1. The pointer can then be used to invoke actions on the specified system. For example, to takeoff you would call the API as shown: ```cpp action->takeoff(); ``` From 2d33e1adba7a243e238ea81707dffdc224313ade Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 12 Apr 2018 15:13:07 +1000 Subject: [PATCH 101/107] Fix broken links to API ref anchors --- en/contributing/dev_logging.md | 2 +- en/examples/README.md | 2 +- en/examples/fly_mission_qgc_plan.md | 2 +- en/guide/general_usage.md | 4 ++-- en/guide/taking_off_landing.md | 14 +++++++------- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/en/contributing/dev_logging.md b/en/contributing/dev_logging.md index 59de704..d1e880a 100644 --- a/en/contributing/dev_logging.md +++ b/en/contributing/dev_logging.md @@ -35,6 +35,6 @@ Function | Description | Example Basic logging is defined in source for both incoming (handled/ignored) and sent MAVLink messages. -This functionality is disabled by default, and available only in debug builds. To enable the logs, set `#define MESSAGE_DEBUGGING 1` in [core/device.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/core/device.cpp) +This functionality is disabled by default, and available only in debug builds. To enable the logs, set `#define MESSAGE_DEBUGGING 1` in [core/system.cpp](https://github.com/dronecore/DroneCore/blob/{{ book.github_branch }}/core/system.cpp) \ No newline at end of file diff --git a/en/examples/README.md b/en/examples/README.md index 8439b59..c77b15e 100644 --- a/en/examples/README.md +++ b/en/examples/README.md @@ -23,7 +23,7 @@ The examples are designed to automatically connect to a [simulated PX4 vehicle]( In order to test them, 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 by default, using [DroneCore::add_udp_connection()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1ae4d3a7e5cc46d9570beaafdb5f19a1a8). +> **Note** The simulator broadcasts to the standard PX4 UDP port for connecting to offboard APIs (14540). The examples connect to this port by default, using [DroneCore::add_udp_connection()](../api_reference/classdronecore_1_1_drone_core.md#classdronecore_1_1_drone_core_1a7a04fbacf95eb6b21418032c8287dfbb). ### Setting up a Simulator diff --git a/en/examples/fly_mission_qgc_plan.md b/en/examples/fly_mission_qgc_plan.md index 63c030f..2ff3cb9 100644 --- a/en/examples/fly_mission_qgc_plan.md +++ b/en/examples/fly_mission_qgc_plan.md @@ -25,7 +25,7 @@ Usage: ./fly_qgc_mission Importing mission from Default mission plan: ../../../plugins/mission/qgroundcontrol_sample.plan Waiting to discover system... [02:25:09|Info ] New system on: 127.0.0.1:14557 (udp_connection.cpp:211) -[02:25:09|Debug] MAVLink: info: DISARMED by auto disarm on land (device.cpp:247) +[02:25:09|Debug] MAVLink: info: DISARMED by auto disarm on land (system.cpp:247) [02:25:09|Debug] Discovered 4294967298 (dronecore_impl.cpp:219) Discovered system with UUID: 4294967298 Waiting for system to be ready diff --git a/en/guide/general_usage.md b/en/guide/general_usage.md index 9f1453a..1e4e459 100644 --- a/en/guide/general_usage.md +++ b/en/guide/general_usage.md @@ -41,7 +41,7 @@ The APIs include methods that do not make sense for other vehicle types - includ ### Telemetry/Information -DroneCore gets and stores vehicle state/telemetry information from received MAVLink messages. The information is supplied to callback subscribers as soon as message updates are received. Clients can also query the API synchronously, and will get the information from the last recieved message (depending on channel latency, this information will become increasingly "stale" between messages). +DroneCore gets and stores vehicle state/telemetry information from received MAVLink messages. The information is supplied to callback subscribers as soon as message updates are received. Clients can also query the API synchronously, and will get the information from the last received message (depending on channel latency, this information will become increasingly "stale" between messages). The rate at which update messages are sent by the vehicle can be specified using DroneCore (but will be limited by the bandwidth of the channel). Developers need to use a channel and a message update rate that allows their desired control algorithm to be effective - there is no point trying to use computer vision over an unreliable high-latency link. @@ -52,7 +52,7 @@ The rate at which update messages are sent by the vehicle can be specified using `Action` methods (and any other "vehicle instructions") return when the vehicle has confirmed that the message was received and will be acted on (or not). The methods do not wait for the commanded action to complete. -So, for example, the [Action::land()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1ad1a50dd7bff99d3099916576efbf8cf6) method returns as soon as the vehicle confirms it will land, but will actually land at some later point. +So, for example, the [Action::land()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a08367528cdf25404b7db6db457e3c6f9) method returns as soon as the vehicle confirms it will land, but will actually land at some later point. The implication is that developers will need to separately monitor the completion of the requested actions, if this is important to the application. diff --git a/en/guide/taking_off_landing.md b/en/guide/taking_off_landing.md index dbb3836..86a1864 100644 --- a/en/guide/taking_off_landing.md +++ b/en/guide/taking_off_landing.md @@ -49,7 +49,7 @@ The `action` pointer can then used to access the plugin API (as shown in the fol ## Taking Off -The recommended way to take off using DroneCore (and PX4) is to use either of the [takeoff()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1ae159c78b1a4056137187dc6e6d878539) or [takeoff_async()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a2aec10a2b14f5e82f05edc6e2feac83e) methods. If a takeoff command is accepted the vehicle will change to the [Takeoff mode](https://docs.px4.io/en/flight_modes/takeoff.html), fly to the takeoff altitude, and then hover (in takeoff mode) until another instruction is received. +The recommended way to take off using DroneCore (and PX4) is to use either of the [takeoff()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a1d6244edfd39272d97bf8b126eb98629) or [takeoff_async()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a2aec10a2b14f5e82f05edc6e2feac83e) methods. If a takeoff command is accepted the vehicle will change to the [Takeoff mode](https://docs.px4.io/en/flight_modes/takeoff.html), fly to the takeoff altitude, and then hover (in takeoff mode) until another instruction is received. > **Note** PX4/DroneCore also provides other ways to take off: > - A copter or VTOL will take off automatically if a mission is started (fixed-wing will not). @@ -176,7 +176,7 @@ while (current_position **Note** DroneCore does not at time of writing recommend other approaches for landing: land mission items are not supported and manually landing the vehicle using the offboard is not as safe. @@ -203,7 +203,7 @@ std::cout << "Disarmed, exiting." << std::endl; ## Return/RTL -[Return mode](https://docs.px4.io/en/flight_modes/rtl.html) (also known as "Return to Launch", "Return to Land", "Return to Home") flies the vehicle back to the home position and may also land the vehicle (depending on vehicle configuration). This mode is invoked from DroneCore using the [return_to_launch()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a9af73101ce850e37cf7259dcdeda2eb9) or [return_to_launch_async()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1aa1253c356c7628d329dfa98d78eb39ee) methods. +[Return mode](https://docs.px4.io/en/flight_modes/return.html) (also known as "Return to Launch", "Return to Land", "Return to Home") flies the vehicle back to the home position and may also land the vehicle (depending on vehicle configuration). This mode is invoked from DroneCore using the [return_to_launch()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a740a3bf125560edaf810865a616b2d24) or [return_to_launch_async()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1aa1253c356c7628d329dfa98d78eb39ee) methods. The code below shows how to use the synchronous method: @@ -222,8 +222,8 @@ Depending on the vehicle it may land or hover around the return point. For vehic Use the disarm or kill methods to stop the drone motors (the difference is that disarming will only succeed if the drone considers itself landed, while kill will disarm a vehicle even in flight). The methods are listed below. These are used in the same way as other similar `Action` APIs: -- [disarm()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1ad4b0231afcfebc261a720194f893dcd8), [disarm_async](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1acc0a17411a25f5641ae21046b459e79e) -- [kill()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1adc272f46adf4c52fbe7bd091a436b28b), [kill_async](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a1d7d09191d9319c7912962b2dd02caa7) +- [disarm()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a0ab29022df5d93d4f590d83a3e9c4349), [disarm_async](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1acc0a17411a25f5641ae21046b459e79e) +- [kill()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a615cff3ac4321340a9871416d2ca1db8), [kill_async](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a1d7d09191d9319c7912962b2dd02caa7) > **Tip** PX4 will automatically disarm the vehicle after landing. The disarm methods explicitly invoke the same functionality. @@ -231,7 +231,7 @@ The methods are listed below. These are used in the same way as other similar `A ## Get/Set Cruise Speed -You can get/set the normal horizontal velocity used in *Return mode*, *Hold mode*, *Takeoff* (and other [AUTO Flight Modes](https://docs.px4.io/en/flight_modes/#auto-modes)) using the following methods: +You can get/set the normal horizontal velocity used in *Return mode*, *Hold mode*, *Takeoff* (and other [AUTO Flight Modes](https://docs.px4.io/en/getting_started/flight_modes.html#categories) using the following methods: * [set_max_speed()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1abc27410a9b2a938b21ab59c5ef9ee941) * [get_max_speed_m_s](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1abc27410a9b2a938b21ab59c5ef9ee941) @@ -242,7 +242,7 @@ You can get/set the normal horizontal velocity used in *Return mode*, *Hold mode ## Switch Between VTOL Modes {#transition_vtol} DroneCore provides methods to transition between VTOL fixed wing and multicopter modes, with both synchronous and asynchronous versions: -* [transition_to_fixedwing()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a6f40384be0ad61a29b6e2fd0a0c86754), [transition_to_multicopter()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a0088dbe4c715e2bfbe805b89d28add5a) +* [transition_to_fixedwing()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a559e6cfa22f937acc0bbd1f9ac4e54fa), [transition_to_multicopter()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a3af080379382fedbc3ad8bdbaf3c4e4c) * [transition_to_fixedwing_async()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1af5b02f05ffdc2e0787a7633410710d9d), [transition_to_multicopter_async()](../api_reference/classdronecore_1_1_action.md#classdronecore_1_1_action_1a053aa7430852a4200b201abda1b3b3e4) The associated action will only be executed for VTOL vehicles (on other vehicle types the command will fail with a `Result` of `VTOL_TRANSITION_SUPPORT_UNKNOWN` or `NO_VTOL_TRANSITION_SUPPORT`). The command will succeed if called when the vehicle is already in the mode. From 16baad342d64a2fc200bcc81e9e32678e50d3ae1 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Thu, 12 Apr 2018 16:43:43 +1000 Subject: [PATCH 102/107] Update system constructor doc --- en/api_reference/classdronecore_1_1_gimbal.md | 2 +- en/api_reference/classdronecore_1_1_system.md | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/en/api_reference/classdronecore_1_1_gimbal.md b/en/api_reference/classdronecore_1_1_gimbal.md index 902b543..ef886ed 100644 --- a/en/api_reference/classdronecore_1_1_gimbal.md +++ b/en/api_reference/classdronecore_1_1_gimbal.md @@ -4,7 +4,7 @@ ---- -The [Gimbal](classdronecore_1_1_gimbal.md) class enables to control a gimbal. +The [Gimbal](classdronecore_1_1_gimbal.md) class provides control over a gimbal. Synchronous and asynchronous variants of the gimbal methods are supplied. diff --git a/en/api_reference/classdronecore_1_1_system.md b/en/api_reference/classdronecore_1_1_system.md index 0646625..8a7a847 100644 --- a/en/api_reference/classdronecore_1_1_system.md +++ b/en/api_reference/classdronecore_1_1_system.md @@ -4,7 +4,10 @@ ---- -This class represents a system, made up of one or more components (e.g. autopilot, cameras, servos, gimbals, etc). Commonly [System](classdronecore_1_1_system.md) objects are used to interact with UAVs (including their components) and standalone cameras. +This class represents a system, made up of one or more components (e.g. autopilot, cameras, servos, gimbals, etc). + + +[System](classdronecore_1_1_system.md) objects are used to interact with UAVs (including their components) and standalone cameras. They are not created directly by application code, but are returned by the [DroneCore](classdronecore_1_1_drone_core.md) class. ## Public Member Functions @@ -33,12 +36,13 @@ dronecore::System::System(DroneCoreImpl &parent, uint8_t system_id, uint8_t comp Constructor. +This constructor is not (and should not be) directly called by application code. **Parameters** * DroneCoreImpl& **parent** - -* uint8_t **system_id** - MAVLink system id. -* uint8_t **comp_id** - MAVLink component id. +* uint8_t **system_id** - System id. +* uint8_t **comp_id** - Component id. ### ~System() {#classdronecore_1_1_system_1abeed98bdc18e63fc3632a3a0d1c9c097} ```cpp From 68967f972f3503f77baefb26a6865b063c94e591 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Fri, 13 Apr 2018 11:14:34 +1000 Subject: [PATCH 103/107] Fix typo --- en/guide/connections.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/guide/connections.md b/en/guide/connections.md index 49dc0ca..863a0dd 100644 --- a/en/guide/connections.md +++ b/en/guide/connections.md @@ -62,7 +62,7 @@ The following code fragment shows how to iterate through the UUIDs (in this case ```cpp //Iterate through detected systems -std::vector system_vector= dc.system_uuids(); +std::vector system_vector = dc.system_uuids(); for ( auto i = system_vector.begin(); i != system_vector.end(); i++ ) { std::cout << *i << std::endl; } From 752010e97f3e8b298cc821930060860e63cc8b07 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 24 Apr 2018 13:57:05 +1000 Subject: [PATCH 104/107] Add camera API reference --- en/SUMMARY.md | 7 + en/api_reference/classdronecore_1_1_camera.md | 629 ++++++++++++++++++ .../classdronecore_1_1_drone_core.md | 3 + .../classdronecore_1_1_mission_item.md | 32 +- .../classdronecore_1_1_telemetry.md | 4 +- en/api_reference/namespacedronecore.md | 101 +++ ...ctdronecore_1_1_camera_1_1_capture_info.md | 93 +++ ..._1_camera_1_1_capture_info_1_1_position.md | 63 ++ ..._camera_1_1_capture_info_1_1_quaternion.md | 69 ++ .../structdronecore_1_1_camera_1_1_status.md | 106 +++ ...necore_1_1_camera_1_1_video_stream_info.md | 57 ++ ...re_1_1_camera_1_1_video_stream_settings.md | 167 +++++ 12 files changed, 1327 insertions(+), 4 deletions(-) create mode 100644 en/api_reference/classdronecore_1_1_camera.md create mode 100644 en/api_reference/structdronecore_1_1_camera_1_1_capture_info.md create mode 100644 en/api_reference/structdronecore_1_1_camera_1_1_capture_info_1_1_position.md create mode 100644 en/api_reference/structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion.md create mode 100644 en/api_reference/structdronecore_1_1_camera_1_1_status.md create mode 100644 en/api_reference/structdronecore_1_1_camera_1_1_video_stream_info.md create mode 100644 en/api_reference/structdronecore_1_1_camera_1_1_video_stream_settings.md diff --git a/en/SUMMARY.md b/en/SUMMARY.md index d64cd76..ad87170 100644 --- a/en/SUMMARY.md +++ b/en/SUMMARY.md @@ -45,6 +45,13 @@ * [struct VelocityBodyYawspeed](api_reference/structdronecore_1_1_offboard_1_1_velocity_body_yawspeed.md) * [struct VelocityNEDYaw](api_reference/structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw.md) * [class Gimbal](api_reference/classdronecore_1_1_gimbal.md) + * [class Camera](api_reference/classdronecore_1_1_camera.md) + * [struct CaptureInfo](api_reference/structdronecore_1_1_camera_1_1_capture_info.md) + * [struct Position](api_reference/structdronecore_1_1_camera_1_1_capture_info_1_1_position.md) + * [struct Quaternion](api_reference/structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion.md) + * [struct Status](api_reference/structdronecore_1_1_camera_1_1_status.md) + * [struct VideoStreamInfo](api_reference/structdronecore_1_1_camera_1_1_video_stream_info.md) + * [struct VideoStreamSettings](api_reference/structdronecore_1_1_camera_1_1_video_stream_settings.md) * [class FollowMe](api_reference/classdronecore_1_1_follow_me.md) * [struct Config](api_reference/structdronecore_1_1_follow_me_1_1_config.md) * [struct TargetLocation ](api_reference/structdronecore_1_1_follow_me_1_1_target_location.md) diff --git a/en/api_reference/classdronecore_1_1_camera.md b/en/api_reference/classdronecore_1_1_camera.md new file mode 100644 index 0000000..bbec703 --- /dev/null +++ b/en/api_reference/classdronecore_1_1_camera.md @@ -0,0 +1,629 @@ +# dronecore::Camera Class Reference +`#include: camera.h` + +---- + + +The [Camera](classdronecore_1_1_camera.md) class can be used to manage cameras that implement the MAVLink [Camera](classdronecore_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. + + +Synchronous and asynchronous variants of the camera methods are supplied. + + +## Data Structures + + +struct [CaptureInfo](structdronecore_1_1_camera_1_1_capture_info.md) + +struct [Status](structdronecore_1_1_camera_1_1_status.md) + +struct [VideoStreamInfo](structdronecore_1_1_camera_1_1_video_stream_info.md) + +struct [VideoStreamSettings](structdronecore_1_1_camera_1_1_video_stream_settings.md) + +## Public Types + + +Type | Description +--- | --- +enum [Result](#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41) | Possible results returned for camera commands. +enum [Mode](#classdronecore_1_1_camera_1a06a76346c678cfe6789b3420951c8e53) | [Camera](classdronecore_1_1_camera.md) mode type. +std::function< void([Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41))> [result_callback_t](#classdronecore_1_1_camera_1a56dad71243eb163159eb240883497de7) | Callback type for asynchronous [Camera](classdronecore_1_1_camera.md) calls. +std::function< void([Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41), const [Mode](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a06a76346c678cfe6789b3420951c8e53) &)> [mode_callback_t](#classdronecore_1_1_camera_1aad2a5b8de0e3d131ddcea57b0362559a) | Callback type for asynchronous camera mode calls. +std::function< void([CaptureInfo](structdronecore_1_1_camera_1_1_capture_info.md))> [capture_info_callback_t](#classdronecore_1_1_camera_1a925fa5261c7b9805d17871392881584d) | Callback type for capture info updates. +std::function< void([Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41), const [Status](structdronecore_1_1_camera_1_1_status.md) &)> [get_status_callback_t](#classdronecore_1_1_camera_1a3ea9bc0ef624e56c602c47e9860bc9d6) | Callback type to get status. +std::function< void([Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41), const std::string &)> [get_option_callback_t](#classdronecore_1_1_camera_1a0f26145d52eeb4f997dbcfe0bbe7b4a7) | Callback type to get an option. + +## Public Member Functions + + +Type | Name | Description +---: | --- | --- +  | [Camera](#classdronecore_1_1_camera_1a1ad8f6f09e5133a4e01330b0ef8f9183) ([System](classdronecore_1_1_system.md) & system) | Constructor. Creates the plugin for a specific [System](classdronecore_1_1_system.md). +  | [~Camera](#classdronecore_1_1_camera_1a7105f66a1b0bbd6f674177a60bc21435) () | Destructor (internal use only). +  | [Camera](#classdronecore_1_1_camera_1a45965cb1ff1c3be05a24db698325fe7d) (const [Camera](classdronecore_1_1_camera.md) &)=delete | Copy constructor (object is not copyable). +[Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41) | [take_photo](#classdronecore_1_1_camera_1a3ae5b3eff2075e70b1dc27d75426ee97) () | Take photo (synchronous). +[Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41) | [start_photo_interval](#classdronecore_1_1_camera_1ac803f96ffcfb936998fb40e3f18bff5f) (float interval_s) | Start photo interval (synchronous). +[Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41) | [stop_photo_interval](#classdronecore_1_1_camera_1aaa97336420cdc0eb92f0b6bea54c6034) () | Stop photo interval (synchronous). +[Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41) | [start_video](#classdronecore_1_1_camera_1a142603863f6ca0ad23393279d5bd8cda) () | Start video capture (synchronous). +[Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41) | [stop_video](#classdronecore_1_1_camera_1ae38edbf0281f860ea15ef6fce9e14bbc) () | Stop video capture (synchronous). +void | [take_photo_async](#classdronecore_1_1_camera_1a9ff78b51a7ebb89913ed38e6d49cf020) (const [result_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a56dad71243eb163159eb240883497de7) & callback) | Take photo (asynchronous). +void | [start_photo_interval_async](#classdronecore_1_1_camera_1a38520327452e28703f633f49fc5818dd) (float interval_s, const [result_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a56dad71243eb163159eb240883497de7) & callback) | Start photo interval (asynchronous). +void | [stop_photo_interval_async](#classdronecore_1_1_camera_1af3c2fa47f834872ca7c01e3161180eaa) (const [result_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a56dad71243eb163159eb240883497de7) & callback) | Stop photo interval (asynchronous). +void | [start_video_async](#classdronecore_1_1_camera_1a816aae9a3a513616cd84859a2c11090f) (const [result_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a56dad71243eb163159eb240883497de7) & callback) | Start video capture (asynchronous). +void | [stop_video_async](#classdronecore_1_1_camera_1a2d4cb350fb627ea4d441e47af8a5d1a2) (const [result_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a56dad71243eb163159eb240883497de7) & callback) | Stop video capture (asynchronous). +void | [set_mode_async](#classdronecore_1_1_camera_1a47bdbc62d27b78dfdc27a315037fc49a) ([Mode](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a06a76346c678cfe6789b3420951c8e53) mode, const [mode_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1aad2a5b8de0e3d131ddcea57b0362559a) & callback) | Setter for camera mode (asynchronous). +void | [get_mode_async](#classdronecore_1_1_camera_1a530d68aafeac46c4d1c16fac4b115490) (const [mode_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1aad2a5b8de0e3d131ddcea57b0362559a) & callback) | Getter for camera mode (asynchronous). +void | [set_video_stream_settings](#classdronecore_1_1_camera_1a9a059a12960396051500fa7f4e2710f7) (const [VideoStreamSettings](structdronecore_1_1_camera_1_1_video_stream_settings.md) & settings) | Sets video stream settings. +[Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41) | [get_video_stream_info](#classdronecore_1_1_camera_1a1137d3b38b134e0e3ba7d88048448a1f) ([VideoStreamInfo](structdronecore_1_1_camera_1_1_video_stream_info.md) & info) | Get video stream information (synchronous). +[Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41) | [start_video_streaming](#classdronecore_1_1_camera_1a1abbf7e3287e95c987a6d46b60f4e8fa) () | Starts video streaming (synchronous). +[Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41) | [stop_video_streaming](#classdronecore_1_1_camera_1a017f92a972bfbb96ff503d6ff83e841c) () | Stop the current video streaming (synchronous). +void | [capture_info_async](#classdronecore_1_1_camera_1a3ec64d057112170f7b5f8c2cb0dcb05e) ([capture_info_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a925fa5261c7b9805d17871392881584d) callback) | Subscribe to capture info updates (asynchronous). +void | [get_status_async](#classdronecore_1_1_camera_1a9194c34754f227ecd0977fd703cd75c3) ([get_status_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a3ea9bc0ef624e56c602c47e9860bc9d6) callback) | Get camera status (asynchronous). +bool | [get_possible_settings](#classdronecore_1_1_camera_1ae243af289509a947c6acae2b114dfe60) (std::vector< std::string > & settings) | Get settings that can be changed. +bool | [get_possible_options](#classdronecore_1_1_camera_1a6fb081ce851550f5f3801435c9c60ce7) (const std::string & setting_name, std::vector< std::string > & options) | Get possible options for a setting that can be selected. +void | [get_option_async](#classdronecore_1_1_camera_1a551b362675fefeca303b928079b45f2d) (const std::string & setting, const [get_option_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a0f26145d52eeb4f997dbcfe0bbe7b4a7) & callback) | Get an option of a setting (asynchronous). +void | [set_option_async](#classdronecore_1_1_camera_1a88a2c44d283cb75af59d192c9dfb8e89) (const std::string & setting, const std::string & option, const [result_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a56dad71243eb163159eb240883497de7) & callback) | Set an option of a setting (asynchronous). +bool | [get_setting_str](#classdronecore_1_1_camera_1a2d6ad304ea562d4e44d7a704aef461f5) (const std::string & setting_name, std::string & description) | Get the human readable string of a setting. +bool | [get_option_str](#classdronecore_1_1_camera_1a88971b75b1a97af268f8520130165032) (const std::string & setting_name, const std::string & option_name, std::string & description) | Get the human readable string of an option. +const [Camera](classdronecore_1_1_camera.md) & | [operator=](#classdronecore_1_1_camera_1a909c0921d5920653a2b8a7a2e030ca29) (const [Camera](classdronecore_1_1_camera.md) &)=delete | Equality operator (object is not copyable). + +## Static Public Member Functions + + +Type | Name | Description +---: | --- | --- +std::string | [result_str](#classdronecore_1_1_camera_1af319f7ae74920a72917a10fecf9ac4d0) ([Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41) result) | Returns a human-readable English string for [Camera::Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41). + + +## Constructor & Destructor Documentation + + +### Camera() {#classdronecore_1_1_camera_1a1ad8f6f09e5133a4e01330b0ef8f9183} +```cpp +dronecore::Camera::Camera(System &system) +``` + + +Constructor. Creates the plugin for a specific [System](classdronecore_1_1_system.md). + +The plugin is typically created as shown below: + +```cpp +auto camera = std::make_shared(system); +``` + +**Parameters** + +* [System](classdronecore_1_1_system.md)& **system** - The specific system associated with this plugin. + +### ~Camera() {#classdronecore_1_1_camera_1a7105f66a1b0bbd6f674177a60bc21435} +```cpp +dronecore::Camera::~Camera() +``` + + +Destructor (internal use only). + + +### Camera() {#classdronecore_1_1_camera_1a45965cb1ff1c3be05a24db698325fe7d} +```cpp +dronecore::Camera::Camera(const Camera &)=delete +``` + + +Copy constructor (object is not copyable). + + +**Parameters** + +* const [Camera](classdronecore_1_1_camera.md)& - + +## Member Typdef Documentation + + +### typedef result_callback_t {#classdronecore_1_1_camera_1a56dad71243eb163159eb240883497de7} + +```cpp +typedef std::function dronecore::Camera::result_callback_t +``` + + +Callback type for asynchronous [Camera](classdronecore_1_1_camera.md) calls. + + +### typedef mode_callback_t {#classdronecore_1_1_camera_1aad2a5b8de0e3d131ddcea57b0362559a} + +```cpp +typedef std::function dronecore::Camera::mode_callback_t +``` + + +Callback type for asynchronous camera mode calls. + + +### typedef capture_info_callback_t {#classdronecore_1_1_camera_1a925fa5261c7b9805d17871392881584d} + +```cpp +typedef std::function dronecore::Camera::capture_info_callback_t +``` + + +Callback type for capture info updates. + + +### typedef get_status_callback_t {#classdronecore_1_1_camera_1a3ea9bc0ef624e56c602c47e9860bc9d6} + +```cpp +typedef std::function dronecore::Camera::get_status_callback_t +``` + + +Callback type to get status. + + +### typedef get_option_callback_t {#classdronecore_1_1_camera_1a0f26145d52eeb4f997dbcfe0bbe7b4a7} + +```cpp +typedef std::function dronecore::Camera::get_option_callback_t +``` + + +Callback type to get an option. + + +## Member Enumeration Documentation + + +### enum Result {#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41} + + +Possible results returned for camera commands. + + +Value | Description +--- | --- + `SUCCESS` | [Camera](classdronecore_1_1_camera.md) command executed successfully. + `IN_PROGRESS` | [Camera](classdronecore_1_1_camera.md) command is in progress. + `BUSY` | [Camera](classdronecore_1_1_camera.md) is busy and rejected command. + `DENIED` | [Camera](classdronecore_1_1_camera.md) has denied the command. + `ERROR` | An error has occurred while executing the command. + `TIMEOUT` | [Camera](classdronecore_1_1_camera.md) has not responded in time and the command has timed out. + `WRONG_ARGUMENT` | The command has wrong arguments. + `UNKNOWN` | The result is unknown. + +### enum Mode {#classdronecore_1_1_camera_1a06a76346c678cfe6789b3420951c8e53} + + +[Camera](classdronecore_1_1_camera.md) mode type. + + +Value | Description +--- | --- + `PHOTO` | Photo mode. + `VIDEO` | Video mode. + `UNKNOWN` | Unknown mode. + +## Member Function Documentation + + +### take_photo() {#classdronecore_1_1_camera_1a3ae5b3eff2075e70b1dc27d75426ee97} +```cpp +Result dronecore::Camera::take_photo() +``` + + +Take photo (synchronous). + +This takes one photo. + +**Returns** + + [Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41) - Result of request. + +### start_photo_interval() {#classdronecore_1_1_camera_1ac803f96ffcfb936998fb40e3f18bff5f} +```cpp +Result dronecore::Camera::start_photo_interval(float interval_s) +``` + + +Start photo interval (synchronous). + +Starts a photo timelapse with a given interval. + +**Parameters** + +* float **interval_s** - The interval between photos in seconds. + +**Returns** + + [Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41) - Result of request. + +**See Also:** +- [stop_photo_interval()](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1aaa97336420cdc0eb92f0b6bea54c6034) + + +### stop_photo_interval() {#classdronecore_1_1_camera_1aaa97336420cdc0eb92f0b6bea54c6034} +```cpp +Result dronecore::Camera::stop_photo_interval() +``` + + +Stop photo interval (synchronous). + +Stops a photo timelapse, previously started with [start_photo_interval()](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac803f96ffcfb936998fb40e3f18bff5f). + +**Returns** + + [Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41) - Result of request. + +### start_video() {#classdronecore_1_1_camera_1a142603863f6ca0ad23393279d5bd8cda} +```cpp +Result dronecore::Camera::start_video() +``` + + +Start video capture (synchronous). + +This starts a video recording. + +**Returns** + + [Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41) - Result of request. + +### stop_video() {#classdronecore_1_1_camera_1ae38edbf0281f860ea15ef6fce9e14bbc} +```cpp +Result dronecore::Camera::stop_video() +``` + + +Stop video capture (synchronous). + +This stops a video recording, previously started with [start_video()](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a142603863f6ca0ad23393279d5bd8cda). + +**Returns** + + [Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41) - Result of request. + +### take_photo_async() {#classdronecore_1_1_camera_1a9ff78b51a7ebb89913ed38e6d49cf020} +```cpp +void dronecore::Camera::take_photo_async(const result_callback_t &callback) +``` + + +Take photo (asynchronous). + +This takes one photo. + +**Parameters** + +* const [result_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a56dad71243eb163159eb240883497de7)& **callback** - Function to call with result of request. + +### start_photo_interval_async() {#classdronecore_1_1_camera_1a38520327452e28703f633f49fc5818dd} +```cpp +void dronecore::Camera::start_photo_interval_async(float interval_s, const result_callback_t &callback) +``` + + +Start photo interval (asynchronous). + +Starts a photo timelapse with a given interval. + +**Parameters** + +* float **interval_s** - The interval between photos in seconds. +* const [result_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a56dad71243eb163159eb240883497de7)& **callback** - Function to call with result of request. + +**See Also:** +- [stop_photo_interval_async](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1af3c2fa47f834872ca7c01e3161180eaa) + + +### stop_photo_interval_async() {#classdronecore_1_1_camera_1af3c2fa47f834872ca7c01e3161180eaa} +```cpp +void dronecore::Camera::stop_photo_interval_async(const result_callback_t &callback) +``` + + +Stop photo interval (asynchronous). + +Stops a photo timelapse, previously started with [start_photo_interval_async()](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a38520327452e28703f633f49fc5818dd). + +**Parameters** + +* const [result_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a56dad71243eb163159eb240883497de7)& **callback** - Function to call with result of request. + +### start_video_async() {#classdronecore_1_1_camera_1a816aae9a3a513616cd84859a2c11090f} +```cpp +void dronecore::Camera::start_video_async(const result_callback_t &callback) +``` + + +Start video capture (asynchronous). + +This starts a video recording. + +**Parameters** + +* const [result_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a56dad71243eb163159eb240883497de7)& **callback** - Function to call with result of request. + +### stop_video_async() {#classdronecore_1_1_camera_1a2d4cb350fb627ea4d441e47af8a5d1a2} +```cpp +void dronecore::Camera::stop_video_async(const result_callback_t &callback) +``` + + +Stop video capture (asynchronous). + +This stops a video recording, previously started with [start_video_async()](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a816aae9a3a513616cd84859a2c11090f). + +**Parameters** + +* const [result_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a56dad71243eb163159eb240883497de7)& **callback** - Function to call with result of request. + +### set_mode_async() {#classdronecore_1_1_camera_1a47bdbc62d27b78dfdc27a315037fc49a} +```cpp +void dronecore::Camera::set_mode_async(Mode mode, const mode_callback_t &callback) +``` + + +Setter for camera mode (asynchronous). + + +**Parameters** + +* [Mode](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a06a76346c678cfe6789b3420951c8e53) **mode** - [Camera](classdronecore_1_1_camera.md) mode to set. +* const [mode_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1aad2a5b8de0e3d131ddcea57b0362559a)& **callback** - Function to call with result of request. + +### get_mode_async() {#classdronecore_1_1_camera_1a530d68aafeac46c4d1c16fac4b115490} +```cpp +void dronecore::Camera::get_mode_async(const mode_callback_t &callback) +``` + + +Getter for camera mode (asynchronous). + + +**Parameters** + +* const [mode_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1aad2a5b8de0e3d131ddcea57b0362559a)& **callback** - Function to call with result of request. + +### set_video_stream_settings() {#classdronecore_1_1_camera_1a9a059a12960396051500fa7f4e2710f7} +```cpp +void dronecore::Camera::set_video_stream_settings(const VideoStreamSettings &settings) +``` + + +Sets video stream settings. + + +**Parameters** + +* const [VideoStreamSettings](structdronecore_1_1_camera_1_1_video_stream_settings.md)& **settings** - Reference to custom video stream settings which include resolution, framerate, bitrate, etc. + +### get_video_stream_info() {#classdronecore_1_1_camera_1a1137d3b38b134e0e3ba7d88048448a1f} +```cpp +Result dronecore::Camera::get_video_stream_info(VideoStreamInfo &info) +``` + + +Get video stream information (synchronous). + +Application may use media player like VLC and feed `uri` to play the ongoing video streaming. + +**Parameters** + +* [VideoStreamInfo](structdronecore_1_1_camera_1_1_video_stream_info.md)& **info** - Video stream information will be filled. + +**Returns** + + [Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41) - SUCCESS if video stream info is received, error otherwise. + +### start_video_streaming() {#classdronecore_1_1_camera_1a1abbf7e3287e95c987a6d46b60f4e8fa} +```cpp +Result dronecore::Camera::start_video_streaming() +``` + + +Starts video streaming (synchronous). + +Sends a request to start video streaming. + +**Returns** + + [Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41) - SUCCESS if video streaming is started, error otherwise. + +**See Also:** +- [stop_video_streaming()](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a017f92a972bfbb96ff503d6ff83e841c) + + +### stop_video_streaming() {#classdronecore_1_1_camera_1a017f92a972bfbb96ff503d6ff83e841c} +```cpp +Result dronecore::Camera::stop_video_streaming() +``` + + +Stop the current video streaming (synchronous). + +Sends a request to stop ongoing video streaming. + +**Returns** + + [Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41) - SUCCESS if video streaming is stopped, error otherwise. + +**See Also:** +- [start_video_streaming()](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a1abbf7e3287e95c987a6d46b60f4e8fa) + + +### capture_info_async() {#classdronecore_1_1_camera_1a3ec64d057112170f7b5f8c2cb0dcb05e} +```cpp +void dronecore::Camera::capture_info_async(capture_info_callback_t callback) +``` + + +Subscribe to capture info updates (asynchronous). + + +**Parameters** + +* [capture_info_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a925fa5261c7b9805d17871392881584d) **callback** - Function to call with updates. + +### get_status_async() {#classdronecore_1_1_camera_1a9194c34754f227ecd0977fd703cd75c3} +```cpp +void dronecore::Camera::get_status_async(get_status_callback_t callback) +``` + + +Get camera status (asynchronous). + + +**Parameters** + +* [get_status_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a3ea9bc0ef624e56c602c47e9860bc9d6) **callback** - Function to call with camera status. + +### get_possible_settings() {#classdronecore_1_1_camera_1ae243af289509a947c6acae2b114dfe60} +```cpp +bool dronecore::Camera::get_possible_settings(std::vector< std::string > &settings) +``` + + +Get settings that can be changed. + +The list of settings consists of machine readable parameters, for a human readable desription of the setting use [get_setting_str()](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a2d6ad304ea562d4e44d7a704aef461f5). + +**Parameters** + +* std::vector< std::string >& **settings** - List of settings that can be changed. + +**Returns** + + bool - true request was successful. + +**See Also:** +- [get_setting_str](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a2d6ad304ea562d4e44d7a704aef461f5) + + +### get_possible_options() {#classdronecore_1_1_camera_1a6fb081ce851550f5f3801435c9c60ce7} +```cpp +bool dronecore::Camera::get_possible_options(const std::string &setting_name, std::vector< std::string > &options) +``` + + +Get possible options for a setting that can be selected. + +The list of options consists of machine readable option values, for a human readable description of the option use [get_option_str()](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a88971b75b1a97af268f8520130165032). + +**Parameters** + +* const std::string& **setting_name** - Name of setting (machine readable). +* std::vector< std::string >& **options** - List of options to select from. + +**Returns** + + bool - true if request was successful. + +**See Also:** +- [get_option_str](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a88971b75b1a97af268f8520130165032) + + +### get_option_async() {#classdronecore_1_1_camera_1a551b362675fefeca303b928079b45f2d} +```cpp +void dronecore::Camera::get_option_async(const std::string &setting, const get_option_callback_t &callback) +``` + + +Get an option of a setting (asynchronous). + + +**Parameters** + +* const std::string& **setting** - The machine readable name of the setting. +* const [get_option_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a0f26145d52eeb4f997dbcfe0bbe7b4a7)& **callback** - The callback to get the result and selected option. + +### set_option_async() {#classdronecore_1_1_camera_1a88a2c44d283cb75af59d192c9dfb8e89} +```cpp +void dronecore::Camera::set_option_async(const std::string &setting, const std::string &option, const result_callback_t &callback) +``` + + +Set an option of a setting (asynchronous). + + +**Parameters** + +* const std::string& **setting** - The machine readable name of the setting. +* const std::string& **option** - The machine readable name of the option value. +* const [result_callback_t](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a56dad71243eb163159eb240883497de7)& **callback** - The callback to get the result. + +### get_setting_str() {#classdronecore_1_1_camera_1a2d6ad304ea562d4e44d7a704aef461f5} +```cpp +bool dronecore::Camera::get_setting_str(const std::string &setting_name, std::string &description) +``` + + +Get the human readable string of a setting. + + +**Parameters** + +* const std::string& **setting_name** - The machine readable setting name. +* std::string& **description** - The human readable string of the setting to get. + +**Returns** + + bool - true if call was successful and the description has been set. + +### get_option_str() {#classdronecore_1_1_camera_1a88971b75b1a97af268f8520130165032} +```cpp +bool dronecore::Camera::get_option_str(const std::string &setting_name, const std::string &option_name, std::string &description) +``` + + +Get the human readable string of an option. + + +**Parameters** + +* const std::string& **setting_name** - The machine readable setting name. +* const std::string& **option_name** - The machine readable option value. +* std::string& **description** - The human readable string of the option to get. + +**Returns** + + bool - true if call was successful and the description has been set. + +### operator=() {#classdronecore_1_1_camera_1a909c0921d5920653a2b8a7a2e030ca29} +```cpp +const Camera& dronecore::Camera::operator=(const Camera &)=delete +``` + + +Equality operator (object is not copyable). + + +**Parameters** + +* const [Camera](classdronecore_1_1_camera.md)& - + +**Returns** + + const [Camera](classdronecore_1_1_camera.md) & - + +### result_str() {#classdronecore_1_1_camera_1af319f7ae74920a72917a10fecf9ac4d0} +```cpp +static std::string dronecore::Camera::result_str(Result result) +``` + + +Returns a human-readable English string for [Camera::Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41). + + +**Parameters** + +* [Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41) **result** - The enum value for which a human readable string is required. + +**Returns** + + std::string - Human readable string for the [Camera::Result](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1ac4006505d99fc66a8c7516ecd3222a41). \ No newline at end of file diff --git a/en/api_reference/classdronecore_1_1_drone_core.md b/en/api_reference/classdronecore_1_1_drone_core.md index ef6f597..cd2c5b9 100644 --- a/en/api_reference/classdronecore_1_1_drone_core.md +++ b/en/api_reference/classdronecore_1_1_drone_core.md @@ -276,6 +276,9 @@ Register callback for system discovery. This sets a callback that will be notified if a new system is discovered. +If systems have been discovered before this callback is registered, they will be notified at the time this callback is registered. + + **Note** Only one callback can be registered at a time. If this function is called several times, previous callbacks will be overwritten. **Parameters** diff --git a/en/api_reference/classdronecore_1_1_mission_item.md b/en/api_reference/classdronecore_1_1_mission_item.md index 4806198..5acd477 100644 --- a/en/api_reference/classdronecore_1_1_mission_item.md +++ b/en/api_reference/classdronecore_1_1_mission_item.md @@ -39,6 +39,8 @@ bool | [has_position_set](#classdronecore_1_1_mission_item_1a68fd720609edc76062a float | [get_relative_altitude_m](#classdronecore_1_1_mission_item_1a22481d92a61136d42b5133b208e6cf0d) () const | Get the relative altitude of a mission item. bool | [get_fly_through](#classdronecore_1_1_mission_item_1afd92f9ab01d25c0d721b4249821b6da2) () const | Get the fly-through property of a mission item. float | [get_speed_m_s](#classdronecore_1_1_mission_item_1adc737b7be9b49cd0fe188763203aeae5) () const | Get the speed to be used after this mission item. +float | [get_gimbal_pitch_deg](#classdronecore_1_1_mission_item_1af6e846af98b6be4d3d7dd5856da3d875) () const | Get the gimbal pitch of a mission item. +float | [get_gimbal_yaw_deg](#classdronecore_1_1_mission_item_1a94d4363b5ff55556d38b1d70924bf124) () const | Get the gimbal yaw of a mission item. float | [get_loiter_time_s](#classdronecore_1_1_mission_item_1a25fd1a2ba0df071b25e2315a3a1f5085) () const | Get loiter time in seconds. [CameraAction](classdronecore_1_1_mission_item.md#classdronecore_1_1_mission_item_1a0cdd25121e5ed6930080ac022857887a) | [get_camera_action](#classdronecore_1_1_mission_item_1ae42a857f79b63c611f5a21fed2ea18fc) () const | Get the camera action set for this mission item. double | [get_camera_photo_interval_s](#classdronecore_1_1_mission_item_1adf38956d9ed1ef4e98a4d5a6b61eccd7) () const | Get the camera photo interval that was set for this mission item. @@ -297,6 +299,32 @@ Get the speed to be used after this mission item.  float - Speed in metres/second. +### get_gimbal_pitch_deg() {#classdronecore_1_1_mission_item_1af6e846af98b6be4d3d7dd5856da3d875} +```cpp +float dronecore::MissionItem::get_gimbal_pitch_deg() const +``` + + +Get the gimbal pitch of a mission item. + + +**Returns** + + float - [Gimbal](classdronecore_1_1_gimbal.md) pitch in degrees. + +### get_gimbal_yaw_deg() {#classdronecore_1_1_mission_item_1a94d4363b5ff55556d38b1d70924bf124} +```cpp +float dronecore::MissionItem::get_gimbal_yaw_deg() const +``` + + +Get the gimbal yaw of a mission item. + + +**Returns** + + float - [Gimbal](classdronecore_1_1_gimbal.md) yaw in degrees. + ### get_loiter_time_s() {#classdronecore_1_1_mission_item_1a25fd1a2ba0df071b25e2315a3a1f5085} ```cpp float dronecore::MissionItem::get_loiter_time_s() const @@ -321,7 +349,7 @@ Get the camera action set for this mission item. **Returns** - [CameraAction](classdronecore_1_1_mission_item.md#classdronecore_1_1_mission_item_1a0cdd25121e5ed6930080ac022857887a) - Camera action enum value. + [CameraAction](classdronecore_1_1_mission_item.md#classdronecore_1_1_mission_item_1a0cdd25121e5ed6930080ac022857887a) - [Camera](classdronecore_1_1_camera.md) action enum value. ### get_camera_photo_interval_s() {#classdronecore_1_1_mission_item_1adf38956d9ed1ef4e98a4d5a6b61eccd7} ```cpp @@ -335,7 +363,7 @@ This only has an effect if used together with [CameraAction::START_PHOTO_INTERVA **Returns** - double - Camera photo interval in seconds. + double - [Camera](classdronecore_1_1_camera.md) photo interval in seconds. ### operator=() {#classdronecore_1_1_mission_item_1a8582ad72a3a8c20c87e8224ab10970c0} ```cpp diff --git a/en/api_reference/classdronecore_1_1_telemetry.md b/en/api_reference/classdronecore_1_1_telemetry.md index fb2d54c..97008cb 100644 --- a/en/api_reference/classdronecore_1_1_telemetry.md +++ b/en/api_reference/classdronecore_1_1_telemetry.md @@ -744,7 +744,7 @@ Note that the yaw component of attitude is relative to North (absolute frame). **Returns** - [Quaternion](structdronecore_1_1_telemetry_1_1_quaternion.md) - Camera's attitude as quaternion. + [Quaternion](structdronecore_1_1_telemetry_1_1_quaternion.md) - [Camera](classdronecore_1_1_camera.md)'s attitude as quaternion. ### camera_attitude_euler_angle() {#classdronecore_1_1_telemetry_1a12ef129a12fcbae32b7a60008b4b135c} ```cpp @@ -758,7 +758,7 @@ Note that the yaw component of attitude is relative to North (absolute frame). **Returns** - [EulerAngle](structdronecore_1_1_telemetry_1_1_euler_angle.md) - Camera's attitude as Euler angle. + [EulerAngle](structdronecore_1_1_telemetry_1_1_euler_angle.md) - [Camera](classdronecore_1_1_camera.md)'s attitude as Euler angle. ### ground_speed_ned() {#classdronecore_1_1_telemetry_1ae0a0fc17033ef5dc92618a027f813da2} ```cpp diff --git a/en/api_reference/namespacedronecore.md b/en/api_reference/namespacedronecore.md index dce4cf7..fd12456 100644 --- a/en/api_reference/namespacedronecore.md +++ b/en/api_reference/namespacedronecore.md @@ -8,6 +8,7 @@ Namespace for all dronecore types. ## Data Structures * [dronecore::Action](classdronecore_1_1_action.md) +* [dronecore::Camera](classdronecore_1_1_camera.md) * [dronecore::DroneCore](classdronecore_1_1_drone_core.md) * [dronecore::FollowMe](classdronecore_1_1_follow_me.md) * [dronecore::Gimbal](classdronecore_1_1_gimbal.md) @@ -33,8 +34,13 @@ Type | Name | Description --- | --- | --- const char * | [action_result_str](#namespacedronecore_1aa3b1897424479e1e7d5d079a5037957d) ([ActionResult](namespacedronecore.md#namespacedronecore_1aedb56a8f642ce3cb7bc4b940c67033c5) result) | Returns a human-readable English string for an ActionResult. const char * | [connection_result_str](#namespacedronecore_1a71899c532d8bedfa9654160fc175cce8) (const [ConnectionResult](namespacedronecore.md#namespacedronecore_1a42d7afdc816d7f750e1a8d4282da0ddc) result) | Returns a human-readable English string for a ConnectionResult. +bool | [operator==](#namespacedronecore_1a7c3473f77d60654f451d6e48f4e3d386) (const [MissionItem](classdronecore_1_1_mission_item.md) & lhs, const [MissionItem](classdronecore_1_1_mission_item.md) & rhs) | +std::ostream & | [operator<<](#namespacedronecore_1a062cf568f140581dba03c6b97c65077e) (std::ostream & str, [MissionItem](classdronecore_1_1_mission_item.md) const & mission_item) | +std::ostream & | [operator<<](#namespacedronecore_1a2ca7e28c68f825c8a181761533745c19) (std::ostream & str, [MissionItem::CameraAction](classdronecore_1_1_mission_item.md#classdronecore_1_1_mission_item_1a0cdd25121e5ed6930080ac022857887a) const & camera_action) | bool | [operator==](#namespacedronecore_1a0363203162fba53fefe7d4d60cd3b1c9) (const [Telemetry::Position](structdronecore_1_1_telemetry_1_1_position.md) & lhs, const [Telemetry::Position](structdronecore_1_1_telemetry_1_1_position.md) & rhs) | std::ostream & | [operator<<](#namespacedronecore_1a9bc5f60e2e310023bbd0ed436250b217) (std::ostream & str, [Telemetry::Position](structdronecore_1_1_telemetry_1_1_position.md) const & position) | +bool | [operator==](#namespacedronecore_1ab044bfb4b8bceac15f4ef1f7959775d8) (const [Telemetry::Health](structdronecore_1_1_telemetry_1_1_health.md) & lhs, const [Telemetry::Health](structdronecore_1_1_telemetry_1_1_health.md) & rhs) | +std::ostream & | [operator<<](#namespacedronecore_1a33d736c83c404d96c46ff9a7f4750fb1) (std::ostream & str, [Telemetry::Health](structdronecore_1_1_telemetry_1_1_health.md) const & health) | ## Enumeration Type Documentation @@ -136,6 +142,63 @@ Returns a human-readable English string for a ConnectionResult.  const char * - Human readable string for the ConnectionResult. +### operator==() {#namespacedronecore_1a7c3473f77d60654f451d6e48f4e3d386} + +``` +#include: mission_item.h +``` +```cpp +bool dronecore::operator==(const MissionItem &lhs, const MissionItem &rhs) +``` + + +**Parameters** + +* const [MissionItem](classdronecore_1_1_mission_item.md)& **lhs** - +* const [MissionItem](classdronecore_1_1_mission_item.md)& **rhs** - + +**Returns** + + bool - + +### operator<<() {#namespacedronecore_1a062cf568f140581dba03c6b97c65077e} + +``` +#include: mission_item.h +``` +```cpp +std::ostream& dronecore::operator<<(std::ostream &str, MissionItem const &mission_item) +``` + + +**Parameters** + +* std::ostream& **str** - +* [MissionItem](classdronecore_1_1_mission_item.md) const& **mission_item** - + +**Returns** + + std::ostream & - + +### operator<<() {#namespacedronecore_1a2ca7e28c68f825c8a181761533745c19} + +``` +#include: mission_item.h +``` +```cpp +std::ostream& dronecore::operator<<(std::ostream &str, MissionItem::CameraAction const &camera_action) +``` + + +**Parameters** + +* std::ostream& **str** - +* [MissionItem::CameraAction](classdronecore_1_1_mission_item.md#classdronecore_1_1_mission_item_1a0cdd25121e5ed6930080ac022857887a) const& **camera_action** - + +**Returns** + + std::ostream & - + ### operator==() {#namespacedronecore_1a0363203162fba53fefe7d4d60cd3b1c9} ``` @@ -172,4 +235,42 @@ std::ostream& dronecore::operator<<(std::ostream &str, Telemetry::Position const **Returns** + std::ostream & - + +### operator==() {#namespacedronecore_1ab044bfb4b8bceac15f4ef1f7959775d8} + +``` +#include: telemetry.h +``` +```cpp +bool dronecore::operator==(const Telemetry::Health &lhs, const Telemetry::Health &rhs) +``` + + +**Parameters** + +* const [Telemetry::Health](structdronecore_1_1_telemetry_1_1_health.md)& **lhs** - +* const [Telemetry::Health](structdronecore_1_1_telemetry_1_1_health.md)& **rhs** - + +**Returns** + + bool - + +### operator<<() {#namespacedronecore_1a33d736c83c404d96c46ff9a7f4750fb1} + +``` +#include: telemetry.h +``` +```cpp +std::ostream& dronecore::operator<<(std::ostream &str, Telemetry::Health const &health) +``` + + +**Parameters** + +* std::ostream& **str** - +* [Telemetry::Health](structdronecore_1_1_telemetry_1_1_health.md) const& **health** - + +**Returns** +  std::ostream & - \ No newline at end of file diff --git a/en/api_reference/structdronecore_1_1_camera_1_1_capture_info.md b/en/api_reference/structdronecore_1_1_camera_1_1_capture_info.md new file mode 100644 index 0000000..e7eb8b7 --- /dev/null +++ b/en/api_reference/structdronecore_1_1_camera_1_1_capture_info.md @@ -0,0 +1,93 @@ +# dronecore::Camera::CaptureInfo Struct Reference +`#include: camera.h` + +---- + + +Information about a picture just captured. + + +## Data Structures + + +struct [Position](structdronecore_1_1_camera_1_1_capture_info_1_1_position.md) + +struct [Quaternion](structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion.md) + +## Data Fields + + +struct [dronecore::Camera::CaptureInfo::Position](structdronecore_1_1_camera_1_1_capture_info_1_1_position.md) [position](#structdronecore_1_1_camera_1_1_capture_info_1a2de03d19a826d25f7b36e8e88a33fb64) - [Position](structdronecore_1_1_camera_1_1_capture_info_1_1_position.md) of drone/camera when image was captured. + +struct [dronecore::Camera::CaptureInfo::Quaternion](structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion.md) [quaternion](#structdronecore_1_1_camera_1_1_capture_info_1a514c6b516f66a0de2b8339fb7d81d08a) - [Quaternion](structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion.md) of camera orientation. + +uint64_t [time_utc_us](#structdronecore_1_1_camera_1_1_capture_info_1a4ef2a3863cb66423e2953656cc5607ec) - Timestamp in UTC (since UNIX epoch) in microseconds. + +bool [success](#structdronecore_1_1_camera_1_1_capture_info_1a12c7d8c172ce9a8093290ae064568a1d) - True if capture was successful. + +int [index](#structdronecore_1_1_camera_1_1_capture_info_1a23a32ef479c588c3b6626352ffca2778) - Zero-based index of this image since armed. + +std::string [file_url](#structdronecore_1_1_camera_1_1_capture_info_1a18b008a34e2e5cd1667c043a246bb509) - + + +## Field Documentation + + +### position {#structdronecore_1_1_camera_1_1_capture_info_1a2de03d19a826d25f7b36e8e88a33fb64} + +```cpp +struct dronecore::Camera::CaptureInfo::Position dronecore::Camera::CaptureInfo::position +``` + + +[Position](structdronecore_1_1_camera_1_1_capture_info_1_1_position.md) of drone/camera when image was captured. + + +### quaternion {#structdronecore_1_1_camera_1_1_capture_info_1a514c6b516f66a0de2b8339fb7d81d08a} + +```cpp +struct dronecore::Camera::CaptureInfo::Quaternion dronecore::Camera::CaptureInfo::quaternion +``` + + +[Quaternion](structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion.md) of camera orientation. + + +### time_utc_us {#structdronecore_1_1_camera_1_1_capture_info_1a4ef2a3863cb66423e2953656cc5607ec} + +```cpp +uint64_t dronecore::Camera::CaptureInfo::time_utc_us +``` + + +Timestamp in UTC (since UNIX epoch) in microseconds. + + +### success {#structdronecore_1_1_camera_1_1_capture_info_1a12c7d8c172ce9a8093290ae064568a1d} + +```cpp +bool dronecore::Camera::CaptureInfo::success +``` + + +True if capture was successful. + + +### index {#structdronecore_1_1_camera_1_1_capture_info_1a23a32ef479c588c3b6626352ffca2778} + +```cpp +int dronecore::Camera::CaptureInfo::index +``` + + +Zero-based index of this image since armed. + + +### file_url {#structdronecore_1_1_camera_1_1_capture_info_1a18b008a34e2e5cd1667c043a246bb509} + +```cpp +std::string dronecore::Camera::CaptureInfo::file_url +``` + + +Download URL for captured image. \ No newline at end of file diff --git a/en/api_reference/structdronecore_1_1_camera_1_1_capture_info_1_1_position.md b/en/api_reference/structdronecore_1_1_camera_1_1_capture_info_1_1_position.md new file mode 100644 index 0000000..9f25213 --- /dev/null +++ b/en/api_reference/structdronecore_1_1_camera_1_1_capture_info_1_1_position.md @@ -0,0 +1,63 @@ +# dronecore::Camera::CaptureInfo::Position Struct Reference +`#include: camera.h` + +---- + + +[Position](structdronecore_1_1_camera_1_1_capture_info_1_1_position.md) type. + + +## Data Fields + + +double [latitude_deg](#structdronecore_1_1_camera_1_1_capture_info_1_1_position_1a51e86b8f604170627354addd9990ba5d) - Latitude in degrees (range: -90 to +90). + +double [longitude_deg](#structdronecore_1_1_camera_1_1_capture_info_1_1_position_1aea43e79be88a534463c60703b629267b) - Longitude in degrees (range: -180 to 180). + +float [absolute_altitude_m](#structdronecore_1_1_camera_1_1_capture_info_1_1_position_1a4f6aa9de92ceb69bab5046eacee5991c) - Altitude AMSL (above mean sea level) in metres. + +float [relative_altitude_m](#structdronecore_1_1_camera_1_1_capture_info_1_1_position_1a6ba78d5543814d047fb6e7de3aee855d) - Altitude relative to takeoff altitude in metres. + + +## Field Documentation + + +### latitude_deg {#structdronecore_1_1_camera_1_1_capture_info_1_1_position_1a51e86b8f604170627354addd9990ba5d} + +```cpp +double dronecore::Camera::CaptureInfo::Position::latitude_deg +``` + + +Latitude in degrees (range: -90 to +90). + + +### longitude_deg {#structdronecore_1_1_camera_1_1_capture_info_1_1_position_1aea43e79be88a534463c60703b629267b} + +```cpp +double dronecore::Camera::CaptureInfo::Position::longitude_deg +``` + + +Longitude in degrees (range: -180 to 180). + + +### absolute_altitude_m {#structdronecore_1_1_camera_1_1_capture_info_1_1_position_1a4f6aa9de92ceb69bab5046eacee5991c} + +```cpp +float dronecore::Camera::CaptureInfo::Position::absolute_altitude_m +``` + + +Altitude AMSL (above mean sea level) in metres. + + +### relative_altitude_m {#structdronecore_1_1_camera_1_1_capture_info_1_1_position_1a6ba78d5543814d047fb6e7de3aee855d} + +```cpp +float dronecore::Camera::CaptureInfo::Position::relative_altitude_m +``` + + +Altitude relative to takeoff altitude in metres. + diff --git a/en/api_reference/structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion.md b/en/api_reference/structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion.md new file mode 100644 index 0000000..11d8f0b --- /dev/null +++ b/en/api_reference/structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion.md @@ -0,0 +1,69 @@ +# dronecore::Camera::CaptureInfo::Quaternion Struct Reference +`#include: camera.h` + +---- + + +[Quaternion](structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion.md) type. + + +All rotations and axis systems follow the right-hand rule. The Hamilton quaternion product definition is used. A zero-rotation quaternion is represented by (1,0,0,0). The quaternion could also be written as w + xi + yj + zk. + + +For more info see: [https://en.wikipedia.org/wiki/Quaternion](https://en.wikipedia.org/wiki/Quaternion) + + +## Data Fields + + +float [w](#structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion_1ad9290552529c1a7698de20fa03d69276) - [Quaternion](structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion.md) entry 0 also denoted as a. + +float [x](#structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion_1aa3163c1f418feee88fa7459f52627345) - [Quaternion](structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion.md) entry 1 also denoted as b. + +float [y](#structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion_1a8bcb239cd4230193e6a2f8d157a9c6d4) - [Quaternion](structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion.md) entry 2 also denoted as c. + +float [z](#structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion_1a05868050d47dfa3926a869cc87f54d2c) - [Quaternion](structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion.md) entry 3 also denoted as d. + + +## Field Documentation + + +### w {#structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion_1ad9290552529c1a7698de20fa03d69276} + +```cpp +float dronecore::Camera::CaptureInfo::Quaternion::w +``` + + +[Quaternion](structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion.md) entry 0 also denoted as a. + + +### x {#structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion_1aa3163c1f418feee88fa7459f52627345} + +```cpp +float dronecore::Camera::CaptureInfo::Quaternion::x +``` + + +[Quaternion](structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion.md) entry 1 also denoted as b. + + +### y {#structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion_1a8bcb239cd4230193e6a2f8d157a9c6d4} + +```cpp +float dronecore::Camera::CaptureInfo::Quaternion::y +``` + + +[Quaternion](structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion.md) entry 2 also denoted as c. + + +### z {#structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion_1a05868050d47dfa3926a869cc87f54d2c} + +```cpp +float dronecore::Camera::CaptureInfo::Quaternion::z +``` + + +[Quaternion](structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion.md) entry 3 also denoted as d. + diff --git a/en/api_reference/structdronecore_1_1_camera_1_1_status.md b/en/api_reference/structdronecore_1_1_camera_1_1_status.md new file mode 100644 index 0000000..d4b03ad --- /dev/null +++ b/en/api_reference/structdronecore_1_1_camera_1_1_status.md @@ -0,0 +1,106 @@ +# dronecore::Camera::Status Struct Reference +`#include: camera.h` + +---- + + +Information about camera status. + + +## Public Types + + +Type | Description +--- | --- +enum [StorageStatus](#structdronecore_1_1_camera_1_1_status_1afa86d9f3e4aee66d5696821eb9ffdae2) | + +## Data Fields + + +bool [video_on](#structdronecore_1_1_camera_1_1_status_1a228352c68d7f6abe6abc961040ecf5cf) - true if video capture is currently running. + +bool [photo_interval_on](#structdronecore_1_1_camera_1_1_status_1ab3e50e6d6963863c82ff6660e196b7bc) - true if video timelapse is currently active. + +enum [dronecore::Camera::Status::StorageStatus](structdronecore_1_1_camera_1_1_status.md#structdronecore_1_1_camera_1_1_status_1afa86d9f3e4aee66d5696821eb9ffdae2) [storage_status](#structdronecore_1_1_camera_1_1_status_1a43d2eeb9377626136cc545ee91adfdb2) - Storage status. + +float [used_storage_mib](#structdronecore_1_1_camera_1_1_status_1aefb571ba8dc7349269aebc620a73cff5) - Used storage in MiB. + +float [available_storage_mib](#structdronecore_1_1_camera_1_1_status_1ab3f17dcb321c73fe134878fcaa30618f) - Available storage in MiB. + +float [total_storage_mib](#structdronecore_1_1_camera_1_1_status_1aeb60a963b4fc6c57ff2a266259332317) - Total storage in MiB. + + +## Member Enumeration Documentation + + +### enum StorageStatus {#structdronecore_1_1_camera_1_1_status_1afa86d9f3e4aee66d5696821eb9ffdae2} + + +Value | Description +--- | --- + `NOT_AVAILABLE` | Storage status not available. + `UNFORMATTED` | Storage is not formatted (has no recognized file system). + `FORMATTED` | Storage is formatted (has recognized a file system). + +## Field Documentation + + +### video_on {#structdronecore_1_1_camera_1_1_status_1a228352c68d7f6abe6abc961040ecf5cf} + +```cpp +bool dronecore::Camera::Status::video_on +``` + + +true if video capture is currently running. + + +### photo_interval_on {#structdronecore_1_1_camera_1_1_status_1ab3e50e6d6963863c82ff6660e196b7bc} + +```cpp +bool dronecore::Camera::Status::photo_interval_on +``` + + +true if video timelapse is currently active. + + +### storage_status {#structdronecore_1_1_camera_1_1_status_1a43d2eeb9377626136cc545ee91adfdb2} + +```cpp +enum dronecore::Camera::Status::StorageStatus dronecore::Camera::Status::storage_status +``` + + +Storage status. + + +### used_storage_mib {#structdronecore_1_1_camera_1_1_status_1aefb571ba8dc7349269aebc620a73cff5} + +```cpp +float dronecore::Camera::Status::used_storage_mib +``` + + +Used storage in MiB. + + +### available_storage_mib {#structdronecore_1_1_camera_1_1_status_1ab3f17dcb321c73fe134878fcaa30618f} + +```cpp +float dronecore::Camera::Status::available_storage_mib +``` + + +Available storage in MiB. + + +### total_storage_mib {#structdronecore_1_1_camera_1_1_status_1aeb60a963b4fc6c57ff2a266259332317} + +```cpp +float dronecore::Camera::Status::total_storage_mib +``` + + +Total storage in MiB. + diff --git a/en/api_reference/structdronecore_1_1_camera_1_1_video_stream_info.md b/en/api_reference/structdronecore_1_1_camera_1_1_video_stream_info.md new file mode 100644 index 0000000..c84cbfd --- /dev/null +++ b/en/api_reference/structdronecore_1_1_camera_1_1_video_stream_info.md @@ -0,0 +1,57 @@ +# dronecore::Camera::VideoStreamInfo Struct Reference +`#include: camera.h` + +---- + + +Information about video stream. + + +## Public Types + + +Type | Description +--- | --- +enum [Status](#structdronecore_1_1_camera_1_1_video_stream_info_1a2d081c6a9b50ec958046b5227cf8345c) | + +## Data Fields + + +[VideoStreamSettings](structdronecore_1_1_camera_1_1_video_stream_settings.md) [settings](#structdronecore_1_1_camera_1_1_video_stream_info_1aafae5ed3004543587ddcd4f2ef20170c) - Video stream settings. + +enum [dronecore::Camera::VideoStreamInfo::Status](structdronecore_1_1_camera_1_1_video_stream_info.md#structdronecore_1_1_camera_1_1_video_stream_info_1a2d081c6a9b50ec958046b5227cf8345c) [status](#structdronecore_1_1_camera_1_1_video_stream_info_1ac03881026a5d690846e93dcc6cf75590) - Current status of video streaming. + + +## Member Enumeration Documentation + + +### enum Status {#structdronecore_1_1_camera_1_1_video_stream_info_1a2d081c6a9b50ec958046b5227cf8345c} + + +Value | Description +--- | --- + `NOT_RUNNING` | Video stream is not ongoing. + `IN_PROGRESS` | Video stream in progress. + +## Field Documentation + + +### settings {#structdronecore_1_1_camera_1_1_video_stream_info_1aafae5ed3004543587ddcd4f2ef20170c} + +```cpp +VideoStreamSettings dronecore::Camera::VideoStreamInfo::settings +``` + + +Video stream settings. + + +### status {#structdronecore_1_1_camera_1_1_video_stream_info_1ac03881026a5d690846e93dcc6cf75590} + +```cpp +enum dronecore::Camera::VideoStreamInfo::Status dronecore::Camera::VideoStreamInfo::status +``` + + +Current status of video streaming. + diff --git a/en/api_reference/structdronecore_1_1_camera_1_1_video_stream_settings.md b/en/api_reference/structdronecore_1_1_camera_1_1_video_stream_settings.md new file mode 100644 index 0000000..d4951aa --- /dev/null +++ b/en/api_reference/structdronecore_1_1_camera_1_1_video_stream_settings.md @@ -0,0 +1,167 @@ +# dronecore::Camera::VideoStreamSettings Struct Reference +`#include: camera.h` + +---- + + +Type for video stream settings. + + +Application may call [set_video_stream_settings()](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a9a059a12960396051500fa7f4e2710f7) before starting video streaming to tell [Camera](classdronecore_1_1_camera.md) server to use these settings during video streaming. + + +**See Also:** +- [set_video_stream_settings()](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a9a059a12960396051500fa7f4e2710f7), [get_video_stream_info()](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a1137d3b38b134e0e3ba7d88048448a1f), [start_video_streaming()](classdronecore_1_1_camera.md#classdronecore_1_1_camera_1a1abbf7e3287e95c987a6d46b60f4e8fa). + + +## Public Member Functions + + +Type | Name | Description +---: | --- | --- +void | [set_highest](#structdronecore_1_1_camera_1_1_video_stream_settings_1a2bbca6d9c18993f75c17c3df6e3b3eef) () | Sets to highest possible settings for Resolution, framerate. + +## Data Fields + + +float [frame_rate_hz](#structdronecore_1_1_camera_1_1_video_stream_settings_1a651d8fdfb8a57d88f806a3c7526ff3bb) = 0.f - Frames per second. + +uint16_t [horizontal_resolution_pix](#structdronecore_1_1_camera_1_1_video_stream_settings_1a3b16e43b1234bae0295c91a6edbf20b4) = 0u - Horizontal resolution in pixels. + +uint16_t [vertical_resolution_pix](#structdronecore_1_1_camera_1_1_video_stream_settings_1acde5dfe562b1dfe0c6059f6bf93778e9) = 0u - Vertical resolution in pixels. + +uint32_t [bit_rate_b_s](#structdronecore_1_1_camera_1_1_video_stream_settings_1aabf8f9d1a65519e913da464119067e86) = 0u - Bit rate in bits per second. + +uint16_t [rotation_deg](#structdronecore_1_1_camera_1_1_video_stream_settings_1ae7d8c93ea53a55d997395ae17c1e16fb) = 0u - Video image rotation clockwise (0-359 degrees). + +std::string [uri](#structdronecore_1_1_camera_1_1_video_stream_settings_1a89bba86b91591d17728e8433611c5a43) {} - Video stream URI. + +## Static Public Attributes + + +static constexpr const float [FRAME_RATE_HIGHEST](#structdronecore_1_1_camera_1_1_video_stream_settings_1a24f19894429fe370090c40a8a571f6ec) = -1.0f - Highest possible framerate. + + +static constexpr const uint16_t [RESOLUTION_H_HIGHEST](#structdronecore_1_1_camera_1_1_video_stream_settings_1a0cf857c649209dac2d97b0e2ffbd2212) = UINT16_MAX - Highest possible horizontal resolution. + + +static constexpr const uint16_t [RESOLUTION_V_HIGHEST](#structdronecore_1_1_camera_1_1_video_stream_settings_1a4c1f727cb64e8a0d1b48acab7e28cc6d) = UINT16_MAX - Highest possible vertical resolution. + + +static constexpr const uint32_t [BIT_RATE_AUTO](#structdronecore_1_1_camera_1_1_video_stream_settings_1a5112bd1cb0a09b03995147c17f2d639b) = 0 - Auto settings for Bit rate. + + +## Member Function Documentation + + +### set_highest() {#structdronecore_1_1_camera_1_1_video_stream_settings_1a2bbca6d9c18993f75c17c3df6e3b3eef} +```cpp +void dronecore::Camera::VideoStreamSettings::set_highest() +``` + + +Sets to highest possible settings for Resolution, framerate. + + +## Field Documentation + + +### FRAME_RATE_HIGHEST {#structdronecore_1_1_camera_1_1_video_stream_settings_1a24f19894429fe370090c40a8a571f6ec} + +```cpp +constexpr const float dronecore::Camera::VideoStreamSettings::FRAME_RATE_HIGHEST = -1.0f +``` + + +Highest possible framerate. + + +### RESOLUTION_H_HIGHEST {#structdronecore_1_1_camera_1_1_video_stream_settings_1a0cf857c649209dac2d97b0e2ffbd2212} + +```cpp +constexpr const uint16_t dronecore::Camera::VideoStreamSettings::RESOLUTION_H_HIGHEST = UINT16_MAX +``` + + +Highest possible horizontal resolution. + + +### RESOLUTION_V_HIGHEST {#structdronecore_1_1_camera_1_1_video_stream_settings_1a4c1f727cb64e8a0d1b48acab7e28cc6d} + +```cpp +constexpr const uint16_t dronecore::Camera::VideoStreamSettings::RESOLUTION_V_HIGHEST = UINT16_MAX +``` + + +Highest possible vertical resolution. + + +### BIT_RATE_AUTO {#structdronecore_1_1_camera_1_1_video_stream_settings_1a5112bd1cb0a09b03995147c17f2d639b} + +```cpp +constexpr const uint32_t dronecore::Camera::VideoStreamSettings::BIT_RATE_AUTO = 0 +``` + + +Auto settings for Bit rate. + + +### frame_rate_hz {#structdronecore_1_1_camera_1_1_video_stream_settings_1a651d8fdfb8a57d88f806a3c7526ff3bb} + +```cpp +float dronecore::Camera::VideoStreamSettings::frame_rate_hz = 0.f +``` + + +Frames per second. + + +### horizontal_resolution_pix {#structdronecore_1_1_camera_1_1_video_stream_settings_1a3b16e43b1234bae0295c91a6edbf20b4} + +```cpp +uint16_t dronecore::Camera::VideoStreamSettings::horizontal_resolution_pix = 0u +``` + + +Horizontal resolution in pixels. + + +### vertical_resolution_pix {#structdronecore_1_1_camera_1_1_video_stream_settings_1acde5dfe562b1dfe0c6059f6bf93778e9} + +```cpp +uint16_t dronecore::Camera::VideoStreamSettings::vertical_resolution_pix = 0u +``` + + +Vertical resolution in pixels. + + +### bit_rate_b_s {#structdronecore_1_1_camera_1_1_video_stream_settings_1aabf8f9d1a65519e913da464119067e86} + +```cpp +uint32_t dronecore::Camera::VideoStreamSettings::bit_rate_b_s = 0u +``` + + +Bit rate in bits per second. + + +### rotation_deg {#structdronecore_1_1_camera_1_1_video_stream_settings_1ae7d8c93ea53a55d997395ae17c1e16fb} + +```cpp +uint16_t dronecore::Camera::VideoStreamSettings::rotation_deg = 0u +``` + + +Video image rotation clockwise (0-359 degrees). + + +### uri {#structdronecore_1_1_camera_1_1_video_stream_settings_1a89bba86b91591d17728e8433611c5a43} + +```cpp +std::string dronecore::Camera::VideoStreamSettings::uri {} +``` + + +Video stream URI. + From b55d8af41c303ee15b1a1db859d27dd31b6bdc41 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Tue, 24 Apr 2018 14:13:09 +1000 Subject: [PATCH 105/107] Add links to reference docs from READMEs --- en/README.md | 8 +++++--- en/api_reference/README.md | 7 +++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/en/README.md b/en/README.md index 43fec52..e9f71b9 100644 --- a/en/README.md +++ b/en/README.md @@ -21,7 +21,7 @@ DroneCore can run on a vehicle-based companion computer or on a ground-based GCS DroneCore is still in pre-alpha development. - The core C++ API has been created and is (largely) stable. - Currently you can only develop in C++. - - [gRPC](https://grpc.io/) is being investigated as a promising technology for writing the cross-platform wrappers. + - [gRPC](https://grpc.io/) is being used to write the cross-platform wrappers. To use DroneCore you will need to [build the C++ library](contributing/build.md). The [Guide](guide/README.md) explains how to write C++ DroneCore apps. A number complete examples can be found [here](examples/README.md). @@ -38,11 +38,12 @@ The library is: The main features provided by the simple core API are (in all programing languages): -* Connect to and manage up to 255 vehicles via a UDP network connection (serial and TCP connections are not yet implemented). +* Connect to and manage up to 255 vehicles via a TCP, UDP or serial connection. * Get information about vehicles (vendor, software versions, product versions etc.) * Get vehicle telemetry and state information (e.g. battery, GPS, RC connection, flight mode etc.) and set telemetry update rates. * Send commands to arm, disarm, kill, takeoff, land and return to launch. * Create and manage missions. +* Control a camera and gimbal both inside and outside of missions. * Send commands to directly control vehicle movement. See the [FAQ](getting_started/faq.md) for answers to common questions about the library. @@ -62,6 +63,7 @@ The most important classes are: - [Mission](/api_reference/classdronecore_1_1_mission.md): Waypoint mission creation and upload/download. Missions are created from [MissionItem](/api_reference/classdronecore_1_1_mission_item.md) objects. - [Offboard](/api_reference/classdronecore_1_1_offboard.md): Control a drone with velocity commands. - [Gimbal](/api_reference/classdronecore_1_1_gimbal.md): Control a gimbal. +- [Camera](/api_reference/classdronecore_1_1_camera.md): Control a camera. - [FollowMe](/api_reference/classdronecore_1_1_follow_me.md): Drone tracks a position supplied by DroneCore. - [Logging](/api_reference/classdronecore_1_1_logging.md): Data logging and streaming from the vehicle. @@ -90,7 +92,7 @@ Use Github for bug reports/enhancement requests: DroneCore welcomes contributions! If you want to help or have suggestions/bug reports [please get in touch with the development team](#getting-help). -The [Contributing](contributing/README.md) section contains everything you need to contribute, including topics about building Dronecore from source code, running our integration and unit tests, and all other aspects of core development. +The [Contributing](contributing/README.md) section contains everything you need to contribute, including topics about building DroneCore from source code, running our integration and unit tests, and all other aspects of core development. ## License diff --git a/en/api_reference/README.md b/en/api_reference/README.md index 36e65b7..cb3d76b 100644 --- a/en/api_reference/README.md +++ b/en/api_reference/README.md @@ -21,6 +21,13 @@ * [struct VelocityBodyYawspeed](structdronecore_1_1_offboard_1_1_velocity_body_yawspeed.md) * [struct VelocityNEDYaw](structdronecore_1_1_offboard_1_1_velocity_n_e_d_yaw.md) * [class Gimbal](classdronecore_1_1_gimbal.md) +* [class Camera](classdronecore_1_1_camera.md) + * [struct CaptureInfo](structdronecore_1_1_camera_1_1_capture_info.md) + * [struct Position](structdronecore_1_1_camera_1_1_capture_info_1_1_position.md) + * [struct Quaternion](structdronecore_1_1_camera_1_1_capture_info_1_1_quaternion.md) + * [struct Status](structdronecore_1_1_camera_1_1_status.md) + * [struct VideoStreamInfo](structdronecore_1_1_camera_1_1_video_stream_info.md) + * [struct VideoStreamSettings](structdronecore_1_1_camera_1_1_video_stream_settings.md) * [class FollowMe](classdronecore_1_1_follow_me.md) * [struct Config](structdronecore_1_1_follow_me_1_1_config.md) * [struct TargetLocation ](structdronecore_1_1_follow_me_1_1_target_location.md) From f78ed93758906fb854ba4401975d3b062d01dbc8 Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Fri, 27 Apr 2018 11:39:03 +1000 Subject: [PATCH 106/107] Fix up apiref to use gitbook notes and warnings --- en/api_reference/classdronecore_1_1_action.md | 2 +- .../classdronecore_1_1_drone_core.md | 14 ++-- .../classdronecore_1_1_follow_me.md | 9 +- en/api_reference/namespacedronecore.md | 82 ++++++++++++++++++- 4 files changed, 94 insertions(+), 13 deletions(-) diff --git a/en/api_reference/classdronecore_1_1_action.md b/en/api_reference/classdronecore_1_1_action.md index 94a134d..267d24f 100644 --- a/en/api_reference/classdronecore_1_1_action.md +++ b/en/api_reference/classdronecore_1_1_action.md @@ -118,7 +118,7 @@ ActionResult dronecore::Action::arm() const Send command to *arm* the drone (synchronous). -**Note** Arming a drone normally causes motors to spin at idle. Before arming take all safety precautions and stand clear of the drone! +> **Note** Arming a drone normally causes motors to spin at idle. Before arming take all safety precautions and stand clear of the drone! **Returns** diff --git a/en/api_reference/classdronecore_1_1_drone_core.md b/en/api_reference/classdronecore_1_1_drone_core.md index cd2c5b9..6673859 100644 --- a/en/api_reference/classdronecore_1_1_drone_core.md +++ b/en/api_reference/classdronecore_1_1_drone_core.md @@ -112,16 +112,19 @@ Adds Connection via URL. Supports connection: Serial, TCP or UDP. Connection URL format should be:
    -
  • UDP - udp://[Bind_host][:Bind_port]

  • TCP - tcp://[Server_host][:Server_port]

  • -
  • Serial - serial://[Dev_Node][:Baudrate]

+
  • Serial - serial://[Dev_Node][:Baudrate]

  • + Default URL : udp://:14540.
      +
    • Default Bind host IP is localhost(127.0.0.1)

    • +
    + -
  • Default Bind host IP is localhost(127.0.0.1)

  • +> **Warning** Serial connections are not supported on Windows (they are supported on Linux and macOS). **Parameters** @@ -174,6 +177,7 @@ ConnectionResult dronecore::DroneCore::add_serial_connection(const std::string & Adds a serial connection with a specific port (COM or UART dev node) and baudrate as specified. +> **Warning** This method is not supported on Windows (it is supported on Linux and macOS). **Parameters** @@ -279,7 +283,7 @@ This sets a callback that will be notified if a new system is discovered. If systems have been discovered before this callback is registered, they will be notified at the time this callback is registered. -**Note** Only one callback can be registered at a time. If this function is called several times, previous callbacks will be overwritten. +> **Note** Only one callback can be registered at a time. If this function is called several times, previous callbacks will be overwritten. **Parameters** @@ -296,7 +300,7 @@ Register callback for system timeout. This sets a callback that will be notified if no heartbeat of the system has been received in 3 seconds. -**Note** Only one callback can be registered at a time. If this function is called several times, previous callbacks will be overwritten. +> **Note** Only one callback can be registered at a time. If this function is called several times, previous callbacks will be overwritten. **Parameters** diff --git a/en/api_reference/classdronecore_1_1_follow_me.md b/en/api_reference/classdronecore_1_1_follow_me.md index 16b5b18..8c37e12 100644 --- a/en/api_reference/classdronecore_1_1_follow_me.md +++ b/en/api_reference/classdronecore_1_1_follow_me.md @@ -186,15 +186,12 @@ Sets location of the moving target. An app can obtain the location of the moving target from Location framework of the underlying platform. -**Notes:** - - -The following links provide information about location services on different platforms: +> **Note** The following links provide information about location services on different platforms: +
  • Windows - https://docs.microsoft.com/en-us/uwp/api/Windows.Devices.Geolocation

  • + **Parameters** diff --git a/en/api_reference/namespacedronecore.md b/en/api_reference/namespacedronecore.md index fd12456..6da08b9 100644 --- a/en/api_reference/namespacedronecore.md +++ b/en/api_reference/namespacedronecore.md @@ -41,6 +41,10 @@ bool | [operator==](#namespacedronecore_1a0363203162fba53fefe7d4d60cd3b1c9) (con std::ostream & | [operator<<](#namespacedronecore_1a9bc5f60e2e310023bbd0ed436250b217) (std::ostream & str, [Telemetry::Position](structdronecore_1_1_telemetry_1_1_position.md) const & position) | bool | [operator==](#namespacedronecore_1ab044bfb4b8bceac15f4ef1f7959775d8) (const [Telemetry::Health](structdronecore_1_1_telemetry_1_1_health.md) & lhs, const [Telemetry::Health](structdronecore_1_1_telemetry_1_1_health.md) & rhs) | std::ostream & | [operator<<](#namespacedronecore_1a33d736c83c404d96c46ff9a7f4750fb1) (std::ostream & str, [Telemetry::Health](structdronecore_1_1_telemetry_1_1_health.md) const & health) | +bool | [operator==](#namespacedronecore_1a65e8014734a31eaf756b98b672dd6466) (const [Telemetry::GPSInfo](structdronecore_1_1_telemetry_1_1_g_p_s_info.md) & lhs, const [Telemetry::GPSInfo](structdronecore_1_1_telemetry_1_1_g_p_s_info.md) & rhs) | +std::ostream & | [operator<<](#namespacedronecore_1a80860746c1bda3cc94fb5ab3962cd6f6) (std::ostream & str, [Telemetry::GPSInfo](structdronecore_1_1_telemetry_1_1_g_p_s_info.md) const & gps_info) | +bool | [operator==](#namespacedronecore_1ae113d4a3da31a7baa40029e3a1833e86) (const [Telemetry::Battery](structdronecore_1_1_telemetry_1_1_battery.md) & lhs, const [Telemetry::Battery](structdronecore_1_1_telemetry_1_1_battery.md) & rhs) | +std::ostream & | [operator<<](#namespacedronecore_1a5e9f9c205d03cca66694584afb649155) (std::ostream & str, [Telemetry::Battery](structdronecore_1_1_telemetry_1_1_battery.md) const & battery) | ## Enumeration Type Documentation @@ -54,7 +58,7 @@ std::ostream & | [operator<<](#namespacedronecore_1a33d736c83c404d96c46ff9a7f475 Possible results returned for commanded actions. -**Note**: [DroneCore](classdronecore_1_1_drone_core.md) does not throw exceptions. Instead a result of this type will be returned when you execute actions. +> **Note** [DroneCore](classdronecore_1_1_drone_core.md) does not throw exceptions. Instead a result of this type will be returned when you execute actions. Value | Description --- | --- @@ -273,4 +277,80 @@ std::ostream& dronecore::operator<<(std::ostream &str, Telemetry::Health const & **Returns** + std::ostream & - + +### operator==() {#namespacedronecore_1a65e8014734a31eaf756b98b672dd6466} + +``` +#include: telemetry.h +``` +```cpp +bool dronecore::operator==(const Telemetry::GPSInfo &lhs, const Telemetry::GPSInfo &rhs) +``` + + +**Parameters** + +* const [Telemetry::GPSInfo](structdronecore_1_1_telemetry_1_1_g_p_s_info.md)& **lhs** - +* const [Telemetry::GPSInfo](structdronecore_1_1_telemetry_1_1_g_p_s_info.md)& **rhs** - + +**Returns** + + bool - + +### operator<<() {#namespacedronecore_1a80860746c1bda3cc94fb5ab3962cd6f6} + +``` +#include: telemetry.h +``` +```cpp +std::ostream& dronecore::operator<<(std::ostream &str, Telemetry::GPSInfo const &gps_info) +``` + + +**Parameters** + +* std::ostream& **str** - +* [Telemetry::GPSInfo](structdronecore_1_1_telemetry_1_1_g_p_s_info.md) const& **gps_info** - + +**Returns** + + std::ostream & - + +### operator==() {#namespacedronecore_1ae113d4a3da31a7baa40029e3a1833e86} + +``` +#include: telemetry.h +``` +```cpp +bool dronecore::operator==(const Telemetry::Battery &lhs, const Telemetry::Battery &rhs) +``` + + +**Parameters** + +* const [Telemetry::Battery](structdronecore_1_1_telemetry_1_1_battery.md)& **lhs** - +* const [Telemetry::Battery](structdronecore_1_1_telemetry_1_1_battery.md)& **rhs** - + +**Returns** + + bool - + +### operator<<() {#namespacedronecore_1a5e9f9c205d03cca66694584afb649155} + +``` +#include: telemetry.h +``` +```cpp +std::ostream& dronecore::operator<<(std::ostream &str, Telemetry::Battery const &battery) +``` + + +**Parameters** + +* std::ostream& **str** - +* [Telemetry::Battery](structdronecore_1_1_telemetry_1_1_battery.md) const& **battery** - + +**Returns** +  std::ostream & - \ No newline at end of file From 516a109df7e7a6a67fc4d8c94256eb4fc547ef9e Mon Sep 17 00:00:00 2001 From: Hamish Willee Date: Mon, 30 Apr 2018 11:28:15 +1000 Subject: [PATCH 107/107] Update version to 0.4 --- book.json | 2 +- en/contributing/build.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/book.json b/book.json index 5fee301..c2654b7 100644 --- a/book.json +++ b/book.json @@ -3,7 +3,7 @@ "title": "DroneCore Guide", "variables": { "logo": "./assets/site/dronecore_logo_full.png", - "github_branch": "develop" + "github_branch": "v0.4.0" }, "plugins": [ "youtube", diff --git a/en/contributing/build.md b/en/contributing/build.md index dfdc5c1..fcaa8ee 100644 --- a/en/contributing/build.md +++ b/en/contributing/build.md @@ -30,7 +30,7 @@ To build the *DroneCore* C++ Library on Linux (or macOS after installing the [pr sudo apt-get update -y sudo apt-get install cmake build-essential colordiff astyle git libcurl4-openssl-dev libtinyxml2-dev doxygen -y ``` - > **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/dronecore/DroneCore/tree/develop/docker). + > **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/dronecore/DroneCore/tree/{{ book.github_branch }}/docker). 1. Clone the [DroneCore repository](https://github.com/dronecore/DroneCore) (or your fork): ```sh @@ -275,7 +275,7 @@ docker run --rm -it -v $HOME//DroneCore:/root/DroneCore: The approach above downloads a container image based on Ubuntu 16.04 ([dronecore/dronecore-ubuntu-16.04](https://hub.docker.com/r/dronecore/dronecore-ubuntu-16.04/)) or Fedora 27 ([dronecore/dronecore-fedora-27](https://hub.docker.com/r/dronecore/dronecore-fedora-27/)) from Docker Hub. -You can also build the images yourself using the files in [DroneCore/docker](https://github.com/dronecore/DroneCore/tree/master/docker). The image can be used in the same way as the one from Docker Hub. +You can also build the images yourself using the files in [DroneCore/docker](https://github.com/dronecore/DroneCore/tree/{{ book.github_branch }}/docker). The image can be used in the same way as the one from Docker Hub. 1. Open a command prompt/terminal in the root of the DroneCore repository. 1. Build the images as shown: @@ -322,6 +322,6 @@ The files are created in **/install/docs/markdown**. > **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/dronecore/DroneCore/blob/develop/generate_markdown_from_doxygen_xml.py) script +> The [generate_markdown_from_doxygen_xml.py](https://github.com/dronecore/DroneCore/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**.

    ~*;?q#d0}yQ(JD864Tv`DxxjKW03L3f1^3l&)Z& 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%0Df|>N68?x; z(rBM4_U;*+ms}rLwnl@47ze&m%krl)wgR$&PAneu=Z+m%x_)WZT{23DO(N zzTeKQw=gJ`D_h94KGNGeARk4KsmDhK4SQx6>dX`?i`?HBp(g2&V~uGB(`#>_XgrWz=Su02QIQbT*rdp!nP%uCAIRXL%VrR( ze;K;@3GYd&ixVbe=xHH{n;2>&1E>je%;g|(fPfIO1|;4J|M0FM?$loDEtJ|=pqNIQ ztV}|g2Sd3BhI&*Vq_kzSSZ~MU++%WCQBMxi6}tXsYkitR;(gFTpm?(4>^_`F()My0 zK1U+xaURDG7E};Xz3-pW<*f}; ze%U<8{7@()h8_8QljpM+dwO?#eySsZ4B~G;7^=R7e0?6o=~wXexZIyJUwzqa??Ht1 zEcng~WFLxCN!m;qyP9|pNX3}f9W>uXaxO5*%gOVao9k_DCD}AECw;#Q5{<3I%mFg66U%{de;2x4n%~~R!yO$&F=atF zPY$mK`Spuu1{<3Z;RJF>6fGR@;rU6iPi~re%~W(CF{T{$%jhCJIRHd;@V7Gg*r4>< zvhK&!tSk93cO=Qt@F=bf)sWwp-<7cy2FWe8DCj}v6uEWtm^*x8wz48%kW-EaBI3_o z+X*wtw%*K59!wkACWp?IY4b|pvc3-1G6-)f!c8+*k0R@Jj|r1Y18?9|^G2reNx=ch zH^?*So;28`97WtSd>h+aX>ymCwNdI>P z=&cSguz&I=4l7ES!zb`UIs~@ypJ8OCv|~7c!a^4gpX0$y&465(Sy}i>EhFYq-4{#a z``n@yGL-z=)v^qVr@9VNjm3k3e@C3o8z^~sV503NM#mrJl43Owhqatdd9%2+<*YV7 ztJP#{TDb_iZ{X|~Ji#A^A#=-k#@HXF>RRF%q5PZjz?)1NV8?)fKY?VZ{N|ZafW)@#k*5n{!QW{KA~e%}M-Zlq^59$p)TKsU2F*#dYWUBbYFODvJzUm59z2c)EA#;Tr*5Q zkfv1@