waitfor

Пакет: робототехника

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

Синтаксис

waitfor(rate)
numMisses = waitfor(rate)

Описание

пример

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.022631
Iteration: 2 - Time Elapsed: 1.100586
Iteration: 3 - Time Elapsed: 2.015561
Iteration: 4 - Time Elapsed: 3.008170
Iteration: 5 - Time Elapsed: 4.007830
Iteration: 6 - Time Elapsed: 5.021887
Iteration: 7 - Time Elapsed: 6.003454
Iteration: 8 - Time Elapsed: 7.003082
Iteration: 9 - Time Elapsed: 8.003072
Iteration: 10 - Time Elapsed: 9.003225

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

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

свернуть все

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

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

свернуть все

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

Введенный в R2016a