Навигация: reach, step, until, finish

Дойти до функции или строки, сделать шаг, выполнить до возврата. Каждая операция возвращает остановку.

с 0.1.0-rc.1с 0.3.0

Методы

ЭлементСигнатураДоступен сAPI 3
reachreach(location, condition=None) -> dict0.1.0-rc.1¹await в async
stepstep(count=1, *, unit="source", mode="into") -> dict0.3.0await в async
untiluntil(location=None) -> dict0.3.0await в async
finishfinish() -> dict0.3.0await в async

¹ Базовая форма; расширения 0.3.0 описаны в карточке.

Изменения API 3 (0.5.0)

В async def — await. Условие reach вычисляется без вызовов функций цели.

Правильно

Условие задаётся выражением над данными; finish возвращает в вызывающий кадр.

t.reach("board_adc_sample", condition="board_adc_sequences == 3")
t.reach("app_step")
t.finish()
t.check("returned to the caller", t.frames()["frames"][0]["function"], "app_receiver_step")
t.until("app_loop")
t.step(3)

# async def
await t.reach("app_step")
await t.finish()

Не рекомендуется

Вызов функции в условии отклоняется (expression_call_forbidden). Цикл step вместо reach с условием тратит время и точки.

t.reach("board_adc_sample", condition="board_adc_ready()")   # hidden call: refused
while t.read("board_adc_sequences") < 3:
    t.step()                                                     # use reach with a condition

Фрагменты показывают отклонённые или нежелательные приёмы, а не рабочий рецепт.

Фрагменты для тела сценария; символы прошивки условные.

← СценарийВсе группыЖивое окно →