mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-31 02:21:36 +08:00
Move PX4 Guide source into /docs (#24490)
* Add vitepress tree * Update existing workflows so they dont trigger on changes in the docs path * Add nojekyll, package.json, LICENCE etc * Add crowdin docs upload/download scripts * Add docs flaw checker workflows * Used docs prefix for docs workflows * Crowdin obvious fixes * ci: docs move to self hosted runner runs on a beefy server for faster builds Signed-off-by: Ramon Roche <mrpollo@gmail.com> * ci: don't run build action for docs or ci changes Signed-off-by: Ramon Roche <mrpollo@gmail.com> * ci: update runners Signed-off-by: Ramon Roche <mrpollo@gmail.com> * Add docs/en * Add docs assets and scripts * Fix up editlinks to point to PX4 sources * Download just the translations that are supported * Add translation sources for zh, uk, ko * Update latest tranlsation and uorb graphs * update vitepress to latest --------- Signed-off-by: Ramon Roche <mrpollo@gmail.com> Co-authored-by: Ramon Roche <mrpollo@gmail.com>
This commit is contained in:
co-authored by
Ramon Roche
parent
8e6d2ebe4a
commit
88d623bedb
@@ -0,0 +1,84 @@
|
||||
# Зовнішні модулі (Out-of-Tree)
|
||||
|
||||
Зовнішні модулі забезпечують зручний механізм для розробників для керування/групування власних модулів, які вони хочуть додати до (або оновити в) прошивки PX4.Зовнішні модулі можуть використовувати ті ж самі включення, що й внутрішні модулі, і можуть взаємодіяти з внутрішніми модулями через uORB.
|
||||
|
||||
У цій темі пояснюється, як додати зовнішній модуль ("out of tree") до збірки PX4.
|
||||
|
||||
:::tip
|
||||
Ми закликаємо вас внести ваші зміни до PX4, де це можливо!
|
||||
:::
|
||||
|
||||
## Використання
|
||||
|
||||
Щоб створити зовнішній модуль:
|
||||
|
||||
- Створіть папку _зовнішнього каталогу_, щоб згрупувати зовнішні модулі:
|
||||
- Його можна знайти будь-де за межами дерева **PX4-Autopilot**.
|
||||
- Він повинен мати таку ж структуру, як **PX4-Autopilot** (тобто він повинен містити каталог з назвою **src**).
|
||||
- Пізніше ми звернемося до цього каталогу за допомогою `EXTERNAL_MODULES_LOCATION`.
|
||||
|
||||
- Скопіюйте існуючий модуль (наприклад, **examples/px4_simple_app**) до зовнішнього каталогу або безпосередньо створіть новий модуль.
|
||||
|
||||
- Перейменуйте модуль (включаючи `MODULE` у **CMakeLists.txt**) або видаліть його з існуючої конфігурації збірки _cmake_ PX4-Autopilot.
|
||||
Це щоб уникнути конфліктів з внутрішніми модулями.
|
||||
|
||||
- Додайте файл **CMakeLists.txt** у зовнішній каталозі з вмістом:
|
||||
|
||||
```cmake
|
||||
set(config_module_list_external
|
||||
modules/<new_module>
|
||||
PARENT_SCOPE
|
||||
)
|
||||
```
|
||||
|
||||
- Додайте рядок `EXTERNAL` до `modules/<new_module>/CMakeLists.txt` у `px4_add_module()`, наприклад так:
|
||||
|
||||
```cmake
|
||||
px4_add_module(
|
||||
MODULE modules__test_app
|
||||
MAIN test_app
|
||||
STACK_MAIN 2000
|
||||
SRCS
|
||||
px4_simple_app.c
|
||||
DEPENDS
|
||||
platforms__common
|
||||
EXTERNAL
|
||||
)
|
||||
```
|
||||
|
||||
## Визначення повідомлень поза деревами uORB
|
||||
|
||||
Повідомлення uORB також можна визначати поза деревом. Для цього має існувати папка `$EXTERNAL_MODULES_LOCATION/msg`.
|
||||
|
||||
- Розмістіть усі нові визначення повідомлень у каталозі `$EXTERNAL_MODULES_LOCATION/msg`.
|
||||
Формат цих нових визначень повідомлень поза деревом такий самий, як і для будь-якого іншого [визначення повідомлень uORB](../middleware/uorb.md#adding-a-new-topic).
|
||||
- Додати файл `$EXTERNAL_MODULES_LOCATION/msg/CMakeLists.txt` з змістом:
|
||||
|
||||
```cmake
|
||||
set(config_msg_list_external
|
||||
<message1>.msg
|
||||
<message2>.msg
|
||||
<message3>.msg
|
||||
PARENT_SCOPE
|
||||
)
|
||||
```
|
||||
|
||||
Нове повідомлення uORB можна використовувати як будь-яке інше повідомлення uORB, як описано `тут`.
|
||||
|
||||
Поза деревом повідомлень uORB будуть створені в тих же місцях, що й звичайні повідомлення uORB.
|
||||
Заголовки тем uORB генеруються в `<build_dir>/uORB/topics/`, а вихідні файли повідомлень – створено в `<build_dir>/msg/topics_sources/`.
|
||||
|
||||
Нові повідомлення uORB можна використовувати як будь-які інші повідомлення uORB, як описано [тут](../middleware/uorb.md#adding-a-new-topic).
|
||||
|
||||
:::warning
|
||||
Визначення повідомлень поза деревом uORB не можуть мати ті ж самі назви, що й будь-які звичайні повідомлення uORB.
|
||||
:::
|
||||
|
||||
## Побудова зовнішніх модулів та повідомлень uORB
|
||||
|
||||
Виконайте `make px4_sitl EXTERNAL_MODULES_LOCATION=<path>`.
|
||||
|
||||
Будь-яку іншу ціль збірки можна використовувати, але каталог для збирання не повинен існувати.
|
||||
Якщо вона вже існує, ви також можете просто встановити змінну _cmake_ у папці збірки.
|
||||
|
||||
Для наступних поступових збірок `EXTERNAL_MODULES_LOCATION` не потрібно вказувати.
|
||||
Reference in New Issue
Block a user