mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-15 02:03:33 +08:00
Docs beginner tutorials update (#26639)
* docs: module_template.md accuracy fix * Modernise and Fix up Hello sky example * Corrections * Apply suggestions from code review * Apply suggestions from code review * Fix up indentation
This commit is contained in:
@@ -22,13 +22,15 @@ The example shows how.
|
||||
In summary:
|
||||
|
||||
1. Specify the dependency on the work queue library in the cmake definition file ([CMakeLists.txt](https://github.com/PX4/PX4-Autopilot/blob/main/src/examples/work_item/CMakeLists.txt)):
|
||||
```
|
||||
|
||||
```txt
|
||||
...
|
||||
DEPENDS
|
||||
px4_work_queue
|
||||
```
|
||||
1. In addition to `ModuleBase`, the task should also derive from `ScheduledWorkItem` (included from [ScheduledWorkItem.hpp](https://github.com/PX4/PX4-Autopilot/blob/main/platforms/common/include/px4_platform_common/px4_work_queue/ScheduledWorkItem.hpp))
|
||||
1. Specify the queue to add the task to in the constructor initialisation.
|
||||
|
||||
2. In addition to `ModuleBase`, the task should also derive from `ScheduledWorkItem` (included from [ScheduledWorkItem.hpp](https://github.com/PX4/PX4-Autopilot/blob/main/platforms/common/include/px4_platform_common/px4_work_queue/ScheduledWorkItem.hpp))
|
||||
3. Specify the queue to add the task to in the constructor initialisation.
|
||||
The [work_item](https://github.com/PX4/PX4-Autopilot/blob/main/src/examples/work_item/WorkItemExample.cpp#L42) example adds itself to the `wq_configurations::test1` work queue as shown below:
|
||||
|
||||
```cpp
|
||||
@@ -43,9 +45,11 @@ In summary:
|
||||
The available work queues (`wq_configurations`) are listed in [WorkQueueManager.hpp](https://github.com/PX4/PX4-Autopilot/blob/main/platforms/common/include/px4_platform_common/px4_work_queue/WorkQueueManager.hpp#L49).
|
||||
:::
|
||||
|
||||
1. Implement the `ScheduledWorkItem::Run()` method to perform "work".
|
||||
1. Implement the `task_spawn` method, specifying that the task is a work queue (using the `task_id_is_work_queue` id.
|
||||
1. Schedule the work queue task using one of the scheduling methods (in the example we use `ScheduleOnInterval` from within the `init` method).
|
||||
4. Implement the `ScheduledWorkItem::Run()` method to perform "work".
|
||||
5. Implement the `task_spawn` method, specifying that the task is a work queue (using the `task_id_is_work_queue` id).
|
||||
6. Schedule the work queue task using one of the scheduling methods.
|
||||
In the example, `init()` calls `registerCallback()` on a uORB subscription so that `Run()` is triggered whenever a new `sensor_accel` message is published.
|
||||
`ScheduleOnInterval` is an alternative for fixed-rate scheduling.
|
||||
|
||||
## Tasks
|
||||
|
||||
@@ -61,6 +65,6 @@ The template demonstrates the following additional features/aspects that are req
|
||||
[startup script](../concept/system_startup.md).
|
||||
- Command-line argument parsing.
|
||||
- Documentation: the `PRINT_MODULE_*` methods serve two purposes (the API is
|
||||
documented [in the source code](https://github.com/PX4/PX4-Autopilot/blob/v1.8.0/src/platforms/px4_module.h#L381)):
|
||||
documented [in the source code](https://github.com/PX4/PX4-Autopilot/blob/v1.17/platforms/common/include/px4_platform_common/module.h)):
|
||||
- They are used to print the command-line usage when entering `module help` on the console.
|
||||
- They are automatically extracted via script to generate the [Modules & Commands Reference](../modules/modules_main.md) page.
|
||||
|
||||
Reference in New Issue
Block a user