waitfor

Пакет: ROS

Приостановите выполнение кода, чтобы достигнуть желаемого уровня выполнения

Описание

пример

waitfor(rate) приостанавливает выполнение, пока код не достигает желаемого уровня выполнения. Функция составляет время, которое проведено, выполнив код между waitfor вызовы.

numMisses = waitfor(rate) возвращает количество итераций, пропущенных при выполнении кода между вызовами.

Примеры

свернуть все

Создайте объект уровня, который достигает 1 Гц.

r = robotics.Rate(1);

Запустите цикл с помощью Rate возразите внутри, чтобы управлять выполнением цикла. Сбросьте объект до выполнения цикла, чтобы сбросить таймер. Распечатайте итерацию, и время протекло.

reset(r)
for i = 1:10
	time = r.TotalElapsedTime;
	fprintf('Iteration: %d - Time Elapsed: %f\n',i,time)
	waitfor(r);
end
Iteration: 1 - Time Elapsed: 0.002377
Iteration: 2 - Time Elapsed: 1.009234
Iteration: 3 - Time Elapsed: 2.003836
Iteration: 4 - Time Elapsed: 3.003253
Iteration: 5 - Time Elapsed: 4.004135
Iteration: 6 - Time Elapsed: 5.003787
Iteration: 7 - Time Elapsed: 6.003284
Iteration: 8 - Time Elapsed: 7.002986
Iteration: 9 - Time Elapsed: 8.003027
Iteration: 10 - Time Elapsed: 9.003199

Каждая итерация выполняется в 1 втором интервале.

Входные параметры

свернуть все

Rate объект, заданный как указатель. Этот объект содержит информацию для желаемого уровня и другую информацию о выполнении. Смотрите rateControl для получения дополнительной информации.

Выходные аргументы

свернуть все

Количество пропущенного выполнения задачи, возвращенного как скаляр. waitfor возвращает число раз, задача была пропущена в Rate основанный на объектах на LastPeriod время. Например, если желаемый уровень составляет 1 Гц, и последний период составлял 3,2 секунды, numMisses возвращается 3.

Введенный в R2019b

Для просмотра документации необходимо авторизоваться на сайте