Example overrides for 'control' api docs (#352)
* Add 'playSound' api docs * Example overrides for 'control' api docs
This commit is contained in:
committed by
Peli de Halleux
parent
fcba14aae1
commit
eb45a76928
61
docs/reference/control/run-in-parallel.md
Normal file
61
docs/reference/control/run-in-parallel.md
Normal file
@ -0,0 +1,61 @@
|
||||
# @extends
|
||||
|
||||
## Separate tasks #tasks
|
||||
|
||||
As an example, you could have a small task that checks the battery level and gives a warning when it drops below 15 percent. This is placed inside a ``||control:run in parallel||`` block:
|
||||
|
||||
```block
|
||||
let powerCheck = false;
|
||||
|
||||
control.runInParallel(() => {
|
||||
while (!powerCheck) {
|
||||
if (brick.batteryLevel() <= 15) {
|
||||
brick.setStatusLight(StatusLight.RedFlash)
|
||||
powerCheck = true;
|
||||
} else {
|
||||
pause(5000);
|
||||
}
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
The code the main program just drives the brick in a constant pattern until the battery check in the parallel task says that the battery level is too low.
|
||||
|
||||
```block
|
||||
let powerCheck = false;
|
||||
while (!powerCheck) {
|
||||
motors.largeBC.tank(50, 50, 5, MoveUnit.Seconds)
|
||||
motors.largeBC.steer(5, 50, 6, MoveUnit.Rotations)
|
||||
}
|
||||
motors.stopAll()
|
||||
```
|
||||
|
||||
## #example
|
||||
|
||||
Tank the brick in a pattern until the battery warning variable is set. Have a separate task check the battery level and set a warning variable when the level is below `5` percent.
|
||||
|
||||
```blocks
|
||||
let powerCheck = false;
|
||||
|
||||
control.runInParallel(() => {
|
||||
while (!powerCheck) {
|
||||
if (brick.batteryLevel() < 5) {
|
||||
powerCheck = true;
|
||||
} else {
|
||||
pause(5000);
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
while (!powerCheck) {
|
||||
motors.largeBC.tank(20, 20, 5, MoveUnit.Seconds)
|
||||
motors.largeBC.steer(15, 20, 6, MoveUnit.Rotations)
|
||||
motors.largeBC.tank(40, 40, 5, MoveUnit.Seconds)
|
||||
motors.largeBC.steer(-10, 20, 3, MoveUnit.Rotations)
|
||||
}
|
||||
motors.stopAll()
|
||||
```
|
||||
|
||||
## See also #seealso
|
||||
|
||||
[forever](/reference/loops/forever)
|
Reference in New Issue
Block a user