5.6.2. Контроль дій над завданнями

Дії із завданнями – це дії, на виконання яких потрібно певний час, наприклад, керування шасі для просування на 1 м вперед. У цьому випадку шасі необхідно виконати цю дію протягом певного періоду часу, щоб досягти зазначеної позиції. Коли ви використовуєте SDK для керування діями завдань, SDK надсилає завдання роботу. Після того, як робот отримає завдання, він обере виконати або відхилити завдання (робот може не мати змоги виконати завдання миттєво) і повідомить SDK. Якщо робот вирішить виконати завдання, SDK буде повідомлено знову, коли завдання буде виконано. Під час використання інтерфейсу керування діями завдань зверніть увагу на наступні два пункти:

• Повертається значення інтерфейсу дії завдання – це об’єкт дії, який надає метод wait_for_completed (timeout). Ви можете вказати період очікування дії за допомогою параметра timeout. При виклику методу wait_for_completed (timeout) програма буде заблокована в операторі до тих пір, поки дія не буде завершена або час виконання не закінчиться.

• Один модуль може виконувати лише одну дію одночасно, тому завдання одного модуля взаємовиключні. Різні модулі не залежать один від одного, тому їх дії можна виконувати одночасно. Наприклад, якщо ви не викликаєте метод wait_for_completed () одразу після використання інтерфейсу керування діями завдань, ви можете керувати шасі, щоб переміститися до зазначеного положення, одночасно керуючи повертанням підвісу для повороту на заданий кут. Однак ви не можете надіслати іншу дію завдання для керування механізмом підвісу, доки не буде виконано попередню дію завдання для підвісу.

Порада

Якщо ви не викликаєте метод wait_for_completed () одразу після використання інтерфейсу керування діями завдань, обов’язково керуйте логікою у програмі, щоб уникнути надсилання інших команд дій із завданнями, які взаємовиключні з поточним завданням.

Далі в цьому документі буде пояснено, як керувати шасі для переміщення на певну відстань, щоб показати, як користуватися цим інтерфейсом.